Data and Process Modelling 3. Object-Role Modeling - CSDP Step 4 - - PowerPoint PPT Presentation

data and process modelling
SMART_READER_LITE
LIVE PREVIEW

Data and Process Modelling 3. Object-Role Modeling - CSDP Step 4 - - PowerPoint PPT Presentation

Data and Process Modelling 3. Object-Role Modeling - CSDP Step 4 Marco Montali KRDB Research Centre for Knowledge and Data Faculty of Computer Science Free University of Bozen-Bolzano A.Y. 2014/2015 Marco Montali (unibz) DPM - 3.CDSP-4 A.Y.


slide-1
SLIDE 1

Data and Process Modelling

  • 3. Object-Role Modeling - CSDP Step 4

Marco Montali

KRDB Research Centre for Knowledge and Data Faculty of Computer Science Free University of Bozen-Bolzano

A.Y. 2014/2015

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 1 / 23

slide-2
SLIDE 2

Uniqueness Constraints

CSDP Step 4

Add uniqueness constraints and check the arity of fact types.

  • 1. Model uniqueness constraints (UCs): each base fact type must be

assigned at least one UC.

◮ UC: at most one fact of a certain type is allowed.

(Each Person has at most one Weight).

◮ Identify keys for the fact types.

  • 2. Use UCs to evaluate the arity of fact types.

◮ Uniqueness check to determine if a fact type is elementary or to be

split.

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 2 / 23

slide-3
SLIDE 3

Uniqueness Constraints

CSDP Step 4

Add uniqueness constraints and check the arity of fact types.

  • 1. Model uniqueness constraints (UCs): each base fact type must be

assigned at least one UC.

◮ UC: at most one fact of a certain type is allowed.

(Each Person has at most one Weight).

◮ Identify keys for the fact types.

  • 2. Use UCs to evaluate the arity of fact types.

◮ Uniqueness check to determine if a fact type is elementary or to be

split.

Remember: fact types like Person has Weight are snapshot fact types: instances belong to a single database state.

  • Historical fact types can be modeled by explicitly referring to time:

addition of a temporal role (Person had Weight on Date).

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 2 / 23

slide-4
SLIDE 4

UC and Unary Fact Type

What about UC of a unary fact type? Which possibilities do we have?

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 3 / 23

slide-5
SLIDE 5

UC and Unary Fact Type

What about UC of a unary fact type? Which possibilities do we have?

Company (VAT)

is a corporation is a cooperative MEL1123 MON5811 ABC5813 MON5811 Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 3 / 23

slide-6
SLIDE 6

UC and Unary Fact Type

What about UC of a unary fact type? Which possibilities do we have?

  • Remember: the population of an information base is a set of

individuals.

  • Redundancy is sometimes accepted in the database, but never for

elementary facts in the conceptual information base.

Company (VAT)

is a corporation is a cooperative MEL1123 MON5811 ABC5813 MON5811 Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 3 / 23

slide-7
SLIDE 7

UC and Unary Fact Type

What about UC of a unary fact type? Which possibilities do we have?

  • Remember: the population of an information base is a set of

individuals.

  • Redundancy is sometimes accepted in the database, but never for

elementary facts in the conceptual information base.

Company (VAT)

is a corporation is a cooperative MEL1123 MON5811 ABC5813 MON5811 Rejected

  • No choice for unary fact types: every unary fact type is (implicitly)

associated to an UC.

  • UC represented as a bar above/below the single role: simple UC.

Company (VAT)

is a corporation is a cooperative Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 3 / 23

slide-8
SLIDE 8

UC and Binary Fact Type

How many possibilities?

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 4 / 23

slide-9
SLIDE 9

UC and Binary Fact Type

How many possibilities?

  • 1. Many-to-one (n:1): each A in relation rel with at most one B; each

B in relation rel with many (0+) As. (1 simple UC)

  • 2. One-to-many (1:n): each A in relation rel with many (0+) Bs; each

B in relation rel with at most one A. (1 simple UC)

  • 3. One-to-one (1:1): each A in relation rel with at most one B, and

