การ normalization

36
บทที5 นอร์มัลไลเซชัน NORMALIZATION ฐานข้อมูลเบื ้องต ้น โดย อ.แพรตะวัน จารุตัน (ปรับปรุง) วิชา 1

Upload: skiats

Post on 28-May-2015

39.905 views

Category:

Documents


28 download

TRANSCRIPT

Page 1: การ Normalization

บทท 5 นอรมลไลเซชน

NORMALIZATION

ฐานขอมลเบองตน โดย อ.แพรตะวน จารตน (ปรบปรง) วชา

1

Page 2: การ Normalization

ความหมายและจดประสงคของการนอรมลไลเซชน

ฟงกชนการขนตอกน (Function Dependencies)

กระบวนการนอรมลไลเซชน

2

หวขอการบรรยาย

Page 3: การ Normalization

นอรมลไลเซชน เปนทฤษฎทผออกแบบฐานขอมลจะตองน ามาใชในการแปลงขอมลทอยในรปแบบทซบซอน ใหอยในรปแบบทงายตอการน าไปใชงานและกอใหเกดปญหานอยทสด

ในบทนจะสอนกระบวนการนอรมลไลเซชน ใน 3 ระดบดวยกนคอ นอรมลไลชนระดบท 1 หรอเรยกวา 1NF นอรมลไลชนระดบท 2 หรอเรยกวา 2NF นอรมลไลชนระดบท 3 หรอเรยกวา 3NF

3

ความหมายและจดประสงคของการนอรมลไลเซชน

Page 4: การ Normalization

4

วเคราะหความ

ตองการของผใช E-R Diagram

รเลชนทมรปแบบไมเปนบรรทดฐาน (Unnormalized relation)

1 NF

2 NF

3 NF

บอยด คอดด

4 NF

รเลชนทเปนแบบบรรทดฐาน (Normalized relation)

กระบวนการปรบบรรทดฐาน

(Normalization)

Page 5: การ Normalization

ลดความซ าซอนของขอมล เมอลดความซ าซอนกท าใหลดเนอหาทใชในการจดเกบขอมล

ลดปญหาความไมถกตองของขอมล เมอขอมลไมเกดความซ าซอนท าใหการปรบปรงขอมลสามารถท าไดจากแหลงขอมลเพยงแหลงเดยว

ลดความผดพลาดทอาจเกดจากการปรบปรงขอมล (update anomalies) ซงประกอบดวย

5

วตถประสงคของนอรมลไลซ (Normalization)

Page 6: การ Normalization

ความซ าซอนและขอผดพลาดจากการปรบปรงขอมล 6

แนวคดหลกอนส าคญของการออกแบบฐานขอมลเชงสมพนธ คอ การออกแบบใหมการเกบขอมลซ าซอนนอยทสด เพอประหยดเนอทในการเกบขอมลและลดปญหาทจะเกดดงตวอยางตอไปน

Page 7: การ Normalization

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 (รวมรายละเอยดของพนกงานไวดวยกนกบรายละเอยดของสาขา)

ตวอยางการออกแบบฐานขอมลทด

ตวอยางการออกแบบฐานขอมลทจะมปญหาของความซ าซอนตามมา

Page 8: การ Normalization

8

ตวอยางปญหาความซ าซอนในขอมล รเลชน EMPLOYEE_BRANCE

ความผดพลาดจากการเพม oถาตองการเพมพนกงานใหม ทอยสาขา B005 oจะตองกรอก B005 และทอยสาขา คอ เชยงใหม เพมอก

รหสพนกงาน ชอ-สกล ต าแหนง เงนเดอน รหสสาขา ทอย

SG21 ชชาต สขศร ผจดการ 30000 B005 เชยงใหม

SG37 ศร ดวงเดน ผชวย 20000 B003 กรงเทพ

SG14 ดวงใจ มสข เลขานการ 20000 B003 กรงเทพ

SG09 อจฉรา เขยวแกว ผจดการ 30000 B007 พษณโลก

Page 9: การ Normalization

9

ตวอยางปญหาความซ าซอนในขอมล รเลชน EMPLOYEE_BRANCE

รหสพนกงาน ชอ-สกล ต าแหนง เงนเดอน รหสสาขา ทอย

SG21 ชชาต สขศร ผจดการ 30000 B005 เชยงใหม

SG37 ศร ดวงเดน ผชวย 20000 B003 กรงเทพ

