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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Datadictionary Prakan Sringam.
Advertisements

11. การแปลงโมเดลแบบ E-R เป็นรูปแบบเชิงสัมพันธ์
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยสงขลานครินทร์
HO Session 14: Database Design Principles
E-R Model บรรยายโดย สุรางคนา ธรรมลิขิต.
File System Example of File System Employee Department
แผนการสอน วิชา Database Design and Development
Security and Integrity
Entity-Relationship Model
ขั้นตอนการพัฒนาเว็บเพจ
บทที่ 5 รูปแบบที่เป็นบรรทัดฐาน (Normal Form)
การพัฒนาระบบฐานข้อมูล ด้วยโปรแกรม SQL
ความรู้เบื้องต้นเกี่ยวกับฐานข้อมูล
Normalization.
บทที่ 8 การออกแบบข้อมูล (Data Design) โครงสร้างข้อมูล (Data Structure)
ฐานข้อมูลและการออกแบบฐานข้อมูล
ส่วนที่ 4 System Design การออกแบบระบบ.
ส่วนที่ 4 System Design การออกแบบระบบ.
– Web Programming and Web Database
การออกแบบแบบจำลองข้อมูล
ซอฟต์แวร์พัฒนาระบบฐานข้อมูล Normalization
การแปลงโมเดลข้อมูลแบบ E-R เป็นโมเดลฐานข้อมูลเชิงสัมพันธ์
การจัดการฐานข้อมูลเบื้องต้น (Database Management System)
บทที่ 3 Class and Object (1) การสร้างและการใช้งานคลาส
บทที่ 1 หลักการเขียนโปรแกรมเชิงวัตถุ
นอร์มัลไลเซชัน (Normalization)
การออกแบบฐานข้อมูลเชิงสัมพันธ์
อ.อารียา ศรีประเสริฐ สาขาวิชาเทคโนโลยีสารสนเทศธุรกิจ
ฐานข้อมูลเชิงสัมพันธ์
แบบจำลองความสัมพันธ์ระหว่างข้อมูล
รูปแบบที่เป็นบรรทัดฐาน
ระบบฐานข้อมูลทางการพยาบาล และ Microsoft Access 2003
ข้อมูลทางการเงินและบัญชีสำหรับรัฐวิสาหกิจกลุ่มที่ไม่ใช่สถาบันการเงิน
การแปลง E-R เป็น Table.
Data Modeling Chapter 6.
การทำ Normalization อ. นุชรัตน์ นุชประยูร.
ตัวแปรกับชนิดของข้อมูล
ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)
(การลดความซ้ำซ้อนของข้อมูล)
บทที่ 5 การทำงานกับหลาย Table
โมเดลจำลองความสัมพันธ์ระหว่างข้อมูล (ER-Diagram)
1. รายการเปลี่ยนแปลง (Transaction)
1. ศัพท์พื้นฐานของฐานข้อมูล
การออกแบบระบบฐานข้อมูล
CHAPTER 12 SQL.
ลำดับ ที่ ตำแหน่ง ทางธุรกิจ ยอดปิด โค้ด จำนวน PV รายได้รวม w/s สูงสุดต่อวัน ชั้นรับ แมซซิ่ง 1 BLONZE 1, , SILVER 3,0001,00030, GOLD.
Normalization – Special Problem (DB) Choopan Rattanapoka
การประยุกต์ใช้ฐานข้อมูล
การออกแบบฐานข้อมูลเชิงสัมพันธ์
โมเดลเชิงสัมพันธ์ The relational model.
งานกลุ่ม กลุ่มที่ 3 เรื่อง ฐานข้อมูลเชิงสัมพันธ์
MS Access (basic) By Kanok Khamhun. ฐานข้อมูล (Database) Database ( ฐานข้อมูล ) คือที่ เก็บรวบรวมข้อมูลที่มี ความสัมพันธ์ไว้ด้วยกัน ขึ้นอยู่ กับวัตถุประสงค์ของการเก็บ.
Week 5 Online available at
ส่วนประกอบของแบบจำลองอีอาร์
E-R to Relational Mapping Algorithm
จากรูป ถามถึง Foreign key ของใบจัดสินค้า หากใครเลือกตอบ ในวงกลมสีเขียว ได้คะแนน นอกนั้น หักคะแนน  ส่วนเลขที่ใบ นั้น ถือเป็น.
แบบจำลองข้อมูล (Data Model)
Normalization Lecture 9.
การทำ Normalization 14/11/61.
Chapter 5 Part 3.
ห้องแลปการคิดสร้างสรรค์
Chapter 6 : แบบจำลอง E-R (Entity-Relationship Model)
Chapter 6 Information System Development
กระบวนการปรับบรรทัดฐาน Normalization Process
E-R Diagram (Entity Relationship Diagram)
Chapter 8 : นอร์มัลไลเซชัน (Normalization)
การออกแบบโครงสร้างฐานข้อมูลด้วย E-R Model และการแปลงเป็นรีเลชัน
กฎการ Normalization 1. จะต้องไม่มีเซลล์ใดในตารางที่มีค่าเกิน 1 ค่า ดังนั้นเราสามารถทำให้ตารางผ่านกฎข้อที่ 1 ได้ด้วยการแยกเซลล์ที่มีค่าเกินหนึ่งออกเป็นเรคคอร์ดใหม่
Introduction to Database System
สรุปขั้นตอนการสร้าง E-R Diagram
ใบสำเนางานนำเสนอ:

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

