งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Chapter 5 Part 3.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Chapter 5 Part 3."— ใบสำเนางานนำเสนอ:

1 Chapter 5 Part 3

2 Agenda Normal form

3 The Seven Normal Forms Normal form Description First (1NF)
The value stored at the intersection of each row and column must be a scalar value, and a table must not contain any repeating columns Second (2NF) Every non-key column must depend on the entire PK Third (3NF) Every non-key column must depend only on the PK Boyce-Codd(BCNF) A non-key column can’t be dependent on another non-key column. This prevents transitive dependencies, where column A depends on column C and column B depends on column C. Since both A and B depend on C, A and B should be moved into another table with C as the key.

4 The Seven Normal Forms Normal form Description Fourth (4NF)
A table must not have more than one multivalued dependency, where the PK has a one-to-many relationship to non-key columns. This form gets rid of misleading many-to-many relationships. Fifth (5NF) The data structure is split into smaller and smaller tables until all redundancy has been criminated. If further splitting would result in tables that couldn’t be joined to recreate the original table, the structure is in fifth normal form. Domain-key (DKNF) or Sixth (6NF) Every constraint on the relationship is dependent only on key constraints and domain constraints, where a domain is the set of allowable values for a column. This form prevents the insertion of any unacceptable data by enforcing constraints at the level of relationship, rather than at the table or column level. DKNF is less a design model than an abstract “ultimate” normal form

5 The benefits of normalization
Retrieval more efficient Insert, update, and delete operation more efficient Data redundancy is minimized Simplifies maintenance and reduces storage

6 Example 1:

7 ตารางที่มีลักษณะข้อมูลเป็น Repeating group รหัสวิชาที่ลงทะเบียน
First Normal Form (1NF) ทุก Attribute ในแต่ละ record จะเป็น single value ไม่มี ค่าของกลุ่ม ข้อมูลที่ ซ้ำกัน (Repeating Group) ข้อมูลทุกแถว (Tuple) ต้องมีค่าไม่ซ้ำกัน ตารางที่มีลักษณะข้อมูลเป็น Repeating group รหัสนักศึกษา ชื่อ นามสกุล รหัสวิชาที่ลงทะเบียน 001 สมชาย สมใจนึก 002 ธีรชาย บุญมาศ Repeating Group

8

9 Second Normal Form (2NF)
1. ต้องเป็น First Normal Form (1NF) มาก่อน 2. ต้องไม่มี Partial Dependency (การขึ้นต่อกัน บางส่วน) สรุปก็คือ นอร์มัลไลเซชันระดับที่ 2 (Second normal form : 2NF) เป็นการขจัดแอตตริบิวที่ ไม่ ขึ้นกับทั้งส่วนของคีย์หลัก ออกไป เพื่อให้ แอตตริบิวอื่นทั้งหมดขึ้นตรงกับส่วนที่เป็นคีย์ หลักทั้งหมดเท่านั้น

10 ตัวอย่างตารางที่ Partial Dependency (การขึ้นต่อกันบางส่วน)
รหัสนักศึกษา รหัสวิชา เกรด ชื่อวิชา F01 A การเขียนโปรแกรม F02 B การออกแบบฐานข้อมูล D C รหัสนักศึกษา รหัสวิชา เกรด ชื่อวิชา Partial Dependency รหัสนักศึกษา, รหัสวิชา เกรด ,ชื่อวิชา รหัสวิชา ชื่อวิชา

11 Second Normal Form (2NF)
วิธีขจัดปัญหา ต้องสร้างตารางเพิ่ม นำคอลัมย์ที่มีปัญหาไปใส่ในตารางที่สร้างเพิ่ม กำหนดคีย์หลักให้กับตารางที่สร้างใหม่ แอททริบิวต์ใดในตารางเดิม เมื่อนำไปใส่ในตาราง ใหม่ ให้ตัดออกจากตารางเดิม ยกเว้น ส่วนของ คีย์หลัก คงไว้ในตารางเดิม

