CH 6
CH 6
Database System Concepts - 7th Edition 6.4 ©Silberschatz, Korth and Sudarshan
▪ Final Phase -- Moving from an abstract data model to the implementation ▪ In designing a database schema, we must ensure that we avoid two
of the database major pitfalls:
• Logical Design – Deciding on the database schema. • Redundancy: a bad design may result in repeat information.
▪ Database design requires that we find a “good” collection of ▪ Redundant representation of information may lead to data
relation schemas. inconsistency among the various copies of information
▪ Business decision – What attributes should we record in the • Incompleteness: a bad design may make certain aspects of the
database? enterprise difficult or impossible to model.
▪ Computer Science decision – What relation schemas should we ▪ Avoiding bad designs is not enough. There may be a large number of
have and how should the attributes be distributed among the good designs from which we must choose.
various relation schemas?
• Physical Design – Deciding on the physical layout of the database
Database System Concepts - 7th Edition 6.5 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.6 ©Silberschatz, Korth and Sudarshan
Design Approaches
Database System Concepts - 7th Edition 6.7 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.8 ©Silberschatz, Korth and Sudarshan
Entity Sets Representing Entity sets in ER Diagram
▪ An entity is an object that exists and is distinguishable from other ▪ Entity sets can be represented graphically as follows:
objects.
• Rectangles represent entity sets.
• Example: specific person, company, event, plant
• Attributes listed inside entity rectangle
▪ An entity set is a set of entities of the same type that share the same
• Underline indicates primary key attributes
properties.
• Example: set of all persons, companies, trees, holidays
▪ An entity is represented by a set of attributes; i.e., descriptive properties
possessed by all members of an entity set.
• Example:
instructor = (ID, name, salary )
course= (course_id, title, credits)
▪ A subset of the attributes form a primary key of the entity set; i.e.,
uniquely identifying each member of the set.
Database System Concepts - 7th Edition 6.10 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.12 ©Silberschatz, Korth and Sudarshan
▪ A relationship is an association among several entities ▪ Example: we define the relationship set advisor to denote the
associations between students and the instructors who act as their
Example:
advisors.
44553 (Peltier) advisor 22222 (Einstein)
student entity relationship set instructor entity ▪ Pictorially, we draw a line between related entities.
▪ 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}
Database System Concepts - 7th Edition 6.13 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.14 ©Silberschatz, Korth and Sudarshan
student
Database System Concepts - 7th Edition 6.15 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.16 ©Silberschatz, Korth and Sudarshan
Relationship Sets with Attributes Roles
Database System Concepts - 7th Edition 6.17 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.18 ©Silberschatz, Korth and Sudarshan
Database System Concepts - 7th Edition 6.19 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.20 ©Silberschatz, Korth and Sudarshan
▪ Attribute types: ▪ Composite attributes allow us to divided attributes into subparts (other
• Simple and composite attributes. attributes).
Database System Concepts - 7th Edition 6.21 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.22 ©Silberschatz, Korth and Sudarshan
Representing Complex Attributes in ER Diagram Mapping Cardinality Constraints
Database System Concepts - 7th Edition 6.23 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.24 ©Silberschatz, Korth and Sudarshan
Database System Concepts - 7th Edition 6.25 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.26 ©Silberschatz, Korth and Sudarshan
▪ We express cardinality constraints by drawing either a directed line (→), ▪ one-to-many relationship between an instructor and a student
signifying “one,” or an undirected line (—), signifying “many,” between the • an instructor is associated with several (including 0) students via
relationship set and the entity set.
advisor
▪ One-to-one relationship between an instructor and a student : • a student is associated with at most one instructor via advisor,
• A student is associated with at most one instructor via the relationship
advisor
• A student is associated with at most one department via stud_dept
Database System Concepts - 7th Edition 6.27 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.28 ©Silberschatz, Korth and Sudarshan
Many-to-One Relationships Many-to-Many Relationship
▪ In a many-to-one relationship between an instructor and a student, ▪ An instructor is associated with several (possibly 0) students via advisor
• an instructor is associated with at most one student via advisor, ▪ A student is associated with several (possibly 0) instructors via advisor
• and a student is associated with several (including 0) instructors via
advisor
Database System Concepts - 7th Edition 6.29 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.30 ©Silberschatz, Korth and Sudarshan
Total and Partial Participation Notation for Expressing More Complex Constraints
▪ Total participation (indicated by double line): every entity in the entity set ▪ A line may have an associated minimum and maximum cardinality, shown
participates in at least one relationship in the relationship set in the form l..h, where l is the minimum and h the maximum cardinality
• A minimum value of 1 indicates total participation.
• A maximum value of 1 indicates that the entity participates in at most
one relationship
• A maximum value of * indicates no limit.
▪ Example
participation of student in advisor relation is total
▪ every student must have an associated instructor
▪ Partial participation: some entities may not participate in any relationship
in the relationship set
• Example: participation of instructor in advisor is partial • Instructor can advise 0 or more students. A student must have 1
advisor; cannot have multiple advisors
Database System Concepts - 7th Edition 6.31 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.32 ©Silberschatz, Korth and Sudarshan
▪ We allow at most one arrow out of a ternary (or greater degree) ▪ Primary keys provide a way to specify how entities and relations are
relationship to indicate a cardinality constraint distinguished. We will consider:
▪ For example, an arrow from proj_guide to instructor indicates each • Entity sets
student has at most one guide for a project
• Relationship sets.
▪ If there is more than one arrow, there are two ways of defining the
meaning. • Weak entity sets
• For example, 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
Database System Concepts - 7th Edition 6.33 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.34 ©Silberschatz, Korth and Sudarshan
Primary key for Entity Sets Primary Key for Relationship Sets
▪ By definition, individual entities are distinct. ▪ To distinguish among the various relationships of a relationship set we use
the individual primary keys of the entities in the relationship set.
▪ From database perspective, the differences among them must be
expressed in terms of their attributes. • Let R be a relationship set involving entity sets E1, E2, .. En
▪ The values of the attribute values of an entity must be such that they can • The primary key for R is consists of the union of the primary keys of
uniquely identify the entity. entity sets E1, E2, ..En
• No two entities in an entity set are allowed to have exactly the same • If the relationship set R has attributes a1, a2, .., am associated with it,
value for all attributes. then the primary key of R also includes the attributes a1, a2, .., am
▪ A key for an entity is a set of attributes that suffice to distinguish entities ▪ Example: relationship set “advisor”.
from each other • The primary key consists of instructor.ID and student.ID
▪ The choice of the primary key for a relationship set depends on the
mapping cardinality of the relationship set.
Database System Concepts - 7th Edition 6.35 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.36 ©Silberschatz, Korth and Sudarshan
▪ Many-to-Many relationships. The preceding union of the primary keys is a ▪ Consider a section entity, which is uniquely identified by a course_id,
minimal superkey and is chosen as the primary key. semester, year, and sec_id.
▪ One-to-Many relationships . The primary key of the “Many” side is a ▪ Clearly, section entities are related to course entities. Suppose we create
minimal superkey and is used as the primary key. a relationship set sec_course between entity sets section and course.
▪ Many-to-one relationships. The primary key of the “Many” side is a minimal ▪ Note that the information in sec_course is redundant, since section
superkey and is used as the primary key. already has an attribute course_id, which identifies the course with which
▪ One-to-one relationships. The primary key of either one of the participating the section is related.
entity sets forms a minimal superkey, and either one can be chosen as the ▪ One option to deal with this redundancy is to get rid of the relationship
primary key. sec_course; however, by doing so the relationship between section and
course becomes implicit in an attribute, which is not desirable.
Database System Concepts - 7th Edition 6.37 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.38 ©Silberschatz, Korth and Sudarshan
▪ An alternative way to deal with this redundancy is to not store the attribute ▪ An entity set that is not a weak entity set is termed a strong entity set.
course_id in the section entity and to only store the remaining attributes
section_id, year, and semester. ▪ Every weak entity must be associated with an identifying entity; that is,
the weak entity set is said to be existence dependent on the identifying
• However, the entity set section then does not have enough attributes entity set.
to identify a particular section entity uniquely
▪ The identifying entity set is said to own the weak entity set that it
▪ To deal with this problem, we treat the relationship sec_course as a identifies.
special relationship that provides extra information, in this case, the
course_id, required to identify section entities uniquely. ▪ The relationship associating the weak entity set with the identifying entity
set is called the identifying relationship.
▪ A weak entity set is one whose existence is dependent on another entity,
called its identifying entity ▪ Note that the relational schema we eventually create from the entity set
section does have the attribute course_id, for reasons that will become
▪ Instead of associating a primary key with a weak entity, we use the clear later, even though we have dropped the attribute course_id from
identifying entity, along with extra attributes called discriminator to the entity set section.
uniquely identify a weak entity.
Database System Concepts - 7th Edition 6.39 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.40 ©Silberschatz, Korth and Sudarshan
Expressing Weak Entity Sets Redundant Attributes
▪ In E-R diagrams, a weak entity set is depicted via a double rectangle. ▪ Suppose we have entity sets:
▪ We underline the discriminator of a weak entity set with a dashed line. • student, with attributes: ID, name, tot_cred, dept_name
▪ The relationship set connecting the weak entity set to the identifying • department, with attributes: dept_name, building, budget
strong entity set is depicted by a double diamond. ▪ We model the fact that each student has an associated department using
a relationship set stud_dept
▪ Primary key for section – (course_id, sec_id, semester, year)
▪ The attribute dept_name in student below replicates information present
in the relationship and is therefore redundant
• and needs to be removed.
▪ BUT: when converting back to tables, in some cases the attribute gets
reintroduced, as we will see later.
Database System Concepts - 7th Edition 6.41 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.42 ©Silberschatz, Korth and Sudarshan
Database System Concepts - 7th Edition 6.43 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.44 ©Silberschatz, Korth and Sudarshan
▪ Entity sets and relationship sets can be expressed uniformly as relation ▪ A strong entity set reduces to a schema with the same attributes
schemas that represent the contents of the database.
▪ A database which conforms to an E-R diagram can be represented by a student(ID, name, tot_cred)
collection of schemas.
▪ For each entity set and relationship set there is a unique schema that is ▪ A weak entity set becomes a table that includes a column for the primary
assigned the name of the corresponding entity set or relationship set. key of the identifying strong entity set
▪ Each schema has a number of columns (generally corresponding to section ( course_id, sec_id, sem, year )
attributes), which have unique names. ▪ Example
Database System Concepts - 7th Edition 6.45 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.46 ©Silberschatz, Korth and Sudarshan
Representation of Entity Sets with Composite Attributes Representation of Entity Sets with Multivalued Attributes
▪ Composite attributes are flattened out by creating a ▪ A multivalued attribute M of an entity E is represented by a separate
separate attribute for each component attribute schema EM
• Example: given entity set instructor with composite ▪ Schema EM has attributes corresponding to the primary key of E and an
attribute name with component attributes first_name attribute corresponding to multivalued attribute M
and last_name the schema corresponding to the
entity set has two attributes name_first_name and ▪ Example: Multivalued attribute phone_number of instructor is
name_last_name represented by a schema:
inst_phone= ( ID, phone_number)
▪ Prefix omitted if there is no ambiguity
(name_first_name could be first_name) ▪ Each value of the multivalued attribute maps to a separate tuple of the
relation on schema EM
▪ Ignoring multivalued attributes, extended instructor
schema is • For example, an instructor entity with primary key 22222 and phone
numbers 456-7890 and 123-4567 maps to two tuples:
• instructor(ID, (22222, 456-7890) and (22222, 123-4567)
first_name, middle_initial, last_name,
street_number, street_name,
apt_number, city, state, zip_code,
date_of_birth)
Database System Concepts - 7th Edition 6.47 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.48 ©Silberschatz, Korth and Sudarshan
▪ A many-to-many relationship set is represented as a schema with ▪ Many-to-one and one-to-many relationship sets that are total on the many-
attributes for the primary keys of the two participating entity sets, and side can be represented by adding an extra attribute to the “many” side,
any descriptive attributes of the relationship set. containing the primary key of the “one” side
▪ Example: schema for relationship set advisor ▪ Example: Instead of creating a schema for relationship set inst_dept, add
an attribute dept_name to the schema arising from entity set instructor
▪ Example
advisor = (s_id, i_id)
Database System Concepts - 7th Edition 6.49 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.50 ©Silberschatz, Korth and Sudarshan
▪ For one-to-one relationship sets, either side can be chosen to act as the ▪ The schema corresponding to a relationship set linking a weak entity set
“many” side to its identifying strong entity set is redundant.
• That is, an extra attribute can be added to either of the tables ▪ Example: The section schema already contains the attributes that would
corresponding to the two entity sets appear in the sec_course schema
▪ 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
Database System Concepts - 7th Edition 6.51 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.52 ©Silberschatz, Korth and Sudarshan
Specialization
Database System Concepts - 7th Edition 6.53 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.54 ©Silberschatz, Korth and Sudarshan
Database System Concepts - 7th Edition 6.55 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.56 ©Silberschatz, Korth and Sudarshan
Database System Concepts - 7th Edition 6.57 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.58 ©Silberschatz, Korth and Sudarshan
Completeness constraint Completeness constraint (Cont.)
▪ Completeness constraint -- specifies whether or not an entity in the ▪ Partial generalization is the default.
higher-level entity set must belong to at least one of the lower-level
▪ We can specify total generalization in an ER diagram by adding the
entity sets within a generalization.
keyword total in the diagram and drawing a dashed line from the
• total: an entity must belong to one of the lower-level entity sets keyword to the corresponding hollow arrow-head to which it applies (for
• partial: an entity need not belong to one of the lower-level entity a total generalization), or to the set of hollow arrow-heads to which it
sets applies (for an overlapping generalization).
▪ The student generalization is total: All student entities must be either
graduate or undergraduate. Because the higher-level entity set arrived
at through generalization is generally composed of only those entities
in the lower-level entity sets, the completeness constraint for a
generalized higher-level entity set is usually total
Database System Concepts - 7th Edition 6.59 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.60 ©Silberschatz, Korth and Sudarshan
▪ Consider the ternary relationship proj_guide, which we saw earlier ▪ Relationship sets eval_for and proj_guide represent overlapping
▪ Suppose we want to record evaluations of a student by a guide on a information
project • Every eval_for relationship corresponds to a proj_guide relationship
• However, some proj_guide relationships may not correspond to any
eval_for relationships
▪ So we can’t discard the proj_guide relationship
▪ Eliminate this redundancy via aggregation
• Treat relationship as an abstract entity
• Allows relationships between relationships
• Abstraction of relationship into new entity
Database System Concepts - 7th Edition 6.61 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.62 ©Silberschatz, Korth and Sudarshan
▪ Eliminate this redundancy via aggregation without introducing ▪ To represent aggregation, create a schema containing
redundancy, the following diagram represents:
• Primary key of the aggregated relationship,
• A student is guided by a particular instructor on a particular project
• The primary key of the associated entity set
• A student, instructor, project combination may have an associated
evaluation • Any descriptive attributes
▪ In our example:
• The schema eval_for is:
eval_for (s_ID, project_id, i_ID, evaluation_id)
• The schema proj_guide is redundant.
Database System Concepts - 7th Edition 6.63 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.64 ©Silberschatz, Korth and Sudarshan
Common Mistakes in E-R Diagrams
Design Issues
Database System Concepts - 7th Edition 6.65 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.66 ©Silberschatz, Korth and Sudarshan
Database System Concepts - 7th Edition 6.67 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.68 ©Silberschatz, Korth and Sudarshan
▪ Use of entity sets vs. relationship sets ▪ Although it is possible to replace any non-binary (n-ary, for n > 2)
relationship set by a number of distinct binary relationship sets, a n-ary
Possible guideline is to designate a relationship set to describe
relationship set shows more clearly that several entities participate in a
an action that occurs between entities
single relationship.
▪ Some relationships that appear to be non-binary may be better
represented using binary relationships
• For example, a ternary relationship parents, relating a child to
his/her father and mother, is best replaced by two binary
relationships, father and mother
▪ Using two binary relationships allows partial information (e.g.,
only mother being known)
• But there are some relationships that are naturally non-binary
▪ Placement of relationship attributes ▪ Example: proj_guide
For example, attribute date as attribute of advisor or as attribute
of student
Database System Concepts - 7th Edition 6.69 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.70 ©Silberschatz, Korth and Sudarshan
Converting Non-Binary Relationships to Binary Form Converting Non-Binary Relationships (Cont.)
Database System Concepts - 7th Edition 6.71 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.72 ©Silberschatz, Korth and Sudarshan
Database System Concepts - 7th Edition 6.73 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.74 ©Silberschatz, Korth and Sudarshan
▪ Chen, IDE1FX, …
Database System Concepts - 7th Edition 6.75 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.76 ©Silberschatz, Korth and Sudarshan
Alternative ER Notations UML
Database System Concepts - 7th Edition 6.77 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.78 ©Silberschatz, Korth and Sudarshan
* Note reversal of position in cardinality constraint depiction * Generalization can use merged or separate arrows independent
of disjoint/overlapping
Database System Concepts - 7th Edition 6.79 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.80 ©Silberschatz, Korth and Sudarshan
Database System Concepts - 7th Edition 6.81 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.82 ©Silberschatz, Korth and Sudarshan
Other Aspects of Database Design
▪ Functional Requirements
▪ Data Flow, Workflow
▪ Schema Evolution
End of Chapter 6
Database System Concepts - 7th Edition 6.83 ©Silberschatz, Korth and Sudarshan Database System Concepts - 7th Edition 6.84 ©Silberschatz, Korth and Sudarshan