vice versa. (2 simple UCs)

  • 4. Many-to-many (n:m): each A in relation rel with many (0+) B, and

vice versa. (1 composite UC)

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 4 / 23

slide-10
SLIDE 10

UC and Binary Fact Type

How many possibilities?

  • 1. Many-to-one (n:1): each A in relation rel with at most one B; each

B in relation rel with many (0+) As. (1 simple UC)

◮ Each entry in the first role’s fact column is unique. ◮ Entries in the second role’s fact column may be repeated. ◮ rel is a partial function of A.

A B

rel/invrel

  • 2. One-to-many (1:n): each A in relation rel with many (0+) Bs; each

B in relation rel with at most one A. (1 simple UC)

  • 3. One-to-one (1:1): each A in relation rel with at most one B, and

vice versa. (2 simple UCs)

  • 4. Many-to-many (n:m): each A in relation rel with many (0+) B, and

vice versa. (1 composite UC)

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 4 / 23

slide-11
SLIDE 11

UC and Binary Fact Type

How many possibilities?

  • 1. Many-to-one (n:1): each A in relation rel with at most one B; each

B in relation rel with many (0+) As. (1 simple UC)

  • 2. One-to-many (1:n): each A in relation rel with many (0+) Bs; each

B in relation rel with at most one A. (1 simple UC)

◮ Each entry in the second role’s fact column is unique. ◮ Entries in the first role’s fact column may be repeated. ◮ invrel is a partial function of B.

A B

rel/invrel

  • 3. One-to-one (1:1): each A in relation rel with at most one B, and

vice versa. (2 simple UCs)

  • 4. Many-to-many (n:m): each A in relation rel with many (0+) B, and

vice versa. (1 composite UC)

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 4 / 23

slide-12
SLIDE 12

UC and Binary Fact Type

How many possibilities?

  • 1. Many-to-one (n:1): each A in relation rel with at most one B; each

B in relation rel with many (0+) As. (1 simple UC)

  • 2. One-to-many (1:n): each A in relation rel with many (0+) Bs; each

B in relation rel with at most one A. (1 simple UC)

  • 3. One-to-one (1:1): each A in relation rel with at most one B, and

vice versa. (2 simple UCs)

◮ invrel is a the inverse function of rel: invrel(rel(A)) = A. ◮ Used for reference types (abbreviated for the preferred reference mode).

A B

rel/invrel

  • 4. Many-to-many (n:m): each A in relation rel with many (0+) B, and

vice versa. (1 composite UC)

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 4 / 23

slide-13
SLIDE 13

UC and Binary Fact Type

How many possibilities?

  • 1. Many-to-one (n:1): each A in relation rel with at most one B; each

B in relation rel with many (0+) As. (1 simple UC)

  • 2. One-to-many (1:n): each A in relation rel with many (0+) Bs; each

B in relation rel with at most one A. (1 simple UC)

  • 3. One-to-one (1:1): each A in relation rel with at most one B, and

vice versa. (2 simple UCs)

  • 4. Many-to-many (n:m): each A in relation rel with many (0+) B, and

vice versa. (1 composite UC)

◮ Spanning uniqueness constraint. ◮ Always true (set semantics). ◮ Most general: (1.) ∨ (2.) ∨ (3.) → (4.). ◮ Verify with domain experts if bags are supported → ternary relation ⋆ Temporization is a common case.

A B

rel/invrel Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 4 / 23

slide-14
SLIDE 14

Constraints Elicitation

Person (.name) Company (VAT)

works in/employs

Place (.address)

lives at is located in is husband of / is wife of

  • wns/is owned by
  • Interaction with domain experts.
  • Question each constraint in English, eliciting counter-examples.

◮ Is it possible for a Person to live in more than one Place?

Is it possible for a Company to be owned by more than one Company?

  • Remember: a conceptual model is only an approximation of reality!

◮ UCs should be at least as strong as those that apply in the real world. Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 5 / 23

slide-15
SLIDE 15

Constraints Elicitation

Person (.name) Company (VAT)

works in/employs

Place (.address)

lives at is located in is husband of / is wife of

  • wns/is owned by
  • Interaction with domain experts.
  • Question each constraint in English, eliciting counter-examples.

