Normalization

A technique that organizes data attributes (or fields) such that they are grouped to form stable, flexible and adaptive entities.

5-1

Normal Forms

™ (1NF) ¾There are no attributes (fields) that have more than one value for a single instance (record) of the entity. ¾There are no repeating fields ™Second Normal Form (2NF) ¾1NF ¾The value of all non-primary key fields are dependent on the full primary key - not just part of it

5-2

Normal Forms

™ (3NF) ¾2NF ¾The values of its non-primary key fields are not dependent on any other non-primary key field

5-3

1 Keys

™Primary ¾ A field whose values identify one and only one record in a ¾ Every ACCESS table must have EXACTLY one primary key ™Foreign ¾ A primary key of one table that is included in another table ¾ Links the records in one table to another table

5-4

Steps Of Normalization

1. Remove repeating groups of data fields. 2. Remove partial dependencies:

If any data fields are dependent upon only part of the primary key defined for your core business transaction, split those fields out into a separate table, using the field(s) upon which they are dependent as the primary key.

5-5

Steps Of Normalization

3. Remove transitive dependencies: If any fields are dependent upon a non-key field, split those fields out into a separate table, using the non-key field as the primary key.

4. Remove any field which can be easily derived from other field(s): If any fields can be derived from others, remove from database.

5. Check by drawing/comparing to E-R diagram: is this model correct/logical?

5-6

2 Non-normalized table

™ In this example, we want to design an order database. ¾ Identify all fields needed in this database ¾ Which attribute above uniquely identifies each order? • Order Number is the starting primary key

5-7

Non-normalized table

Original Primary Key: Order Number

™ An order can have many parts. This is a repeating field. What fields above are more closely related to a part than an order? Part Number, Number of Parts [quantity ordered], Part Description, Unit Cost, Supplier Number [for the part], supplier name, supplier address. ™ Remove these fields and put them into a separate table. Which one of these fields uniquely identifies the part information? [Part Number] ™ The Primary Key to the new table will be the original primary key combined with the new unique identifier (Part Number) ™ When a primary key has two or more parts, it is called a composite primary key.

5-8

First Normal Form

Primary Key: Order Number

Composite Primary Key: Order Number plus Part Number

5-9

3 Checking Second Normal Form

Primary Key: Order Number

Composite Primary Key: Order Number plus Part Number

™ Look at the second table ¾ If you know a part of the primary key, could you derive any of the non-keyed fields? • For example: If you know the part number [part of the primary key], could you derive the part description, the unit cost and the supplier information for that part? • Violation of second normal form

5-10

Checking Second Normal Form

Primary Key: Order Number

Composite Primary Key: Order Number plus Part Number

™ Remove the non-keyed fields from the second table that are dependent on only part of the primary key and put them in a new table [Part Description. Unit Cost, Supplier Information] ™ Copy the part of the primary key from which these fields can be determined into the new table. This field will become the primary key of the new table.

5-11

Second Normal Form

Primary Key: Order Number

Composite Primary Key: Order Number plus Part Number

Primary Key: Part Number

Notice: I moved the PART table name to the table that had the most information about the part. The ordered part table name came from the rules for the ERD. One order can have many parts on it and one part [product line] can be on many orders.

5-12

4 Checking Third Normal Form

Primary Key: Order Number

Composite Primary Key: Order Number plus Part Number

Primary Key: Part Number ™ Look at the third table: If you know the Supplier Number [a non-keyed field], you can determine the supplier name and address [non-keyed fields] ¾ Violation of third normal form

5-13

Checking Third Normal Form

Primary Key: Order Number

Composite Primary Key: Order Number plus Part Number

Primary Key: Part Number ™ Remove the fields that can be determined from the other field from this table. Put them [supplier name and address] in a new table. ™ Copy the field that determines them from the original table into the new table [supplier number]. ¾ This field will be the primary key of the new table.

5-14

Part 1 of Third Normal Form

Primary Key: Order Number

Composite Primary Key: Order Number plus Part Number

Primary Key: Part Number

Primary Key: Supplier Number

5-15

5 Checking Third Normal Form

Primary Key: Order Number Primary Key: Supplier Number

Composite Primary Key: Order Number plus Part Number

Primary Key: Part Number ™ The top table has the same violation as before but with the customer information. ¾ Customer name and address can be determined from the customer number ¾ Violation of 3rd Normal Form

5-16

CheckingThird Normal Form

Primary Key: Order Number Primary Key: Supplier Number

Composite Primary Key: Order Number plus Part Number

Primary Key: Part Number ™ Remove the fields that can be determined from the other field from this table. Put them [cust name, address] in a new table. ™ Copy the field that determines them from the original table into the new table [customer number]. ¾ This field will be the primary key of the new table.

5-17

Third Normal Form

Primary Key: Customer Number Primary Key: Order Number

Primary Key: Supplier Number

Composite Primary Key: Order Number plus Part Number

Primary Key: Part Number

5-18

6 Draw the ERD for Validation

Orders Customers m 1 Order No Cust No Place Order Date Cust Name Delivery Date Cust Address Order Total Customer No Supplier 1 Supplier No 1 Supplier Name Supplier Address Contain Locate M M Parts [Inventory] Part Number Ordered Part Part Description 1 M Order No Locate Unit Cost Part Number Supplier No Number of Parts

5-19

Normalized

5-20

7