chapter 1: introduction · example: participation of instructor in advisor is partial database...

82
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use SKIP Ch.6

Upload: others

Post on 21-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Database System Concepts, 6th Ed.

©Silberschatz, Korth and Sudarshan

See www.db-book.com for conditions on re-use

SKIP Ch.6

Database System Concepts, 6th Ed.

©Silberschatz, Korth and Sudarshan

See www.db-book.com for conditions on re-use

Chapter 7: DB Design and

the Entity-Relationship (ER) Model

©Silberschatz, Korth and Sudarshan 7.3 Database System Concepts - 6th Edition

DB Design Layers

Like all complex designs, the design of a (large)

DB must use abstraction, a.k.a. hierarchical

approach, a.k.a. layers or phases

Two main strategies:

Bottom-up

Top-down

Ch.7 is devoted to bottom-up (while Ch.8 is top-

down)

©Silberschatz, Korth and Sudarshan 7.4 Database System Concepts - 6th Edition

DB Design Layers

DB modeling generraly has 3 levels of abstraction,

a.k.a. the “three-schema” architecture:

Level 0: The real-world enterprise.

Level 1: Conceptual Model, e.g. E-R model.

Level 2: Logical or Implementation Model,

e.g. relational model.

Level 3: Physical Model, consisting of low-

level Data Structures, e.g. red-black trees.

©Silberschatz, Korth and Sudarshan 7.5 Database System Concepts - 6th Edition

Phase 0

Characterize as completely as possible the data

needs of the customer (a.k.a. enterprise)

DB designer must interact with (talk to) all future

users of the DB (a.k.a. domain experts)

Outcome: specification of user requirements

©Silberschatz, Korth and Sudarshan 7.6 Database System Concepts - 6th Edition

Phase 1: Conceptual Design

The Entity-Relationship (E-R) model is one of the

most widely-used conceptual tools (the other one is UML

– see 7.9.2 for a quick overview)

In the E-R model, a DB is modeled as:

a collection of entities

relationships among entities.

Entity = “object” or “thing” that exists in the enterprise

and is distinguishable from other objects.

Examples: specific person, company, place (country,

city, county, etc.), event, plant, product, employee

©Silberschatz, Korth and Sudarshan 7.7 Database System Concepts - 6th Edition

Conceptual Design with the E-R model

Entities have attributes

Example: people have names and addresses

An entity set is a set of entities of the same type that

share the same properties.

Examples: the set of all persons, companies, trees,

holidays

©Silberschatz, Korth and Sudarshan 7.8 Database System Concepts - 6th Edition

Entity Sets instructor and student

instructor_ID instructor_name student-ID student_name

©Silberschatz, Korth and Sudarshan 7.9 Database System Concepts - 6th Edition

Conceptual Design with the E-R model

Entity sets are not necessarily disjoint, nor covering:

Examples:

a person can be both a customer and an employee of

the bank

a person can be neither employee nor customer

(resist the temptation of representing EVERYTHING,

we have to draw the line somewhere)

©Silberschatz, Korth and Sudarshan 7.10 Database System Concepts - 6th Edition

Relationships

A relationship is an association among several

entities

Example:

44553 (Peltier) advisor 22222 (Einstein)

student entity relationship set instructor entity

A relationship set is a mathematical relation among

n 2 entities, each taken from entity sets

{(e1, e2, … en) | e1 E1, e2 E2, …, en En}

where (e1, e2, …, en) is a relationship

Example: (44553,22222) advisor

Subset of the full cartesian product

E1 x E2 x … x En

©Silberschatz, Korth and Sudarshan 7.11 Database System Concepts - 6th Edition

Relationship Set advisor

For a binary relationship such as this, a relationship set (instance) is simply “a bunch of lines”

©Silberschatz, Korth and Sudarshan 7.12 Database System Concepts - 6th Edition

QUIZ: Relationship Sets

Let’s define a ternary relationship proj_guide by including the entity research project

