การ normalization
TRANSCRIPT
บทท 5 นอรมลไลเซชน
NORMALIZATION
ฐานขอมลเบองตน โดย อ.แพรตะวน จารตน (ปรบปรง) วชา
1
ความหมายและจดประสงคของการนอรมลไลเซชน
ฟงกชนการขนตอกน (Function Dependencies)
กระบวนการนอรมลไลเซชน
2
หวขอการบรรยาย
นอรมลไลเซชน เปนทฤษฎทผออกแบบฐานขอมลจะตองน ามาใชในการแปลงขอมลทอยในรปแบบทซบซอน ใหอยในรปแบบทงายตอการน าไปใชงานและกอใหเกดปญหานอยทสด
ในบทนจะสอนกระบวนการนอรมลไลเซชน ใน 3 ระดบดวยกนคอ นอรมลไลชนระดบท 1 หรอเรยกวา 1NF นอรมลไลชนระดบท 2 หรอเรยกวา 2NF นอรมลไลชนระดบท 3 หรอเรยกวา 3NF
3
ความหมายและจดประสงคของการนอรมลไลเซชน
4
วเคราะหความ
ตองการของผใช E-R Diagram
รเลชนทมรปแบบไมเปนบรรทดฐาน (Unnormalized relation)
1 NF
2 NF
3 NF
บอยด คอดด
4 NF
รเลชนทเปนแบบบรรทดฐาน (Normalized relation)
กระบวนการปรบบรรทดฐาน
(Normalization)
ลดความซ าซอนของขอมล เมอลดความซ าซอนกท าใหลดเนอหาทใชในการจดเกบขอมล
ลดปญหาความไมถกตองของขอมล เมอขอมลไมเกดความซ าซอนท าใหการปรบปรงขอมลสามารถท าไดจากแหลงขอมลเพยงแหลงเดยว
ลดความผดพลาดทอาจเกดจากการปรบปรงขอมล (update anomalies) ซงประกอบดวย
5
วตถประสงคของนอรมลไลซ (Normalization)
ความซ าซอนและขอผดพลาดจากการปรบปรงขอมล 6
แนวคดหลกอนส าคญของการออกแบบฐานขอมลเชงสมพนธ คอ การออกแบบใหมการเกบขอมลซ าซอนนอยทสด เพอประหยดเนอทในการเกบขอมลและลดปญหาทจะเกดดงตวอยางตอไปน
7
รหสพนกงาน ชอ-สกล ต าแหนง เงนเดอน รหสสาขา ทอย
SG21 ชชาต สขศร ผจดการ 30000 B005 เชยงใหม
SG37 ศร ดวงเดน ผชวย 20000 B003 กรงเทพ
SG14 ดวงใจ มสข เลขานการ 20000 B003 กรงเทพ
SG09 อจฉรา เขยวแกว ผจดการ 30000 B007 พษณโลก
รหสพนกงาน ชอ-สกล ต าแหนง เงนเดอน รหสสาขา
SG21 ชชาต สขศร ผจดการ 30000 B005
SG37 ศร ดวงเดน ผชวย 20000 B003
SG14 ดวงใจ มสข เลขานการ 20000 B003
SG09 อจฉรา เขยวแกว ผจดการ 30000 B007
รหสสาขา ทอย
B005 เชยงใหม
B003 กรงเทพ
B007 พษณโลก
Employee (พนกงาน) Branch (สาขา)
Employee_Branch (รวมรายละเอยดของพนกงานไวดวยกนกบรายละเอยดของสาขา)
ตวอยางการออกแบบฐานขอมลทด
ตวอยางการออกแบบฐานขอมลทจะมปญหาของความซ าซอนตามมา
8
ตวอยางปญหาความซ าซอนในขอมล รเลชน EMPLOYEE_BRANCE
ความผดพลาดจากการเพม oถาตองการเพมพนกงานใหม ทอยสาขา B005 oจะตองกรอก B005 และทอยสาขา คอ เชยงใหม เพมอก
รหสพนกงาน ชอ-สกล ต าแหนง เงนเดอน รหสสาขา ทอย
SG21 ชชาต สขศร ผจดการ 30000 B005 เชยงใหม
SG37 ศร ดวงเดน ผชวย 20000 B003 กรงเทพ
SG14 ดวงใจ มสข เลขานการ 20000 B003 กรงเทพ
SG09 อจฉรา เขยวแกว ผจดการ 30000 B007 พษณโลก
9
ตวอยางปญหาความซ าซอนในขอมล รเลชน EMPLOYEE_BRANCE
รหสพนกงาน ชอ-สกล ต าแหนง เงนเดอน รหสสาขา ทอย
SG21 ชชาต สขศร ผจดการ 30000 B005 เชยงใหม
SG37 ศร ดวงเดน ผชวย 20000 B003 กรงเทพ
SG14 ดวงใจ มสข เลขานการ 20000 B003 กรงเทพ
SG09 อจฉรา เขยวแกว ผจดการ 30000 B007 พษณโลก
ความผดพลาดจากการเพม ถาตองการเพมสาขา จะมปญหาคอ ตารางนมทงขอมลพนกงานและขอมลสาขาอยรวมกน หากจะเพมเฉพาะ รหสสาขา และ ทอย กไมไดเพราะ รหสพนกงาน จะมคาวางไมไดเพราะเปน Primary Key ของตาราง ดงนนจะบนทกไดกตอเมอมพนกงานแลว
10
ความผดพลาดจากการลบขอมล
ถาลบขอมลหนงแลวสงผลกระทบกบขอมลอน ทตองถกลบตาม เชน พนกงานรหส SG21 ลาออก กลบแถวนนออก
ขอมลสาขา B005 กจะหายไปดวย
ขอผดพลาดจากการเปลยนแปลง
ในกรณทตองการเปลยนแปลงขอมลบางตวของสาขา เชน เปลยนทอยของ B003 กตองเปลยนหลายท
ถาหากมพนกงานสงกดสาขานหลายทกตองไปตามแกทก ๆ ท
ดงนนเราควรแยกตาราง Employee_Brance ออกเปนสองตาราง คอ ตารางพนกงาน
และตารางสาขา
11
พนกงาน
สาขา
รหสพนกงาน ชอ-สกล ต าแหนง เงนเดอน รหสสาขา
SG21 ชชาต สขศร ผจดการ 30000 B005
SG37 ศร ดวงเดน ผชวย 20000 B003
SG14 ดวงใจ มสข เลขานการ 20000 B003
SG09 อจฉรา เขยวแกว ผจดการ 30000 B007
รหสสาขา ทอย
B005 เชยงใหม
B003 กรงเทพ
B007 พษณโลก
ฟงกชนการขนตอกน (Functional Dependency : FD)
ถาให X และ Y เปน Attribute ใน Relation ใดๆ แทนดวย R(X,Y) Attribute Y เปน จะถกเรยกวามฟงกชนการขนตอกนกบแอททรบวต X กตอเมอ แตละคาทไมซ ากนของ แอททรบวต X มขอมลของ Y ทเกยวของกบ X เพยง 1 คา
เขยนแทนดวย สญลกษณ X Y
12
13
EmployeeNo Name Position
S01 ฉตรชย มสมบต Manager
S02 เอกชย ใจด Manager Assistant
S03 มนรตน เจรญสข Manager
S04 ขวญชย ใจเพชร Manager Assistant
S05 มานพ เกตแกว Staff
S06 ดวงกมล ทพยเทพ Staff
ตวอยาง
EmployeeNo Position
ตวอยาง A) employeeNo Position B) Position (not) employeeNo
14
EmployeeNo Position
employeeNo S21 Manager
Position EmployeeNo
Manager
employeeNo S41
employeeNo S21
A
B
การขนตอกน คา X จะตองก าหนดคา Y ได 1:1
1) Complete dependencies การขนตอกนอยางสมบรณ แอททรบวตทไมใชคยหลก ขนตอ แอททรบวตหรอกลมของแอททรบวตท
เปนคยหลก
ตวอยาง ตารางทมแอทรบวตคาเดยวท าหนาทเปนคยหลก คอ หมายเลขบตรประชาชน
หมายเลขบตรประชาชน ชอเจาของบตร
ชนดของฟงกชนการขนตอกน ( Functional Dependency :FD)
15
หมายเลขบตรประชาชน ชอเจาของบตร
3440100634931 กนกวรรณ พวงพงษ
3437283420343 ชาตชาย เตชะวงศ
2938742039485 กงกาญ เดชาทรพย
16
ตวอยาง ตารางทมแอทรบวตหลายตวข นกบคยหลกตวเดยว
หมายเลขบตรประชาชน ชอเจาของบตร,วนเกด,วนทท าบตร
ชนดของฟงกชนการขนตอกน ( Functional Dependency :FD)
หมายเลขบตรประชาชน ชอเจาของบตร วนเกด วนทท าบตร
3440100634931 กนกวรรณ พวงพงษ 27/03/2520 28/04/2553
3437283420343 ชาตชาย เตชะวงศ 23/06/2522 25/02/2553
2938742039485 กงกาญ เดชาทรพย 21/04/2525 19/0125/52
17
ตวอยาง ตารางทมแอทรบวหลายตวรวมกนเปนคยหลก คอ รหสนกศกษา รหสวชา
ชนดของฟงกชนการขนตอกน ( Functional Dependency :FD)
รหสนกศกษา รหสวชา เกรด
520014001 S001 A
520014001 S002 B
520014002 S001 C
520014002 S002 A
ตารางการลงทะเบยน
รหสนกศกษา,รหสวชา เกรด
2) Partial Dependency (การขนตอกนบางสวน) เกดขนเมอคยหลกประกอบดวยหลาย Attribute รวมกน
เมอแอตทรบวตบางสวนของคยหลก สามารถไประบคาแอตทรบวตตวอน ๆ ทไมใชคยหลกของรเลชนได
รหสนกศกษา รหสวชา เกรด ชอวชา
Partial Dependency
รหสนกศกษา, รหสวชา เกรด , ชอวชา รหสวชา ชอวชา
ชนดของฟงกชนการขนตอกน ( Functional Dependency :FD)
18
19
ตวอยางฟงกชนการขนตอกนแบบ Partial
รหสนกศกษา รหสวชา เกรด ชอวชา
534267001 F01 A การเขยนโปรแกรม
534267001 F02 B การออกแบบฐานขอมล
534267002 F01 D การเขยนโปรแกรม
534267002 F02 A การออกแบบฐานขอมล
534267003 F01 A การเขยนโปรแกรม
534267003 F02 C การออกแบบฐานขอมล
3 Transitive Dependency เกดขนเมอ Attribute ทไมใช Primary Key ไปขนอยกบ Attribute อนทไมใช Primary Key ในรเลชนนน ๆ
เลขประจ าตว ชอ สกล ทอย ต าแหนง รถประจ าต าแหนง
01 ฉตรชย มสมบต กรงเทพ ผจดการ BMW
02 เอกชย ใจด นนทบร ผชวยผจดการ Honda
03 มนรตน เจรญสข เชยงใหม ผจดการ BMW
04 ขวญชย ใจเพชร ราชบร ผชวยผจดการ Honda
ค าอธบาย เลขประจ าตว เปนคยหลก (Primary Key) ของตาราง เลขประจ าตว ชอสกล, ทอย, ต าแหนง ต าแหนง รถประจ าต าแหนง
ชนดของฟงกชนการขนตอกน (Functional Dependency : FD) 20
Normalization คอ กระบวนการปรบปรงโครงสรางขอมลของฐานขอมลทมความซ าซอนใหอยในรปแบบทเปนบรรทดฐาน (Normal Form)
การนอรมลไลเซชนมไดถง 5 ระดบ ในระดบท 3 กจดวาเพยงพอส าหรบการออกแบบฐานขอมลในปจจบน 1NF - ก าจด repeating group (ก าจดกลมของขอมลทมความซ าซอน) 2NF - ก าจด partial dependency (ก าจดการขนตอกนบางสวน) 3NF - ก าจด transitive dependency (ก าจดการขนตอกนของแอตทรบวททไมใชคยหลก)
นอรมลไลซเซชน (Normalization) 21
22
First Normal Form (1NF)
ทก Attribute ในแตละ record จะเปน single value ไมม คาของกลม ขอมลทซ ากน (Repeating Group)
ขอมลทกแถว (Tuple) ตองมคาไมซ ากน
รหสนกศกษา ชอ นามสกล รหสวชาทลงทะเบยน 001 สมชาย สมใจนก 204-101
204-204 204-205
002 ธรชาย บญมาศ 204-102 204-204
ตารางทมลกษณะขอมลเปน Repeating group
Repeating Group
23
Second Normal Form (2NF)
1. ตองเปน First Normal Form (1NF) มากอน
2. ตองไมม Partial Dependency (การขนตอกนบางสวน)
สรปกคอ นอรมลไลเซชนระดบท 2 (Second normal form : 2NF) เปนการ
ขจดแอตตรบวท ไมขนกบทงสวนของคยหลก ออกไป เพอใหแอตตรบวอนทงหมดขนตรงกบสวนทเปนคยหลกทงหมดเทานน
25
26
ตวอยางตารางท Partial Dependency (การขนตอกนบางสวน)
รหสนกศกษา รหสวชา เกรด ชอวชา
534267001 F01 A การเขยนโปรแกรม
534267001 F02 B การออกแบบฐานขอมล
534267002 F01 D การเขยนโปรแกรม
534267002 F02 A การออกแบบฐานขอมล
534267003 F01 A การเขยนโปรแกรม
534267003 F02 C การออกแบบฐานขอมล
รหสนกศกษา รหสวชา เกรด ชอวชา
Partial Dependency
รหสนกศกษา, รหสวชา เกรด ,ชอวชา รหสวชา ชอวชา
Second Normal Form (2NF)
วธขจดปญหา
1) ตองสรางตารางเพม
2) น าคอลมนทมปญหาไปใสในตารางทสรางเพม
3) ก าหนดคยหลกใหกบตารางทสรางใหม
4) แอททรบวตใดในตารางเดม เมอน าไปใสในตารางใหม ใหตดออกจากตารางเดม ยกเวน สวนของคยหลก คงไวในตารางเดม
27
28
ตารางนเมอท าใหอยในรป 2 NF จะได 2
ตารางดงน
รหสนกศกษา รหสวชา เกรด ชอวชา
534267001 F01 A การเขยนโปรแกรม
534267001 F02 B การออกแบบฐานขอมล
534267002 F01 D การเขยนโปรแกรม
534267002 F02 A การออกแบบฐานขอมล
534267003 F01 A การเขยนโปรแกรม
534267003 F02 C การออกแบบฐานขอมล
รหสนกศกษา รหสวชา เกรด
534267001 F01 A
534267001 F02 B
534267002 F01 D
534267002 F02 A
534267003 F01 A
534267003 F02 C
รหสวชา ชอวชา
F01 การเขยนโปรแกรม
F02 การออกแบบฐานขอมล
ตารางผลการเรยน
ตารางผลการเรยน ตารางวชา
29
รหสผเขาอบรม
รหสครอสอบรม
ชอผเขาอบรม ชอครอสอบรม ผลการทดสอบ
0001 TR01 นายเอ ใจด การซอมไฟฟา ผาน
0001 TR05 นายเอ ใจด การซอมตเยน ผาน
0002 TR03 นางบ ใจกลา การท าอาหาร ไมผาน
0002 TR09 นางบ ใจกลา การเลยงเดก ผาน
0003 TR01 นายรวย มเงน การซอมไฟฟา ผาน
0003 TR05 นายรวย มเงน การซอมตเยน ไมผาน
ตารางผลการอบรม
ใหนกศกษานอมลไลซตารางนใหอยในรปแบบ 2NF
Third Normal Form (3NF)
1.Relation นนจะตองมคณสมบต 2NF 2.ตองไมมความสมพนธระหวาง Non-key Attribute หรอ ไมม Transitive Dependency สรป : แอททรบวตทไมใชคยหลก ตองไมขนตอกนเอง
30
Third Normal Form (3NF)
วธขจดปญหา 1. สรางตารางเพม 2. น าแอททรบวตทมปญหามาใสในตารางใหม 3. ก าหนดคยหลก 4. แอททรบวตทยายจากตารางเดมไปใสในตารางใหมให
ตดออกจากตารางเดม 5. น าคยหลกในขอ 3 ไปใสในตารางเดม
31
32
คยหลกของตารางนคอ รหสพนกงาน จากตารางยงมฟงกชนการขนตอกนแบบ Transitive Dependency อย คอ รหสแผนก ซงไมใชคยหลกของตาราง แตสามารถระบคา ชอแผนก ได คอ ถารรหส
แผนก กจะรชอแผนก จากตารางขางบน ท าใหอยในรป 3 NF จะได 2 ตารางขางลางน
รหสพนกงาน ชอสกล รหสแผนก ชอแผนก เงนเดอน P001 นพเกศ แกวใส A001 บญช 25000 P002 วารณ รวดเรว F001 การเงน 30000
รหสแผนก ชอแผนก
A001 บญช F001 การเงน
รหสพนกงาน ชอสกล เงนเดอน P001 นพเกศ แกวใส 25000
P002 วารณ รวดเรว 30000
รหสแผนก A001
F001
สรป Normalization
1NF ทกแอททรบวตในแตละแถวมคาของขอมลเพยงคาเดยว 2NF รเลชนนนตองไมมความสมพนธระหวางแอททรบวตแบบบางสวน (แอ
ททรบวตทกตวตองขนกบคยหลกทกตว ไมขนอยกบตวใดตวหนง) 3NF ทกแอททรบวตทไมใชคยหลกไมมคณสมบตในการก าหนดคาของ
แอททรบวตอน
33
34
แบบฝกหด
รหส
นกศกษา
ชอนกศกษา รหสวชา ชอวชา หนวยกต เกรด
53001 วนดา AB12 บญช 3 A
CD01 การเงน 3 A
PC09 สถต 3 B
53009 สมาล AB12 บญช 3 B
CD01 การเงน 3 A
ใหนกศกษาแปลงตารางตอไปนใหอยในรป NF1-NF3 โดยละเอยด
1)การลงทะเบยนเรยน
35
แบบฝกหด
รหส
นกศกษา
ชอนกศกษา รหส
คณะ
ชอคณะ รหสวชา ชอวชา หนวยกต เกรด
53001 วนดา BC บรหารธรกจ AB12 บญช 3 A
CD01 การเงน 3 A
PC09 สถต 3 B
53009 สมาล HT การโรงแรม AB12 บญช 3 B
CD01 การเงน 3 A
ใหนกศกษาแปลงตารางตอไปนใหอยในรป NF1-NF3 โดยละเอยด
2)การลงทะเบยนเรยน
36
แบบฝกหด
เลขทใบส ง
ซอ
วนทซอ รหสลกคา ชอผส ง รหสสนคา ชอสนคา จ านวนทซอ ราคาตอ
หนวย
OR001 02/09/2552 C001 เดวด AB12 ตเยน 4 4000
CD01 พดลม 3 2000
PC09 แอร 4 6000
OR002 02/09/2552 C005 ไมเคล TP01 เตาอบ 3 3000
CD01 พดลม 2 2000
ใหนกศกษาแปลงตารางตอไปนใหอยในรป NF1-NF3 โดยละเอยด
3) การสงสนคา