42
Normalization Lecture 9

Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Normalization

Lecture 9

Page 2: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Normalization

E.F. Codd เปนผคดแนวคดการท า relation ใหอยในรปแบบบรรทดฐาน (Normalization Process)

เปนกระบวนการพฒนาการเชอมตอของขอมล เพอแกปญหาของ relation

เพอใหแนใจวาการออกแบบโครงรางของ relation เปนการออกแบบทเหมาะสม

Page 3: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Normalization (cont.)

ขอมลทใชในการท า Normalization นนจะเอามาจาก E-R Model ซงไดมาจากการวเคราะหระบบ (การออกแบบในระดบแนวคด) โดยแสดงใหเหน

ขอมล (Entity) ทเกดขนในระบบ

Attributes ของขอมล

Relation ระหวางขอมล

Page 4: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Normalization : วตถประสงค

ลดเนอทในการจดเกบขอมล

ลดปญหาเรองขอมลไมถกตอง

ลดปญหาการเกดอะนอรมลไล (Anomalies) ในการเพมปรบปรง และลบขอมล

Page 5: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Normalization : รปแบบ

โดยทวไปการท า Normalization มดวยกนทงสน 6 รปแบบ คอ

First Normal Form (1NF)

Second Normal Form (2NF)

Third Normal Form (3NF)

Boyce-Codd Normal Form (BCNF)

Forth Normal Form (4NF)

Fifth Normal Form (5NF)

E.F.Codd

Fagin

R.Boyce and E.F.Codd

Page 6: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Data Redundancy : ความซ าซอนของขอมล

Page 7: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Update Anomalies(ขอผดพลาดจากการปรบปรงขอมล)

Insert Anomalies (ขอผดพลาดจากการเพมขอมล)

Deletion Anomalies (ขอผดพลาดจากลบขอมล)

Modification Anomalies (ขอผดพลาดจากเปลยนแปลงขอมล)

Page 8: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Insert Anomalies

เพมขอมลพนกงานเขาไป สงกดสาขา B007 จะตองกรอกทอยสาขา B007

เขาไปอก ท าใหเกดทอยของสาขา B007 ซ ากนสองทปเพล

เพมขอมลสาขาใหมเขาไป จะตองบนทกคาวาง (null) ใหกบแอตตรบวต empNo

empName, position, salary ซงไมสามารถท าไดเนองจาก empNo เปน PK

Page 9: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Deletion Anomalies

พนกงาน SA09 ลาออก ตองลบเรคอรดพนกงานคนนออกไปจากฐานขอมล

ซงจะท าใหตองลบขอมลสาขา B007 ออกไปดวย

Page 10: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Modification Anomalies

ตองการเปลยนแปลงทอยของสาขา B003 จะตองท าการปรบปรงขอมลเรคอรด

พนกงานทสงกดอยสาขา B003 ทงหมด ซงหากมพนกงานอย 50 คนทสาขา

B003 กตองตามแกทงหมด

Page 11: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

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

ฟงกชนการขนตอกนใชอธบายถงความสมพนธระหวางแอตตรบวต

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

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

ทปเพลเดยวกนของรเลชนนนได

โดยแอตตรบวตทเปนตวระบคาเรยกวา Determinant ในขณะท

แอตตรบวตทถกระบคาเรยกวา Dependent

Page 12: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Functional Dependencies

สมมตวา ให A และ B คอแอตตรบวตของรเลชน R แอตตรบวต B เปนฟงชนทข นอยกบแอตตรบวต A ซงสามารถเขยนใหอยในรปแบบสญลกณณ

ไดวา A B

แอตตรบวต A สามารถระบคาของแอตตรบวต B ได นนหมายความวา A เปนดเทอรมแนนตของ B B ขนอยกบ A

Page 13: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Functional Dependencies

employeeNo position

position (not) employeeNo

Page 14: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

ประเภทของ Functional Dependencies

Fully Functional Dependency

Partial Dependency

Transitive Dependency

Multivalued Dependency

Page 15: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Fully Functional Dependency

เปนฟงชนการขนตอกนทมตว Determinant ขนาดเลกทสด ทสามารถ

ระบตว Dependent ไดอยางชดเจน

fd1: employeeNo branchNo

fd2: employeeNo, employeeName branchNo

