รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1...

37
รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 5 Normalization อาจารย์ผู้สอน อติโรจน์ วงษ์วัชรศักดิคณะบริหารศาสตร์ สาขาวิชาคอมพิวเตอร์ธุรกิจ http://jaydaymaster.wordpress.com

Upload: others

Post on 08-Sep-2019

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

รายวชา 235302 ระบบฐานขอมลหนวยท 5 Normalization

อาจารยผสอน อตโรจน วงษวชรศกดคณะบรหารศาสตร สาขาวชาคอมพวเตอรธรกจ

http://jaydaymaster.wordpress.com

Page 2: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

Normalization

เปนทฤษฎการออกแบบฐานขอมล ทตรวจสอบและแกไขปญหาดานความซ าซอนของขอมล

เปนทฤษฎชวยในการประเมนการออกแบบใชเทคนคการวเคราะหความสมพนธระหวางฟลด วาฟลดใดควรอยตารางใด

โดยการแตกตารางใหญใหเปนตารางยอย โดยมข นตอนการทาท ชดเจน เพอขจดปญหาความซ าซอนใหเหลอนอยทสดหรอหมดไป

2

Page 3: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

Normalization

หลกการปรบปรงโครงสรางขอมลของฐานขอมลทมความซ าซอนซงเปนการนาเคารางของ Relation มาทาใหอยในรปแบบทเปนบรรทดฐาน (Normal From) เพอใหแนใจวาการออกแบบเคารางของ Relation เปนการออกแบบทเหมาะสมแนวคดน ถกคดคนโดย E.F.Coddขอมลทใชในการทา Normalization มาจาก E-R Model

3

Page 4: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

Normalization

วตถประสงค1. ลดเน อทในการจดเกบขอมล2. ลดปญหาทขอมลไมถกตอง (Inconsistency)3. ลดปญหาการเกด Anomalies ในการเพม ปรบปรงและลบขอมล (Insert,

Update and Delete)4. เพมความคงทนแกโครงสรางขอมล

4

Page 5: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

Normalization Concept5

0 NF1 NF

2 NF3 NF

BCNF4 NF

5 NF

Page 6: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

ขนตอนการท านอมลไลเซชน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

Page 7: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

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

Page 8: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

1st Normal Form (1NF)

Relation ใดๆ จะเปน 1NF กตอเมอมการกาหนดแอตทรบวตทเปนคยตองไมม Repeating Group แตละแถวหรอคอลมนจะมคาไดเพยง 1 คา

เทาน นแอตทรบวตทกตวตองข นอยกบคยหลก

8

Page 9: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

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

Page 10: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

FD (Functionally Dependent / Function Dependency)

เปนฟงกชนการข นตรงตอกน โดยความสมพนธระหวาง attribute ทางขวามฟงกชนข นกบ attribute ทางซายเชน 1:1

M:1

10

Std_ID Std_Name

FName LName Std_ID

Page 11: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

Functional Dependency ของ 1 NF11

SID PID

City

CTY

QTY

PName

Page 12: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

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 = หญง ภาคคา

Page 13: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

ฟงกชนการขนตรงตอกน (Functional Dependency : FD)

ใน Relation ใดๆ Attribute Y เปน FD กบ Attribute X กตอเมอ ถาทราบคา X จะตองทราบคาของ Y

สญลกษณS.SID S.SNameS.SID S.CityS.SID S.(SName,City)

13

Page 14: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

2st Normal Form (2NF)

Relation ใดๆ จะเปน 2NF กตอเมอรเลชนน นเปน 1NF อยแลว

รเลชนน นไมมพารเชยลดเพนเดนซ (Partial Dependency) หมายถง ตองไมม Non-Key ทข นอยกบสวนหนงสวนใดของ Key

(Non-Key คอ ฟลดทไมใช PK)ถา PK มเพยงฟลดเดยว จะเปน 2NF โดยอตโนมต ถา PK ม 2 ฟลดข นไป จะตองพจารณา 2NF

14

Page 15: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

Partial Dependency

เกดข นเมอ relation ทม Determinant มากกวา 1 ตว (ม PK มากกวา 1 attribute) เปนคยผสม (composite key)

ความสมพนธระหวางคาของ attribute แบบบางสวนเกดข นเมอ attributeบางสวนของ PK สามารถระบคาของ attribute อน ๆ ทไมใช PK ของrelation ได (Non-key attribute)

จะเกดปญหาความซ าซอน และการปรบปรงขอมล

15

Page 16: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

Partial Dependency16

SID PID

City CTY

QTY

PName

Page 17: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

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)

Page 18: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

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

Page 19: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

SP

P

S

Functional Dependency ของ 2 NF19

SID

PID

City

CTY

QTY

PName

SID PID

Page 20: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

3st Normal Form (3NF)

Relation ใดๆ จะเปน 3NF กตอเมอรเลชนน นเปน 2NF อยแลวรเลชนน นไมมทรานซทฟดเพนเดนซ (ไมม FD ระหวาง Non-key)

20

Page 21: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

Transitive Dependency

SID -> City

City -> CTY

SID -> CTY

21

SID

City

CTY

Page 22: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

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

Page 23: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

ตวอยางการนอรมลไลเซชน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

Page 24: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

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

Page 25: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

Boyce and Codd Normal Form (BCNF)

Relation ใดๆ จะเปน BCNF กตอเมอ

ทกๆ ตวทใชอางองถง (Determinant) เปน Candidate Key

ม Candidate Key ทเปน Combine Key เพยงชดเดยว

25

Page 26: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

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

Page 27: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

BCNF27

Product Brand

Zone

Type

Product Type

Zone

Brand

Product Type Zone Type Brand

Page 28: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

BCNF28

A B

D

C

A C

D

B

A C D C B

Page 29: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

4th Normal Form (4NF)

Relation ใดๆ จะเปน 4NF กตอเมอมคณสมบตเปน 3NFตองไมปรากฏ MVD (Multi-Valued Dependency) ใน Relation

29

Page 30: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

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

Page 31: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

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

Page 32: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

4th Normal Form (4NF)

Subject Teacher Section

Network Peter Lecture

Network Peter Lab

Network John Lab

Network John Practice

32

Page 33: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

5th Normal Form (5NF)

Relation ใดๆ จะเปน 5NF กตอเมอมคณสมบตเปน 4NFตองไมปรากฏ JD (Join Dependency) ใน Relation

33

Page 34: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

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

Page 35: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

5th Normal Form (5NF)

Relation ใดๆจะเปน 5NF กตอเมอRelation R. ไมสามารถแยกเปนตารางยอยไดหาก Relation R. แยกเปนตารางยอยได แตตารางยอยเหลาน นม Candidate

Key เหมอนกบ Candidate Key ของ Relation R. ถอวา Relation R. เปน 5NF

35

Page 36: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

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

Page 37: รายวิชา 235302 ระบบฐานข้อมูล หน่วยที่ 1 ความรู้เบื้องต้น ... · Normalization หลักการ

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