Top Banner
ตตตตตตตตตตต ตตตตตตตตตตต ตตตต ตตตต ตตตตตตตตต ตตตตตตตตต 1NF >> 3NF 1NF >> 3NF
18

ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

Mar 15, 2016

Download

Documents

shelby-pearson

ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF. ตารางที่ยังไม่เป็น Normal Form ขั้นใด. Step 1 : ขจัด Derived Attribute (ถ้ามี). เกิดจาก UnitPrice * QTY. รีเลชันที่ขจัด Derived Attr. แล้ว. First Normal Form (1NF). นิยามของ 1NF - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

ตัวอยา่งการปรบัตัวอยา่งการปรบับรรทัดฐานบรรทัดฐาน1NF >> 1NF >>

3NF3NF

Page 2: ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

Bill_No Bill_Date P_ID P_Name Unit

Price QTY Total Cus_ID

Cus_Name Address Emp

_ID•Emp_Name

B001 1/08/2004 P01 Sofa Bed 12,500 1 12,500 C03 Pim Australia E02 Smith

P03 Dinning Table 5,000 2 10,000

B002 1/08/2004 P02 Bed 15,000 2 30,000 C03 Pim Australia E03 Benny

P05 Electric Fan 3,000 10 30,000

P04 Printer 12,000 2 24,000

B003 3/08/2004 P01 Sofa Bed 12,500 10 125,000

C01 Jennifer

Newzeland

E01 Johnson

B004 4/08/2004 P03 Dinning Table 5,000 2 10,000 C02 David USA E01 Johnson

P05 Electric Fan 3,000 5 15,000

B005 4/08/2004 P07 Air Conditioner

20,000 2 40,000 C01 Jennifer

New zeland

E02 Smith

P04 Printer 12,000 1 12,000

ตารางท่ียงัไมเ่ป็น Normal Form ขัน้ใด

Page 3: ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

Step 1 : ขจดั Derived Attribute(ถ้าม)ีBill_No Bill_Date P_ID P_Name Unit

Price QTY Total Cus_ID

Cus_Name

Address Emp_ID

•Emp_Name

B001

1/08/2004

P01 Sofa Bed 12,500 1 12,500 C03 Pim Australia E02 Smith

P03 Dinning Table

5,000 2 10,000

B002

1/08/2004

P02 Bed 15,000 2 30,000 C03 Pim Australia E03 Benny

P05 Electric Fan 3,000 10 30,000

P04 Printer 12,000 2 24,000

B003

3/08/2004

P01 Sofa Bed 12,500 10 125,000

C01 Jennifer

Newzeland

E01 Johnson

B004

4/08/2004

P03 Dinning Table

5,000 2 10,000 C02 David USA E01 Johnson

P05 Electric Fan 3,000 5 15,000

B005

4/08/2004

P07 Air Conditioner

20,000 2 40,000 C01 Jennifer

New zeland

E02 Smith

P04 Printer 12,000 1 12,000

เกิดจาก UnitPrice *

QTY

Page 4: ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

รเีลชนัท่ีขจดั Derived Attr. แล้วBill_No Bill_Date P_ID P_Name Unit

Price QTY Cus_ID

Cus_Name Address Emp

_ID•Emp_Name

B001 1/08/2004 P01 Sofa Bed 12,500 1 C03 Pim Australia E02 SmithP03 Dinning

Table5,000 2

B002 1/08/2004 P02 Bed 15,000 2 C03 Pim Australia E03 BennyP05 Electric Fan 3,000 10P04 Printer 12,000 2

B003 3/08/2004 P01 Sofa Bed 12,500 10 C01 Jennifer

Newzeland

E01 Johnson

B004 4/08/2004 P03 Dinning Table

5,000 2 C02 David USA E01 Johnson

P05 Electric Fan 3,000 5B005 4/08/2004 P07 Air

Conditioner20,000 2 C01 Jennif

erNew zeland

E02 Smith

P04 Printer 12,000 1

Page 5: ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

First Normal Form (1NF)

นิยามของ 1NFรเีลชนัท่ีเป็น 1 NF ต้องไมม่กีลุ่ม

ขอ้มูลซ้ำ้า(Repeating Group) และไมม่แีอตทรบิวิต์ท่ีมหีลายค่า(Multivalued Attribute)

Page 6: ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

ขจดั Multivalued Attr. และ Repeating Group

Bill_No Bill_Date P_ID P_Name Unit

Price QTY Cus_ID

Cus_Name Address Emp

_ID•Emp_Name

B001 1/08/2004 P01 Sofa Bed 12,500 1 C03 Pim Australia E02 SmithP03 Dinning

Table5,000 2

B002 1/08/2004 P02 Bed 15,000 2 C03 Pim Australia E03 BennyP05 Electric Fan 3,000 10P04 Printer 12,000 2

B003 3/08/2004 P01 Sofa Bed 12,500 10 C01 Jennifer

Newzeland

E01 Johnson

B004 4/08/2004 P03 Dinning Table

5,000 2 C02 David USA E01 Johnson

P05 Electric Fan 3,000 5B005 4/08/2004 P07 Air

Conditioner20,000 2 C01 Jennif

erNew zeland

E02 Smith

P04 Printer 12,000 1

Page 7: ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

Bill_No Bill_Date P_ID P_Name Unit

PriceQTY

Cus_ID

Cus_Name Address Emp_

ID•Emp_Name

B001

1/08/2004 P01 Sofa Bed 12,500 1 C03 Pim Australia E02 Smith

B001

1/08/2004 P03 Dinning Table 5,000 2 C03 Pim Australia E02 Smith

B002

1/08/2004 P02 Bed 15,000 2 C03 Pim Australia E03 Benny

B002

1/08/2004 P05 Electric Fan 3,000 10 C03 Pim Australia E03 Benny

B002

1/08/2004 P04 Printer 12,000 2 C03 Pim Australia E03 Benny

B003

3/08/2004 P01 Sofa Bed 12,500 10 C01 Jennifer Newzeland

E01 Johnson

B004

4/08/2004 P03 Dinning Table 5,000 2 C02 David USA E01 Johnson

B004

4/08/2004 P05 Electric Fan 3,000 5 C02 David USA E01 Johnson

B005

4/08/2004 P07 Air Conditioner

20,000 2 C01 Jennifer Newzeland

E02 Smith

B005

4/08/2004 P04 Printer 12,000 1 C01 Jennifer Newzeland

E02 Smith

รเีลชนัท่ีไมม่ ีMultivalued Attr. และ Repeating group

โดยการแยกแต่ละขอ้มูลออกเป็นเอกเทศในแต่ละทเูพลิ

Page 8: ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

หา Functional Dependency• FD1 : Bill_No Bill_date , Cus_ID ,Cus_Name ,

Address , Emp_ID , Emp_Name• FD2 : P_ID P_name , UnitPrice• FD3 : Bill_No , P_ID QTY• FD4 : Cus_ID Cus_Name , Address• FD5 : Emp_ID Emp_Name

• เอา FD1 , FD2 และ FD3 มารวมกัน(Composition)ได้• FD6 : BiLL_No , P_ID Bill_date ,

Cus_ID ,Cus_Name , Address , Emp_ID , Emp_Name ,P_Name , UnitPrice

• ดังนัน้พจิารณาได้วา่ primary key ของรเีลชนัคือ Bill_No รวมกับ P_ID

Page 9: ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

รเีลชนัท่ีอยูใ่นรูป 1NFBill_No Bill_Date P_ID P_Name Unit

PriceQTY

Cus_ID

Cus_Name Address Emp_

ID•Emp_Name

B001

1/08/2004

P01 Sofa Bed 12,500

1 C03 Pim Australia E02 Smith

B001

1/08/2004

P03 Dinning Table 5,000 2 C03 Pim Australia E02 Smith

B002

1/08/2004

P02 Bed 15,000

2 C03 Pim Australia E03 Benny

B002

1/08/2004

P05 Electric Fan 3,000 10 C03 Pim Australia E03 Benny

B002

1/08/2004

P04 Printer 12,000

2 C03 Pim Australia E03 Benny

B003

3/08/2004

P01 Sofa Bed 12,500

10 C01 Jennifer

Newzeland

E01 Johnson

B004

4/08/2004

P03 Dinning Table 5,000 2 C02 David USA E01 Johnson

B004

4/08/2004

P05 Electric Fan 3,000 5 C02 David USA E01 Johnson

B005

4/08/2004

P07 Air Conditioner

20,000

2 C01 Jennifer

Newzeland

E02 Smith

B005

4/08/2004