fd1 ม determinant เดยวในการระบคา branchNo ได

fd2 มถง 2 determinant ในการระบคา branchNo

จงสรปไดวา fd1 เปน Fully Functional Dependency เนองจากม

determinant ขนาดเลกทสด

Page 16: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Partial Dependency

ความสมพนธแบบบางสวน (Partial) เกดขนไดกรณมคยหลกทประกอบ

ไปดวยหลาย คยรวมกน หรอเรยกวาคยรวม (Composite Key)

โดยความสมพนธแบบบางสวนทเกดขนไดตอเมอมแอตตรบวตบางสวน

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

Page 17: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Partial Dependency

พบวา clientNo และ propertyNo ซงจดเปนสวนหนงของคยหลก (clientNo,propertyNo) สามารถระบคาไดคอ clientNo clientName และ

propertyNo propertyAddr ซงกรณนจะกอใหเกดปญหาในการปรบปรงขอมล

Page 18: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Partial Dependency

แสดงการวเคราะหฟงกชนการขนตอกนของรเลชน CLIENT_RENTAL

Page 19: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Transitive Dependency

เกดขนไดเมอแอตตรบวตทไมใชคย (Nonkey) สามารถระบคาของ

แอตตรบวตอน ในรเลชนนนได

ownerNo ownerName

Page 20: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Multivalued Dependency

จะเกดในกรณทรเลชนนนประกอบดวยแอตตรบวตอยางนอย

3 แอตตรบวต

โดยแอตตรบวตหนงจะสามารถไประบคาของแอตตรบวตอน

ไดหลายคา

เรยกความสมพนธนวา มความสมพนธระหวางคาของแอตตรบวต

แบบหลายคา

Page 21: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Multivalued Dependency

รหสผผลต รหสโครงการ ทตงโรงงาน

SP01 PJ01 นครปฐม

SP01 PJ01 กรงเทพฯ

SP01 PJ02 นครปฐม

SP01 PJ03 สมทรปราการ

SP02 PJ04 สมทรสาคร

SP02 PJ05 สมทรสาคร

SP02 PJ05 กรงเทพฯ

SP02 PJ06 กรงเทพฯ

รหสผผลต รหสโครงการรหสผผลต ทตงโรงงาน

Page 22: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

1NF (First Normal Form)

Relation ทจะอยในรปแบบ 1NF กตอเมอ

Relation นน ไมม Attribute ของทเพลทมคาของขอมลหลายคา (No Repeating Group)

คาของ Attribute ตาง ในแตละทเพล มคาของขอมลเพยงคาเดยว

(Atomic Value)

Page 23: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

1NF (First Normal Form)

ตาราง CLIENT_RENTAL ในรปแบบ UNF (Unnormalized Form)

Page 24: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

1NF (First Normal Form)

1NF ของรเลชน CLIENT_RENTAL ทม clientNo และ property_No เปน PK

CLIENT_RENTAL (clientNo, propertyNo, clientName, propertyAddr, rentStart,rentFinish, rent, ownerNo, ownerName)

Page 25: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

ฟงกชนการขนตอกนของรเลชน CLIENT_RENTAL

Page 26: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

2NF (Second Normal Form)

Relation ทจะอยในรปแบบ 2NF กตอเมอ

Relation นนตองอยในรปแบบ 1NF มากอน

Relation นนตองตงอยบนพนฐานของ Fully Functional Dependency กลาวคอ Relation จะตองไมมความสมพนธระหวาง Attribute แบบPartially Dependency

Page 27: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

2NF (Second Normal Form)

ทก Partial Dependency ทอยบนคยหลก ใหยายออกไปสรางเปน Relation ใหม

CLIENT (clientNo, clientName)RENTAL (clientNo, propertyNo, rentStart, rentFinish)PROPERTY_OWNER (propertyNo, propertyAddr, rent, ownerNo, ownerName)

fd2: clientNo clientName (Partial Dependency)

fd3: propertyNo propertyAddr, rent, ownerNo, ownerName

(Partial Dependency)

Page 28: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

2NF (Second Normal Form)

Page 29: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

3NF (Third Normal Form)

Relation ทจะอยในรปแบบ 3NF กตอเมอ

Relation นนตองอยในรปแบบ 2NF มากอน