12 ตารางนี้เมื่อทำให้อยู่ในรูป 2 NF จะได้ 2 ตารางดังนี้
ตารางผลการเรียน รหัสนักศึกษา รหัสวิชา เกรด ชื่อวิชา F01 A การเขียนโปรแกรม F02 B การออกแบบฐานข้อมูล D C ตารางนี้เมื่อทำให้อยู่ในรูป 2 NF จะได้ 2 ตารางดังนี้ ตารางผลการเรียน ตารางวิชา รหัสนักศึกษา รหัสวิชา เกรด F01 A F02 B D C รหัสวิชา ชื่อวิชา F01 การเขียนโปรแกรม F02 การออกแบบฐานข้อมูล

13 ให้นักศึกษานอมัลไลซ์ตารางนี้ให้อยู่ในรูปแบบ 2NF
ตารางผลการอบรม รหัสผู้เข้าอบรม รหัสครอสอบรม ชื่อผู้เข้าอบรม ชื่อครอสอบรม ผลการทดสอบ 0001 TR01 นายเอ ใจดี การซ่อมไฟฟ้า ผ่าน TR05 การซ่อมตู้เย็น 0002 TR03 นางบี ใจกล้า การทำอาหาร ไม่ผ่าน TR09 การเลี้ยงเด็ก 0003 นายรวย มีเงิน

14 Third Normal Form (3NF) 1.Relation นั้นจะต้องมีคุณสมบัติ 2NF
2.ต้องไม่มีความสัมพันธ์ระหว่าง Non-key Attribute หรือ ไม่มี Transitive Dependency สรุป : แอททริบิวต์ที่ไม่ใช่คีย์หลัก ต้องไม่ขึ้นต่อกันเอง

15 Third Normal Form (3NF) วิธีขจัดปัญหา สร้างตารางเพิ่ม
นำแอททริบิวต์ที่มีปัญหามาใส่ในตารางใหม่ กำหนดคีย์หลัก แอททริบิวต์ที่ย้ายจากตารางเดิมไปใส่ในตารางใหม่ให้ ตัดออกจากตารางเดิม นำคีย์หลักในข้อ 3 ไปใส่ในตารางเดิม

16 รหัสพนักงาน ชื่อสกุล รหัสแผนก ชื่อแผนก เงินเดือน
P001 นพเกศ แก้วใส A001 บัญชี 25000 P002 วารุณี รวดเร็ว F001 การเงิน 30000 คีย์หลักของตารางนี้คือ รหัสพนักงาน จากตารางยังมีฟังก์ชั่นการขึ้นต่อกันแบบ Transitive Dependency อยู่ คือ รหัสแผนก ซึ่งไม่ใช่คีย์หลักของตาราง แต่สามารถระบุ ค่า ชื่อแผนก ได้ คือ ถ้ารู้รหัสแผนก ก็จะรู้ชื่อแผนก จากตารางข้างบน ทำให้อยู่ในรูป 3 NF จะได้ 2 ตารางข้างล่างนี้ รหัสพนักงาน ชื่อสกุล เงินเดือน P001 นพเกศ แก้วใส 25000 P002 วารุณี รวดเร็ว 30000 รหัสแผนก A001 F001 รหัสแผนก ชื่อแผนก A001 บัญชี F001 การเงิน

17 สรุป Normalization 1NF ทุกแอททริบิวต์ในแต่ละแถวมีค่าของข้อมูล เพียงค่าเดียว 2NF รีเลชันนั้นต้องไม่มีความสัมพันธ์ระหว่างแอ ททริบิวต์แบบบางส่วน (แอททริบิวต์ทุกตัวต้อง ขึ้นกับคีย์หลักทุกตัว ไม่ขึ้นอยู่กับตัวใดตัวหนึ่ง) 3NF ทุกแอททริบิวต์ที่ไม่ใช่คีย์หลักไม่มีคุณสมบัติ ในการกำหนดค่าของ แอ ททริบิวต์อื่น

18 Example 2:

19 How to apply the first normal form
A table in first normal form often has repeating values in its rows. This can be resolved by applying the second normal form.

20 How to apply the second normal form
Every non-key column must depend on the entire primary key. To apply second normal form, you move columns that don’t depend on the entire primary key to another table and then establish a relationship between the two tables Second normal form helps remove redundant row data, which can save storage space, make maintenance easier, and reduce the chance of storing inconsistent data

21 How to apply the third normal form
For a table to be in third normal form, every non-key column must depend only on the primary key. If a column doesn’t depend only on the primary key. It implies that the column is assigned to the wrong table or that it can be computed from other columns in the table.

