Monday, January 25, 2010

Normalization



[ Team LiB ]





Normalization


Once you have identified business entities and converted them to a logical model, the logical model needs to be normalized. Normalization is the process of identifying and eliminating redundant data elements in the logical design to avoid update and delete anomalies. The normalization process uses a series of forms (CODD,1970) that have defined rules, and these rules are applied to each entity in an iterative approach.


For our purposes, we will discuss five types of normal forms. They are First Normal Form (1NF), Second Normal Form (2NF), Third Normal Form (3NF), Boyce-Codd Normal Form (BCNF), and Domain/Key Normal Form (DK/NF). DBAs should also become familiar with Elementary Key Normal Form (EKNF) and Project-Join Normal Form (PJNF), but they are beyond the scope of this chapter.


Functional Dependencies


A functional dependency is a relationship between or among attributes. An example would be that if we are given the value of one attribute, we can obtain the value of another attribute. For example, if we know the value of STUDENT_ID we can find the value of GRADE_LEVEL. We can restate this using the following notation:



STUDENT_ID => GRADE_LEVEL

which can be read as the attribute STUDENT_ID determines the attribute GRADE_LEVEL or GRADE_LEVEL is determined by STUDENT_ID. The attributes on the left side of the arrow are called determinants.


We will see later in this section how functional dependencies can be used to normalize relations.


Key


A key is a group of one or more attributes that uniquely identifies a row. Every relation must contain a primary key. It should be noted that keys and functional dependencies are not determined by some arbitrary set of rules but are determined by the business rules of the organization.





    [ Team LiB ]



    No comments: