Entity/Relationship Modelling Lecture 4 1 Outline E/R model - - PDF document

entity relationship modelling
SMART_READER_LITE
LIVE PREVIEW

Entity/Relationship Modelling Lecture 4 1 Outline E/R model - - PDF document

Entity/Relationship Modelling Lecture 4 1 Outline E/R model (Chapter 5) From E/R diagrams to relational schemas (Chapter 5) Constraints in SQL (Chapter 4) 2 1. Database Design Modelling Decide which part of reality


slide-1
SLIDE 1

1

Entity/Relationship Modelling

Lecture 4

2

Outline

  • E/R model (Chapter 5)
  • From E/R diagrams to relational

schemas (Chapter 5)

  • Constraints in SQL (Chapter 4)
slide-2
SLIDE 2

3

  • 1. Database Design
  • Modelling

– Decide which part of reality is represented in a database – Agree on structure of the database before deciding on a particular implementation

  • Conceptual Modelling

– Oriented towards application and users – Independent of technology and implementation

4

Some Terminology

Classes of similar objects (and their relationships) students

Instances

Student

  • name
  • firstname
  • birthdate
  • section
  • year

Type (of table)

Database

Student

(relational) Schema

Real world perception Abstraction / Description

E/R Diagram

slide-3
SLIDE 3

5

Conceptual Modelling

  • Consider issues such as:

– What entities to model – How entities are related – What constraints exist in the domain – How to achieve good design

6

Database Design Formalisms

  • 1. Entity/Relationship model (E/R):

– More relational in nature. – Very widely used

  • 2. Object Definition Language (ODL):

– Closer in spirit to object-oriented models (e.g. Java) – Will not be covered

Both can be translated (semi-automatically) to relational schemas

slide-4
SLIDE 4

7

  • 2. Entity / Relationship

Diagrams

Objects entities Classes entity sets Attributes are like in Java. Relationships: like object references in Java except

  • first class citizens (not associated with classes)
  • bidirectional

Product address buys

8

address name ssn Person buys makes employs Company Product name category stockprice name price

slide-5
SLIDE 5

9

Keys in E/R Diagrams

  • Every entity set must have a key

– a key is an attribute that has a different value for every entity

Product name category price

10

What is a Relation?

  • A mathematical definition:

– if A and B are sets, then a relation R is a subset of A x B

  • A={1,2,3}, B={a,b,c,d},

R = {(1,a), (1,c), (3,b)}

  • makes is a subset of Product x

Company:

1 2 3 a b c d A= B=

makes Company Product

slide-6
SLIDE 6

11

Multiplicity of E/R Relations

  • one-one:
  • many-one
  • many-many

1 2 3 a b c d 1 2 3 a b c d 1 2 3 a b c d 12

address name ssn Person buys makes employs Company Product name category stockprice name price What does this say ?

slide-7
SLIDE 7

13

Multi-way Relationships

How do we model a purchase relationship between buyers, products and stores? Purchase Product Person Store

14

Q: what does the arrow mean ? A: if I know the store, person, invoice, I know the movie too

Rental VideoStore Person Movie Invoice

Arrows in Multiway Relationships

slide-8
SLIDE 8

15

Q: what do these arrows mean ? A: store, person, invoice determines movie and store, invoice, movie determines person

Rental VideoStore Person Movie Invoice

Arrows in Multiway Relationships

16

Q: how do I say: “invoice determines store” ? A: no good way; best approximation:

Rental VideoStore Person Movie Invoice

Arrows in Multiway Relationships

slide-9
SLIDE 9

17

Roles in Relationships

Purchase What if we need an entity set twice in one relationship? Product Person Store salesperson buyer

18

Attributes on Relationships

Purchase Product Person Store date

slide-10
SLIDE 10

19

Converting Multi-way Relationships to Binary

Purchase Person Store Product StoreOf ProductOf BuyerOf date

20

  • 3. From E/R Diagrams

to Relational Schema

  • Entity set relation
  • Relationship relation
slide-11
SLIDE 11

21

Entity Set to Relation

Product name category price Product(name, category, price) name category price gizmo gadgets $19.99

22

Relationships to Relations

makes Company Product name category Stock price name Makes(product-name, product-category, company-name, year) Product-name Product-Category Company-name Starting-year gizmo gadgets gizmoWorks 1963 Start Year price (watch out for attribute name conflicts)

slide-12
SLIDE 12

23

Relationships to Relations

makes Company Product name category Stock price name No need for StartYear in Makes. Modify Product: name category price StartYear companyName gizmo gadgets 19.99 1963 gizmoWorks Start Year price

24

Multi-way Relationships to Relations

Purchase Product Person Store name price ssn name name address Purchase(prodName,stName,ssn)

slide-13
SLIDE 13

25

  • 4. Design Principles

Purchase Product Person

What’s wrong?

President Person Country Moral: be faithful!

26

Design Principles: Whats Wrong?

Purchase Product Store date personName personAddr Moral: pick the right kind of entities.

slide-14
SLIDE 14

27

Design Principles: Whats Wrong?

Purchase Product Person Store date Dates Moral: don’t complicate life more than it already is.

28

Design Principles

Purchase Product Person Store price date

slide-15
SLIDE 15

29

Information Loss

Sells Product Store price date Buys BuysAt Person Moral: avoid "navigation traps"

30

Modelling Subclasses

Some objects in a class may be special

  • define a new class
  • better: define a subclass

Products Software products Educational products So --- we define subclasses in E/R

slide-16
SLIDE 16

31

Product name category price isa isa Educational Product Software Product Age Group platforms

Subclasses

32

Understanding Subclasses

  • Think in terms of records:

– Product – SoftwareProduct – EducationalProduct

field1 field2 field1 field2 field1 field2

field3 field4 field5

slide-17
SLIDE 17

33

Subclasses to

Relations

Product name category price isa isa Educational Product Software Product Age Group platforms

gadget 39 Toy photo 49 Camera gadget 99 Gizmo Category Price Name unix Gizmo platforms Name retired Toy todler Gizmo Age Group Name

Product Sw.Product Ed.Product

34

Modelling Subclass Structure

Product Educational Product Software Product Educ-software Product isa isa isa isa Platforms required memory Educational-method ageGroup topic

slide-18
SLIDE 18

35

Modelling Union Types With Subclasses

FurniturePiece Person Company

Say: each piece of furniture is owned either by a person, or by a company

36

Modelling Union Types with Subclasses

Say: each piece of furniture is owned either by a person, or by a company Solution 1. Acceptable, imperfect (Whats wrong ?)

FurniturePiece Person Company

  • wnedByPerson
  • wnedByPerson
slide-19
SLIDE 19

37

Modelling Union Types with Subclasses

Solution 2: better, more laborious

isa FurniturePiece Person Company

  • wnedBy

Owner isa

38

  • 5. Constraints in E/R

Diagrams

Finding constraints is part of the modelling process. Commonly used constraints: Keys: social security number uniquely identifies a person. Single-value constraints: a person can have only one father. Referential integrity constraints: if you work for a company, it must exist in the database. Other constraints: peoples ages are between 0 and 150.

slide-20
SLIDE 20

39

Keys in E/R Diagrams

address name ssn Person Product name category price No formal way to specify multiple keys in E/R diagrams Underline:

40

Single Value Constraints

makes makes

  • v. s.
slide-21
SLIDE 21

41

Referential Integrity Constraints

Company Product makes Company Product makes Each product made by at most one company. Some products made by no company Each product made by exactly one company.

42

Other Constraints

Company Product makes <100 What does this mean?

slide-22
SLIDE 22

43

Weak Entity Sets