SG14 ดวงใจ มสข เลขานการ 20000 B003 กรงเทพ

SG09 อจฉรา เขยวแกว ผจดการ 30000 B007 พษณโลก

ความผดพลาดจากการเพม ถาตองการเพมสาขา จะมปญหาคอ ตารางนมทงขอมลพนกงานและขอมลสาขาอยรวมกน หากจะเพมเฉพาะ รหสสาขา และ ทอย กไมไดเพราะ รหสพนกงาน จะมคาวางไมไดเพราะเปน Primary Key ของตาราง ดงนนจะบนทกไดกตอเมอมพนกงานแลว

Page 10: การ Normalization

10

ความผดพลาดจากการลบขอมล

ถาลบขอมลหนงแลวสงผลกระทบกบขอมลอน ทตองถกลบตาม เชน พนกงานรหส SG21 ลาออก กลบแถวนนออก

ขอมลสาขา B005 กจะหายไปดวย

ขอผดพลาดจากการเปลยนแปลง

ในกรณทตองการเปลยนแปลงขอมลบางตวของสาขา เชน เปลยนทอยของ B003 กตองเปลยนหลายท

ถาหากมพนกงานสงกดสาขานหลายทกตองไปตามแกทก ๆ ท

ดงนนเราควรแยกตาราง Employee_Brance ออกเปนสองตาราง คอ ตารางพนกงาน

และตารางสาขา

Page 11: การ Normalization

11

พนกงาน

สาขา

รหสพนกงาน ชอ-สกล ต าแหนง เงนเดอน รหสสาขา

SG21 ชชาต สขศร ผจดการ 30000 B005

SG37 ศร ดวงเดน ผชวย 20000 B003

SG14 ดวงใจ มสข เลขานการ 20000 B003

SG09 อจฉรา เขยวแกว ผจดการ 30000 B007

รหสสาขา ทอย

B005 เชยงใหม

B003 กรงเทพ

B007 พษณโลก

Page 12: การ Normalization

ฟงกชนการขนตอกน (Functional Dependency : FD)

ถาให X และ Y เปน Attribute ใน Relation ใดๆ แทนดวย R(X,Y) Attribute Y เปน จะถกเรยกวามฟงกชนการขนตอกนกบแอททรบวต X กตอเมอ แตละคาทไมซ ากนของ แอททรบวต X มขอมลของ Y ทเกยวของกบ X เพยง 1 คา

เขยนแทนดวย สญลกษณ X Y

12

Page 13: การ Normalization

13

EmployeeNo Name Position

S01 ฉตรชย มสมบต Manager

S02 เอกชย ใจด Manager Assistant

S03 มนรตน เจรญสข Manager

S04 ขวญชย ใจเพชร Manager Assistant

S05 มานพ เกตแกว Staff

S06 ดวงกมล ทพยเทพ Staff

ตวอยาง

EmployeeNo Position

Page 14: การ Normalization

ตวอยาง 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

Page 15: การ Normalization

1) Complete dependencies การขนตอกนอยางสมบรณ แอททรบวตทไมใชคยหลก ขนตอ แอททรบวตหรอกลมของแอททรบวตท

เปนคยหลก

ตวอยาง ตารางทมแอทรบวตคาเดยวท าหนาทเปนคยหลก คอ หมายเลขบตรประชาชน

หมายเลขบตรประชาชน ชอเจาของบตร

ชนดของฟงกชนการขนตอกน ( Functional Dependency :FD)

15

หมายเลขบตรประชาชน ชอเจาของบตร

3440100634931 กนกวรรณ พวงพงษ

3437283420343 ชาตชาย เตชะวงศ

2938742039485 กงกาญ เดชาทรพย

Page 16: การ Normalization

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

Page 17: การ Normalization

17

ตวอยาง ตารางทมแอทรบวหลายตวรวมกนเปนคยหลก คอ รหสนกศกษา รหสวชา

ชนดของฟงกชนการขนตอกน ( Functional Dependency :FD)

รหสนกศกษา รหสวชา เกรด

520014001 S001 A

520014001 S002 B

520014002 S001 C

520014002 S002 A

ตารางการลงทะเบยน

รหสนกศกษา,รหสวชา เกรด

Page 18: การ Normalization

2) Partial Dependency (การขนตอกนบางสวน) เกดขนเมอคยหลกประกอบดวยหลาย Attribute รวมกน

