การ normalization

Post on 28-May-2015

39.905 Views

Category:

Documents

28 Downloads

Preview:

Click to see full reader

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

top related