Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
รายวชา 235302 ระบบฐานขอมลหนวยท 5 Normalization
อาจารยผสอน อตโรจน วงษวชรศกดคณะบรหารศาสตร สาขาวชาคอมพวเตอรธรกจ
http://jaydaymaster.wordpress.com
Normalization
เปนทฤษฎการออกแบบฐานขอมล ทตรวจสอบและแกไขปญหาดานความซ าซอนของขอมล
เปนทฤษฎชวยในการประเมนการออกแบบใชเทคนคการวเคราะหความสมพนธระหวางฟลด วาฟลดใดควรอยตารางใด
โดยการแตกตารางใหญใหเปนตารางยอย โดยมข นตอนการทาท ชดเจน เพอขจดปญหาความซ าซอนใหเหลอนอยทสดหรอหมดไป
2
Normalization
หลกการปรบปรงโครงสรางขอมลของฐานขอมลทมความซ าซอนซงเปนการนาเคารางของ Relation มาทาใหอยในรปแบบทเปนบรรทดฐาน (Normal From) เพอใหแนใจวาการออกแบบเคารางของ Relation เปนการออกแบบทเหมาะสมแนวคดน ถกคดคนโดย E.F.Coddขอมลทใชในการทา Normalization มาจาก E-R Model
3
Normalization
วตถประสงค1. ลดเน อทในการจดเกบขอมล2. ลดปญหาทขอมลไมถกตอง (Inconsistency)3. ลดปญหาการเกด Anomalies ในการเพม ปรบปรงและลบขอมล (Insert,
Update and Delete)4. เพมความคงทนแกโครงสรางขอมล
4
Normalization Concept5
0 NF1 NF
2 NF3 NF
BCNF4 NF
5 NF
ขนตอนการท านอมลไลเซชน6 เอนทตทยงไมไดรบการนอรมลไลเซชน
ข นท 1 กาจด Repeating Groups
นอรมลฟอรมท 1
ข นท 2 กาจด Partial Dependencies
นอรมลฟอรมท 2
ข นท 3 กาจด Transitive Dependencies
นอรมลฟอรมท 3
ข นท 4 กาจด Multi-dependencies ข นท 4 Every Determinate a Key
นอรมลฟอรมท 4
นอรมลฟอรมท 5
Boyce-Codd Normal Form
0 Normal Form (0 NF หรอ Non-First Normal Form:NF2)
SID City CTY PQ
PID PName QTY
S1 Bangkok TH P1 Pen 300
P2 Ruler 500
P3 Rubble 300
S2 London UK P1 Pen 200
P2 Ruler 300
S3 New York US P1 Pen 200
P3 Rubble 400
S4 London UK P1 Pen 100
7
1st Normal Form (1NF)
Relation ใดๆ จะเปน 1NF กตอเมอมการกาหนดแอตทรบวตทเปนคยตองไมม Repeating Group แตละแถวหรอคอลมนจะมคาไดเพยง 1 คา
เทาน นแอตทรบวตทกตวตองข นอยกบคยหลก
8
1NF Example
SID City CTY PQ
PID PName QTY
S1 Bangkok TH P1 Pen 300
P2 Ruler 500
P3 Rubble 300
S2 London UK P1 Pen 200
P2 Ruler 300
S3 New York US P1 Pen 200
P3 Rubble 400
S4 London UK P1 Pen 100
9
SID City CTY PQ
PID PName QTY
S1 Bangkok TH P1 Pen 300
S1 Bangkok TH P2 Ruler 500
S1 Bangkok TH P3 Rubble 300
S2 London UK P1 Pen 200
S2 London UK P2 Ruler 300
S3 New York US P1 Pen 200
S3 New York US P3 Rubble 400
S4 London UK P1 Pen 100
FD (Functionally Dependent / Function Dependency)
เปนฟงกชนการข นตรงตอกน โดยความสมพนธระหวาง attribute ทางขวามฟงกชนข นกบ attribute ทางซายเชน 1:1
M:1
10
Std_ID Std_Name
FName LName Std_ID
Functional Dependency ของ 1 NF11
SID PID
City
CTY
QTY
PName
Functional Dependency ของ 1 NF
Student
ID Name Status
001 Peter 1
002 Nancy 2
003 Dave 1
004 Robin 3
12
Student
ID Name Gender Type
001 Peter ชาย ปกต
002 Nancy หญง คา
003 Dave ชาย ปกต
004 Robin ชาย ปกต
1 = ชาย ภาคปกต2 = หญง ภาคปกต3 = ชาย ภาคปกต4 = หญง ภาคคา
ฟงกชนการขนตรงตอกน (Functional Dependency : FD)
ใน Relation ใดๆ Attribute Y เปน FD กบ Attribute X กตอเมอ ถาทราบคา X จะตองทราบคาของ Y
สญลกษณS.SID S.SNameS.SID S.CityS.SID S.(SName,City)
13
2st Normal Form (2NF)
Relation ใดๆ จะเปน 2NF กตอเมอรเลชนน นเปน 1NF อยแลว
รเลชนน นไมมพารเชยลดเพนเดนซ (Partial Dependency) หมายถง ตองไมม Non-Key ทข นอยกบสวนหนงสวนใดของ Key
(Non-Key คอ ฟลดทไมใช PK)ถา PK มเพยงฟลดเดยว จะเปน 2NF โดยอตโนมต ถา PK ม 2 ฟลดข นไป จะตองพจารณา 2NF
14
Partial Dependency
เกดข นเมอ relation ทม Determinant มากกวา 1 ตว (ม PK มากกวา 1 attribute) เปนคยผสม (composite key)
ความสมพนธระหวางคาของ attribute แบบบางสวนเกดข นเมอ attributeบางสวนของ PK สามารถระบคาของ attribute อน ๆ ทไมใช PK ของrelation ได (Non-key attribute)
จะเกดปญหาความซ าซอน และการปรบปรงขอมล
15
Partial Dependency16
SID PID
City CTY
QTY
PName
2NF Example
SID City CTY PID PName QTY
S1 Bangkok TH P1 Pen 300
S1 Bangkok TH P2 Ruler 500
S1 Bangkok TH P3 Rubble 300
S2 London UK P1 Pen 200
S2 London UK P2 Ruler 300
S3 New York US P1 Pen 200
S3 New York US P3 Rubble 400
S4 London UK P1 Pen 100
17
SID -> City, CTY
PID -> PName
SID,PID -> QTY
S(SID, City, CTY)
P(PID, PName)
SP(SID, PID, QTY)
2NF Example
SID City CTY
S1 Bangkok TH
S1 Bangkok TH
S1 Bangkok TH
S2 London UK
S2 London UK
S3 New York US
S3 New York US
S4 London UK
18
PID PName QTY
P1 Pen 300
P2 Ruler 500
P3 Rubble 300
P1 Pen 200
P2 Ruler 300
P1 Pen 200
P3 Rubble 400
P1 Pen 100
SID PID QTY
S1 P1 300
S1 P2 500
S1 P3 300
S2 P1 200
S2 P2 300
S3 P1 200
S3 P3 400
S4 P1 100
S P SP
SP
P
S
Functional Dependency ของ 2 NF19
SID
PID
City
CTY
QTY
PName
SID PID
3st Normal Form (3NF)
Relation ใดๆ จะเปน 3NF กตอเมอรเลชนน นเปน 2NF อยแลวรเลชนน นไมมทรานซทฟดเพนเดนซ (ไมม FD ระหวาง Non-key)
20
Transitive Dependency
SID -> City
City -> CTY
SID -> CTY
21
SID
City
CTY
3NF Example
SID City CTY
S1 Bangkok TH
S2 London UK
S3 New York US
S4 London UK
22
SID -> City
City -> CTY
SID -> CTYSID City
S1 Bangkok
S2 London
S3 New York
S4 London
City CTY
Bangkok TH
London UK
New York US
S S
City
ตวอยางการนอรมลไลเซชนP# P_Name E# E_Name Job_Class Chg_Hour Hours
11 ID Card 103 สมชาย ไมด Elect.Engineer 500 23
101 แทน งามยง Database Designer 500 19
105 ชาย ศรด Database Designer 500 35
106 แมก ยอดยง Programmer 200 12
102 อมร ศรด System Analyst 400 23
22 Palm 114 สรศกด ดงาม Application Designer 200 24
118 กมล ไมงาม General Support 100 45
104 นาย ยงยอด System Analyst 250 32
112 ธดา ไมงาม Dss Analyst 200 44
33 Web Service 105 ชาย ศรด Database Designer 500 64
104 นาย ยงยอด System Analyst 250 48
113 วว ยงด Application Designer 250 23
111 หน ดงาม Clerical Support 200 22
106 แมก ยอดยง Programmer 200 12
23
Redundancy of 3NF
Product Brand Type Zone
Book SE-ED Text A1
Book X-Comic Cartoon A2
VDO X-Comic Cartoon B1
Superman Robot X-Comic Toy B2
Ultra man Robot X-Comic Toy B2
24
Product, Brand -> Type, Zone
Type -> Brand
Boyce and Codd Normal Form (BCNF)
Relation ใดๆ จะเปน BCNF กตอเมอ
ทกๆ ตวทใชอางองถง (Determinant) เปน Candidate Key
ม Candidate Key ทเปน Combine Key เพยงชดเดยว
25
Boyce and Codd Normal Form (BCNF)
Product Brand Type Zone
Book SE-ED Text A1
Book X-Comic Cartoon A2
VDO X-Comic Cartoon B1
Superman Robot X-Comic Toy B2
Ultra man Robot X-Comic Toy B2
26
Product Type Zone
Book Text A1
Book Cartoon A2
VDO Cartoon B1
Superman Robot Toy B2
Ultra man Robot Toy B2
Brand Type
SE-ED Text
X-Comic Cartoon
X-Comic Cartoon
X-Comic Toy
X-Comic Toy
BCNF27
Product Brand
Zone
Type
Product Type
Zone
Brand
Product Type Zone Type Brand
BCNF28
A B
D
C
A C
D
B
A C D C B
4th Normal Form (4NF)
Relation ใดๆ จะเปน 4NF กตอเมอมคณสมบตเปน 3NFตองไมปรากฏ MVD (Multi-Valued Dependency) ใน Relation
29
Multi-valued Dependency (MVD)
Subject Teacher Section Student
Network Peter Lecture 30
Network Peter Lab 30
Network Peter Practice 30
Network John Lecture 27
Network John Lab 27
Network John Practice 27
OS David Lecture 40
OS John Lecture 23
30
Subject -> Teacher
Subject -> Section
4th Normal Form (4NF)Subject Teacher Section Student
Network Peter Lecture 30
Network Peter Lab 30
Network Peter Practice 30
Network John Lecture 27
Network John Lab 27
Network John Practice 27
OS David Lecture 40
OS John Lecture 23
31
Subject Teacher Student
Network Peter 30
Network John 27
OS David 40
OS John 23
Subject Section
Network Lecture
Network Lab
Network Practice
OS Lecture
4th Normal Form (4NF)
Subject Teacher Section
Network Peter Lecture
Network Peter Lab
Network John Lab
Network John Practice
32
5th Normal Form (5NF)
Relation ใดๆ จะเปน 5NF กตอเมอมคณสมบตเปน 4NFตองไมปรากฏ JD (Join Dependency) ใน Relation
33
5th Normal Form (5NF)Product Supplier Project
Pen John ProjX
Pen John ProjY
Pen Peter ProjX
Pen Peter ProjY
Pencil Peter ProjX
Pencil Peter ProjY
Pencil John ProjX
Pencil John ProjY
34
Product Supplier
Pen John
Pen Peter
Pencil Peter
Pencil John
Product Project
Pen ProjX
Pen ProjY
Pencil ProjX
Pencil ProjY
Supplier Project
John ProjX
Peter ProjY
Peter ProjX
John ProjY
5th Normal Form (5NF)
Relation ใดๆจะเปน 5NF กตอเมอRelation R. ไมสามารถแยกเปนตารางยอยไดหาก Relation R. แยกเปนตารางยอยได แตตารางยอยเหลาน นม Candidate
Key เหมอนกบ Candidate Key ของ Relation R. ถอวา Relation R. เปน 5NF
35
5th Normal Form (5NF)
EmpID EmpName DeptID DeptName
001 John 1 Account
002 Peter 1 Account
003 Michael 2 Computer
36
EmpID EmpName DeptID
001 John 1
002 Peter 1
003 Michael 2
DeptID DeptName
1 Account
1 Account
2 Computer
EmpID EmpName
001 John
002 Peter
003 Michael
EmpID DeptID
001 1
002 1
003 2
Denormalization
คอวธการลดระดบของนอรมลฟอรมลงมา เชน การแปลงจาก 3NF มาเปน 2NF -> เพมความซ าซอนเพอใหเรยกใชขอมลไดอยางรวดเรว
37
ID Name
001 Peter
002 John
ID Tel
001 0-9123-4567
001 0-2455-6677
002 0-1345-5567
ID Name Tel
001 Peter 0-9123-4567, 0-2455-6677
002 John 0-1345-5567