35
Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science University of Waterloo Databases CS348 (University of Waterloo) E-R Model 1 / 39

Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

  • Upload
    others

  • View
    22

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Data Modeling andthe Entity-Relationship Model

Fall 2019

School of Computer ScienceUniversity of Waterloo

Databases CS348

(University of Waterloo) E-R Model 1 / 39

Page 2: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Outline1 Basic E-R Modeling

EntitiesAttributesRelationshipsRoles

2 Constraints in E-R ModelsPrimary KeysRelationship TypesExistence DependenciesGeneral Cardinality Constraints

3 Extensions to E-R ModelingStructured AttributesAggregationSpecializationGeneralizationDisjointness

4 Design Considerations(University of Waterloo) E-R Model 2 / 39

Page 3: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Overview of E-R Model

Used for (and designed for) database (conceptual schema) design

⇒ Proposed by Peter Chen in 1976

World/enterprise described in terms ofentitiesattributesrelationships

Visualization: E-R diagram

N.B. Many variant notations are in common use

(University of Waterloo) E-R Model 4 / 39

Page 4: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Basic E-R Modeling

Entity: a distinguishable object

Entity set: set of entities of same typeExamples:

students currently at University of Waterlooflights offered by Air Canadaburglaries in Ontario during 1994

Graphical representation of entity sets:

Student Flight Burglary

(University of Waterloo) E-R Model 5 / 39

Page 5: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Basic E-R Modeling (cont’d)

Attributes: describe properties of entitiesExamples (for Student-entities): StudentNum,StudentName, Major, . . .

Domain: set of permitted values for an attribute

Graphical representation of attributes:

Student Major

StudentNum StudentName

(University of Waterloo) E-R Model 6 / 39

Page 6: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Basic E-R Modeling (cont’d)

Relationship: representation of the fact that certain entities are relatedto each other

Relationship set: set of relationships of a given typeExamples:

students registered in coursespassengers booked on flightsparents and their childrenbank branches, customers and their accounts

In order for a relationship to exist, the participating entities must exist.

(University of Waterloo) E-R Model 7 / 39

Page 7: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Graphical Representation

StudentNum

StudentName

RegisteredIn

Course CourseNum

Student

(University of Waterloo) E-R Model 8 / 39

Page 8: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Graphical Representation (cont’d)

Branch

BranchName

CAB

Account

AccountNum

Balance

Customer SINStreetAddr

CustomerCityCustomerName

(University of Waterloo) E-R Model 9 / 39

Page 9: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Multiple Relationships and Role NamesRole: the function of an entity set in a relationship set

Role name: an explicit indication of a roleExample:

Team

TeamName

Match Location

Address

LocName

Visitor

HomeTeam

Role labels are needed whenever an entity set has multiple functionsin a relationship set.

(University of Waterloo) E-R Model 10 / 39

Page 10: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Relationships and Attributes

Relationships may also have attributes

Example:

Team

TeamName

Match Location

Address

LocName

Visitor

HomeTeam

Score

(University of Waterloo) E-R Model 11 / 39

Page 11: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Constraints in E-R Models

Primary keysRelationship typesExistence dependenciesGeneral cardinality constraints

(University of Waterloo) E-R Model 13 / 39

Page 12: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Primary Keys

Each entity must be distinguishable from any other entity in an entityset by its attributes

Primary key: selection of attributes chosen by designer values ofwhich determines the particular entity.

Example 1:

DepartmentDnum ManagerName

BudgetDname

Example 2:

FirstName Employee Salary

LastNameInitial

(University of Waterloo) E-R Model 14 / 39

Page 13: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Relationship Typesmany-to-many (N:N): an entity in one set can be related to manyentities in the other set, and vice versa(This is the interpretation we have used so far.)

many-to-one (N:1): each entity in one set can be related to atmost one entity in the other, but an entity in the second set may berelated to many entities in the first

WorksInEmployee Department

one-to-many (1:N): similarone-to-one (1:1): each entity in one set can be related to at mostone entity in the other, and vise versa

Employee DepartmentManages