(attributes: ID and name)

A relationship set (instance) is now simply “a bunch of ____________” (fill in the blank)

©Silberschatz, Korth and Sudarshan 7.13 Database System Concepts - 6th Edition

Relationship Sets (Cont.)

An attribute can also be property of a relationship set.

Example: the advisor relationship set may have the attribute date which tracks when the student started being associated with the advisor:

©Silberschatz, Korth and Sudarshan 7.14 Database System Concepts - 6th Edition

QUIZ: Relationship Sets

Instead of the ternary relation defined above, can we

capture the project as another attribute that is the

property of the binary relation?

©Silberschatz, Korth and Sudarshan 7.15 Database System Concepts - 6th Edition

Degree of a Relationship Set

Binary relationship

involve two entity sets (or degree two).

most relationship sets in a DB are binary.

Ternary, quaternary, … , n-ary (“arity” of a relation)

Relationships between more than two entity sets are

rare.

Most relationships are binary … or they can be

decomposed into several binary rel. (more on this later)

©Silberschatz, Korth and Sudarshan 7.16 Database System Concepts - 6th Edition

Attributes

An entity is represented by a set of attributes, that is

descriptive properties possessed by all members of an

entity set.

Example:

instructor = (ID, name, street, city, salary )

course= (course_id, title, credits)

Domain – the set of permitted values for each attribute

©Silberschatz, Korth and Sudarshan 7.17 Database System Concepts - 6th Edition

Attributes

Attribute types:

Simple and composite attributes.

Single-valued and multivalued attributes

Example: multivalued attribute: phone_numbers

Derived attributes

Can be computed from other attributes

Example: age can be derived from date_of_birth

©Silberschatz, Korth and Sudarshan 7.18 Database System Concepts - 6th Edition

Composite Attributes

©Silberschatz, Korth and Sudarshan 7.19 Database System Concepts - 6th Edition

Representing CONSTRAINTS

7.3.1 Mapping Cardinality Constraints

Express the number of entities to which another

entity can be associated via a relationship set.

Most useful in describing binary relationship sets.

For a binary relationship set the mapping

cardinality must be one of the following types:

One to one

One to many

Many to one

Many to many

©Silberschatz, Korth and Sudarshan 7.20 Database System Concepts - 6th Edition

Mapping Cardinalities

One to one One to many

Note: Some elements in A and B may not be mapped to any

elements in the other set

©Silberschatz, Korth and Sudarshan 7.21 Database System Concepts - 6th Edition

Mapping Cardinalities

Many to

one Many to many

Note: Some elements in A and B may not be mapped to any elements in

the other set!

©Silberschatz, Korth and Sudarshan 7.22 Database System Concepts - 6th Edition

Representing CONSTRAINTS

7.3.2 Participation Constraints

Partial participation

Total participation

©Silberschatz, Korth and Sudarshan 7.23 Database System Concepts - 6th Edition

Representing CONSTRAINTS

7.3.3 Keys

A super key of an entity set is a set of one or more

attributes whose values uniquely determine each entity.

A candidate key of an entity set is a minimal super key

ID is candidate key of instructor

course_id is candidate key of course

Although several candidate keys may exist, one of the

candidate keys is selected to be the primary key (PK).

©Silberschatz, Korth and Sudarshan 7.24 Database System Concepts - 6th Edition

Keys for Relationship Sets

The combination of PKs of the participating entity sets forms a super

key of a relationship set.

(s_id, i_id) is the super key of advisor

NOTE: this means a pair of entity sets can have at most one

relationship in a particular relationship set.

Example: if we wish to track multiple meeting dates between a

student and her advisor, we cannot assume a relationship for

each meeting. (We can use a multivalued attribute though.)

Must consider the mapping cardinality of the relationship set when

deciding what are the candidate keys

Need to consider semantics of relationship set in selecting the PK in

case of more than one candidate key.

