normalization...normalization : ร ปแบบ โดยท วไปการท า...

Post on 18-Mar-2020

13 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Normalization

Lecture 9

Normalization

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

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

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

Normalization (cont.)

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

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

Attributes ของขอมล

Relation ระหวางขอมล

Normalization : วตถประสงค

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

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

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

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

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

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

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

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

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

Insert Anomalies

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

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

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

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

Deletion Anomalies

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

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

Modification Anomalies

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

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

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

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

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

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

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

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

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

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

Functional Dependencies

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

ไดวา A B

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

Functional Dependencies

employeeNo position

position (not) employeeNo

ประเภทของ Functional Dependencies

Fully Functional Dependency

Partial Dependency

Transitive Dependency

Multivalued Dependency

Fully Functional Dependency

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

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

fd1: employeeNo branchNo

fd2: employeeNo, employeeName branchNo

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

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

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

determinant ขนาดเลกทสด

Partial Dependency

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

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

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

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

Partial Dependency

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

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

Partial Dependency

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

Transitive Dependency

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

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

ownerNo ownerName

Multivalued Dependency

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

3 แอตตรบวต

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

ไดหลายคา

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

แบบหลายคา

Multivalued Dependency

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

SP01 PJ01 นครปฐม

SP01 PJ01 กรงเทพฯ

SP01 PJ02 นครปฐม

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

SP02 PJ04 สมทรสาคร

SP02 PJ05 สมทรสาคร

SP02 PJ05 กรงเทพฯ

SP02 PJ06 กรงเทพฯ

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

1NF (First Normal Form)

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

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

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

(Atomic Value)

1NF (First Normal Form)

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

1NF (First Normal Form)

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

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

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

2NF (Second Normal Form)

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

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

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

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)

2NF (Second Normal Form)

3NF (Third Normal Form)

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

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

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

Dependency

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)

3NF (Third Normal Form)

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

BCNF (Boyce-Codd Normal Form )

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

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

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

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

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

BCNF (Boyce-Codd Normal Form )

CLIENT_INTERVIEW (ClientNo, interviewDate, interviewTime,

empNo, roomNo)

BCNF (Boyce-Codd Normal Form )

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

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

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

BCNF (Boyce-Codd Normal Form )

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

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

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

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

BCNF (Boyce-Codd Normal Form )

INTERVIEW (ClientNo, interviewDate, interviewTime, empNo)

STAFF_ROOM (empNo, interviewDate, roomNo)

Normalization Process

5NF“ขจด Join Dependency”

2NF“ขจด Partial Dependency”

3NF“ขจด Transitive Dependency”

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

4NF“ขจด Nontrivial Multivalued Dependency”

1NF“ขจด Repeating Group”

Denormalization

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

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

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

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

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

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

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

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

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

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

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

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

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

Denormalization

Denormalization

top related