P04 Printer 12,000

1 C01 Jennifer

Newzeland

E02 Smith

Page 10: ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

Second Normal Form (2NF)

นิยามของ 2NFรเีลชนัท่ีเป็น 2NF ต้องต้องเป็น 1 NF มาก่อน และ ไมม่แีอตทรบิวิต์ท่ีขึน้ต่อกันกับบางสว่นของคีย์หลัก(Partial Dependency)

Page 11: ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

รเีลชนัอยูใ่นรูป 1NF แต่ไมเ่ป็น 2 NF เนื่องจากม ีPartial Dependency

Bill_No Bill_Date P_ID P_Name Unit

PriceQTY

Cus_ID

Cus_Name Address Emp_

ID•Emp_Name

B001

1/08/2004

P01 Sofa Bed 12,500

1 C03 Pim Australia E02 Smith

B001

1/08/2004

P03 Dinning Table 5,000 2 C03 Pim Australia E02 Smith

B002

1/08/2004

P02 Bed 15,000

2 C03 Pim Australia E03 Benny

B002

1/08/2004

P05 Electric Fan 3,000 10 C03 Pim Australia E03 Benny

B002

1/08/2004

P04 Printer 12,000

2 C03 Pim Australia E03 Benny

B003

3/08/2004

P01 Sofa Bed 12,500

10 C01 Jennifer

Newzeland

E01 Johnson

B004

4/08/2004

P03 Dinning Table 5,000 2 C02 David USA E01 Johnson

B004

4/08/2004

P05 Electric Fan 3,000 5 C02 David USA E01 Johnson

B005

4/08/2004

P07 Air Conditioner

20,000

2 C01 Jennifer

Newzeland

E02 Smith

B005

4/08/2004

P04 Printer 12,000

1 C01 Jennifer

Newzeland

E02 Smith

Partial Dependenc

y

Partial Dependenc

y

Fully Functional

Dependency

Page 12: ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

วธิรการปรบัจาก 1 NF เป็น 2NF ใหแ้ตกรเีลชนั โดยเอากลุ่มแอตทรบิวิต์ท่ีขึ้นกับบางสว่นของ Primary ออกเป็นรเีลชนัใหม่

SmithE02NewzelandJenniferC01112,000PrinterP044/08/2004B005

•Emp_Name

Emp_IDAddressCus_

NameCus_ID

QTY

Unit PriceP_NameP_IDBill_DateBill_

No

SmithE02NewzelandJenniferC01220,000Air ConditionerP074/08/2004B005JohnsonE01USADavidC0253,000Electric FanP054/08/2004B004

JohnsonE01USADavidC0225,000Dinning TableP034/08/2004B004

JohnsonE01NewzelandJenniferC011012,500Sofa BedP013/08/2004B003

BennyE03AustraliaPimC03212,000PrinterP041/08/2004B002

BennyE03AustraliaPimC03103,000Electric FanP051/08/2004B002

BennyE03AustraliaPimC03215,000BedP021/08/2004B002

SmithE02AustraliaPimC0325,000Dinning TableP031/08/2004B001

SmithE02AustraliaPimC03112,500Sofa BedP011/08/2004B001

Unit PriceP_NameP_ID

Emp_NameEmp_IDAddressCus_NameCus_ID Bill_DateBill_No

QTYP_IDBill_No

Page 13: ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

Bill_No Bill_Date Cus_ID

Cus_Name Address Emp

_ID•Emp_Name

B001 1/08/2004 C03 Pim Australia E02 SmithB002 1/08/2004 C03 Pim Australia E03 BennyB003 3/08/2004 C01 Jennife

rNewzeland

E01 Johnson

B004 4/08/2004 C02 David USA E01 JohnsonB005 4/08/2004 C01 Jennife

rNewzeland

E02 Smith

P_ID P_Name Unit PriceP01 Sofa Bed 12,500P03 Dinning Table 5,000P02 Bed 15,000P05 Electric Fan 3,000P04 Printer 12,000P07 Air Conditioner 20,000

Bill_No P_ID QTYB001 P01 1B001 P03 2B002 P02 2B002 P05 10B002 P04 2B003 P01 10B004 P03 2B004 P05 5B005 P07 2B005 P04 1

Bill

Product

Bill_Details

Page 14: ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