©Silberschatz, Korth and Sudarshan 7.25 Database System Concepts - 6th Edition

QUIZ: What are the 3 types of constraints

can we represent in the ER model?

Give examples of each.

©Silberschatz, Korth and Sudarshan 7.26 Database System Concepts - 6th Edition

QUIZ: What are the 3 types of constraints

can we represent in the ER model?

Give examples of each.

Mapping Cardinality c.

Participation c.

Keys

©Silberschatz, Korth and Sudarshan 7.27 Database System Concepts - 6th Edition

Nitty-gritty: 7.4 Redundant Attributes

Suppose we have decided to include these entity sets:

instructor, with attributes: ID, name, dept_name, salary

department, with attributes: dept_name, building, budget

and a relationship

inst_dept relating instructor and department

Problem: Attribute dept_name in entity instructor is redundant since there is an

explicit relationship inst_dept which relates instructors to departments

The attribute replicates information present in the relationship, and

should be removed from instructor

BUT: when converting back to tables, in some cases the attribute gets

reintroduced, as we will see.

HOWEVER: Are instructors associated with only one department? (see

discussion on p.273)

©Silberschatz, Korth and Sudarshan 7.28 Database System Concepts - 6th Edition

7.5 E-R Diagrams

Rectangles represent entity sets.

Diamonds represent relationship sets.

Attributes listed inside entity rectangle

Underline indicates primary key attributes

©Silberschatz, Korth and Sudarshan 7.29 Database System Concepts - 6th Edition

Entity With Composite, Multivalued, and Derived

Attributes

©Silberschatz, Korth and Sudarshan 7.30 Database System Concepts - 6th Edition

Relationship Sets with Attributes

©Silberschatz, Korth and Sudarshan 7.31 Database System Concepts - 6th Edition

QUIZ: Attributes

Make date a composite attribute: mm, dd, yy

©Silberschatz, Korth and Sudarshan 7.32 Database System Concepts - 6th Edition

QUIZ: Attributes

Make date a multivalued attribute

©Silberschatz, Korth and Sudarshan 7.33 Database System Concepts - 6th Edition

QUIZ: Attributes

Make date a derived attribute

©Silberschatz, Korth and Sudarshan 7.34 Database System Concepts - 6th Edition

Read pp.259-275 of text

Solve Exercises 7.14 and 7.15

©Silberschatz, Korth and Sudarshan 7.35 Database System Concepts - 6th Edition

©Silberschatz, Korth and Sudarshan 7.36 Database System Concepts - 6th Edition

Roles

Entity sets of a relationship need not be distinct

Each occurrence of an entity set plays a “role” in the

relationship

The labels “course_id” and “prereq_id” are called roles.

©Silberschatz, Korth and Sudarshan 7.37 Database System Concepts - 6th Edition

Cardinality Constraints

We express cardinality constraints by drawing either a directed line (), signifying “one,” or an undirected line (—), signifying “many,” between the relationship set and the entity set.

Examples

©Silberschatz, Korth and Sudarshan 7.38 Database System Concepts - 6th Edition

One-to-One Relationship between an

instructor and a student

an instructor is associated with at most one

student via advisor

a student is associated with at most one instructor

via advisor

©Silberschatz, Korth and Sudarshan 7.39 Database System Concepts - 6th Edition

One-to-Many Relationship

an instructor is associated with several (including

0) students via advisor

a student is associated with at most one instructor

via advisor

©Silberschatz, Korth and Sudarshan 7.40 Database System Concepts - 6th Edition

Many-to-One Relationships

an instructor is associated with at most one

student via advisor,

and a student is associated with several (including

0) instructors via advisor

©Silberschatz, Korth and Sudarshan 7.41 Database System Concepts - 6th Edition

Many-to-Many Relationship

an instructor is associated with several

(possibly 0) students via advisor

a student is associated with several (possibly

0) instructors via advisor

©Silberschatz, Korth and Sudarshan 7.42 Database System Concepts - 6th Edition

