Chapter Three ( Relational Data Model) Objectives Introduction to Relational Data Models. Advantages of Relational Data Models. Restriction of Relational Data Model. Keys. What are a good BD Design? Relational Data Model: Developed by Codd in 1970. Conceptually simple. Based on mathematical set theory. 2 Relational Data Model: Most important advantage of the RDBMS is its ability to hide the complexities of the relational model from the user. 3 Relational Database Models: Data are represented as a set of tables. Structure A set of tables ( Relations). Each relation has a unique name. Each relation has a set of attributes. Each relation has a set of tuples. 5 Restriction on Relational DBMS No two tuples are the same. No two attributes are the same. Order of tuples are immaterial. Order of attributes are immaterial. Value of attributes must be atomic. 6 Relational Database Example: Students Courses Faculty 7 Attributes of a Relation: Students (Name, ID, Major, Minor,….) Courses (C_num, Dept, Cr, Description) Faculty (Name, ID, SSN, …..) 8 Tuples: Students (Name, ID, Major, Minor,….) _________________________________ John Smith 1111, ITEC, VART Mary Smith 2222, COSC, ITEC Lorry Joys 4444, ACCT, COSC Courses (C_num, Dept, Cr, Description) _______________________________________ 345 ITEC 3 Databases I 445 ITEC 3 Databases II 9 Keys: (Constraints) A set of attributes whose values uniquely identify each entity. Examples: Students (Name, ID, Major, Minor,….) Courses (C_num, Dept, Cr, Description) Faculty (Name, ID, SSN, …..) 10 Keys: (Constraints) Primary key: 1- Uniqueness: At any given time, no two tuples can have the same value for a given primary key. 2-Minimally: None of the attributes in primary key can be discarded without distorting the uniqueness property 3-Selection: A key selected by the Database Administrator. 11 Primary key: Key’s role is based on determination If you know the value of attribute A, you can look up (determine) the value of attribute B. ID GPA 12 Keys Composite key Key attribute Any attribute that is part of a key. Superkey Composed of more than one attribute. Any combination of attributes that uniquely identifies each row. Candidate key 13 Keys: (Constraints) Foreign key: An attribute(s) in an entity set (relation) which is the primary key of other entity set (relation) Example: Department(Name, Dept_Id, ….) Faculty(Name, Id, Dept_Id,…) 14 Normal Forms (Guidelines for RD design) How do we know this is a good design? If it is not a good design, What should we do? Modify our design ??. 15 Normalization: Process for evaluating and correcting table structures to minimize data redundancies Reduces data anomalies Works through a series of stages called normal forms: First normal form (1NF) Second normal form (2NF) Third normal form (3NF) 16 Why Normalize Tables: Structure of data does not handle data very well The table structure appears to work; Report generated with ease Unfortunately, report may yield different results depending on what data anomaly has occurred 17 Each table represents a single subject No data item will be unnecessarily stored in more than one table All attributes in a table are dependent on the primary key 18 Normal Forms (Guidelines for RD design) A relation is in 1NF if the values of domain is atomic for each attribute. 19 First Normal Form: 1NF Example: Person (Name Smith Person (Name Smith Smith Smith Age Children ) 42 John, Lori, Mark Age Children ) 42 42 42 John Lori Mark 20 First Normal Form: 1NF Example: Student ( Name Birthday S1 S2 Feb 2,91 March 8,88 ) Student (Name, D_Birth, M_Birth, Y_Birth) Note: 2NF and 3NF Deal with the relationship between non-key and key 21 First Normal Form: Repeating group Derives its name from the fact that a group of multiple entries of same type can exist for any single key attribute occurrence Relational table must not contain repeating groups Normalizing table structure will reduce data redundancies 22 Second Normal Form: 2NF A relation is in 2NF if it is in 1NF and every attribute is Fully dependent on the entire key in this relation. 23 Second Normal Form: 2NF Example: R(A,B,C,D) A, B ---> C, D A ---> D D partially depends on A,B C fully depends on A,B A&B are prime (part of key) If A is primary key. Is this in 2NF? If A&B is primary key. Is this in 2NF? 24 Second Normal Form: 2NF What should we do with a relation which is not in 2NF? Example: R(A,B,C,D) A, B ---> C, D A ---> D R1 (A,B,C) R2(A,D) 25 Second Normal Form: 2NF Example: R(Part Warehouse P1 W1 P2 W1 P3 P4 P4 W2 W4 W1 Address Frostburg Frostburg Quantity 25 30 Cumberland 32 Frostburg 25 What is the primary key? Part, Warehouse ---> Quantity Warehouse ---> Address 26 Second Normal Form: 2NF Problems: 1. Repetition of information: Changing the address W! 2. Unable to present information: Warehouse with no part So … R1 (Warehouse, Address) R2 (Part, Warehouse, Quantity) 27 Second Normal Form: 2NF R( Example: Professor, Student, Course, Degree P1 P2 P3 S1 S2 S2 C1 C2 C4 Ph.D. M.S. M.S. P4 S3 C4 Ph.D. Professor ---> Course Student ---> Degree Professor ---> Student ) Key? Not in 2NF R1(Student, Degree) R2(Professor, Course, Student) 28 Third Normal Form (3NF): A relation is 3NF if it is in 2NF and every non-key attribute non transitively depends on the Primary Key. Example: R(A,B,C,D) A, B --->D D ---> C R1(A,B,D) R2(D,C) Fact: 3NF is violated when a non-key is a fact about another non-key 29 Third Normal Form (3NF): Example: R(Employee, Dept, Location) Employee ---> Dept Dept ---> Location Employee Dept Location E1 E2 E3 D1 D2 D3 Frostburg Frostburg Frostburg Problems? R1(Employee, Dept) R2(Dept, Location) 30 Third Normal Form (3NF): Example: R(A,B,C,D) A,B ---> C A,C ---> D So A,B is the Primary Key Not in 3NF R1(A,B,C) R2(A,C,D) 31 Null Values: No data entry Not permitted in primary key It is represent as: An unknown attribute value A known, but missing, attribute value A “not applicable” condition 32 Controlled redundancy: Makes the relational database work Tables within the database share common attributes that enable the tables to be linked together Multiple occurrences of values in a table are not redundant when they are required to make the relationship work Redundancy exists only when there is unnecessary duplication of attribute values 33