Document

advertisement
ITEC 3220A
Using and Designing Database Systems
Instructor: Gordon Turpin
Course Website:
www.cse.yorku.ca/~gordon/itec3220S07
Office: CSEB3020
Supertypes and Subtypes
• Generalization hierarchy: depicts
relationships between higher-level supertype
and lower-level subtype entities
• Supertype: contains the shared attributes
• Subtype: contains the unique attributes
• Inheritance:
– Subtype entities inherit values of all attributes of
the supertype
– An instance of a subtype is also an instance of
the supertype
2
Supertypes and Subtypes (Cont’d)
Supertype/
subtype
relationships
Attributes shared by
all entities
General
entity type
SUPERTYPE
And so forth
SUBTYPE1
Attributes unique
to subtype1
SUBTYPE2
Specialized
version of
supertype
Attributes unique
to subtype2
3
Supertypes and Subtypes (Cont’d)
• Disjoint relationships
– Unique subtypes
– Non-overlapping
– Indicated with a ‘G’
• Overlapping subtypes
– An instance of the supertype could be more
than one of the subtypes
– Indicated with a ‘Gs’
4
Generalization Hierarchy with
Overlapping Subtypes
5
Chapter 5
Logical Database Design and
Normalization of Database Tables
In this chapter, you will learn:
• How to transform ERD into relations
• What normalization is and what role it plays in database
design
• About the normal forms 1NF, 2NF, 3NF, BCNF, and 4NF
• How normal forms can be transformed from lower normal
forms to higher normal forms
• Normalization and E-R modeling are used concurrently to
produce a good database design
• Some situations require denormalization to generate
information efficiently
7
Transforming ERD into Relations
• Step one: Map regular entities
– Each regular entity type in an ER diagram is
transformed into a relation
– The name given to the relation is generally the
same as the entity type
– Each simple attribute of the entity type becomes
an attribute of the relation and the identifier of
entity becomes the primary key of the
corresponding relation
8
Example
STUDENT
Student_ID Student_Name Other_Attributes
9
Transforming ERD into Relations
(Cont’d)
• Step two: Map weak entities
– Create a new relation and include all of the
simple attributes as the attributes of this
relation. Then include the primary key of
the identifying relation as a foreign key
attribute in this new relation. The primary
key of the new relation is the combination
of this primary key of the identifying
relation and the partial identifier of the
weak entity type.
10
Example
Employee_ID
Date_of_birth
Employee_Name
Dependent_Name
EMPLOYEE
Has
DEPENDENT
Gender
EMPLOYEE
Employee_ID
Employee_Name
DEPENDENT
Dependent_Name
Employee_ID
Date_of_birth
Gender
11
Transforming ERD into Relations
(Cont’d)
• Step three: Map binary relationship
– Map Binary one-to-many relations
•First create a relation for each of the two entity
types participating in the relationship, using the
procedure described in step one.
•Next, include the primary key attribute of the
entity on the one-side of the relationship as a
foreign key in the relation that is on the many-side
of the relationship.
12
Example
Customer_ID
Customer_Name
Order_ID
1
Order_Date
M
Customer
Submits
(0,N)
Order
(1,1)
Customer
Customer_ID
Customer_Name
Order
Order_ID
Order_Date
Customer_ID
13
Transforming ERD into Relations
(Cont’d)
• Step three: Map binary relationship
(Cont’d)
– Map binary one-to-one relationships
•First, two relationships are created one for each
of the participating entity types.
•Second, the primary key of one of the relations is
included as a foreign key in the other relation.
14
Example
Nurse_ID
Nurse_Name
Centre_Name
1
1
In_charge
Nurse
Location
(0,1)
(1,1)
Nurse
Nurse_ID
Nurse_Name
Care
Centre
Centre_Name
Location
Care
Centre
Nurse_in_c
harge
15
Transforming ERD into Relations
(Cont’d)
• Step Four: Map composite Entities
– First step
• Create three relations: one for each of the two
participating entities, and the third for the composite
entity. We refer to the relation formed from the
composite entity as the composite relation
– Second step
• Identifier not assigned: The default primary key for the
composite relation consists of the two primary key
attributes from the other two relations.
• Identifier assigned: The primary key for the composite
relation is the identifier. The primary keys for the two
participating entity types are included as foreign keys in
the composite relation.
16
Example
Order_ID
Order
Order_Date
1
(1,N)
(1,1)
M
Order
Line
Product_ID
M
(1,1)
1
(0,N)
Product
Description
Quantity
Price
17
Example
Order
Order_ID
Order_Date
Order Line
Product_ID
Order_ID
Quantity
Description
Standard_Price
Product
Product_ID
18
Example
Customer_ID
Vendor_ID
Name
Customer
1
Date
M
Shipment
Shipment_No
Customer Customer_ID
Vendor_ID
M 1
Vendor
Amount
Customer_Name
Shipment Shipment_N Vendor_I
o
D
Vendor
Address
Address
Customer_I Date
D
Amount
19
Transforming ERD into Relations
(Cont’d)
• Step Five: Map unary relationship
– Map unary one-to-many relationship
•The entity type in the unary relationship is
mapped to a relation using the procedure
described in Step one. Then a foreign key
attribute is added within the same relation that
references the primary key values. A recursive
foreign key is a foreign key in a relation that
references the primary key values of that same
relation.
20
Example
Name
Employee_ID
Employee
Birthdate
M (1,1)
1 (0,N)
Employee
Employee_ID
Manages
Name
Birthdate
Manager_ID
21
Transforming ERD into Relations
(Cont’d)
• Step six: Map ternary relationship
– Convert a ternary relationship to a composite
entity
– To map a composite entity that links three regular
entities, we create a new composite relation. The
default primary key of their relation consists of
the three primary key attributes for the
participating entities. Any attributes of the
composite entity become attributes of the new
relation
22
Example
Patient_ID
Patient_Name
Patient
1
M
Results
(0,N)
(1,1)
Physician_ID
(0,N)
(1,1) M
Physician_Name
Physician
1
Date
Patient
Treatment
Time
Treatment_
Code
M
(1,1)
1
(0,N)
Treatment
Description
23
Example
Patient
Patient_ID
Patient_Name
Physician
Physician_ID
Physician_Name
Patient Treatment
Patient_ Physician_I Treatment_C Date
ID
D
ode
Treatment
Treatment_Code
Time
Result
Description
24
Transforming ERD into Relations
(Cont’d)
• Step seven: Map supertype/subtype
relationships
1. Create a separate relation for the supertype and
for each of its subtype
2. Assign to the relation created for the supertype
the attributes that are common to all members
of the supertype, including the primary key
3. Assign to the relation for each subtype the
primary key of the supertype, and only those
attributes that are unique to that subtype
4. Assign one attribute of the supertype to function
as the subtype discriminator
25
Example
Address
Employee_Name
Employee_Number
Employee_Type
Employee
Date_Hired
Gs
Hourly
Employee
Hourly_Rate
Salaried
Employee
Annual_Salary
Stock_Option
26
Example
Employee
Employee_Nu Employee_N Address
mber
ame
Hourly_Employee
H_Employee_Number
Employee_Ty Date_Hi
pe
red
Hourly_Rate
Salaried_Employee
S_Employee_Number
Annual_Salary
Stock_Option
27
Database Tables and
Normalization
• Table is the basic building block in database design
• Normalization is the process for assigning attributes
to entities
– Reduces data redundancies
– Helps eliminate data anomalies
– Produces controlled redundancies to link tables
• Normalization stages
–
–
–
–
1NF - First normal form
2NF - Second normal form
3NF - Third normal form
4NF - Fourth normal form
28
Need for Normalization
29
Anomalies In the Table
• PRO_NUM intended to be primary key
• Table displays data anomalies
– Update
• Modifying JOB_CLASS
– Insertion
• New employee must be assigned project
– Deletion
• If employee deleted, other vital data lost
30
Conversion to 1NF
• Step 1: Eliminate the Repeating Groups
– Present data in a tabular format, where each cell
has a single value and there are no repeating
groups
– Eliminate repeating groups by eliminating nulls,
making sure that each repeating group attribute
contains an appropriate data value
• Step 2: Identify the Primary Key
– Primary key must uniquely identify attribute value
31
Dependency Diagram (1NF)
32
1NF Summarized
• All key attributes defined
• No repeating groups in table
• All attributes dependent on primary key
• All relational tables satisfy 1NF
requirements
33
Conversion to 2NF
• Start with 1NF form:
• Write each key component on separate line
• Write original key on last line
• Each component is new table
• Write dependent attributes after each key
PROJECT (PROJ_NUM, PROJ_NAME)
EMPLOYEE (EMP_NUM, EMP_NAME, JOB_CLASS,
CHG_HOUR)
ASSIGN (PROJ_NUM, EMP_NUM, HOURS)
34
2NF Conversion Results
35
2NF Summarized
• In 1NF
• Includes no partial dependencies
– No attribute dependent on a portion of
primary key
• Still possible to exhibit transitive
dependency
– Attributes may be functionally dependent
on nonkey attributes
36
Conversion to 3NF
• Create separate table(s) to eliminate transitive
functional dependencies
– For every transitive dependency, write its
determinant as a PK for a new table
– Identify the Dependent Attributes
PROJECT (PROJ_NUM, PROJ_NAME)
ASSIGN (PROJ_NUM, EMP_NUM, HOURS)
EMPLOYEE (EMP_NUM, EMP_NAME, JOB_CLASS)
JOB (JOB_CLASS, CHG_HOUR)
37
3NF Summarized
• In 2NF
• Contains no transitive
dependencies
38
Boyce-Codd Normal Form (BCNF)
• Every determinant in the table is a
candidate key
– Determinant is an attribute whose value
determines other values within a row
– 3NF table with one candidate key is
already in BCNF
39
3NF Table Not in BCNF
40
Decomposition of Table
Structure to Meet BCNF
41
Decomposition into BCNF
42
An Example
GRADE( Student_ID, Student_Name, Address, Major,
Course_ID, Course_Title, Instructor_Name,
Instructor_Office, Grade)
43
Normalization and Database
Design
• Normalization should be part of the design
process
• E-R Diagram provides macro view
• Normalization provides micro view of entities
– Focuses on characteristics of specific entities
– May yield additional entities
• Difficult to separate normalization from E-R
diagramming
• Business rules must be determined
44
Higher-Level Normal Forms
• Fourth Normal Form (4NF)
– Table is in 3NF
– Has no multiple sets of multivalued
dependencies
45
Conversion to 4NF
Stud-ID
Course
Service
Stud-ID
Course
1126
1212F
Red Cross
1126
1212F
1126
1620F
United Way
1126
1620F
1126
1320F
1126
1320F
Stud-ID
Service
1126
Red Cross
1126
United Way
Stud-ID
Course
1126
1212F
1126
1620F
1126
1320F
Service
1126
Red Cross
1126
United Way
Stud-ID
Course
Service
1126
1212F
Red Cross
1126
1620F
United Way
1126
1320F
Multivalued Dependencies
Set of Tables in 4NF
46
Denormalization
• Normalization is one of many database
design goals
• Normalized table requires
– Additional processing
– Loss of system speed
• Normalization purity is difficult to sustain
due to conflict in:
– Design efficiency
– Information requirements
– Processing
47
Exercise
Part Supplier Data
Part_
Description
No
1234
Logic Chips
5678
Memory Chips
Vendor_Nam
e
Fast Chips
Smart Chips
Address
Unit_C
ost
Cupertino 10.00
Phoenix
8.00
Fast Chips
Cupertino
Quality Chips
Austin
Smart Chips
Phoenix
3.00
2.00
5.00
48
Exercise(Cont’d)
• Convert the table to a relation in first normal form
(Named Part Supplier)
• List the functional dependency in the Part Supplier
and identify a candidate key
• For the relation Part Supplier, identify the
followings: an insert anomaly, a delete anomaly, and
a modification anomaly.
• Draw a relation schema and show the functional
dependencies
• Develop a set of 3NF relations from Part Supplier
49
Chapter 5 Review
• How to transform ERD into relations
• Definitions: 1NF, 2NF, 3NF, BCNF, and
4NF
• How normal forms can be
transformed from lower normal forms
to higher normal forms
50
Download