Entity sets are weak if their key comes from other classes to which they are related. Cannot be identified by its own attributes alone. University Team affiliation number sport name

44

Handling Weak Entity Sets

University Team affiliation number sport name Convert to a relational schema (in class) Team(number,sport,university-name)

slide-23
SLIDE 23

45

  • 6. Constraints in SQL
  • A constraint = a property that wed like
  • ur database to hold
  • The system will enforce the constraint

by taking some actions:

– forbid an update – or perform compensating updates

46

Constraints in SQL

Constraints in SQL:

  • Keys, foreign keys
  • Attribute-level constraints
  • Tuple-level constraints
  • Global constraints: assertions

The more complex the constraint, the harder it is to check and to enforce

simplest Most complex

slide-24
SLIDE 24

47

Keys

OR:

CREATE TABLE Product ( name CHAR(30) PRIMARY KEY, category VARCHAR(20)) CREATE TABLE Product ( name CHAR(30), category VARCHAR(20), PRIMARY KEY (name))

48

Keys with Multiple Attributes

CREATE TABLE Product ( name CHAR(30), category VARCHAR(20), price INT, PRIMARY KEY (name, category))

40 Gadget Gizmo 30 20 10 Price Photo Gizmo Photo Camera Gadget Gizmo Category Name

slide-25
SLIDE 25

49

Other Keys

CREATE TABLE Product ( productID CHAR(10), name CHAR(30), category VARCHAR(20), price INT, PRIMARY KEY (productID), UNIQUE (name, category))

There is at most one PRIMARY KEY; there can be many UNIQUE

50

Foreign Key Constraints

CREATE TABLE Purchase ( prodName CHAR(30) REFERENCES Product(name), date DATETIME)

prodName is a foreign key to Product(name) name must be a key in Product Referential integrity constraints

slide-26
SLIDE 26

51

Photo OneClick Photo Camera gadget Gizmo Category Name Wiz Camera Ritz Camera Wiz Gizmo Store ProdName

Product Purchase

CREATE TABLE Purchase ( prodName CHAR(30) REFERENCES Product(name), date DATETIME)

Purchase Product

52

Foreign Key Constraints

OR

(name, category) must be a PRIMARY KEY

CREATE TABLE Purchase ( prodName CHAR(30), category VARCHAR(20), date DATETIME, FOREIGN KEY (prodName, category) REFERENCES Product(name, category)

slide-27
SLIDE 27

53

Photo OneClick Photo Camera gadget Gizmo Category Name Wiz Camera Ritz Camera Wiz Gizmo Store ProdName

Product Purchase

What happens during updates?

Types of updates:

  • In Purchase: insert/update
  • In Product: delete/update

54

What happens during updates?

  • SQL has three policies for maintaining

referential integrity:

  • Reject violating modifications (default)
  • Cascade: after a delete/update do a

delete/update

  • Set-null set foreign-key field to NULL
slide-28
SLIDE 28

55

Constraints on Attributes and Tuples

  • Constraints on attributes:

NOT NULL

  • - obvious meaning...

CHECK condition

  • - any condition !
  • Constraints on tuples

CHECK condition

56

CREATE TABLE Purchase ( prodName CHAR(30) CHECK (prodName IN SELECT Product.name FROM Product), date DATETIME NOT NULL)

What is the difference from Foreign-Key ?

slide-29
SLIDE 29

57

General Assertions

CREATE ASSERTION myAssert CHECK NOT EXISTS( SELECT Product.name FROM Product, Purchase WHERE Product.name = Purchase.prodName GROUP BY Product.name HAVING count(*) > 200)

58

Final Comments on Constraints

  • Can give them names, and alter later
  • We need to understand exactly when

they are checked

  • We need to understand exactly what

actions are taken if they fail

slide-30
SLIDE 30

59

Summary

  • E/R Models to model the real world
  • Adhere to certain design

recommendations

  • Carefully use constraints