Chapter 2. The Relational Model (cont.) IST2101
Review: Functional Dependency A relationship between attributes: some attribute(s) determine the value of some other attribute(s) in the same table –These attributes we name them determinant –The other attributes are functionally dependent on this determinant IST2102 CookieCost = NumberOfBoxes * $5 NumberOfBoxes CookieCost CookieCost = NumberOfBoxes * UnitPrice (UnitPrice, NumberOfBoxes) CookieCost determinant The composite forms determinant Functionally dependent on NumberofBoxes
Determinant = Candidate Key? IST2103 DeterminantsCandidate Key (StudentID, CourseID) StudentID CourseID (StudentID, CourseID) In a relation, a candidate key must be a determinant In a relation, a determinant may not be a candidate key A relation is well-formed if and only if every determinant is a candidate key.
Normalization Normalization is a process of breaking a table with more than one theme into a set of tables to ensure that each table is well-formed – No data redundancy – Data can be inserted, deleted, or modified without creating modification problems IST2104
Normalization Principles Relational design principles for normalized relations: – To be a well-formed relation, every determinant must be a candidate key – Any relation that is not well-formed should be broken into two or more well-formed relations IST2105
Normalization Process 1.Identify all the candidate keys of the relation. 2.Identify all the functional dependencies in the relation. 3.Examine the determinants of the functional dependencies. If any determinant is not a candidate key, the relation is not well formed. In this case: a.Place the columns of the functional dependency in a new relation of their own. b.Make the determinant of the functional dependency the primary key of the new relation. c.Leave a copy of the determinant as a foreign key in the original relation. d.Create a referential integrity constraint between the original relation and the new relation. 4.Repeat step 3 as many times as necessary until every determinant of every relation is a candidate key. IST2106
Normalization Process: Exercise 1 IST2107 Step 1. Candidate keys: Step 2. Functional dependencies: Step 3. Determine if the relation is well-formed. If not, split the relation into multiple well-formed relations and specify all the primary keys, foreign keys and referential integrity constraints: Hint: If any determinant is not a candidate key, the relation is not well formed.
Normalization Process: Exercise 2 IST2108 Step 1. Candidate keys: Step 2. Functional dependencies: Step 3. Determine if the relation is well-formed. If not, split the relation into multiple well-formed relations and specify all the primary keys, foreign keys and referential integrity constraints: Hint: If any determinant is not a candidate key, the relation is not well formed.
Normalization Process: Exercise 3 IST2109 Step 1. Candidate keys Step 2. Functional dependencies GRADE(ClassName, Section, Term, Grade, StudentNumber, StudentName, Professor, ProfessorDepartment, Professor ) Step 3. Determine if the relation is well-formed. If not, split the relation into multiple well-formed relations and specify all the primary keys, foreign keys and referential integrity constraints: Hint: If any determinant is not a candidate key, the relation is not well formed.
True/False Quiz Given the functional dependency for the attributes of ENTITY1, X → (A, B, C), X is a candidate key for the relation ENTITY1 (A, B, C, X). Normalization is the process of removing all functional dependencies from a relation. In the normalization process, it is not necessary to identify all the functional dependencies in a relation. In the normalization process, if you find a candidate key that is not a primary key, then you have determined that the relation needs to be broken into two or more relations.
Summary of Chapter 2 Learn the concept of the relational model: entities, relations, relationships Learn the meaning and importance of keys, foreign keys, and related terminology Learn the meaning of functional dependencies Learn to apply a process for normalizing relations IST21011
Assignment 2: Relational Model Due: 11:59pm on Sunday, 2/1 IST21012