250 likes | 431 Views
Chapter 6 The Relational Model and Normalization. IS420/520 Western Oregon University. Relations. Relational DBMS products store data in the form of relations, a special type of 2D table A relation is a two-dimensional table that has the following characteristics
E N D
Chapter 6The Relational Model and Normalization IS420/520 Western Oregon University
Relations • Relational DBMS products store data in the form of relations, a special type of 2D table • A relation is a two-dimensional table that has the following characteristics • Rows contain data about an entity • Columns contain data about attributes of the entity • All entries in a column are of the same kind • Each column has a unique name • Cells of the table hold a single value • The order of the columns is unimportant • The order of the rows is unimportant • No two rows may be identical • Although not all tables are relations, especially when keys are added to the tables, the terms table and relation are normally used interchangeably • Table/row/column = file/record/field = relation/tuple/attribute
Types of Keys • A key is one or more columns of a relation that identifies a row • Composite key is a key that contains two or more attributes • A Surrogate Key is an artificial column added to a table to serve as the primary key • A foreign key is a column or set of columns that is the primary of another table • A relation has one unique primary key and may also have additional unique keys called candidate keys • Primary key is used to • Represent the table in relationships • Organize table storage • Generate indexes
Functional Dependencies • A functional dependency occurs when the value of one (set of) attribute(s) determines the value of a second (set of) attribute(s) • The attribute on the left side of the functional dependency is called the determinant • SID GPA • SKU Department, SKU_Description • (CustomerNumber, ItemNumber, Quantity) Price • Mathematically, we say that “A” determines “B”, A B • Physically, we might say that “A” is a unique identifier for “B”
Functional Dependency (2) • Full Functional Dependency: “B” is functionally dependent on “A” but not on any subset of “A” • Transitive Dependency: If “B” and “C” are both dependent on “A”, but “C” is also dependent on “B”, we say that “C” is transitively dependent on “B”
Normalization • Normalization eliminates modification anomalies • Deletion anomaly: deletion of a row loses information about two or more entities • Insertion anomaly: insertion of a fact in one entity cannot be done until a fact about another entity is added • Anomalies can be removed by splitting the relation into two or more relations; each with a different, single theme • Normalization works through classes of relations called normal forms
Normal Forms • Any table of data is in 1NF if it meets the definition of a relation • A relation is in 2NF if all its non-key attributes are dependent on all of the key (no partial dependencies, all are full dependencies) • If a relation has a single attribute key, it is automatically in 2NF • A relation is in 3NF if it is in 2NF and has no transitive dependencies • A relation is in BCNF if every determinant is a candidate key • A relation is in fourth normal form if it is in BCNF and has no multi-value dependencies
Another Example: NOT IN BCNF Specialized tool maker CUSTOMER ID + Tool Type Tool Trainer ID CUSTOMER ID + Tool TRAINER ID is also an candidate key (unique) Tool TRAINER ID Tool Type
DK/NF • First published in 1981 by Fagin • DK/NF has no modification anomalies; so no higher normal form is needed • A relation is in DK/NF if every constraint on the relation is a logical consequence of the definition of keys and domains
Normal Forms-Review • Any table of data is in 1NF if it meets the definition of a relation • A relation is in 2NF if all its non-key attributes are dependent on all of the key (no partial dependencies) • If a relation has a single attribute key, it is automatically in 2NF • A relation is in 3NF if it is in 2NF and has no transitive dependencies • A relation is in BCNF if every determinant is a candidate key • A relation is in fourth normal form if it is in BCNF and has no multi-value dependencies
De-normalized Designs • When a normalized design is unnatural, awkward, or results in unacceptable performance, a de-normalized design is preferred • Example • Normalized relation • CUSTOMER (CustNumber, CustName, Zip) • CODES (Zip, City, State) • De-Normalized relations • CUSTOMER (CustNumber, CustName, City, State, Zip)