◮ Is it possible for a Person to live in more than one Place?

Is it possible for a Company to be owned by more than one Company?

  • Remember: a conceptual model is only an approximation of reality!

◮ UCs should be at least as strong as those that apply in the real world. Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 5 / 23

slide-16
SLIDE 16

UC and Ternary Fact Types

  • E. Marley

MEL1123

  • E. Marley

MON5811

  • G. Threepwood

MON5811 2000 1500 1500

  • G. Threepwood

MEL1123 1500

Person (.name) Company (VAT) Place (.address)

is located in is husband of / is wife of

  • wns/is owned by

Salary (EUR:)

... earns ... by working at ...

Apartment (.code)

... lives in ... at ...

? ?

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 6 / 23

slide-17
SLIDE 17

UC and Ternary Fact Types

  • Deep case analysis using the available data (incomplete knowledge).
  • Does a constraint make sense?

◮ Very unlikely that Company+Salary univocally determines a Person. Person (.name) Salary (EUR:)

... earns ... by working at ...

Company (VAT)

  • E. Marley

MEL1123

  • E. Marley

MON5811

  • G. Threepwood

MON5811 2000 1500 1500

  • G. Threepwood

MEL1123 1500

  • Usage of divided constraint bar to write UCs over non-contiguous

roles.

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 7 / 23

slide-18
SLIDE 18

Ternary vs Objectified Association

Corresponding objectified diagram (equivalent only if provides for is mandatory for Employment).

Person (.name) Company (VAT)

works in

Salary (EUR:) "Employment"

provides for

  • Objectified associations must have a spanning UC (objectification

introduces a reference to a combination of objects).

  • If this is not true, refactor around the entity type(s) subject to the UC.
  • Simple constraint on provides for predicate: each Employment

(i.e., each pair (Person, Company)) is associated to at most one Salary.

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 8 / 23

slide-19
SLIDE 19

UC and Ternary Fact Types: Possibilities

  • Single UCs.

[a] [b] [c] [a] [b] [c] [a] [b] [c] [a] [b] [c]

  • Combined UCs.

[a] [b] [c] [a] [b] [c] [a] [b] [c] [a] [b] [c]

  • What about other possibilities?

[a] [b] [c] [a] [b] [c] [a] [b] [c] [a] [b] [c]

? ? ?

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 9 / 23

slide-20
SLIDE 20

UCs and Elementary Facts

Person (.name) Place (.address) Apartment (.code)

... lives in ... at ...

  • E. Marley

Palace Street 1, Meleé Island

  • G. Threepwood

Palace Street 1, Meleé Island

  • S. Stanman

Central Square 12, Booty Island

123 123 431 Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 10 / 23

slide-21
SLIDE 21

UCs and Elementary Facts

Person (.name) Place (.address) Apartment (.code)

... lives in ... at ...

  • E. Marley

Palace Street 1, Meleé Island

  • G. Threepwood

Palace Street 1, Meleé Island

  • S. Stanman

Central Square 12, Booty Island

123 123 431

  • Person acts as a pivot: determines both Apartment and Place.
  • The UC reveals that the predicate is non-elementary.

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 10 / 23

slide-22
SLIDE 22

UCs and Elementary Facts

Person (.name) Place (.address) Apartment (.code)

... lives in ... at ...

  • E. Marley

Palace Street 1, Meleé Island

  • G. Threepwood

Palace Street 1, Meleé Island

  • S. Stanman

Central Square 12, Booty Island

123 123 431

Person (.name) Place (.address) Apartment (.code)

lives at

  • E. Marley

Palace Street 1, Meleé Island

  • G. Threepwood

Palace Street 1, Meleé Island

  • S. Stanman

Central Square 12, Booty Island

123 123 431 lives in

  • E. Marley
  • G. Threepwood
  • S. Stanman
  • Person acts as a pivot: determines both Apartment and Place.
  • The UC reveals that the predicate is non-elementary.

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 10 / 23

slide-23
SLIDE 23

Handling Non-Elementary Fact Types

