Normalization

Download Report

Transcript Normalization

รูปแบบทีเ่ ป็ นบรรทัดฐาน
(Normalization)
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 1
วัตถุประสงค์ของการทา Normalization
้
• เพือ
่ ลดความซ้าซอนของข
้อมูลทีจ
่ ัดเก็บในแต่ละ
ตาราง
• ทาให ้ลดเนือ
้ ทีใ่ นการจัดเก็บข ้อมูล
• ลดปั ญหาเนือ
่ งจากการเพิม
่ ปรับปรุงและลบข ้อมูล
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 2
ั พันธ์ระหว่างแอททริบวิ ต์
ความสม
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 3
ั พันธ์ระหว่างแอททริบวิ ต์
ความสม
ั พันธ์ระหว่างแอททริบวิ ต์แบบฟั งก์ชน
ั
• ความสม
(Functional Dependency)
ั พันธ์ระหว่างแอททริบวิ ต์แบบทัง้ หมด
– ความสม
ั พันธ์ระหว่างแอททริบวิ ต์แบบบางสว่ น
– ความสม
ั พันธ์ระหว่างแอททริบวิ ต์แบบTransitive
– ความสม
ั พันธ์ระหว่างแอททริบวิ ต์แบบหลายค่า
• ความสม
(Multivalued Dependency)
ั พันธ์ระหว่างแอททริบวิ ต์แบบ Join
• ความสม
(Join Dependency)
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 4
ั พันธ์ระหว่างแอททริบวิ ต์แบบฟั งก์ชน
ั
ความสม
• หมายถึงการทีค
่ า่ ของแอททริบวิ ต์หนึง่ หรือ
มากกว่าหนึง่ แอททริบวิ ต์สามารถระบุคา่ ของแอ
ททริบวิ ต์อน
ื่ ๆในแถวเดียวกันของตารางนั น
้ ได ้
• ตัวระบุคา่ แอททริบวิ ต์อน
ื่ ๆเรียกว่า
“Determinant”
• แอททริบวิ ต์อน
ื่ ๆทีถ
่ ก
ู ระบุคา่ เรียกว่า
“Dependent”
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 5
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 6
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 7
ั พันธ์ระหว่างแอททริบวิ ต์แบบทัง้ หมด
ความสม
• หมายถึงแอททริบวิ ต์ซงึ่ เป็ น Determinant ที่
เล็กทีส
่ ด
ุ สามารถระบุคา่ ของแอททริบวิ ต์อน
ื่ ๆที่
ั เจน
เป็ น Dependent ได ้อย่างชด
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 8
ั พันธ์ระหว่างแอททริบวิ ต์แบบบางสว่ น
ความสม
ั พันธ์ระหว่างแอททริบวิ ต์แบบบางสว่ น
• ความสม
จะเกิดขึน
้ ได ้เมือ
่ ตารางหนึง่ ๆมีคย
ี ห
์ ลักเป็ นคีย ์
ผสม
• และแอททริบวิ ต์บางสว่ นของคียห
์ ลักสามารถ
ระบุคา่ ของแอททริบวิ ต์อน
ื่ ๆ (non-key
attribute) ในแถวเดียวกันได ้
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 9
ั พันธ์ระหว่างแอททริบวิ ต์แบบบางสว่ น
ความสม
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 10
ั พันธ์ระหว่างแอททริบวิ ต์แบบบางสว่ น
ความสม
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 11
ั พันธ์ระหว่างแอททริบวิ ต์แบบ Transitive
ความสม
ั พันธ์ซงึ่ มีแอททริบวิ ต์ทไี่ ม่ใชค
่ า่ คีย ์
• เป็ นความสม
หลัก (non-key attribute) สามารถระบุคา่
dependent ตัวอืน
่ ๆได ้
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 12
ั พันธ์ระหว่างแอททริบวิ ต์แบบ Transitive
ความสม
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 13
ั พันธ์ระหว่างแอททริบวิ ต์แบบ Transitive
ความสม
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 14
ั พันธ์ระหว่างแอททริบวิ ต์แบบหลายค่า
ความสม
• จะเกิดขึน
้ ก็ตอ
่ เมือ
่
– ตารางหนึง่ ประกอบด ้วยสามแอททริบวิ ต์ขน
ึ้ ไป
– และแอททริบวิ ต์ทเี่ ป็ น Determinant สามารถระบุ
ค่าของแอททริบวิ ต์อน
ื่ ทีเ่ ป็ น Dependent ได ้
มากกว่าหนึง่ ค่า หรือข ้อมูลของแอททริบวิ ต์ทเี่ ป็ น
Dependent เป็ นกลุม
่ ข ้อมูล
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 15
ั พันธ์ระหว่างแอททริบวิ ต์แบบหลายค่า
ความสม
• รหัสอาจารย์ ->> รหัสชุดวิชาทีส
่ อน
ึ ษาในการปรึกษา
• รหัสอาจารย์ ->> รหัสนักศก
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 16
ั พันธ์ระหว่างแอททริบวิ ต์แบบ Join
ความสม
• เป็ นกฏเกณฑ์สาคัญในการแตกตาราง โดยที่
ั พันธ์แบบ Join ได ้ก็
ตารางใด ๆจะมีความสม
ต่อเมือ
่ ตารางนัน
้ ๆสามารถจาแนกออกเป็ น
ตารางย่อยได ้ และเมือ
่ นาตารางย่อยเหล่านั น
้ มา
รวมกันก็จะต ้องได ้ตารางดังเดิม
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 17
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 18
ทาไมต ้องทาให ้ตารางเป็ นรูปแบบที่
เป็ นบรรทัดฐาน ?
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 19
Need for Normalization
Figure 4.1
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 20
ปั ญหาทีพ
่ บคือ
• สมมุตวิ า่ เราให ้ PRO_NUM เป็ น Primary Key
• ข ้อมูลทีเ่ ราบันทึกในตารางอาจมีลักษณะของ
Inconsistency Data
• ข ้อมูลในตารางผิดพลาด (data anomalies)
่ การแก ้ไข JOB_CLASS ของ
– การ Update ข ้อมูล เชน
พนักงาน
่ ในการเพิม
– การ Insert เชน
่ พนักงานใหม่ต ้อง
assign โครงการให ้กับพนักงานนัน
้
่ ถ ้าลบพนักงานออก อาจจะกระทบให ้
– การลบข ้อมูล เชน
ข ้อมูลในฟิ ลด์อน
ื่ ๆถูกลบด ้วย
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 21
Normalization
•
•
•
•
•
•
First Normal Form (1NF)
Second Normal Form (2NF)
Third Normal Form (3NF)
Boyce/Codd Normal Form (BCNF)
Fourth Normal Form (4NF)
Fifth Normal Form (5NF)
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 22
การแปลงให ้อยูใ่ นรูป 1NF
(Conversion to 1NF)
• เป็ นการกาจัด Repeating Group
(Repeating groups must be eliminated)
• หมายถึงในระดับ 1NF จะต ้องไม่มก
ี ลุม
่ ของ
ข ้อมูล
• วิธก
ี ารปรับให ้อยูใ่ นระดับ 1NF คือ การ
กาหนดคียห
์ ลักทีเ่ หมาะสม
– Proper primary key developed
• Uniquely identifies attribute values (rows)
• Combination of PROJ_NUM and EMP_NUM
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 23
การแปลงให ้อยูใ่ นรูป 1NF
(Conversion to 1NF)
– ในขัน
้ นีย
้ ังไม่ได ้พิจารณาถึง Partial & Transitive
Dependencies เพราะว่าเราจะพิจารณาในขัน
้ ต่อไป
“Dependencies can be identified
• Desirable dependencies based on primary key
• Less desirable dependencies
– Partial
» based on part of composite primary key
– Transitive
» one nonprime attribute depends on another
nonprime attribute “
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 24
Dependency Diagram (1NF)
Figure 4.4
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 25
Data Organization: 1NF
Figure 4.3
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 26
สรุประดับของ1NF คือ
• ต ้องมีการกาหนดแอททริบวิ ต์ทเี่ ป็ นคีย ์
(All key attributes defined)
• ในแต่ละแถว ข ้อมูลในคอลัมน์ต ้องมีเพียงค่าเดียว
ไม่มก
ี ลุม
่ ข ้อมูลเกิดขึน
้ ในคอลัมน์เดียวกัน
(No repeating groups in table)
• ทุกแอททริบวิ ต์ต ้องขึน
้ กับคียห
์ ลัก
(All attributes dependent on primary key)
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 27
การแปลงให ้อยูใ่ นระดับ 2NF Conversion to 2NF
• พิจารณาตารางทีผ
่ า่ นในระดับ 1NF
• พิจารณาแอทริบวิ ต์ทเี่ ป็ นสว่ นประกอบของคีย ์
หลัก
• แยกแอททริบวิ ต์ทส
ี่ ามารถระบุแอททริบวิ ต์
อืน
่ และแยกออกมาเป็ นตารางใหม่
ั พันธ์ระหว่างแอททริบวิ ต์
• ต ้องไม่มค
ี วามสม
แบบบางสว่ น
PROJECT (PROJ_NUM, PROJ_NAME)
EMPLOYEE (EMP_NUM, EMP_NAME, JOB_CLASS, CHG_HOUR)
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
ASSIGN (PROJ_NUM, EMP_NUM, HOURS)
หน ้า 28
2NF Conversion Results
Figure 4.5
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 29
สรุป 2NF
• In 1NF
• Includes no partial dependencies
– No attribute dependent on a portion of
primary key
• Still possible to exhibit transitive
dependency
– Attributes may be functionally dependent
on nonkey attributes
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 30
การแปลงให ้อยูใ่ นระดับ
(Conversion to 3NF)
• Create separate table(s) to eliminate
transitive functional dependencies
PROJECT (PROJ_NUM, PROJ_NAME)
ASSIGN (PROJ_NUM, EMP_NUM, HOURS)
EMPLOYEE (EMP_NUM, EMP_NAME, JOB_CLASS)
JOB (JOB_CLASS, CHG_HOUR)
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 31
สรุป 3NF
• In 2NF
• Contains no transitive
dependencies
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 32
Additional DB Enhancements
Figure 4.6
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 33
Boyce-Codd Normal Form (BCNF)
• Every determinant in the table is a
candidate key
– Determinant is attribute whose value
determines other values in row
– 3NF table with one candidate key is
already in BCNF
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 34
3NF Table Not in BCNF
Figure 4.7
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 35
Decomposition of Table
Structure to Meet BCNF
Figure 4.8
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 36
Decomposition into BCNF
Figure 4.9
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 37
Normalization and Database Design
• Normalization should be part of the design
process
• E-R Diagram provides macro view
• Normalization provides micro view of entities
– Focuses on characteristics of specific entities
– May yield additional entities
• Difficult to separate normalization from E-R
diagramming
• Business rules must be determined
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 38
Initial ERD for Contracting
Company
Figure 4.10
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 39
Modified ERD for
Contracting Company
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
Figure 4.11
หน ้า 40
Final ERD for
Contracting Company
Figure 4.12
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 41
Higher-Level Normal Forms
• Fourth Normal Form (4NF)
– Table is in 3NF
– Has no multiple sets of multivalued
dependencies
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 42
Conversion to 4NF
Figure 4.15
Set of Tables in 4NF
Figure 4.14
Multivalued Dependencies
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 43
Denormalization
• คือกระบวนการทีน
่ าแนวคิดเรือ
่ งการทาให ้เป็ น
บรรทัดฐานมาพิจารณาใหม่โดยคานึงถึง
ิ ธิภาพในการประมวลผล
ประสท
้
• อาจจะมีผลทาให ้เกิดปั ญหาความซ้าซอนของข
้อมูล
ปั ญหาการ Insert Update และ Delete บ ้าง
• ผู ้ออกแบบฐานข ้อมูลควรวิเคราะห์และประเมินความ
์ าราง
เหมาะสมในการทาดีนอร์มอลไลซต
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 44
Unnormalized Table Defects
• Data updates less efficient
• Indexing more cumbersome
• No simple strategies for creating views
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา
หน ้า 45