Upload
sibyl-gray
View
219
Download
0
Embed Size (px)
Citation preview
Slide 1
Chapter 03
The Relational Model and Normalization
Slide 2
Content
A. Sales Receipt ProblemB. Solution
Slide 3
A. Sales Receipt Problem
DS company wants to store information of receipt for each selling time.
Each receipt has following information: Receipt ID Customer ID Customer Name Customer Address
Date of Receipt Each receipt has one or more receipt items which have
following information: Product ID
Product NameQuantityPrice Line Total
For more information about a receipt, please refer to next slide:
Slide 4
Let’s design the DB into Normal Form for the above requirement.
Next slides are some examples of receipt.
Line TotalPriceQuantityNameProduct ID
DS Company
ID: …… RECEIPTDate: ……….
Customer Name: …………………Customer ID: …………Address: ……………………………………………………..
Total
Slide 5
Example 1:
Line TotalPriceQuantityNameProduct ID
DS Company
ID: PN001 RECEIPTDate: 04/12/2008.
Customer Name: Mr. Johnson. Customer ID: CUS001Address: New York
Coca Cola 100 100 10000 USD
PRO001
Total 10000 USD
Slide 6
Example 2:
PRO002
Line TotalPriceQuantityNameProduct ID
DS Company
ID: PN002 RECEIPTDate: 04/14/2008.
Customer Name: Mr. Stewart. Customer ID: CUS002Address: New York
Coca Cola 100 100 10000 USD
PRO001
7 up 100 5000 USD50
Total 15000 USD
Slide 7
B. Solution
1. Logical Design2. Physical Design3. Relational Model Terminologies4. Normal Form
Slide 8
1. Logical Design
Base on the requirement of problem, we have :o There are two objects: Receipt and Receipt_Items.o Each Receipt has one or more Receipt_Items.
Slide 9
Delete attributes of each object don’t need to store data.
Slide 10
In the above design, there is a problem called Data Duplication at Receipts Object.
To solve the problems: Attributes CustomerID, CustomerName and CustomerAddress should be move to new object (Customers).
Sample data
ReceiptsRecei
pt ID
Customer ID
Customer Name
Customer Address
Receipt Date
1 C0001Nguyen Thi Nga 702 Nguyen Kiem
22/4/2009 8:20 AM
2 C0378Tran The Nhan
103 Tran Hung Dao
22/4/2009 9:00 AM
3 C0001Nguyen Thi Nga 702 Nguyen Kiem
22/4/2009 7:20 PM
Customer Object
Slide 11
Logical Diagram (ERD)
Slide 12
Receipt_ItemsReceipt
IDProduct
IDProduct Name
Product Quantity
Product Price
1 PRO001 Coca Cola 10 1001 PRO002 7 UP 20 502 PRO001 Coca Cola 5 1003 PRO001 Coca Cola 8 100
In the above design, there is aslo a problem called Data Duplication at Receipt_Items Object.
To solve the problem: Attributes ProductID and ProductName should be move to new object (Products).
Sample data
ReceiptsReceipt
IDCustomer
ID Receipt Date
1 122/4/2009 8:20
AM
2 222/4/2009 9:00
AM
3 122/4/2009 7:20
PM
Product Object
Slide 13
Logical Diagram(ERD)
Slide 14
Another design
Slide 15
2. Physical Design
Diagram for the first design
Slide 16
Diagram for the second design
Slide 17
3. Relational Model Terminology
3.1. Key definition3.2. Functional dependency3.3. What is determinant?
Slide 18
3.1. Key definition
3.1.1. Primary key3.1.2. Compound key3.1.3. Surrogate key3.1.4. Candidate key3.1.5. Foreign key
Slide 19
3.1.1. Primary key
PRIMARY KEY: the primary means of identifying rows in a relation:
• There is one and only one primary key per relation• The primary key may be a composite key• The ideal primary key is short, numeric and never
changes
Example: In the Receipts table, Receipt_ID is the PRIMARY KEY. (
)
Slide 15
Slide 20
3.1.2. Compound key
COMPOUND KEY: is a primary key that consists of two or more columns.
Example: In the Receipt_Items table, Receipt_ID and Product_ID
combine together to become the COMPOUND KEY. ( )
Slide 15
Slide 21
3.1.3. Surrogate key
SURROGATE KEY: as an artificial column added to a relation to serve as a primary key.
• A key with no business meaning• Short, numeric and never changes • Normally hidden in forms and reports• Frequently a sequential number
Identity: SQLServer Sequence: Oracle Auto_increment: MySQL
Autonumber: Microsoft Access ...
Examples: In the Receipt_Items table, ReceiptItem_ID is the
SURROGATE KEY . ( )
In the Receipts table, Receipt_ID is the SURROGATE KEY. ( )
Slide 16 Slide
15
Slide 22
3.1.4. Candidate key
CANDIDATE KEY: is a key that determines all of the other columns in a relation.
Examples: In the Customers table, CustomerID is the CANDIDATE
KEY . ( )
In the Products table, ProductID is the SURROGATE KEY. ( )
Slide 16 Slide
16
Slide 23
3.1.5. Foreign key
FOREIGN KEY: is the primary key of one relation (table) that is placed in another relation (table) to form a link between the relations:
A foreign key can be a single column or a composite key
The term refers to the fact that key values are foreign to the relation in which they appear as foreign key values
ExampleIn the Receipt_Items table, Receipt_ID is the FOREIGN KEY. ( )
Slide 16
Slide 24
3.2. Functional dependency
In the Receipts table, ReceiptDate is functionally dependent on Receipt_ID. Given a value of Receipt_ID, you can determine the ReceiptDate. This is the example of Functional Dependency and can be written:
• Receipt_ID ReceiptDate
A functional dependency occurs when the value of one (a set of) attribute(s) determines the value of a second (set of) attribute(s).
Slide 25
3.3. What is determinant?
The attribute on the left side of the functional dependency is called the determinant.
Example:Receipt_ID ReceiptDate
Slide 26
4. Normal Form
4.1. First Normal Forms Definition4.2. Second Normal Forms Definition4.3. Third Normal Forms Definition
Slide 27
4.1. First Normal Forms Definition
1NF – A table that qualifies as a relation is in 1NF. It means the table reaches the characteristics of relation
Characteristics of Relation: Rows contain data about an entity Columns contain data about attributes of the entities All entries in a column are of the same kind Each column has unique name Cells of the tables hold a single value The orders of the columns is unimportant The orders of the rows is unimportant No two rows may be identical
Example: Slide 8, slide 9
Slide 28
4.2. Second Normal Forms Definition
2NF- A relation is in 2NF if all of its non-key attributes are dependent on ALL of the primary key.
Example: Slide 11
Slide 29
4.3. Third Normal Forms Definition
3NF – A relation is in 3NF if it is in 2NF and has NO DETERMINANTS except the primary key.
Example: Slide 13, 14 in logical diagram or diagram below in physical diagram. It conforms to 3NF.
Slide 30
?