The document discusses database normalization. It provides examples of entity-relationship diagrams for various scenarios like a hospital, police case tracking, and employee-project relationships. It explains how to identify entities, attributes, and relationships. Primary keys are assigned and many-to-many relationships are resolved using linking tables. The goals of normalization are outlined as removing repeating groups of data and attributes not fully dependent on primary keys to satisfy first, second, and third normal form.
Call Girls In Connaught Place Delhi ❤️88604**77959_Russian 100% Genuine Escor...
A2 databases
1. A2 Databases Employee number Employee name Rate category Project number Employee number Project number Project name Rate category Hourly rate employee project employee_project e.g. Street, Town, City are dependent on Postcode (and not on the table’s PRIMARY KEY) CustomerID HouseNum Street Town City Postcode dependent not dependent 3NF
2. Database Table Field Record Primary key Foreign key Query Relationship Form Report Composite key Entity Attribute Normalisation
3. Project number Project name Employee number Employee name Rate category Hourly rate 1. consider single table Consider the Employees and Projects table on the webpage 2. assign primary key(s)? Project number Project name Employee number Employee name Rate category Hourly rate 5. spot another (less obvious) Employee number Employee name Rate category Hourly rate Project number Employee number 6. …and remove it Employee number Employee name Rate category Project number Employee number Project number Project name Rate category Hourly rate 3. spot repeated groups of data… Project number Project name Employee number Employee name Rate category Hourly rate 4. …and remove them Employee number Employee name Rate category Hourly rate Project number Employee number Project number Project name
7. form student ONE form(s) contains ONE student(s) MANY MANY event world record ONE event(s) has ONE world record(s) MANY MANY employee project ONE employee(s) can work on ONE project(s) MANY MANY ( ) ( ) ( ) ( ) ( ) ( )
8. event world record ONE event(s) has ONE world record(s) MANY MANY ( ) ( ) event world record might as well merge into the one table (nothing to be gained from having two) a ONE-to-ONE relationship
9. form student ONE form(s) contains ONE student(s) MANY MANY ( ) ( ) This is what you are after It makes your database more efficient a ONE-to-MANY relationship form student
10. employee project ONE employee(s) can work on ONE project(s) MANY MANY ( ) ( ) Impossible to do in your database! Needs to be resolved… a MANY-to-MANY relationship employee project employee project employee_project Use a ‘link’ table between them
11.
12.
13.
14. publisher book author film actor director student course customer product stock item supplier staff employee project Others to practice with
15. Project number Project name Employee number Employee name Rate category Hourly rate 1. consider single table Consider the Employees and Projects table on the webpage 2. assign primary key(s)? Project number Project name Employee number Employee name Rate category Hourly rate 5. spot another (less obvious) Employee number Employee name Rate category Hourly rate Project number Employee number 6. …and remove it Employee number Employee name Rate category Project number Employee number Project number Project name Rate category Hourly rate 3. spot repeated groups of data… Project number Project name Employee number Employee name Rate category Hourly rate 4. …and remove them Employee number Employee name Rate category Hourly rate Project number Employee number Project number Project name
16. Impossible to do in your database! Needs to be ‘resolved’… a MANY-to-MANY relationship employee project 1. first ERD Consider the Employees and Projects table again: employee project employee_project Use a ‘link’ table between them 2. second ERD employee project employee_project Employee number Employee name Rate category Hourly rate Employee number Project number Project number Project name 3. consider attributes 4. spot repeated group of data and remove employee project employee_project Employee number Employee name Rate category Employee number Project number Project number Project name rate Rate category Hourly rate
17.
18. Impossible to do in your database! Needs to be ‘resolved’… a MANY-to-MANY relationship employee project ERD approach: 1. first ERD employee project employee_project Use a ‘link’ table between them 2. second ERD 1NF 2NF employee project employee_project Employee number Employee name Rate category Hourly rate Employee number Project number Project number Project name 3. consider attributes 3NF 4. normalise further employee project employee_project Employee number Employee name Rate category Employee number Project number Project number Project name rate Rate category Hourly rate
19. Project number Project name Employee number Employee name Rate category Hourly rate 1. consider single table Other approach: 5. spot attribute not dependent on PK Employee number Employee name Rate category Hourly rate Project number Employee number 6. …and remove it Employee number Employee name Rate category Project number Employee number Project number Project name Rate category Hourly rate 2. assign primary key(s) Project number Project name Employee number Employee name Rate category Hourly rate 1NF 3. spot partial dependencies… Project number Project name Employee number Employee name Rate category Hourly rate 4. …and remove them Employee number Employee name Rate category Hourly rate Project number Employee number Project number Project name 2NF 3NF