Thrid Normal Form (3NF)นิยามของ 3NFรเีลชนัท่ีเป็น 3NF ต้องต้องเป็น 2NF มาก่อน และ ไมม่แีอตทรบิวิต์ท่ีไมไ่ด้เป็นคียห์ลักขึน้ต่อค่าของแอตทรบิวิต์ท่ีไมไ่ด้เป็นคียห์ลัก(Transitive Dependency)

Page 15: ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

Bill_No Bill_Date Cus_ID

Cus_Name Address Emp

_ID•Emp_Name

B001 1/08/2004 C03 Pim Australia E02 SmithB002 1/08/2004 C03 Pim Australia E03 BennyB003 3/08/2004 C01 Jennife

rNewzeland

E01 Johnson

B004 4/08/2004 C02 David USA E01 JohnsonB005 4/08/2004 C01 Jennife

rNewzeland

E02 Smith

P_ID P_Name Unit PriceP01 Sofa Bed 12,500P03 Dinning Table 5,000P02 Bed 15,000P05 Electric Fan 3,000P04 Printer 12,000P07 Air Conditioner 20,000

Bill_No P_ID QTYB001 P01 1B001 P03 2B002 P02 2B002 P05 10B002 P04 2B003 P01 10B004 P03 2B004 P05 5B005 P07 2B005 P04 1

Bill

Product

Bill_Details

เป็น 3NF แล้ว

ยงัไมเ่ป็น 3NF

ยงัไมเ่ป็น 3NF

Page 16: ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

P_ID P_Name Unit PriceP01 Sofa Bed 12,500P03 Dinning Table 5,000P02 Bed 15,000P05 Electric Fan 3,000P04 Printer 12,000P07 Air Conditioner 20,000

Product

อาจแตกตารางเป็นดังนี้ P_ID P_NameP01 Sofa BedP03 Dinning TableP02 BedP05 Electric FanP04 PrinterP07 Air Conditioner

P_Name Unit PriceSofa Bed 12,500Dinning Table 5,000Bed 15,000Electric Fan 3,000Printer 12,000Air Conditioner 20,000

แต่การแตกแบบนี้ท้ำาให้เกิดความซ้ำ้าซอ้นมากกวา่ จงึไม่

นิยมแตกออก

ให้ใชร้เีลชนั Product เดิมก่อนแตก

Page 17: ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

Bill_No Bill_Date Cus_ID

Cus_Name Address Emp

_ID•Emp_Name

B001 1/08/2004 C03 Pim Australia E02 SmithB002 1/08/2004 C03 Pim Australia E03 BennyB003 3/08/2004 C01 Jennife

rNewzeland

E01 Johnson

B004 4/08/2004 C02 David USA E01 JohnsonB005 4/08/2004 C01 Jennife

rNewzeland

E02 Smith

Bill

Cus_ID Cus_Name Address

C03 Pim AustraliaC01 Jennifer NewzelandC02 David USA

Emp_ID •Emp_Name

E02 SmithE03 BennyE01 Johnson

Bill_No Bill_Date Cus_ID Emp_ID

B001 1/08/2004

C03 E02

B002 1/08/2004

C03 E03

B003 3/08/2004

C01 E01

B004 4/08/2004

C02 E01

B005 4/08/2004

C01 E02

Customerแตกรเีลชนัได้เป็นดังน้ี

Employee

Bill

Transitive Dependency

Page 18: ตัวอย่างการปรับบรรทัดฐาน 1NF >> 3NF

P_ID P_Name Unit PriceP01 Sofa Bed 12,500P03 Dinning Table 5,000P02 Bed 15,000P05 Electric Fan 3,000P04 Printer 12,000P07 Air Conditioner 20,000

ProductBill_No P_ID QTYB001 P01 1B001 P03 2B002 P02 2B002 P05 10B002 P04 2B003 P01 10B004 P03 2B004 P05 5B005 P07 2B005 P04 1

Bill_Details

Cus_ID Cus_Name Address

C03 Pim AustraliaC01 Jennifer NewzelandC02 David USA

Emp_ID Emp_NameE02 SmithE03 BennyE01 Johnson

Bill_No Bill_Date Cus_ID Emp_ID

B001 1/08/2004

C03 E02

B002 1/08/2004

C03 E03

B003 3/08/2004

C01 E01

B004 4/08/2004

C02 E01

B005 4/08/2004

C01 E02

Customer

Employee

Bill