22 Example 3:

23

24 1NF

25 2NF

26 3NF

27 Example 4:

28 First Normal Form (1NF) A database schema is in First Normal Form if all tables are flat Student Student Name GPA Alice 3.8 Bob 3.7 Carol 3.9 Name GPA Courses Alice 3.8 Bob 3.7 Carol 3.9 Math DB OS Takes Course Student Course Alice Math Carol DB Bob OS Course Math DB OS DB OS May need to add keys Math OS

29 Relational Schema Design
Person buys Product name price ssn Conceptual Model: Relational Model: plus FD’s FD: Functional dependencies Normalization: Eliminates anomalies ขจัดความผิดปกติ

30 Data Anomalies When a database is poorly designed we get anomalies:
Redundancy: data is repeated Update anomalies: need to change in several places Delete anomalies: may lose data when we don’t want

31 Relational Schema Design
Recall set attributes (persons with several phones): Name SSN PhoneNumber City Fred Seattle Joe Westfield One person may have multiple phones, but lives in only one city Anomalies: ความผิดปกติ Redundancy = repeated data Update anomalies = Fred moves to “Bellevue” Deletion anomalies = Joe deletes his phone number: what is his city ?

32 Relation Decomposition
Break the relation into two: Name SSN PhoneNumber City Fred Seattle Joe Westfield Name SSN City Fred Seattle Joe Westfield SSN PhoneNumber Anomalies are gone: No more repeated data Easy to move Fred to “Bellevue” (how?) Easy to delete all Joe’s phone numbers (how?)

33 Relational Schema Design (or Logical Design)
Main idea: Start with some relational schema Find out its functional dependencies Use them to design a better relational schema

34 Functional Dependencies
A form of constraint hence, part of the schema Finding them is part of the database design Also used in normalizing the relations

35 Examples An FD holds, or does not hold on an instance: ตัวอย่าง EmpID
Name Phone Position E0045 Smith 1234 Clerk E3542 Mike 9876 Salesrep E1111 E9999 Mary Lawyer EmpID  Name, Phone, Position Position  Phone but not Phone  Position

36 Example EmpID Name Phone Position E0045 Smith 1234 Clerk E3542 Mike
Salesrep E1111 E9999 Mary Lawyer Position  Phone

37 Example EmpID Name Phone Position E0045 Smith 1234  Clerk E3542 Mike
Clerk E3542 Mike 9876 Salesrep E1111 E9999 Mary Lawyer but not Phone  Position

38 Example SSN  Name, City What the key? {SSN, PhoneNumber}
Fred Seattle Joe Westfield SSN  Name, City What the key? {SSN, PhoneNumber} Hence SSN  Name, City is a “bad” dependency

39 BCNF (Boyce/Codd Normal Form)
นิยาม ต้องเปน 3NF และไมมี attribute อื่นในรีเลชันที่ สามารถระบุคาของ attribute ที่เปนคีย หลักหรือสวนหนึ่งสวนใดของคียหลักในกรณีที่คีย หลักเปนคียผสม โดยทั่วไปรูปแบบ BCNF จะอยูในรูปแบบ 3NF แตไม จําเปนเสมอไปที่รูปแบบ 3NF จะอยูในรูป แบบ BCNF ทั้งนี้เนื่องจากรูปแบบนี้เปนการขยายขอบเขต ของรูปแบบ 3NF ใหเหมาะสมยิ่งขึ้น โดยรูป แบบที่ต องทําใหเปน BCNF มักจะมีคุณสมบัติ ดังนี้ เป็นรีเลชันที่มีคียคูแขงหลายคีย (Multiple Candidate Key) โดยที่คีย์คูแขงเปนคียผสม (Composite Key) และคียคูแขงนั้นมีบางสวนซํ้าซอนกัน (Overlapped) มี attribute บางตัวรวมกันอยู

40 Question & Answer

41 References รัฐสิทธิ์ สุขะหุต. (2555). ฐานข้อมูลเบื้องต้น
Murach, J. (2015). Murach’s MySQL.


ดาวน์โหลด ppt Chapter 5 Part 3.

งานนำเสนอที่คล้ายกัน


Ads by Google