Participation of an Entity Set in a

Relationship Set

Total participation (indicated by double line): every entity in the

entity set participates in at least one relationship in the relationship

set

E.g., participation of section in sec_course is total

every section must have an associated course

Partial participation: some entities may not participate in any

relationship in the relationship set

Example: participation of instructor in advisor is partial

©Silberschatz, Korth and Sudarshan 7.43 Database System Concepts - 6th Edition

Include the appropriate mapping cardinality and participation constraints!

©Silberschatz, Korth and Sudarshan 7.44 Database System Concepts - 6th Edition

Alternative Notation for Cardinality Limits

Cardinality limits can also express participation

constraints

©Silberschatz, Korth and Sudarshan 7.45 Database System Concepts - 6th Edition

E-R Diagram with a Ternary Relationship

We allow at most one arrow out of a ternary (or

greater degree) relationship to indicate a cardinality

constraint

E.g., an arrow from proj_guide to instructor indicates

each student has at most one guide for a project

©Silberschatz, Korth and Sudarshan 7.46 Database System Concepts - 6th Edition

Cardinality Constraints on Ternary

Relationship

If there is more than one arrow, there are two ways of defining the

meaning.

E.g., a ternary relationship R between A, B and C with arrows to B

and C could mean

1. each A entity is associated with a unique entity from B and C or

2. each pair of entities from (A, B) is associated with a unique C

entity, and each pair (A, C) is associated with a unique B

Each alternative has been used in different formalisms

To avoid confusion we outlaw more than one arrow

©Silberschatz, Korth and Sudarshan 7.47 Database System Concepts - 6th Edition

Construct another E-R diagram for the car insurance company; this

time, the DB needs to capture not only what cars were involved in each

accident, but also who the driver was.

©Silberschatz, Korth and Sudarshan 7.48 Database System Concepts - 6th Edition

participated is a ternary relationship!

Construct another E-R diagram for the car insurance company; this

time, the DB needs to capture not only what cars were involved in each

accident, but also who the driver was.

©Silberschatz, Korth and Sudarshan 7.49 Database System Concepts - 6th Edition

7.5.6 Weak Entity Sets

An entity set that does not have a primary key is referred to as a

weak entity set.

Needs an identifying entity set

It must relate to the identifying entity set via a total, one-to-

many relationship set from the identifying to the weak entity

set

Identifying relationship depicted using a double diamond

©Silberschatz, Korth and Sudarshan 7.50 Database System Concepts - 6th Edition

Weak Entity Sets

The discriminator (or partial key) of a weak entity set is the

set of attributes that distinguishes among all the entities of a

weak entity set.

Marked with dashed lines

The primary key of a weak entity set is formed by the primary

key of the strong entity set on which the weak entity set is

existence dependent, plus the weak entity set’s discriminator.

©Silberschatz, Korth and Sudarshan 7.51 Database System Concepts - 6th Edition

Weak Entity Sets

Notes:

The PK of the strong entity set is not explicitly stored with the

weak entity set, since it is implicit in the identifying

relationship.

If course_id were explicitly stored, section could be made a

strong entity, but then the relationship between section and

course would be duplicated by an implicit relationship

defined by the attribute course_id common to course and

section.

©Silberschatz, Korth and Sudarshan 7.52 Database System Concepts - 6th Edition

QUIZ: Weak Entity Sets

Exercise 7.19: We can convert any weak entity to a

strong one by adding appropriate attributes. Why,

then, have weak entities at all?

©Silberschatz, Korth and Sudarshan 7.53 Database System Concepts - 6th Edition

A weak entity can participate in other

relationships besides the identifying one

©Silberschatz, Korth and Sudarshan 7.54 Database System Concepts - 6th Edition

7.6 Converting the ER model to

Relational Schemas,

a.k.a. REDUCTION

©Silberschatz, Korth and Sudarshan 7.55 Database System Concepts - 6th Edition