Relation นนจะตองไมมความสมพนธระหวาง Attribute แบบ Transitive

Dependency

Page 30: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

3NF (Third Normal Form)

fd4: ownerNo ownerName (Transitive Dependency)

ท าการขจด Transitive Dependency ออกไปดวยการสรางเปน Relation ใหม

CLIENT (clientNo, clientName)RENTAL (clientNo, propertyNo, rentStart, rentFinish)PROPERTY_FOR_RENT (propertyNo, propertyAddr, rent, ownerNo)OWNER (ownerNo,ownerName)

Page 31: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

3NF (Third Normal Form)

Page 32: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

แผนภาพแสดงการแตกตารางรเลชน CLIENT_RENTAL มาเปน 1NF – 3NF

Page 33: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

BCNF (Boyce-Codd Normal Form )

Relation ทจะอยในรปแบบ BCNF กตอเมอ

Relation นนตองอยในรปแบบ 3NF มากอน

ไมม Attribute ใด ใน Relation ทสามารถระบคาของ Attribute ทเปน

คยหลก (PK) หรอสวนหนงสวนใดของคยหลก (ในกรณทคยหลกเปน

คยผสม Composite Key) ได ซงจะเรยกวา “Overlap Multiple Candidate Key”

Page 34: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

BCNF (Boyce-Codd Normal Form )

CLIENT_INTERVIEW (ClientNo, interviewDate, interviewTime,

empNo, roomNo)

Page 35: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

BCNF (Boyce-Codd Normal Form )

พจารณาจากฟงกชนการขนตอกนของ fd1, fd2, และ fd3 ซงเปนคยคแขงใน

Relation จะไมพบขอผดพลาดใด จะมเพยงแต fd4 ซงไมใชคย แตสามารถไประบ

คาของ Attribute ทเปนสวนหนงของ PK ได ดงนน Relation นจงไมใช BCNF

Page 36: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

BCNF (Boyce-Codd Normal Form )

ตวอยางขอผดพลาดทเกดขน

หากมการเปลยนแปลงขอมล roomNo ของพนกงาน SG05 ในวนท 13-05-2550

จะตองมการอปเดตสองทปเพล โดยหากมทปเพลเดยวอปเดตดวยหองใหม ผลลพธ

ทไดกจะเกดความไมสอดคลองในขอมลบนฐานขอมลทนท

Page 37: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

BCNF (Boyce-Codd Normal Form )

INTERVIEW (ClientNo, interviewDate, interviewTime, empNo)

STAFF_ROOM (empNo, interviewDate, roomNo)

Page 38: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Normalization Process

5NF“ขจด Join Dependency”

2NF“ขจด Partial Dependency”

3NF“ขจด Transitive Dependency”

BCNF“ขจดปญหา Overlap Multiple Candidate Key ”

4NF“ขจด Nontrivial Multivalued Dependency”

1NF“ขจด Repeating Group”

Page 39: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Denormalization

จากกระบวนการ Normalization คอการลดความซ าซอนในขอมลดวยการแตก

Relation โดย Relation ทแตกออกไปนนจะไมสงผลใหขอมลเดมสญหายไป

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

แตหากมการแตก Relation มากเกนความจ าเปน จะสงผลกระทบตอประสทธภาพ

ในการเรยกดขอมล เนองจากใชเวลามากขนในการประมวลผล

การ Denormalization คอการลดรปแบบ Normal Form ลงจากเดม ซงผลทตาม

มาจะกอใหเกดความซ าซอนในขอมล แตจะสงผลดดานความรวดเรวในเรยกดขอมล

Page 40: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

ปจจยทเกดขนหลงจากไดมการ Denormalization

การ Denormalization ท าใหการพฒนาฐานขอมลมความยงยากขน

การ Denormalization ท าลายความยดหยน

การ Denormalization ท าใหการเรยกดขอมลมความเรวสงขน

การ Denormalization ท าใหการปรบปรงขอมลชาลง เนองจากม

ขอมลซ าซอนจงตองใชเวลาปรบปรงขอมลมากขนกวาเดม

Page 41: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Denormalization

Page 42: Normalization...Normalization : ร ปแบบ โดยท วไปการท า Normalization ม ด วยก นท งส น 6ร ปแบบ ค อ First Normal Form

Denormalization