ตารางที่ยังไม่เป็น Normal Form ขั้นใด 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 C03 Pim Australia E02 Smith P03 Dinning Table 5,000 2 10,000 B002 P02 Bed 15,000 30,000 E03 Benny P05 Electric Fan 3,000 10 P04 Printer 12,000 24,000 B003 3/08/2004 125,000 C01 Jennifer Newzeland E01 Johnson B004 4/08/2004 C02 David USA 5 B005 P07 Air Conditioner 20,000 40,000 New zeland

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 C03 Pim Australia E02 Smith P03 Dinning Table 5,000 2 10,000 B002 P02 Bed 15,000 30,000 E03 Benny P05 Electric Fan 3,000 10 P04 Printer 12,000 24,000 B003 3/08/2004 125,000 C01 Jennifer Newzeland E01 Johnson B004 4/08/2004 C02 David USA 5 B005 P07 Air Conditioner 20,000 40,000 New zeland เกิดจาก UnitPrice * QTY

รีเลชันที่ขจัด 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 Smith P03 Dinning Table 5,000 2 B002 P02 Bed 15,000 E03 Benny P05 Electric Fan 3,000 10 P04 Printer 12,000 B003 3/08/2004 C01 Jennifer Newzeland E01 Johnson B004 4/08/2004 C02 David USA 5 B005 P07 Air Conditioner 20,000 New zeland

First Normal Form (1NF) นิยามของ 1NF รีเลชันที่เป็น 1NF ต้องไม่มีกลุ่มข้อมูลซ้ำ(Repeating Group) และไม่มีแอตทริบิวต์ที่มีหลายค่า(Multivalued Attribute)

ขจัด 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 Smith P03 Dinning Table 5,000 2 B002 P02 Bed 15,000 E03 Benny P05 Electric Fan 3,000 10 P04 Printer 12,000 B003 3/08/2004 C01 Jennifer Newzeland E01 Johnson B004 4/08/2004 C02 David USA 5 B005 P07 Air Conditioner 20,000 New zeland

รีเลชันที่ไม่มี Multivalued Attr รีเลชันที่ไม่มี 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 Smith P03 Dinning Table 5,000 2 B002 P02 Bed 15,000 E03 Benny P05 Electric Fan 3,000 10 P04 Printer 12,000 B003 3/08/2004 C01 Jennifer Newzeland E01 Johnson B004 4/08/2004 C02 David USA 5 B005 P07 Air Conditioner 20,000

หา 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

รีเลชันที่อยู่ในรูป 1NF 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 Smith P03 Dinning Table 5,000 2 B002 P02 Bed 15,000 E03 Benny P05 Electric Fan 3,000 10 P04 Printer 12,000 B003 3/08/2004 C01 Jennifer Newzeland E01 Johnson B004 4/08/2004 C02 David USA 5 B005 P07 Air Conditioner 20,000

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

รีเลชันอยู่ในรูป 1NF แต่ไม่เป็น 2NF เนื่องจากมี Partial Dependency 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 Smith P03 Dinning Table 5,000 2 B002 P02 Bed 15,000 E03 Benny P05 Electric Fan 3,000 10 P04 Printer 12,000 B003 3/08/2004 C01 Jennifer Newzeland E01 Johnson B004 4/08/2004 C02 David USA 5 B005 P07 Air Conditioner 20,000 Partial Dependency Partial Dependency Fully Functional Dependency

