Upload
others
View
13
Download
0
Embed Size (px)
Citation preview
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