Identification of non-elementary fact types in the model → decomposition.

  • Key length check: UCs to identify predicates with too many roles.

◮ Sufficient condition for splitting.

  • Projection-join check: split and recombine information checking if

there is information-loss.

◮ Refine the sufficient condition for key length check. Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 11 / 23

slide-24
SLIDE 24

Key Length Check

  • Key: minimal combination of roles spanned by an UC.

◮ Simple key: spans one role only.

  • Predicates of wrong arity.

◮ Too long: non-elementary fact type → to be split. ⋆ Person lives in Apartment at Place

→ Person lives in Apartment; Person lives at Place.

◮ Too short: information-loss → recombination. ⋆ Lecturer teaches Course; Lecturer teaches at Faculty

→ Lecturer teaches Course at Faculty.

  • Major issue: too long predicates.

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 12 / 23

slide-25
SLIDE 25

Key Length Check

  • Key: minimal combination of roles spanned by an UC.

◮ Simple key: spans one role only.

  • Predicates of wrong arity.

◮ Too long: non-elementary fact type → to be split. ⋆ Person lives in Apartment at Place

→ Person lives in Apartment; Person lives at Place.

◮ Too short: information-loss → recombination. ⋆ Lecturer teaches Course; Lecturer teaches at Faculty

→ Lecturer teaches Course at Faculty.

  • Major issue: too long predicates.

n-1 rule

Each n-ary fact type has a key length of at least n-1.

  • Elementary fact type of arity n:
  • 1. has exactly one key of length n;
  • 2. has one or more keys of length n-1.
  • Ternary fact type to be split if it has a simple key → split on the key.

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 12 / 23

slide-26
SLIDE 26

Functional Dependencies

  • Functional dependencies help in the decision of how to split.

Functional Dependency

Given a combination of columns X and a column Y in a fact table, Y functionally depends on X (X → Y ) if for each value of X there is at most one value of Y .

  • Correct ORM schema: all FDs captured by UCs.
  • X → Y : there is a many-to-one relationship between X and Y.
  • Suppose relation of arity n has key of size < n − 1.

◮ Then there are at least two columns that functionally depend on key. ◮ Split can be done by pairing each FD source with the corresponding

target.

  • Difficult to be exhaustively spotted: they are many and each one

requires verbalization with the domain experts.

◮ To be combined with human knowledge about the UoD. Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 13 / 23

slide-27
SLIDE 27

FDs and Decomposition

Person (.name) Rating (.nr) Degree (.code)

... seeking ... enrolled in ... scoring ...

Subject (.code)

  • FDs shown only in a “temporary” model.
  • Is the model correct?

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 14 / 23

slide-28
SLIDE 28

FDs and Decomposition

Person (.name) Rating (.nr) Degree (.code)

... seeking ... enrolled in ... scoring ...

Subject (.code)

  • FDs shown only in a “temporary” model.
  • Is the model correct? Violation of the n-1 rule!

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 14 / 23

slide-29
SLIDE 29

FDs and Decomposition

Decomposition using the UC as a pivot.

Person (.name) Degree (.code)

... seeking ... enrolled in ...

Subject (.code)

... enrolled in ... scoring ...

Rating (.nr) Subject (.code)

  • Is the model correct?

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 15 / 23

slide-30
SLIDE 30

FDs and Decomposition

Decomposition using the UC as a pivot.

Person (.name) Degree (.code)

... seeking ... enrolled in ...

Subject (.code)

... enrolled in ... scoring ...

Rating (.nr) Subject (.code)

  • Is the model correct? Relation is non-elementary due to the FD.
  • The n-1 rule is a sufficient condition for splitting, but not a necessary
  • ne.

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 15 / 23

slide-31
SLIDE 31

FDs and Decomposition

Decomposition using the source of FD as a pivot.

Person (.name) Degree (.code)

seeks ... enrolled in ... scoring ...

Rating (.nr) Subject (.code) Subject (.code)

enrolled in

  • Part of the decomposition is redundant → not included.

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 16 / 23

slide-32
SLIDE 32

Conceptual Projection