เมอแอตทรบวตบางสวนของคยหลก สามารถไประบคาแอตทรบวตตวอน ๆ ทไมใชคยหลกของรเลชนได

รหสนกศกษา รหสวชา เกรด ชอวชา

Partial Dependency

รหสนกศกษา, รหสวชา เกรด , ชอวชา รหสวชา ชอวชา

ชนดของฟงกชนการขนตอกน ( Functional Dependency :FD)

18

Page 19: การ Normalization

19

ตวอยางฟงกชนการขนตอกนแบบ Partial

รหสนกศกษา รหสวชา เกรด ชอวชา

534267001 F01 A การเขยนโปรแกรม

534267001 F02 B การออกแบบฐานขอมล

534267002 F01 D การเขยนโปรแกรม

534267002 F02 A การออกแบบฐานขอมล

534267003 F01 A การเขยนโปรแกรม

534267003 F02 C การออกแบบฐานขอมล

Page 20: การ Normalization

3 Transitive Dependency เกดขนเมอ Attribute ทไมใช Primary Key ไปขนอยกบ Attribute อนทไมใช Primary Key ในรเลชนนน ๆ

เลขประจ าตว ชอ สกล ทอย ต าแหนง รถประจ าต าแหนง

01 ฉตรชย มสมบต กรงเทพ ผจดการ BMW

02 เอกชย ใจด นนทบร ผชวยผจดการ Honda

03 มนรตน เจรญสข เชยงใหม ผจดการ BMW

04 ขวญชย ใจเพชร ราชบร ผชวยผจดการ Honda

ค าอธบาย เลขประจ าตว เปนคยหลก (Primary Key) ของตาราง เลขประจ าตว ชอสกล, ทอย, ต าแหนง ต าแหนง รถประจ าต าแหนง

ชนดของฟงกชนการขนตอกน (Functional Dependency : FD) 20

Page 21: การ Normalization

Normalization คอ กระบวนการปรบปรงโครงสรางขอมลของฐานขอมลทมความซ าซอนใหอยในรปแบบทเปนบรรทดฐาน (Normal Form)

การนอรมลไลเซชนมไดถง 5 ระดบ ในระดบท 3 กจดวาเพยงพอส าหรบการออกแบบฐานขอมลในปจจบน 1NF - ก าจด repeating group (ก าจดกลมของขอมลทมความซ าซอน) 2NF - ก าจด partial dependency (ก าจดการขนตอกนบางสวน) 3NF - ก าจด transitive dependency (ก าจดการขนตอกนของแอตทรบวททไมใชคยหลก)

นอรมลไลซเซชน (Normalization) 21

Page 22: การ Normalization

22

Page 23: การ Normalization

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

Page 24: การ Normalization
Page 25: การ Normalization

Second Normal Form (2NF)

1. ตองเปน First Normal Form (1NF) มากอน

2. ตองไมม Partial Dependency (การขนตอกนบางสวน)

สรปกคอ นอรมลไลเซชนระดบท 2 (Second normal form : 2NF) เปนการ

ขจดแอตตรบวท ไมขนกบทงสวนของคยหลก ออกไป เพอใหแอตตรบวอนทงหมดขนตรงกบสวนทเปนคยหลกทงหมดเทานน

25

Page 26: การ Normalization

26

ตวอยางตารางท Partial Dependency (การขนตอกนบางสวน)

รหสนกศกษา รหสวชา เกรด ชอวชา

534267001 F01 A การเขยนโปรแกรม

534267001 F02 B การออกแบบฐานขอมล

534267002 F01 D การเขยนโปรแกรม

534267002 F02 A การออกแบบฐานขอมล

534267003 F01 A การเขยนโปรแกรม

534267003 F02 C การออกแบบฐานขอมล

รหสนกศกษา รหสวชา เกรด ชอวชา

Partial Dependency

รหสนกศกษา, รหสวชา เกรด ,ชอวชา รหสวชา ชอวชา

Page 27: การ Normalization

Second Normal Form (2NF)

วธขจดปญหา

1) ตองสรางตารางเพม

2) น าคอลมนทมปญหาไปใสในตารางทสรางเพม

3) ก าหนดคยหลกใหกบตารางทสรางใหม