Reduction to Relation Schemas

Entity sets and relationship sets can be expressed

uniformly as relation schemas that represent the

contents of the database.

A DB which conforms to an E-R diagram can be

represented by a collection of schemas.

For each entity set and relationship set there is a

unique schema that is assigned the name of the

corresponding entity set or relationship set.

Each schema has a number of columns (generally

corresponding to attributes), which have unique

names.

©Silberschatz, Korth and Sudarshan 7.56 Database System Concepts - 6th Edition

Reducing Entity Sets w/Simple Attributes

A strong entity set reduces to a schema with the same

attributes, e.g.

student(ID, name, tot_cred)

©Silberschatz, Korth and Sudarshan 7.57 Database System Concepts - 6th Edition

Reducing Entity Sets w/Simple Attributes

A weak entity set becomes:

1. a table that includes a column for the primary key of

the identifying strong entity set

section: course_id, sec_id, semester, year

2. a Foreign Key: course_id REFERENCES course

©Silberschatz, Korth and Sudarshan 7.58 Database System Concepts - 6th Edition

Reducing Entity Sets w/Simple Attributes

A weak entity set becomes:

1. a table that includes a column for the primary key of

the identifying strong entity set

section: course_id, sec_id, semester, year

2. a Foreign Key: course_id REFERENCES course

Exercise 7.8: Do the PK and FK enforce the many-to-one

cardinality constraint? Explain.

©Silberschatz, Korth and Sudarshan 7.59 Database System Concepts - 6th Edition

Individual work for next time:

► Read pp.272-285 of text

► Draw the ER diagrams for Practice Exercises

7.1 and 7.2 (including constraints!)

©Silberschatz, Korth and Sudarshan 7.60 Database System Concepts - 6th Edition

QUIZ Why is OrderItem a weak entity in this ER diagram?

Source: http://en.wikipedia.org/wiki/Weak_entity

There is no standard for E-R diagram notation;

different books and E-R diagram software use

different notations. See Section 7.9.1.

©Silberschatz, Korth and Sudarshan 7.61 Database System Concepts - 6th Edition

QUIZ How do we reduce the weak entity in this ER diagram?

Source: http://en.wikipedia.org/wiki/Weak_entity

©Silberschatz, Korth and Sudarshan 7.62 Database System Concepts - 6th Edition

QUIZ Using the tables Orders and OrderItem, write a query that returns all the

items in order # 42.

©Silberschatz, Korth and Sudarshan 7.63 Database System Concepts - 6th Edition

QUIZ Using the tables Orders and OrderItem, write a query that returns all the

items in order # 42.

SELECT OrderItem.ItemLineNumber

FROM Orders NATURAL JOIN OrderItem

WHERE Orders.OrderNumber = 42;

©Silberschatz, Korth and Sudarshan 7.64 Database System Concepts - 6th Edition

QUIZ What is the mistake in the relationship Contains?

Source: http://en.wikipedia.org/wiki/Weak_entity

©Silberschatz, Korth and Sudarshan 7.65 Database System Concepts - 6th Edition

QUIZ A: Contains should be “many” on the OrderItem side! (Why?)

Source: http://en.wikipedia.org/wiki/Weak_entity

©Silberschatz, Korth and Sudarshan 7.66 Database System Concepts - 6th Edition

QUIZ

©Silberschatz, Korth and Sudarshan 7.67 Database System Concepts - 6th Edition

QUIZ

©Silberschatz, Korth and Sudarshan 7.68 Database System Concepts - 6th Edition

QUIZ

• Ease of access: Once the parent key is known, related dependent

entities can be accessed quicker via their partial key (discriminator).

More on this at indexes – Ch.11.

©Silberschatz, Korth and Sudarshan 7.69 Database System Concepts - 6th Edition

Reducing Relationship Sets

A many-to-many relationship set is represented as a

schema with attributes for the primary keys of the two

participating entity sets, and any descriptive attributes