วิธรการปรับจาก 1NF เป็น 2NF ให้แตกรีเลชัน โดยเอากลุ่มแอตทริบิวต์ที่ขึ้นกับบางส่วนของ Primary ออกเป็นรีเลชันใหม่ Smith E02 Newzeland Jennifer C01 1 12,000 Printer P04 4/08/2004 B005 Emp_Name Emp_ID Address Cus_ Name Cus_ID QTY Unit Price P_Name P_ID Bill_Date Bill_No 2 20,000 Air Conditioner P07 Johnson E01 USA David C02 5 3,000 Electric Fan P05 B004 5,000 Dinning Table P03 10 12,500 Sofa Bed P01 3/08/2004 B003 Benny E03 Australia Pim C03 1/08/2004 B002 15,000 Bed P02 B001 Emp_Name Emp_ID Address Cus_Name Cus_ID Bill_Date Bill_No Unit Price P_Name P_ID QTY P_ID Bill_No

Bill Bill_Details Product Bill_No P_ID QTY B001 P01 1 P03 2 B002 P02 Bill_Date Cus_ID Cus_ Name Address Emp_ID Emp_Name B001 1/08/2004 C03 Pim Australia E02 Smith B002 E03 Benny B003 3/08/2004 C01 Jennifer Newzeland E01 Johnson B004 4/08/2004 C02 David USA B005 Bill_Details Bill_No P_ID QTY B001 P01 1 P03 2 B002 P02 P05 10 P04 B003 B004 5 B005 P07 Product P_ID P_Name Unit Price P01 Sofa Bed 12,500 P03 Dinning Table 5,000 P02 Bed 15,000 P05 Electric Fan 3,000 P04 Printer 12,000 P07 Air Conditioner 20,000

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

Bill Bill_Details Product ยังไม่เป็น 3NF เป็น 3NF แล้ว ยังไม่เป็น 3NF Bill_No Bill_Date Cus_ID Cus_ Name Address Emp_ID Emp_Name B001 1/08/2004 C03 Pim Australia E02 Smith B002 E03 Benny B003 3/08/2004 C01 Jennifer Newzeland E01 Johnson B004 4/08/2004 C02 David USA B005 Bill_Details Bill_No P_ID QTY B001 P01 1 P03 2 B002 P02 P05 10 P04 B003 B004 5 B005 P07 Product เป็น 3NF แล้ว P_ID P_Name Unit Price P01 Sofa Bed 12,500 P03 Dinning Table 5,000 P02 Bed 15,000 P05 Electric Fan 3,000 P04 Printer 12,000 P07 Air Conditioner 20,000 ยังไม่เป็น 3NF

อาจแตกตารางเป็นดังนี้ Product P_ID P_Name Unit Price P01 Sofa Bed 12,500 P03 Dinning Table 5,000 P02 Bed 15,000 P05 Electric Fan 3,000 P04 Printer 12,000 P07 Air Conditioner 20,000 แต่การแตกแบบนี้ทำให้เกิดความซ้ำซ้อนมากกว่า จึงไม่นิยมแตกออก ให้ใช้รีเลชัน Product เดิมก่อนแตก อาจแตกตารางเป็นดังนี้ P_ID P_Name P01 Sofa Bed P03 Dinning Table P02 Bed P05 Electric Fan P04 Printer P07 Air Conditioner P_Name Unit Price Sofa Bed 12,500 Dinning Table 5,000 Bed 15,000 Electric Fan 3,000 Printer 12,000 Air Conditioner 20,000

แตกรีเลชันได้เป็นดังนี้ Transitive Dependency Bill Bill_No Bill_Date Cus_ID Cus_ Name Address Emp_ID Emp_Name B001 1/08/2004 C03 Pim Australia E02 Smith B002 E03 Benny B003 3/08/2004 C01 Jennifer Newzeland E01 Johnson B004 4/08/2004 C02 David USA B005 แตกรีเลชันได้เป็นดังนี้ Bill Customer Cus_ID Cus_Name Address C03 Pim Australia C01 Jennifer Newzeland C02 David USA Bill_No Bill_Date Cus_ID Emp_ID B001 1/08/2004 C03 E02 B002 E03 B003 3/08/2004 C01 E01 B004 4/08/2004 C02 B005 Employee Emp_ID Emp_Name E02 Smith E03 Benny E01 Johnson

Bill Customer Employee Bill_Details Product Cus_ID Cus_Name Address Pim Australia C01 Jennifer Newzeland C02 David USA Bill_No Bill_Date Cus_ID Emp_ID B001 1/08/2004 C03 E02 B002 E03 B003 3/08/2004 C01 E01 B004 4/08/2004 C02 B005 Employee Emp_ID Emp_Name E02 Smith E03 Benny E01 Johnson Bill_Details Bill_No P_ID QTY B001 P01 1 P03 2 B002 P02 P05 10 P04 B003 B004 5 B005 P07 Product P_ID P_Name Unit Price P01 Sofa Bed 12,500 P03 Dinning Table 5,000 P02 Bed 15,000 P05 Electric Fan 3,000 P04 Printer 12,000 P07 Air Conditioner 20,000