Logical Database Design and the Relational Model (part 1) CS263 Lecture 5.
Transforming an ER Model into a Relational Schema Cs263 Lecture 10.
-
date post
21-Dec-2015 -
Category
Documents
-
view
216 -
download
2
Transcript of Transforming an ER Model into a Relational Schema Cs263 Lecture 10.
Transforming an ER Model into a Relational Schema
There are a series of steps that are recommended for converting an E/ER model into a relational schema.
These steps are not hard and fast rules, but rather a series of pertinent suggestions that the database designer must use wisely.
E/ER to Relational Schema Conversion Steps
Step 1 For each ‘strong’ entity in the E/ER model,
create a base relation with a column for each simple attribute of that entity.
The key attribute for the entity becomes the primary key of the relation.
Example – Converting ‘Strong’ Entities
EmpEmpNo
Salary Comm
Hire DateName
Job
EmpNo Number(4)Name Varchar2(10)Job Varchar2(9)Sal Number(7,2)Comm Number(7,2)HireDate Date
Emp Primary Key
Example – Converting ‘Strong’ Entities
Dept
DeptNo
Location
Name
DeptNo Number(2)Name Varchar2(14)Location Varchar2(13)
Dept Primary Key
E/ER to Relational Schema Conversion Steps
Step 2For each ‘weak’ entity, create a relation consisting of all the simple attributes of that entity and also include columns for the primary keys of those entities on whose existence it is dependent.
Example – Converting ‘Weak’ Entities
Loan
LoanNo Char(8)PaymentNo Number(4)Date DateAmount Number(9,2)
Payment Composite Primary Key
PaymentDate
AmountLoan No Payment No
Discriminator
E/ER to Relational Schema Conversion Steps
Step 3When two entities participate in a one-to-many (1-M) relationship, the relation representing the entity with the M (Many) cardinality must have a foreign key column representing this relationship.
Example – Converting (1-M) Relationships
Dept
D#
EmpWorks in
Assigned E#
EmpNo Number(4)Name Varchar2(10)Job Varchar2(9)Sal Number(7,2)Comm Number(7,2)HireDate DateDeptNo Number(2)
Emp
Foreign Key
As an Employee ‘must’ work in a department, then the DeptNo column in the Emp relation (table) cannot be NULL!
Example – Converting (1-M) Relationships
EmpNo Number(4)Name Varchar2(10)Job Varchar2(9)Sal Number(7,2)Comm Number(7,2)HireDate DateDeptNo Number(2)
Emp
Foreign Key
As an Employee ‘may not’ work in a department, then the DeptNo column in the Emp relation (table) can be NULL!
Dept
D#
EmpWorks in
Assigned E#
E/ER to Relational Schema Conversion Steps
Step 4When two entities participate in a (1-1) relationship, a foreign key column must be included in the relation that represents one of these entities.
Example – Converting (1-1) Relationships
Emp
E#
ID CardBelongs to
Has ID#
EmpNo Number(6)Name Varchar2(10)Address Varchar2(200)DOB DateIDNo Char(10)
Emp
Foreign Key
IDNo Char(10)Issued DateExpires Date EmpNo Number(6)
ID Card
Foreign Key
EITHER ONE IS ACCEPTABLE
E/ER to Relational Schema Conversion Steps
Step 5When two entities participate in a many-to-many (M-M) relationship, then a relation must be created consisting of foreign keys for the two relations that represent the participating entities.
Example – Converting (M-N) Relationships
Person
P#
CarDriven by
Drives C#
PersonNo Number(6)CarNo Char(7)
Person-Car Foreign KeyForeign Key
Person
P#
CarC#
Person-Car
P#,C#
E/ER to Relational Schema Conversion Steps
Step 6Where an entity has a multi-valued attribute, create a relation with a column as a foreign key to the relation that represents the entity and a column for the multi-valued attribute.
LanguageLanguage
Example – Multi-valued Attributes
Programmer
EmpNo
Language
Name
EmpNo Number(2)Name Varchar2(14)
Programmer Primary Key
EmpNo Number(2)Language Varchar2(20)
Prog-Lang Composite Primary Key
E/ER to Relational Schema Conversion Steps
Step 7When more than two entities participate in a relationship, then a relation must be created consisting of foreign keys to those relations representing the entities participating in the relationship.
Example – Converting Ternary Relationships
Match
Match No
PlayerPlayer No
Offence
Offence No
Booking
MatchNo Number(4)PlayerNo Number(6)OffenceNo Number(3)Time Date
BookingComposite Primary Key
E/ER to Relational Schema Conversion Steps
Step 8 – Option AFor sub-typing, create separate relations for each subtype consisting of those attributes which are peculiar to the given subtype, and include a foreign key to the super-type, that will act as the sub-type’s primary key.
Create a separate relation for the super-type!
Example – Converting Sub-types
EmployeeNoNameAddress
Employee
EMPLOYEE Employee No Name Address
SECRETARYTyping Speed
TECHNICIANGrade
ENGINEERType
EmployeeNoTypingSpeed
Secretary
EmployeeNoGrade
Technician
EmployeeNoType
Engineer
E/ER to Relational Schema Conversion Steps
Step 8 – Option BFor sub-typing, create separate relations for each subtype consisting of all the attributes of the super-type, and all those which are peculiar to the given subtype. The primary key of the super-type becomes the primary key of each sub-type.
Do not create a relation for the super-type!