4) แอททรบวตใดในตารางเดม เมอน าไปใสในตารางใหม ใหตดออกจากตารางเดม ยกเวน สวนของคยหลก คงไวในตารางเดม

27

Page 28: การ Normalization

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 การออกแบบฐานขอมล

ตารางผลการเรยน

ตารางผลการเรยน ตารางวชา

Page 29: การ Normalization

29

รหสผเขาอบรม

รหสครอสอบรม

ชอผเขาอบรม ชอครอสอบรม ผลการทดสอบ

0001 TR01 นายเอ ใจด การซอมไฟฟา ผาน

0001 TR05 นายเอ ใจด การซอมตเยน ผาน

0002 TR03 นางบ ใจกลา การท าอาหาร ไมผาน

0002 TR09 นางบ ใจกลา การเลยงเดก ผาน

0003 TR01 นายรวย มเงน การซอมไฟฟา ผาน

0003 TR05 นายรวย มเงน การซอมตเยน ไมผาน

ตารางผลการอบรม

ใหนกศกษานอมลไลซตารางนใหอยในรปแบบ 2NF

Page 30: การ Normalization

Third Normal Form (3NF)

1.Relation นนจะตองมคณสมบต 2NF 2.ตองไมมความสมพนธระหวาง Non-key Attribute หรอ ไมม Transitive Dependency สรป : แอททรบวตทไมใชคยหลก ตองไมขนตอกนเอง

30

Page 31: การ Normalization

Third Normal Form (3NF)

วธขจดปญหา 1. สรางตารางเพม 2. น าแอททรบวตทมปญหามาใสในตารางใหม 3. ก าหนดคยหลก 4. แอททรบวตทยายจากตารางเดมไปใสในตารางใหมให

ตดออกจากตารางเดม 5. น าคยหลกในขอ 3 ไปใสในตารางเดม

31

Page 32: การ Normalization

32

คยหลกของตารางนคอ รหสพนกงาน จากตารางยงมฟงกชนการขนตอกนแบบ Transitive Dependency อย คอ รหสแผนก ซงไมใชคยหลกของตาราง แตสามารถระบคา ชอแผนก ได คอ ถารรหส

แผนก กจะรชอแผนก จากตารางขางบน ท าใหอยในรป 3 NF จะได 2 ตารางขางลางน

รหสพนกงาน ชอสกล รหสแผนก ชอแผนก เงนเดอน P001 นพเกศ แกวใส A001 บญช 25000 P002 วารณ รวดเรว F001 การเงน 30000

รหสแผนก ชอแผนก

A001 บญช F001 การเงน

รหสพนกงาน ชอสกล เงนเดอน P001 นพเกศ แกวใส 25000

P002 วารณ รวดเรว 30000

รหสแผนก A001

F001

Page 33: การ Normalization

สรป Normalization

1NF ทกแอททรบวตในแตละแถวมคาของขอมลเพยงคาเดยว 2NF รเลชนนนตองไมมความสมพนธระหวางแอททรบวตแบบบางสวน (แอ

ททรบวตทกตวตองขนกบคยหลกทกตว ไมขนอยกบตวใดตวหนง) 3NF ทกแอททรบวตทไมใชคยหลกไมมคณสมบตในการก าหนดคาของ

แอททรบวตอน

33

Page 34: การ Normalization

34

แบบฝกหด

รหส

นกศกษา

ชอนกศกษา รหสวชา ชอวชา หนวยกต เกรด

53001 วนดา AB12 บญช 3 A

CD01 การเงน 3 A

PC09 สถต 3 B

53009 สมาล AB12 บญช 3 B

CD01 การเงน 3 A

ใหนกศกษาแปลงตารางตอไปนใหอยในรป NF1-NF3 โดยละเอยด

1)การลงทะเบยนเรยน

Page 35: การ Normalization

35

แบบฝกหด

รหส

นกศกษา

ชอนกศกษา รหส

คณะ

ชอคณะ รหสวชา ชอวชา หนวยกต เกรด

53001 วนดา BC บรหารธรกจ AB12 บญช 3 A

CD01 การเงน 3 A

PC09 สถต 3 B

53009 สมาล HT การโรงแรม AB12 บญช 3 B

CD01 การเงน 3 A

ใหนกศกษาแปลงตารางตอไปนใหอยในรป NF1-NF3 โดยละเอยด

2)การลงทะเบยนเรยน

Page 36: การ Normalization

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) การสงสนคา