of the relationship set.

Example: schema for relationship set advisor

advisor = (s_id, i_id)

©Silberschatz, Korth and Sudarshan 7.70 Database System Concepts - 6th Edition

Reducing Relationship Sets

Many-to-one and one-to-many relationship sets that are total on the “many” side can be represented by adding an extra attribute to the “many” side, containing the PK of the “one” side.

Example: Instead of creating a schema for relationship set inst_dept, add an attribute dept_name to the schema arising from entity set instructor

©Silberschatz, Korth and Sudarshan 7.71 Database System Concepts - 6th Edition

Reducing Relationship Sets

For one-to-one relationship sets, either side can be chosen to act as the “many” side

The extra attribute can be added to either of the tables corresponding to the two entity sets

If participation is partial on the “many” side, replacing a schema by an extra attribute in the schema corresponding to the “many” side could result in null values

©Silberschatz, Korth and Sudarshan 7.72 Database System Concepts - 6th Edition

QUIZ: Reduce the circled part of the ER diagram

©Silberschatz, Korth and Sudarshan 7.73 Database System Concepts - 6th Edition

QUIZ: Reduce the circled part of the ER diagram

©Silberschatz, Korth and Sudarshan 7.74 Database System Concepts - 6th Edition

Redundancy

The schema corresponding to a relationship set linking a weak entity set to its identifying strong entity set is redundant → do not represent!

Example: The section schema already contains the attributes that would appear in the sec_course schema:

©Silberschatz, Korth and Sudarshan 7.75 Database System Concepts - 6th Edition

Composite Attributes

Composite attributes are flattened out by creating a

separate attribute for each component attribute

Example: Ignoring multivalued attributes, the “flat”

instructor schema is:

Instructor (ID,

first_name, middle_initial, last_name,

street_number, street_name,

apt_number, city, state, zip_code,

date_of_birth)

©Silberschatz, Korth and Sudarshan 7.76 Database System Concepts - 6th Edition

Multi-valued Attributes

A multivalued attribute M of an entity E is represented by a

separate schema EM

Schema EM has attributes corresponding to the primary key of

E and an attribute corresponding to multivalued attribute M

Example: Multivalued attribute phone_number of instructor is

represented by a schema:

inst_phone= ( ID, phone_number)

Each value of the multivalued attribute maps to a separate

tuple of the relation on schema EM

For example, an instructor entity with primary key 22222 and

phone numbers 456-7890 and 123-4567 maps to two

tuples:

(22222, 456-7890) and (22222, 123-4567)

©Silberschatz, Korth and Sudarshan 7.77 Database System Concepts - 6th Edition

Multi-valued Attributes

Special case: The entity time_slot has only one attribute other than

the primary-key attribute, and that attribute is multivalued

Optimization: Don’t create the relation corresponding to the entity,

just create the one corresponding to the multivalued attribute

time_slot(time_slot_id, day, start_time, end_time)

Caveat: time_slot attribute of section (from sec_time_slot)

cannot be a foreign key due to this optimization

©Silberschatz, Korth and Sudarshan 7.78 Database System Concepts - 6th Edition

Remember that we called ER modeling a

“bottom-up” method of design …

©Silberschatz, Korth and Sudarshan 7.79 Database System Concepts - 6th Edition

Combination If an entity has total participation in

a relationship, we can combine its

schema to that of the relationship …

©Silberschatz, Korth and Sudarshan 7.80 Database System Concepts - 6th Edition

Combination

What happens to the FKs?

©Silberschatz, Korth and Sudarshan 7.81 Database System Concepts - 6th Edition

Combination

See p.289 for more examples

©Silberschatz, Korth and Sudarshan 7.82 Database System Concepts - 6th Edition

READ 7.7 Design Issues

SKIP the rest of Ch.7

Homework for Ch. 7:

• One-page report on Section 7.7

• End-of-chapter 20, 23

Due next Tue, April 7