CONVERTING ERDS TO RELATIONAL TABLES 1 Joe Meehean THE PLAYERS ERDs easy to reason about express lots of information in limited space easy to create from business narrative Relational Tables easy for DBMSs to store data in tables use SQL to ask lots of different questions about data Need to convert ERDs to Relational tables using a set of rules and some intuition 2 ENTITY TYPE RULE each entity becomes a table primary key of entity is primary key of table attributes become columns Student Student ID Last Name First Name Student ID Last name First name 3 1-M RELATIONSHIP RULE primary key of parent becomes a foreign key in table of child entity child entity is entity near Crow’s Foot symbol if minimum cardinality on parent side is 1 (required), foreign key cannot accept null value 4 1-M RELATIONSHIP RULE Faculty Faculty ID Last name First name Offering Teaches 5 Section # Room Time Offering Section # Room Time <Faculty ID> M-N RELATIONSHIP RULE M-N relationship becomes it own table primary key is combined key formed from primary keys of participating entities Student Student ID Last name First name Offering Enrolls Section # Room Time Enrolls <Student ID> <Section #> 6 IDENTIFICATION DEPENDENCY RULE add a component to the primary key of the weak entity primary key = primary key of weak entity (if any) + primary keys from independent entities 7 IDENTIFICATION DEPENDENCY RULE Course Offering Has Number Name Credits Section # Room Time Offering <Number> Section # Room Time 8 QUESTIONS? 9 Motorcycle Order In ID# Flames Style Order# Date $Total In In Has Order Quantity Part# Description Quantity QUIZ BREAK!!! Supplier Employee HasJobTitle Supplier# Name Address Employee# Name Years Distributor Customer# Name Address Supplies Parts Has Years Has- JobTitle Empl Position# Name 10 BaseSalary OPTIONAL 1-M RELATIONSHIPS RULE Optional relationship: minimal cardinality of 0 on parent side (1-side) Convert using the 1-M rule foreign key in child table (M-side) foreign key can be NULL can be problem for queries 11 OPTIONAL 1-M RELATIONSHIPS RULE Faculty Faculty ID Last name First name Offering Teaches Section # Room Time 12 Offering Section # Room Time <Faculty ID> S1 45 11 NULL S2 68 12 F2 S3 58 1 F5 S4 35 2 F2 12 OPTIONAL 1-M RELATIONSHIPS RULE Optionally, can use Optional 1-M Relationship Rule relationship becomes its own table primary keys in both entities become foreign keys primary key from child entity (M-side) becomes primary key in new table 13 OPTIONAL 1-M RELATIONSHIPS RULE Faculty Offering Teaches Faculty ID Last name First name Section # Room Time 14 Offering Teaches Section # Room Time S1 45 11 <Section #> <Faculty ID> S2 68 12 S2 F2 S3 58 1 S3 F5 S4 35 2 S4 F5 14 OPTIONAL 1-M RELATIONSHIPS RULE When to used Optional 1-M Relationship Rule its optional Optional rule makes more tables more complex more SQL operations (slower) 1-M rule makes NULL foreign keys can be difficult to deal with 3rd option replace optional relationship with required relationship and default value 15 OPTIONAL 1-M RELATIONSHIPS RULE Faculty Faculty ID Last name First name Offering Teaches Section # Room Time 16 Offering Section # Room Time <Faculty ID> S1 45 11 F0* S2 68 12 F2 S3 58 1 F5 S4 35 2 F2 * Assume F0 is PK for “Default Faculty” 16 GENERALIZATION HIERARCHY RULE Each entity in a generalization hierarchy becomes a table Includes only attributes in entity not its ancestors Except it includes ancestors primary key uses it as its own primary key also a foreign key Perform cascading deletes if ancestor is deleted so is subtype table entry 17 GENERALIZATION HIERARCHY RULE College People College ID Last name First name Student Faculty Major Grad Date Department Office Faculty College People College ID Last Name First Name <College ID> Department Office 18 1-1 RELATIONSHIP RULE Put a foreign key in each table in the relationship Unless one table will have many NULL foreign keys Then drop the foreign key in the table where it will be mostly NULL 19 1-1 RELATIONSHIP RULE Faculty Department Chairs Faculty ID Last name First name 20 Faculty Faculty ID Dept. ID Funding Last Name First Name Department <Dept ID> Dept ID Fund -ing <Faculty ID> 20 1-1 RELATIONSHIP RULE Faculty Faculty ID Last name First name Department Chairs Dept. ID Funding 21 Faculty Faculty ID Last Name Department First Name Dept ID Funding <Faculty ID> 21 SELF REFERENCING ENTITIES Apply same rules 1-M rule add a new column with primary key as foreign key M-N rule add a new table representing the relationship 22 SELF REFERENCING ENTITIES Manages Employee Employee ID Last name First name Employee Employee ID Last Name First Name Supervisor <FK Employee ID> 23 SELF REFERENCING ENTITIES Prerequisite Course Number Name Credits Prerequisites Course Number Name Credits Course <FK Number> Prereq <FK Number> 24 CONVERTING ERD REVIEW Every entity becomes a table Some relationships become tables Majority of conversion rules dictate where foreign key goes foreign key links row in table to primary key in another table M-N: new table with foreign keys from both entities 1-M: foreign key in M entity optional 1-M: more complex 25 QUESTIONS? 26 QUIZ BREAK!!! Convert to tables Faculty Faculty ID Last name First name Major Advisor Student Student ID Last name First name 27 QUIZ BREAK!!! Convert to tables Employee Employee ID Last name First name Hourly Hours Rate Salary Salary Contract Expires 28 QUIZ BREAK!!! Convert to tables Building Building ID Name Address In Room Room # Capacity 29 QUIZ BREAK!!! Convert to tables Married Faculty Faculty ID First Name Last Name 30