(University of Waterloo) E-R Model 15 / 39

Page 14: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Existence Dependencies

Sometimes the existence of an entity depends on the existence ofanother entity

If x is existence dependent on y , theny is a dominant entityx is a subordinate entity

Example: “Transactions are existence dependent on accounts.”

TransNum

AmountDate

Transaction

Log

AccNumBalance Account

(University of Waterloo) E-R Model 16 / 39

Page 15: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Identifying Subordinate EntitiesWeak entity set: an entity set containing subordinate entitiesStrong entity set: an entity set containing no subordinate entities

Attributes of weak entity sets only form key relative to a given dominantentity

Example: “All transactions for a given account have a uniquetransaction number.”

TransNum

AmountDate

Transaction

Log

AccNumBalance Account

(University of Waterloo) E-R Model 17 / 39

Page 16: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Identifying Subordinate Entities (cont’d)

A weak entity set must have a many-to-one relationship to a distinctentity set

Visualization: (distinguishing an identifying relationship)

E OtherRelationshipRelationship

Identifying

Discriminator of a weak entity set: set of attributes that distinguishsubordinate entities of the set, for a particular dominant entity

Primary key for a weak entity set: discriminator + primary key of entityset for dominating entities

(University of Waterloo) E-R Model 18 / 39

Page 17: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

General Cardinality Constraints

General cardinality constraints determine lower and upper bounds onthe number of relationships of a given relationship set in which acomponent entity may participate

Visualization:

(lower,upper) RE ...

Example:

Takes CourseStudent (3,5) (6,100)

(University of Waterloo) E-R Model 19 / 39

Page 18: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Extensions to E-R Modeling

Structured attributes

Aggregation

Specialization

Generalization

Disjointness

(University of Waterloo) E-R Model 21 / 39

Page 19: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Structured Attributes

Composite attributes: composed of fixed number of other attributesMulti-valued attributes: attributes that are set-valued

Example:

Employee Address

HobbiesPostalCode

Province

City

Street

(University of Waterloo) E-R Model 22 / 39

Page 20: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Aggregation

Relationships can be viewed as higher-level entities

Example: “Accounts are assigned to a given student enrollment.”

EnrolledInStudent Course

CourseAccount

Account UserId

StudentNum

CourseNum

ExpirationDate

(University of Waterloo) E-R Model 23 / 39

Page 21: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Specialization

A specialized kind of entity set may be derived from a given entity set

Example: “Graduate students are students who have a supervisor anda number of degrees.”

Student

Graduate

Degrees

SupervisedBy Professor

StudentName

StudentNumber

ProfessorName

(0, N)(1, 1)

(University of Waterloo) E-R Model 24 / 39

Page 22: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Generalization

Several entity sets can be abstracted by a more general entity set

Example: “A vehicle abstracts the notion of a car and a truck.”

Car

PassengerCount

MaxSpeed

MakeAndModelPrice

Truck

AxelCount

Tonnage

MakeAndModelPrice

LicenceNum

LicenceNum

⇒ PriceVehicleLicenceNum

MakeAndModel

Truck Car MaxSpeed

PassengerCount

Tonnage

AxelCount

COVERS

(University of Waterloo) E-R Model 25 / 39

Page 23: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Disjointness

Specialized entity sets are usually disjoint but can be declared to haveentities in common

By default, specialized entity sets are disjoint.Example: We may decide that nothing is both a car and a truck.However, we can declare them to overlap (to accommodate utilityvehicles, perhaps).

PriceVehicleLicenceNum

MakeAndModel

Truck Car MaxSpeed

PassengerCount

Tonnage

AxelCount

OVERLAPS

(University of Waterloo) E-R Model 26 / 39

Page 24: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Designing An E-R Schema

Usually many ways to design an E-R schemaPoints to consider

use attribute or entity set?use entity set or relationship set?degrees of relationships?extended features?

(University of Waterloo) E-R Model 28 / 39

Page 25: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Attributes or Entity Sets?

Example: Should one model employees’ phones by a PhoneNumberattribute, or by a Phone entity set related to the Employee entity set?