Extraction of a portion of a fact table, obtained by maintaining only the desired columns.

  • Set semantics: no repetitions inside the filtered table.
  • Notation: T[role1,. . . ,rolen].

◮ Corresponds to πrole1,...,rolen(T) in relational algebra.

  • Example:

T employee salary company

  • E. Marley

2000 MEL1123

  • E. Marley

1500 MON5811

  • G. Threepwood

1500 MON5811

  • G. Threepwood

1500 MEL1123 T[salary,company] salary company 2000 MEL1123 1500 MON5811 1500 MEL1123

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 17 / 23

slide-33
SLIDE 33

Conceptual Join

Traversal of the conceptual schema from one fact type to another, passing through an object type. Intuition for the navigation: when applying the conceptual join to concrete

  • bjects, the object of the join type is fixed.

MEL1123 corporation

Person (.name) Company (VAT)

works in/employs

CompanyStatus (.name)

has the form

  • E. Marley

MEL1123

  • E. Marley

MON5811 ... works in ... of the form ...

  • E. Marley

MEL1123

corporation

∗ define Person works in Company of the form CompanyStatus as Person works in Company that has the form CompanyStatus

The conceptual join gives raise to a compound fact type.

  • obtained from the combination of different predicates by imposing

equivalence among objects playing a certain role in them.

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 18 / 23

slide-34
SLIDE 34

Types of Conceptual Join

  • Conceptual inner join: join object must be the same.
  • Left (right, full) outer join: also keep those facts for which the join
  • bject only appears in just the left (right, one of) fact table.

◮ ? to denote the absence of a value (NULL). ◮ Left outer join in the example: addition of E. Marley MON5811 ?.

MEL1123 corporation

Person (.name) Company (VAT)

works in/employs

CompanyStatus (.name)

has the form

  • E. Marley

MEL1123

  • E. Marley

MON5811 ... works in ... of the form ...

  • E. Marley

MEL1123

corporation

∗ define Person works in Company of the form CompanyStatus as Person works in Company that has the form CompanyStatus

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 19 / 23

slide-35
SLIDE 35

Projection-Join Check

Tests whether a fact type is compound (hence splittable).

  • 1. Provide a significant fact table for the fact type.

◮ Must cover all the possible cases!

  • 2. Split this table into two or more projections.
  • 3. Recombine by conceptual (inner) join.

◮ By construction no NULL entry.

  • 4. The fact type is splittable in this way if and only if the result is the

same as the original. N.B.: usually having a significant fact table already supports the right choice.

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 20 / 23

slide-36
SLIDE 36

Projection-Join Check

Suppose the fact table covers all possible cases.

  • Is this fact type splittable?

TuteGroup (.code) Room (.code) Time(.dhcode)

... meets at ... in ... A

  • Mon. 3 p.m.

CS-718 B1

  • Tue. 2 p.m.

E-B18 C

  • Mon. 3 p.m.

E-B18

  • And this version?

TuteGroup (.code) Room (.code) Time(.dhcode)

... meets at ... in ... A

  • Mon. 3 p.m.

CS-718 B1

  • Tue. 2 p.m.

E-B18 B1

  • Wed. 2 p.m.

E-B15 C

  • Mon. 3 p.m.

E-B18

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 21 / 23

slide-37
SLIDE 37

Projection-Join Check

Suppose the fact table covers all possible cases.

  • Is this fact type splittable?

TuteGroup (.code) Room (.code) Time(.dhcode)

... meets at ... in ... A

  • Mon. 3 p.m.

CS-718 B1

  • Tue. 2 p.m.

E-B18 C

  • Mon. 3 p.m.

E-B18

  • And this version?

TuteGroup (.code) Room (.code) Time(.dhcode)

... meets at ... in ... A

  • Mon. 3 p.m.

CS-718 B1

  • Tue. 2 p.m.

E-B18 B1

  • Wed. 2 p.m.

E-B15 C

  • Mon. 3 p.m.

E-B18

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 21 / 23

slide-38
SLIDE 38

External Uniqueness Constraints

Apply to roles from different predicates.

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 22 / 23

slide-39
SLIDE 39

External Uniqueness Constraints

Apply to roles from different predicates.

