Académique Documents
Professionnel Documents
Culture Documents
Normalization
Database normalization is a technique for designing relational database tables to minimize duplication of information and to safeguard the database against certain types of logical or structural problems, namely data anomalies
Objectives
Repetition of Data
Update anomalies
Insert Anomalies Delete Anomalies
Student
Stud_name Address Module_id Module Smith Tom Main Street 1 DBT Smith Tom Main Street 2 DCN Smith Tom Main Street 3 SE Mountain S1060 Jones Mary Shadow 1 DBT
In academia
When a group of attributes has multiple values then we say there is a repeating group of attributes in the entity
COM PANY NAME ADDRESS BRANCH NAME BRANCH ADDRESS
A123
ABC Ltd
100 High St
ABC1
Manchester
ABC2
London
ABC3
Glasgow
Functional Dependency
In other words, the value of attribute A uniquely determines the value of B Stud_id -> stud_name Stud_id -> Date of Birth Module_id -> Module name Marks -> grade
Let A and B be distinct collections of attributes from a relation R B is then fully functionally dependent on A if B is not functionally dependent on any subset of A. (Stud_id, Module_id) -> marks
A relation is in 1NF if and only if every attribute is single valued for each tuple or row. A relation is in 1NF if and only if there are no repeating groups of Attribute values.
UN-NORMALISED ENTITY TYPE PURCHASE-ORDER (ORDER#, SUPPLIER#, ORDER-DATE DELIVERY-DATE, (PART#, PART-DESCRIPTION, QUANTITY-ORDERED, PRICE), TOTAL-PRICE)
Example in 1NF
ORDER NUMBER
SUPPLIER NUMBER ORDER DATE DELIVERY DATE PART NO. O463 1492 3164 PART-DESC Hook Bolt Spanner 1023 500028 09/05/88 25/07/88 QTY-ORD 150 1000 10 TOTAL PRICE 15.00 10.00 5.00 30.00
ENTITY TYPES IN 1NF PURCHASE-ORDER (ORDER#, SUPPLIER#, ORDER-DATE DELIVERY-DATE, TOTAL-PRICE) PURCHASE-ITEM-1 ( ORDER#, PART#, PART-DESCRIPTION, QUANTITY-ORDERED, PRICE)
Example
REGISTRATION FORM STUDENT NUMBER STUDENT NAME STUDENT ADDRESS COURSE NO
PM951 S212 S0843215 P. Smith 1, South Downs Hale
COURSE
Computing Biology
TUTOR NAME
T. Long S. Short
TUTOR NO
037428 096524
Process results in separation of different objects BUT anomalies may still exist
PART-DESCRIPTION appears on every PURCHASE-ITEM occurrence. This may result in anomalies when updating or deleting records The problem in the example is that PART-DESCRIPTION is functionally dependent only on PART# (part of the identifier)
A relation is in 2NF if and only if it is in 1NF and all the non-key attributes are fully functionally dependent on the key. Any entity type in 1NF is transformed to 2NF
Identify functional dependencies Re-write entity types so that each non-identifying attribute is functionally dependent on the whole of the identifier
Example
ORDER NUMBER
SUPPLIER NUMBE R ORDER DATE DELIVERY DATE PART NO. O463 1492 3164 PART-DE SC Hook Bolt Spanner 1023 500028 09/05/88 25/07/88 QTY-ORD 150 1000 10 TOTAL PRICE 15.00 10.00 5.00 30.00
ENTITY TYPES IN 1NF PURCHASE-ORDER (ORDER#, SUPPLIER#, ORDER-DATE DELIVERY-DATE, TOTAL-PRICE) PURCHASE-ITEM-1 ( ORDER#, PART#, PART-DESCRIPTION, QUANTITY-ORDERED, PRICE)
Functional Dependencies
PURCHASE-ORDER PURCHASE-ITEM-1
(ORDER#, SUPPLIER#, ORDER-DATE DELIVERY-DATE, TOTAL-PRICE) ( ORDER#, PART#, PART-DESCRIPTION, QUANTITY-ORDERED, PRICE)
PRICE
ORDER# PART#
QUANTITYORDERED
PARTDESCRIPTION
Original entity types are decomposed into three entity types in 2nd normal form
PURCHASE-ORDER (Order#,Supplier#, Order-Date, Delivery-Date, Total-Price) PURCHASE-ITEM (Order#, Part#,Quantity-Ordered, Price) PART (Part#, Part-Description)
Example in 2NF
REGISTRATION FORM STUDENT NUMBER STUDENT NAME STUDENT ADDRESS COURSE NO
PM951 S212 S0843215 P. Smith 1, South Downs Hale
COURSE
Computing Biology
TUTOR NAME
T. Long S. Short
TUTOR NO
037428 096524
ENTITY TYPES IN 2NF STUDENT (Student#,Student-Name, Student-Address) ENROLMENT ( Student#, Course#, Tutor-Name, Tutor-Staff#) COURSE (Course#, Course-Title)
A relation is in 3NF if and only if it is in 2NF and no non-key attribute is transitively dependent on the key.
Determine functional dependencies between non identifying attributes Decompose enity into new entities
Example
REGISTRATION FORM STUDENT NUMBER STUDENT NAME STUDENT ADDRESS COURSE NO
PM951 S212 S0843215 P. Smith 1, South Downs Hale
COURSE
Computing Biology
TUTOR NAME
T. Long S. Short
TUTOR NO
037428 096524
ENTITY TYPES IN 2NF STUDENT (Student#,Student-Name, Student-Adderss) ENROLMENT ( Student#, Course#, Tutor-Name, Tutor-Staff#) COURSE (Course#,, Course-Title)
Functional Dependencies
STUDENT (Student#,Student-Name, Student-Adderss) ENROLMENT ( Student#, Course#, Tutor-Name, Tutor-Staff#) COURSE (Course#,, Course-Title)
Example in 3NF
REGISTRATION FORM STUDENT NUMBER STUDENT NAME STUDENT ADDRESS COURSE NO
PM 951 S212 S0843215 P. Smith 1, South Downs Hale
COURSE
Computing Biology
TUTOR NAME
T. Long S. Short
TUTOR NO
037428 096524
ENTITY TYPES IN 3NF STUDENT (Student#,Student-Name, Student-Adderss) ENROLMENT ( Student#, Course#, Tutor-Staff#)
Let Work be a relation scheme that stores information about projects in a large business organization. Work Assumptions:
1. Each project has a unique name, but names of employees are not unique. 2. Each project has one manager, whose name is stored in PROJMGR.
( PROJNAME,PROJMGR,STARTDATE,EMPID, HOURS,EMPNAME, BUDGET,SALARY, EMPDEPT,EMPMGR, RATING)
3. Many employees may be assigned to work on each project, and an employee may be assigned to more than one project. HOURS tells the number of hours per week that a particular employee is assigned to work on a particular project.
4. BUDGET stores the amount budgeted for a project, and a STARTDATE gives the starting date for a project.
5. SALARY gives the annual salary of an employee 6. EMPMGR gives the name of the employees manager, who is not the same as the project manager. 7. EMPDEPT gives the the employees department. Department names are unique. The employees manager is the manager of the employees department. 8. RATING gives the employees rating for a particular project. The project manager assigns the rating at the end of the employees work on that project.
Functional Dependencies
PROJNAME
EMPID
PROJNAME, EMPID
HOURS, RATING
1NF: Since PROGNAME and EMPID is the composite key, each cell contain single value so WORK is in 1NF.
Transform the relation work into an equivalent collection of 2NF relations The relations schemes are: PROJ ( PROJNAME, PROJMGR, BUDGET, STARTDATE) EMP ( EMPID, EMPNAME, SALARY, EMPMGR, EMPDEPT) WORK1 ( PROJANAME, EMPID, HOURS, RATING)