Rules of thumb:Is it a separate object?Do we maintain information about it?Can several of its kind belong to a single entity?Does it make sense to delete such an object?Can it be missing from some of the entity set’s entities?Can it be shared by different entities?

An affirmative answer to any of the above suggests a new entity set.

(University of Waterloo) E-R Model 29 / 39

Page 26: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Entity Sets or Relationships?

Instead of representing accounts as entities, we could represent themas relationships

Branch

BranchName

Customer SINStreetAddr

CustomerCityCustomerName

Account

Balance

AccountNum

(University of Waterloo) E-R Model 30 / 39

Page 27: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Binary vs. N-ary Relationships?

Branch

BranchName

CAB

Account

AccountNum

Balance

Customer SINStreetAddr

CustomerCityCustomerName

(University of Waterloo) E-R Model 31 / 39

Page 28: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Binary vs. N-ary Relationships (cont’d)

We can always represent a relationship on n entity sets with n binaryrelationships

Branch

BranchName

CAB

Account

AccountNum

Customer SINStreetAddr

CustomerCityCustomerName

CABCustomer

CABAccount

Balance

CABBranch

(University of Waterloo) E-R Model 32 / 39

Page 29: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

A Simple Methodology

1 Recognize entity sets2 Recognize relationship sets and participating entity sets3 Recognize attributes of entity and relationship sets4 Define relationship types and existence dependencies5 Define general cardinality constraints, keys and discriminators6 Draw diagram

For each step, maintain a log of assumptions motivating the choices,and of restrictions imposed by the choices

(University of Waterloo) E-R Model 33 / 39

Page 30: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Example: A Registrar’s DatabaseZero or more sections of a course are offered each term. Courseshave names and numbers. In each term, the sections of eachcourse are numbered starting with 1.Most course sections are taught on-site, but a few are taught atoff-site locations.Students have student numbers and names.Each course section is taught by a professor. A professor mayteach more than one section in a term, but if a professor teachesmore than one section in a term, they are always sections of thesame course. Some professors do not teach every term.Up to 50 students may be registered for a course section.Sections with 5 or fewer students are cancelled.A student receives a mark for each course in which they areenrolled. Each student has a cumulative grade point average(GPA) which is calculated from all course marks the student hasreceived.(University of Waterloo) E-R Model 34 / 39

Page 31: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Example: A Registrar’s Database (cont’d)

OffïSiteSection

StudentProfessor

Section

Course

(University of Waterloo) E-R Model 35 / 39

Page 32: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Example: A Registrar’s Database (cont’d)

OffïSiteSection

Student

EnrolledIn

Professor

TaughtBy

Section

SectionOf

Course

(University of Waterloo) E-R Model 36 / 39

Page 33: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Example: A Registrar’s Database (cont’d)

TaughtBy

CourseNum

Section

SectionOf

Course

Professor

Term

Location

OffïSiteSection GPA

ProfName

SectionNum

CourseName

Mark

StudentName

StudentNumProfNum

Student

EnrolledIn

(University of Waterloo) E-R Model 37 / 39

Page 34: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Example: A Registrar’s Database (cont’d)

CourseNum

Section

SectionOf

Course

TaughtBy

Term

Location

OffïSiteSection GPA

ProfName

SectionNum

CourseName

Mark

StudentName

StudentNumProfNum

Student

EnrolledIn

Professor

(University of Waterloo) E-R Model 38 / 39

Page 35: Data Modeling and the Entity-Relationship Modeldavid/cs348/lect-ER-handout.pdf · 2019-11-23 · Data Modeling and the Entity-Relationship Model Fall 2019 School of Computer Science

Example: A Registrar’s Database (cont.’d)

Professor

TaughtBy

CourseNum

Section

SectionOf

Course

EnrolledIn

(0, N)

Term

Location

OffïSiteSection GPA

ProfName

(1, 1)

(1, 1) (6, 50)

SectionNum

CourseName

Mark

StudentName

StudentNumProfNum

Student

(University of Waterloo) E-R Model 39 / 39