TuteGroup (.code) Room (.code) Time (.dhcode)

meets in meets at A

  • Mon. 3 p.m.

CS-718 B1

  • Tue. 2 p.m.

E-B18 A B1

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 22 / 23

slide-40
SLIDE 40

External Uniqueness Constraints

Apply to roles from different predicates.

TuteGroup (.code) Room (.code) Time (.dhcode)

meets in meets at A

  • Mon. 3 p.m.

CS-718 B1

  • Tue. 2 p.m.

E-B18 A B1 C

  • Mon. 3 p.m.

CS-718 C

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 22 / 23

slide-41
SLIDE 41

External Uniqueness Constraints

Apply to roles from different predicates.

TuteGroup (.code) Room (.code) Time (.dhcode)

meets in meets at A

  • Mon. 3 p.m.

CS-718 B1

  • Tue. 2 p.m.

E-B18 A B1 C

  • Mon. 3 p.m.

CS-718 C

Each combination of MeetingRoom and MeetingTime is paired with at most one TuteGroup

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 22 / 23

slide-42
SLIDE 42

External Uniqueness Constraints

Apply to roles from different predicates.

TuteGroup (.code) Room (.code) Time (.dhcode)

meets in meets at A

  • Mon. 3 p.m.

CS-718 B1

  • Tue. 2 p.m.

E-B18 A B1 C

  • Mon. 3 p.m.

CS-718 C

TuteGroup (.code) Room (.code) Time (.dhcode)

meets in meets at ... meets at ... in ... A

  • Mon. 3 p.m.

CS-718 B1

  • Tue. 2 p.m.

E-B18 C

  • Mon. 3 p.m.

CS-718

Each combination of MeetingRoom and MeetingTime is paired with at most one TuteGroup Each population of ‘meets at’ join ‘meets in’ has (Room,Time) unique

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 22 / 23

slide-43
SLIDE 43

EUC and Objectification

TuteGroup (.code) Room (.code) Time (.dhcode)

... meets at ... in ... A

  • Mon. 3 p.m.

CS-718 B1

  • Tue. 2 p.m.

E-B18 B1

  • Wed. 2 p.m.

E-B15 C

  • Mon. 3 p.m.

E-B18

TuteGroup (.code) Room (.code) Time (.dhcode)

... meets at ... "Meeting"

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 23 / 23

slide-44
SLIDE 44

EUC and Objectification

TuteGroup (.code) Room (.code) Time (.dhcode)

... meets at ... in ... A

  • Mon. 3 p.m.

CS-718 B1

  • Tue. 2 p.m.

E-B18 B1

  • Wed. 2 p.m.

E-B15 C

  • Mon. 3 p.m.

E-B18

TuteGroup (.code) Room (.code) Time (.dhcode)

... meets at ... "Meeting" A

  • Mon. 3 p.m.

B1

  • Tue. 2 p.m.

B1

  • Wed. 2 p.m.

C

  • Mon. 3 p.m.

(A, Mon. 3 p.m.) CS-718 (B1, Tue. 2 p.m.) E-B18 (B1, Wed. 2 p.m.) E-B15 (C, Mon. 3 p.m.) E-B18

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 23 / 23

slide-45
SLIDE 45

EUC and Objectification

TuteGroup (.code) Room (.code) Time (.dhcode)

... meets at ... in ... A

  • Mon. 3 p.m.

CS-718 B1

  • Tue. 2 p.m.

E-B18 B1

  • Wed. 2 p.m.

E-B15 C

  • Mon. 3 p.m.

E-B18

TuteGroup (.code) Room (.code) Time (.dhcode)

... meets at ... "Meeting" A

  • Mon. 3 p.m.

B1

  • Tue. 2 p.m.

B1

  • Wed. 2 p.m.

C

  • Mon. 3 p.m.

(A, Mon. 3 p.m.) CS-718 (B1, Tue. 2 p.m.) E-B18 (B1, Wed. 2 p.m.) E-B15 (C, Mon. 3 p.m.) E-B18

Marco Montali (unibz) DPM - 3.CDSP-4 A.Y. 2014/2015 23 / 23