SlideShare a Scribd company logo
1 of 33
วิช า

ระบบการจัด การฐานข้อ มูล อ
1
หัว ข้อ การบรรยาย


ความหมายและจุด ประสงค์ข องการน
อร์ม ัล ไลเซชัน
่
ฟัง ก์ช น การขึ้น ต่อ กัน (Function
ั
Dependencies)
กระบวนการนอร์ม ัล ไลเซชัน
่

2
ความหมายและจุด ประสงค์ข อง
การนอร์ม ัล ไลเซชัน
่
นอร์มัลไลเซชัน เป็นทฤษฎีที่ผู้ออกแบบฐาน
่

ข้อมูลจะต้องนำามาใช้ในการแปลงข้อมูลที่อยู่ใน
รูปแบบที่ซับซ้อน ให้อยู่ในรูปแบบที่ง่ายต่อ
การนำาไปใช้งานและก่อให้เกิดปัญหาน้อยที่สุด

ในบทนี้จะสอนกระบวนการนอร์มัลไลเซชัน ใน

3 ระดับด้วยกันคือ
นอร์มัลไลชั่นระดับที่ 1 หรือเรียกว่า 1NF
นอร์มัลไลชั่นระดับที่ 2 หรือเรียกว่า 2NF
นอร์มัลไลชั่นระดับที่ 3 หรือเรียกว่า 3NF

3
วิเ คราะห์
ความ
ต้อ งการของ
ผู้ใ ช้

E-R
Diagram

รีเ ลชั่น ที่ม ีร ูป แบบไม่
เป็น บรรทัด ฐาน
(Unnormalized
relation)

1 NF
2 NF

3 NF
บอยด์
คอดด์
4 NF
รีเ ลชั่น ที่ม ีเ ป็น บรรแบบ
ทัด ฐาน
(Normalized relation)

กระบวนการปรับ
บรรทัดฐาน
(Normalization)

4
วัต ถุป ระสงค์ข องนอร์ม ัล ไลซ์
(Normalization)
 ลดความซำ้าซ้อนของข้อมูล เมื่อลดความซำ้า

ซ้อนก็ทำาให้ลดเนื้อหาที่ใช้ในการจัดเก็บข้อมูล
 ลดปัญหาความไม่ถูกต้องของข้อมูล เมื่อข้อมูล
ไม่เกิดความซำ้าซ้อนทำาให้การปรับปรุงข้อมูล
สามารถทำาได้จากแหล่งข้อมูลเพียงแหล่งเดียว
 ลดความผิดพลาดที่อาจเกิดจากการปรับปรุง
ข้อมูล (update anomalies) ซึ่งประกอบด้วย

5
ความซำ้า ซ้อ นและข้อ ผิด พลาด
จากการปรับ ปรุง ข้อ มูล อมูลเชิง
แนวคิดหลักอันสำาคัญของการออกแบบฐานข้

สัมพันธ์ คือ การออกแบบให้มีการเก็บข้อมูลซำ้าซ้อนน้อย
ที่สุด
เพื่อประหยัดเนื้อที่ในการเก็บข้อมูลและลดปัญหาที่จะเกิดดัง

ตัวอย่างต่อไปนี้

6
ตัว อย่า งการออกแบบฐานข้อ มูล ทีด ี
่
Branch
Employee
(สาขา) ที่อ ยู่
รหั งาน) ่อ -สกุล ตำา แห เงิน
ชื
รหัส
รหัส
(พนักส
พนัก งา
น
SG21
SG37

น่ง

เดือ
น

สาขา

สาขา

B005
B003

ชูชาติ สุข
ศรี

ผู้
จัดการ

300
00

ผู้ช่วย

200
00

B003

กรุงเทพ

B005

ศิริ ดวง
เด่น

เชียงให
ม่

พิษณุโล
ก
ตัว อย่า งการออกแบบฐานข้อ มูล ทีจ ะมีป ัญ หาของความ
่
SG14
ดวงใจ มี เลขานุ
Employee_Branch ้า ซ้อ200 B003ย ดของพนัก งาน
ซำ (รวมรายละเอี
นตามมา
สุข
การ
00
ไว้ด ว ยกัน กับ ชื่อ -สกุล ย ดของสาขา ) รหัส
้ รหัส
รายละเอี ตำา แหน่ เงิน
ที่อ ยู่
SG09
อัจฉรา
ผู้
300 B007
พนัก งานยวแก้ว จัดการ ง
เดือ สาขา
เขี
00
น
SG21
SG37

ชูชาติ สุข
ศรี
ศิริ ดวงเด่น

ผู้จัดการ 300
00
ผู้ช่วย

200

B007

B005
B003

เชียงให
ม่
กรุงเทพ

7
ตัว อย่า งปัญ หาความซำ้า ซ้อ นในข้อ มูล รีเ ลชั่น
EMPLOYEE_BRANCE
รหัส
พนัก งาน

ชื่อ -สกุล

ตำา แหน่ เงิน
ง
เดือ น

รหัส
สาขา

ที่อ ยู่

SG21

ชูชาติ สุข ผู้จัดการ 30000 B005 เชียงให
ศรี
ม่

SG37

ศิริ ดวงเด่น ผู้ช่วย

SG14

ดวงใจ มี
สุข

20000 B003 กรุงเทพ

เลขานุก 20000 B003 กรุงเทพ
าร

อัจฉรา
ผู้จัดการ 30000 B007 พิษณุโล
ก
ความผิดเขียวแก้ว
พลาดจากการเพิม
่

SG09

oถ้า ต้อ งการเพิม พนัก งานใหม่ ทีอ ยู่ส าขา
่
่
B005
oจะต้อ งกรอก B005 และทีอ ยูส าขา คือ
่ ่
เชีย งใหม่ เพิม อีก
่

8
ตัว อย่า งปัญ หาความซำ้า ซ้อ นในข้อ มูล รีเ ลชั่น
EMPLOYEE_BRANCE
รหัส
พนัก งาน

ชื่อ -สกุล

ตำา แหน่ เงิน
ง
เดือ น

รหัส
สาขา

ที่อ ยู่

SG21

ชูชาติ สุข ผู้จัดการ 30000 B005 เชียงให
ศรี
ม่

SG37

ศิริ ดวงเด่น ผู้ช่วย

20000 B003 กรุงเทพ

ดวงใจ มี เลขานุก 20000 B003 กรุงเทพ
สุข
าร
ความผิด พลาดจากการเพิม
่
SG14

ถ้า ต้อ งการเพิม สาขา ัดการ ป ัญ หาคืB007 พิษณุโล
SG09
อัจฉรา
ผู้จ จะมี 30000 อ ตารางนี้
่
เขียวแก้ว
ก
มีท ง ข้อ มูล พนัก งานและข้อ มูล สาขาอยูร วมกัน
ั้
่
หากจะเพิม เฉพาะ รหัส สาขา และ ทีอ ยู่ ก็ไ ม่
่
่
ได้เ พราะ รหัส พนัก งาน จะมีค ่า ว่า งไม่ไ ด้
เพราะเป็น Primary Key ของตาราง
ดัง นัน จะบัน ทึก ได้ก ต ่อ เมือ มีพ นัก งานแล้ว
้
็
่
9
ความผิด พลาดจากการลบข้อ มูล
 ถ้า ลบข้อ มูล หนึ่ง แล้ว ส่ง ผลกระทบกับ ข้อ มูล อื่น ที่ต ้อ งถูก
ลบตาม
 เช่น พนัก งานรหัส SG21 ลาออก ก็ล บแถวนั้น ออก
 ข้อ มูล สาขา B005 ก็จ ะหายไปด้ว ย

ข้อ ผิด พลาดจากการเปลี่ย นแปลง
 ในกรณีท ี่ต อ งการเปลีย นแปลงข้อ มูล บางตัว ของสาขา
้
่
 เช่น เปลี่ย นที่อ ยู่ข อง B003 ก็ต ้อ งเปลี่ย นหลายที่
 ถ้า หากมีพ นัก งานสัง กัด สาขานี้ห ลายที่ก ็ต ้อ งไปตามแก้ท ุก

ๆ ที่

ดังนั้นเราควรแยกตาราง Employee_Brance ออกเป็นสอง
ตาราง คือ ตารางพนักงาน และตารางสาขา
10
พนัก งาน
รหัส
พนัก งา
น

ชื่อ -สกุล

ตำา แห
น่ง

เงิน
เดือ
น

รหัส
สาขา

SG21

ชูชาติ สุข
ศรี

ผู้
จัดการ

300
00

B005

SG37

ศิริ ดวง
เด่น

ผู้ช่วย

200
00

B003

สาขา
ดวงใจ มี เลขานุ 200
สุรหัส
ข
การ ยู่ 00
ที่อ
อัจสาขา
ฉรา
ผู้
300
เขียB005 จัดการ 00
วแก้ว เชียงให
ม่

B003

SG14
SG09

B003

กรุงเทพ

B007

พิษณุโล

B007

11
ฟัง ก์ช น การขึ้น ต่อ กัน (Functional
ั่
Dependency : FD)
ถ้า ให้ X และ Y เป็น Attribute ใน

Relation ใดๆ แทนด้ว ย R(X,Y)
Attribute Y เป็น จะถูก เรีย กว่า มี
ฟัง ก์ช น การขึ้น ต่อ กัน กับ แอททริบ ว ต์
ั
ิ
X ก็ต ่อ เมือ แต่ล ะค่า ที่ไ ม่ซ ำ้า กัน ของ
่
แอททริบ ว ต์ X มีข ้อ มูล ของ Y ที่
ิ
เกี่ย วข้อ งกับ X เพีย ง 1 ค่า
เขีย นแทนด้ว ย สัญ ลัก ษณ์ X  Y
12
ตัว อย่า
ง

Employ
eeNo

Name

Position

S01

ฉัต รชัย มี
สมบัต ิ

S02

เอกชัย ใจดี Manager
Assistant

S03

มนีร ัต น์
เจริญ สุข

Manager

S04

ขวัญ ชัย
ใจเพชร

Manager
Assistant

ดวงกมล
ทิพ ย์เ ทพ

Staff

Manager

S05
มานพ เกตุ Staff
EmployeeNo
แก้ว
Position
S06

13
B) Position (not)
employeeNo
A

EmployeeNo
employeeNo S21

B

Position
Manager



Position
Manager

EmployeeNo
employeeNo S21
employeeNo S41

การขึ้น ต่อ กัน ค่า X จะต้อ งกำา หนดค่า Y ได้ 1:1

14
ชนิด ของฟัง ก์ช น การขึ้น ต่อ กัน ( Functional
ั่
Dependency :FD)
 1) Complete dependencies การขึ้น ต่อ กัน

อย่า งสมบูร ณ์
 แอททริบิวต์ทไม่ใช่คีย์หลัก ขึ้นต่อ แอททริบิวต์หรือ
ี่
กลุ่มของแอททริบิวต์ทเป็นคียหลัก
ี่
์
 ตัวอย่าง ตารางทีมแอทริบิวต์ค่าเดียวทำาหน้าทีเป็น
่ ี
่
คีย์หลัก คืหมายเลขบัต รตรประชาชน ต ร
อ หมายเลขบั ชื่อ เจ้า ของบั
ประชาชน

344010063493 กนกวรรณ พ่วง
1
พงษ์
343728342034 ชาติชาย เตชะ
3
วงศ์

หมายเลขบัตรประชาชน  ชื่อ
293874203948 กิ่งกาญ เดชา

15
ชนิด ของฟัง ก์ช น การขึ้น ต่อ กัน ( Functional
ั่
Dependency :FD)
ตัวอย่าง ตารางที่มีแอทริบิวต์หลายตัวขึ้นกับคีย์หลักตัวเดียว
หมายเลขบัต ร
ประชาชน

ชื่อ เจ้า ของ
บัต ร

วัน เกิด

วัน ที่ท ำา บัต ร

34401006349 กนกวรรณ พ่วง
31
พงษ์

27/03/252 28/04/2553
0

34372834203 ชาติชาย เตชะ
43
วงศ์
หมายเลขบัต รประชาชน

23/06/252 25/02/2553
2
ชื่อ เจ้า ของ

บัต ร,วัน เกิด ,วั กิ่ง ่ท ำา บัต ร
29387420394 น ทีกาญ เดชา
85
ทรัพย์

21/04/252 19/0125/52
5

16
ชนิด ของฟัง ก์ช น การขึ้น ต่อ กัน ( Functional
ั่
Dependency :FD)
 ตัวอย่าง ตารางที่มีแอทริบิวหลายตัวรวมกันเป็นคีย์หลัก คือ

รหัสนักศึกษา รหัสวิชา
ตารางการลง
ทะเบีย น
รหัส
นัก ศึก ษา

รหัส วิช า

เกรด

520014001

S001

A

520014001

S002

B

520014002

S001

C

520014002
S002
รหัส นัก ศึก ษา,รหัส วิช า
เกรด

A

17
ชนิด ของฟัง ก์ช น การขึ้น ต่อ กัน ( Functional
ั่
Dependency :FD)
 2) Partial Dependency (การขึ้นต่อกันบางส่วน)
 เกิดขึ้นเมือคียหลักประกอบด้วยหลาย Attribute รวม
่
์

กัน
 เมือแอตทริบิวต์บางส่วนของคียหลัก สามารถไประบุค่า
่
์
แอตทริบิวต์ตัวอื่น ๆ ทีไม่ใช่คีย์หลักของรีเลชั่นได้
่
รหัส
นัก ศึก ษา

รหัส วิช า

รหัส นัก ศึก ษา, รหัส วิช า
รหัส วิช า

เกรด

ชื่อวิชา

Partial Dependency

เกรด , ชื่อ วิช า
ชื่อ วิช า
18
ตัว อย่า งฟัง ก์ช ั่น การขึ้น ต่อ กัน แบบ
Partial
รหัส
นัก ศึก ษา

รหัส
วิช า

เกร
ด

ชื่อ วิช า

5342670 F01
01

A

การเขีย น
โปรแกรม

5342670 F02
01

B

การออกแบบฐาน
ข้อ มูล

5342670 F01
02

D

การเขีย น
โปรแกรม

5342670 F02
02

A

การออกแบบฐาน
ข้อ มูล

5342670 F01
03

A

การเขีย น
โปรแกรม

19
ชนิด ของฟัง ก์ช ั่น การขึ้น ต่อ กัน
(Functional Dependency : FD)
เกิด ขึ้น เมื่อ
Attribute ที่ไ ม่ใ ช่ Primary Key ไปขึ้น อยู่ก บ
ั
Attribute อื่น ที่ไ ม่ใ ช่ Primary Key ในรีเ ลชั่น นัน
้
เลข
ชื่อ สกุล
ที่อ ยู่
ตำา แหน่ง
รถประจำา
ๆ

 3 Transitive Dependency

ประจำา ตัว

ตำา แหน่ง

01

ฉัต รชัย มี
สมบัต ิ

กรุง เทพ

ผู้จ ัด การ

02

เอกชัย ใจดี

นนทบุร ี

ผู้ช ่ว ยผู้จ ัด การ

03

มนีร ัต น์
เจริญ สุข

04

ขวัญ ชัย
คำา อธิบ าย
ใจเพชร

เชีย งใหม่
ราชบุร ี

ผู้จ ัด การ
ผู้ช ่ว ยผู้จ ัด การ

BMW
Honda
BMW
Honda

เลขประจำา ตัว เป็น คีย ์ห ลัก (Primary
Key) ของตาราง
เลขประจำา ตัว
ชื่อ สกุล , ที่อ ยู่,

20
นอร์ม ล ไลซ์เ ซชั่น
ั
(Normalization)
 Normalization คือ กระบวนการปรับปรุงโครงสร้าง

ข้อมูลของฐานข้อมูลที่มีความซำ้าซ้อนให้อยู่ในรูปแบบที่
เป็นบรรทัดฐาน (Normal Form)

 การนอร์มัลไลเซชันมีได้ถึง 5 ระดับ ในระดับที่ 3 ก็จัดว่า

เพียงพอสำาหรับการออกแบบฐานข้อมูลในปัจจุบัน
 1NF - กำาจัด repeating group
(กำาจัดกลุ่มของข้อมูลที่มีความซำ้าซ้อน)
 2NF - กำาจัด partial dependency
(กำาจัดการขึ้นต่อกันบางส่วน)
 3NF - กำาจัด transitive dependency
(กำาจัดการขึ้นต่อกันของแอตทริบิวท์ที่ไม่ใช่
คีย์หลัก)

21
22
First Normal record จะเป็น single
Form (1NF)
 ทุก Attribute ในแต่ล ะ

value ไม่ม ี ค่า ของกลุม ข้อ มูล ที่ซ ำ้า กัน (Repeating
่
Group)
 ข้อ มูล ทุก แถว (Tuple) ต้อ งมีค ่า ไม่ซ ำ้า กัน

ตารางทีม ล ัก ษณะข้อ มูล เป็น Repeating group
่ ี
รหัส
ชื่อ
นัก ศึก ษา
001
สมชา
ย
002

ธีร
ชาย

นามสกุล
สมใจนึก

บุญ มาศ

รหัส วิช าที่ล ง
ทะเบีย น
204-101 Repeating Group
204-204
204-205
204-102
23
Second Normal Form
(2NF)

1. ต้อ งเป็น First Normal Form (1NF) มาก่อ น
2. ต้อ งไม่ม ี Partial Dependency (การขึ้น ต่อ กัน

บางส่ว น)

สรุป ก็ค ือ นอร์ม ัล ไลเซชัน ระดับ ที่ 2 (Second

normal form : 2NF) เป็น การขจัด แอตตริบ ิว ที่

ไม่ข ึ้น กับ ทั้ง ส่ว นของคีย ์ห ลัก

ออกไป เพื่อ ให้แ อตตริบ ิว อื่น ทั้ง หมดขึ้น ตรงกับ ส่ว น
ที่เ ป็น คีย ์ห ลัก ทั้ง หมดเท่า นั้น
25
ตัว อย่า งตารางที่ Partial Dependency
(การขึ้น ต่อ กัน บางส่ว น)
รหัส
นัก ศึก ษา

รหัส
วิช า

เกร
ด

ชื่อ วิช า

5342670 F01
01

A

การเขีย น
โปรแกรม

5342670 F02
01

B

การออกแบบฐาน
ข้อ มูล

5342670 F01
02

D

การเขีย น
โปรแกรม

5342670 F02
02 ส
รหั

A

การออกแบบฐาน
ข้อ มูล

รหัส วิช าA

5342670 F01
นัก ศึก ษา
03

รหัส นั5342670 รหัส วิช า C
ก ศึก ษา, F02
03
รหัส วิช า

เกรด

การเขีย น
Partial Dependency
โปรแกรม

ชื่อวิชา

การออกแบบฐาน ่อ วิช า
เกรด ,ชื
ข้อ มูล
26

ชื่อ วิช า
Second Normal Form
(2NF)
 วิธ ข จัด ปัญ หา
ี

1) ต้อ งสร้า งตารางเพิ่ม
2) นำา คอลัม ย์ท ี่ม ีป ญ หาไปใส่ใ นตารางที่
ั

สร้า งเพิ่ม
3) กำา หนดคีย ์ห ลัก ให้ก ับ ตารางที่ส ร้า งใหม่
4) แอททริบ ว ต์ใ ดในตารางเดิม เมื่อ นำา ไปใส่
ิ
ในตารางใหม่ ให้ต ัด ออกจากตารางเดิม
ยกเว้น ส่ว นของคีย ์ห ลัก คงไว้ใ นตาราง
เดิม
27
ตารางผล
รหัส
การเรีย น รหัส
นัก ศึก ษา

วิช า

เก
รด

ชื่อ วิช า

534267
001

F01

A

การเขีย น
โปรแกรม

534267
001

F02

B

การออกแบบ
ฐานข้อ มูล

534267
002

F01

D

ตารางนีเ มือ
้ ่
ทำา ให้อ ยูใ นรูป
่
2 NF จะได้ 2
ตารางดัง นี้

การเขีย น
โปรแกรม

534267 F02 A
002 ตารางผล

การออกแบบ
ฐานข้อ มูล

534267 รหัส ย น Aรหัส
F01
การเขีย น
การเรี
เกรด
003 นัก ศึก ษา
โปรแกรม
วิช า
534267 F02 F01 การออกแบบ
5342670 C
A
003 01
ฐานข้อ มูล
5342670 F02
01

B

5342670 F01
02

ตาราง
วิรหัส
ชา
วิช า

ชื่อ วิช า

F01

การเขีย น
โปรแกรม

F02

การออกแบบ
ฐานข้อ มูล

D
28
ให้น ก ศึก ษานอมัล ไลซ์ต ารางนี้
ั
ให้อ ยูใ นรูป แบบ 2NF
่
ตารางผลการอบรม
รหัส ผู้
เข้า
อบรม
0001

รหัส ครอ
สอบรม

0001

TR05

0002

TR03

0002

TR09

0003

TR01

TR01

ชื่อ ผู้เ ข้า
อบรม
นายเอ ใจดี

ชื่อ ครอ
สอบรม

การซ่อม
ไฟฟ้า
นายเอ ใจดี การซ่อมตู้
เย็น
นางบี ใจกล้า การทำา
อาหาร
นางบี ใจกล้า การเลี้ยง
เด็ก
นายรวย มี การซ่อม

ผลการ
ทดสอบ
ผ่าน
ผ่าน
ไม่ผ่าน
ผ่าน
ผ่าน29
Third Normal Form (3NF)

1.Relation นั้นจะต้องมีคุณสมบัติ 2NF
2.ต้องไม่มีความสัมพันธ์ระหว่าง Non-key

Attribute หรือ
ไม่มี Transitive Dependency
สรุป : แอททริบวต์ทไม่ใช่คย์หลัก ต้องไม่ขึ้น
ิ
ี่
ี
ต่อกันเอง

30
Third Normal Form (3NF)
วิธีขจัดปัญหา

1. สร้างตารางเพิม
่
2. นำาแอททริบิวต์ที่มีปัญหามาใส่ในตาราง

ใหม่
3. กำาหนดคียหลัก
์
4. แอททริบิวต์ที่ยายจากตารางเดิมไปใส่
้
ในตารางใหม่ให้ตัดออกจากตารางเดิม
5. นำาคียหลักในข้อ 3 ไปใส่ในตารางเดิม
์

31
รหัส
ชือ สกุล
่
รหัส
ชื่อ แผนก เงิน เดือ น
พนัก งา
แผนก
น
P001 นพเกศ แก้ว A001
บัญชี
25000
 คีย์หลักของตารางนี้คือ รหัสพนักงาน
ใส
 จากตารางยังมีฟังก์ชนการขึ้นต่อกันแบบ การเงิน
ั่
Transitive30000
P002
วารุณี
F001
Dependencyรวดเร็ว
อยู่ คือ
 รหัสแผนก ซึ่งไม่ใช่คีย์หลักของตาราง แต่สามารถระบุค่า

ชื่อแผนก ได้ คือ ถ้ารู้รหัสแผนก ก็จะรู้ชื่อแผนก

จากตารางข้า งบน ทำา ให้อ ยู่ใ นรูป 3 NF
รหัส
ชื่อ สกุล
รหัส
รหัส
จะได้ 2 ตารางข้า งล่าเงิน้
งนี

พนัก งา
น
P001

เดือ น

แผนก
A001
นพเกศ แก้ว 25000 F001

ชื่อ
แผนก แผนก
A001 บัญชี
F001 การเงิน
32
สรุป Normalization
1NF ทุกแอททริบิวต์ในแต่ละแถวมีค่าของข้อมูลเพียงค่า

เดียว
2NF รีเลชันนั้นต้องไม่มีความสัมพันธ์ระหว่างแอททริบิวต์
แบบบางส่วน (แอททริบิวต์ทุกตัวต้องขึ้นกับคีย์หลักทุกตัว
ไม่ขึ้นอยู่กับตัวใดตัวหนึ่ง)
3NF ทุกแอททริบิวต์ที่ไม่ใช่คีย์หลักไม่มีคุณสมบัติในการ
กำาหนดค่าของ
แอททริบิวต์อื่น

33

More Related Content

What's hot

นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5Nuanlaor Nuan
 
โจทย์ปัญหา Pbl5
โจทย์ปัญหา Pbl5โจทย์ปัญหา Pbl5
โจทย์ปัญหา Pbl5anusong
 
เขียนโปรแกรมด้วยไพธอน
เขียนโปรแกรมด้วยไพธอนเขียนโปรแกรมด้วยไพธอน
เขียนโปรแกรมด้วยไพธอนNuchy Suchanuch
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจtaltan
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3KEk YourJust'one
 
งาน #1 กลุ่มที่ 4
งาน #1 กลุ่มที่ 4 งาน #1 กลุ่มที่ 4
งาน #1 กลุ่มที่ 4 Natthapong Khunthong
 
นอร์มัลไลเซชัน
นอร์มัลไลเซชันนอร์มัลไลเซชัน
นอร์มัลไลเซชันPang Parawee
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลkruthanyaporn
 
กลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือก
กลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือกกลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือก
กลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือกNaphamas
 
2. ใบความรู้ที่ 1
2. ใบความรู้ที่ 12. ใบความรู้ที่ 1
2. ใบความรู้ที่ 1ครูเพชร
 
โครงสร้างข้อมูลแบบต้นไม้
โครงสร้างข้อมูลแบบต้นไม้โครงสร้างข้อมูลแบบต้นไม้
โครงสร้างข้อมูลแบบต้นไม้tumetr
 
การใช้โปรแกรม Access เบื้องต้น
การใช้โปรแกรม Access เบื้องต้นการใช้โปรแกรม Access เบื้องต้น
การใช้โปรแกรม Access เบื้องต้นtechno UCH
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือกการเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือกSupicha Ploy
 

What's hot (17)

นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
 
โจทย์ปัญหา Pbl5
โจทย์ปัญหา Pbl5โจทย์ปัญหา Pbl5
โจทย์ปัญหา Pbl5
 
เขียนโปรแกรมด้วยไพธอน
เขียนโปรแกรมด้วยไพธอนเขียนโปรแกรมด้วยไพธอน
เขียนโปรแกรมด้วยไพธอน
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจ
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
 
Excel2007
Excel2007Excel2007
Excel2007
 
3.3. ชนิดของข้อมูล
3.3. ชนิดของข้อมูล3.3. ชนิดของข้อมูล
3.3. ชนิดของข้อมูล
 
งาน #1 กลุ่มที่ 4
งาน #1 กลุ่มที่ 4 งาน #1 กลุ่มที่ 4
งาน #1 กลุ่มที่ 4
 
นอร์มัลไลเซชัน
นอร์มัลไลเซชันนอร์มัลไลเซชัน
นอร์มัลไลเซชัน
 
Epi info unit09
Epi info unit09Epi info unit09
Epi info unit09
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
 
กลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือก
กลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือกกลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือก
กลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือก
 
Tree01
Tree01Tree01
Tree01
 
2. ใบความรู้ที่ 1
2. ใบความรู้ที่ 12. ใบความรู้ที่ 1
2. ใบความรู้ที่ 1
 
โครงสร้างข้อมูลแบบต้นไม้
โครงสร้างข้อมูลแบบต้นไม้โครงสร้างข้อมูลแบบต้นไม้
โครงสร้างข้อมูลแบบต้นไม้
 
การใช้โปรแกรม Access เบื้องต้น
การใช้โปรแกรม Access เบื้องต้นการใช้โปรแกรม Access เบื้องต้น
การใช้โปรแกรม Access เบื้องต้น
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือกการเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือก
 

Similar to นอร์มัลไลเซชัน

การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูลOrapan Chamnan
 
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูลความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูลkruthanyaporn
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูลYongyut Nintakan
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูลYongyut Nintakan
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจtaltan
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจtaltan
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจtaltan
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจtaltan
 
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูลLecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูลskiats
 
ระบบฐานข้อมูล
ระบบฐานข้อมูลระบบฐานข้อมูล
ระบบฐานข้อมูลMareeyalosocity
 
บทที่ 3
บทที่ 3บทที่ 3
บทที่ 3nunzaza
 
Myun dao22
Myun dao22Myun dao22
Myun dao22MyunDao
 
Myun dao22
Myun dao22Myun dao22
Myun dao22MyunDao
 

Similar to นอร์มัลไลเซชัน (20)

การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูลความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 
Int3204 charapter1
Int3204 charapter1Int3204 charapter1
Int3204 charapter1
 
Pbl5
Pbl5Pbl5
Pbl5
 
Pbl5
Pbl5Pbl5
Pbl5
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจ
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจ
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจ
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจ
 
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูลLecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
 
ระบบฐานข้อมูล
ระบบฐานข้อมูลระบบฐานข้อมูล
ระบบฐานข้อมูล
 
Mai
MaiMai
Mai
 
Lesson 1
Lesson 1Lesson 1
Lesson 1
 
บทที่ 3
บทที่ 3บทที่ 3
บทที่ 3
 
11
1111
11
 
Myun dao22
Myun dao22Myun dao22
Myun dao22
 
Myun dao22
Myun dao22Myun dao22
Myun dao22
 
บท3
บท3บท3
บท3
 

More from Kittipong Joy

สถิติเบื้องต้น ข้อมูลสถิติหรือข้อมูล
สถิติเบื้องต้น ข้อมูลสถิติหรือข้อมูลสถิติเบื้องต้น ข้อมูลสถิติหรือข้อมูล
สถิติเบื้องต้น ข้อมูลสถิติหรือข้อมูลKittipong Joy
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1Kittipong Joy
 
'กูเกิล' จับมือ 4 ค่ายรถดัง พัฒนารถยนต์ระบบปฏิบัติการ 'แอนดรอยด์'
'กูเกิล' จับมือ 4 ค่ายรถดัง พัฒนารถยนต์ระบบปฏิบัติการ 'แอนดรอยด์''กูเกิล' จับมือ 4 ค่ายรถดัง พัฒนารถยนต์ระบบปฏิบัติการ 'แอนดรอยด์'
'กูเกิล' จับมือ 4 ค่ายรถดัง พัฒนารถยนต์ระบบปฏิบัติการ 'แอนดรอยด์'Kittipong Joy
 
สร้างแผ่นพับ 3 ตอน ด้วย microsoft word
สร้างแผ่นพับ 3 ตอน ด้วย microsoft wordสร้างแผ่นพับ 3 ตอน ด้วย microsoft word
สร้างแผ่นพับ 3 ตอน ด้วย microsoft wordKittipong Joy
 

More from Kittipong Joy (9)

สถิติเบื้องต้น ข้อมูลสถิติหรือข้อมูล
สถิติเบื้องต้น ข้อมูลสถิติหรือข้อมูลสถิติเบื้องต้น ข้อมูลสถิติหรือข้อมูล
สถิติเบื้องต้น ข้อมูลสถิติหรือข้อมูล
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
#1
#1#1
#1
 
'กูเกิล' จับมือ 4 ค่ายรถดัง พัฒนารถยนต์ระบบปฏิบัติการ 'แอนดรอยด์'
'กูเกิล' จับมือ 4 ค่ายรถดัง พัฒนารถยนต์ระบบปฏิบัติการ 'แอนดรอยด์''กูเกิล' จับมือ 4 ค่ายรถดัง พัฒนารถยนต์ระบบปฏิบัติการ 'แอนดรอยด์'
'กูเกิล' จับมือ 4 ค่ายรถดัง พัฒนารถยนต์ระบบปฏิบัติการ 'แอนดรอยด์'
 
Doc1
Doc1Doc1
Doc1
 
Doc1
Doc1Doc1
Doc1
 
มายแมป
มายแมปมายแมป
มายแมป
 
ปราย (1)
ปราย (1)ปราย (1)
ปราย (1)
 
สร้างแผ่นพับ 3 ตอน ด้วย microsoft word
สร้างแผ่นพับ 3 ตอน ด้วย microsoft wordสร้างแผ่นพับ 3 ตอน ด้วย microsoft word
สร้างแผ่นพับ 3 ตอน ด้วย microsoft word
 

นอร์มัลไลเซชัน

  • 2. หัว ข้อ การบรรยาย  ความหมายและจุด ประสงค์ข องการน อร์ม ัล ไลเซชัน ่ ฟัง ก์ช น การขึ้น ต่อ กัน (Function ั Dependencies) กระบวนการนอร์ม ัล ไลเซชัน ่ 2
  • 3. ความหมายและจุด ประสงค์ข อง การนอร์ม ัล ไลเซชัน ่ นอร์มัลไลเซชัน เป็นทฤษฎีที่ผู้ออกแบบฐาน ่ ข้อมูลจะต้องนำามาใช้ในการแปลงข้อมูลที่อยู่ใน รูปแบบที่ซับซ้อน ให้อยู่ในรูปแบบที่ง่ายต่อ การนำาไปใช้งานและก่อให้เกิดปัญหาน้อยที่สุด ในบทนี้จะสอนกระบวนการนอร์มัลไลเซชัน ใน 3 ระดับด้วยกันคือ นอร์มัลไลชั่นระดับที่ 1 หรือเรียกว่า 1NF นอร์มัลไลชั่นระดับที่ 2 หรือเรียกว่า 2NF นอร์มัลไลชั่นระดับที่ 3 หรือเรียกว่า 3NF 3
  • 4. วิเ คราะห์ ความ ต้อ งการของ ผู้ใ ช้ E-R Diagram รีเ ลชั่น ที่ม ีร ูป แบบไม่ เป็น บรรทัด ฐาน (Unnormalized relation) 1 NF 2 NF 3 NF บอยด์ คอดด์ 4 NF รีเ ลชั่น ที่ม ีเ ป็น บรรแบบ ทัด ฐาน (Normalized relation) กระบวนการปรับ บรรทัดฐาน (Normalization) 4
  • 5. วัต ถุป ระสงค์ข องนอร์ม ัล ไลซ์ (Normalization)  ลดความซำ้าซ้อนของข้อมูล เมื่อลดความซำ้า ซ้อนก็ทำาให้ลดเนื้อหาที่ใช้ในการจัดเก็บข้อมูล  ลดปัญหาความไม่ถูกต้องของข้อมูล เมื่อข้อมูล ไม่เกิดความซำ้าซ้อนทำาให้การปรับปรุงข้อมูล สามารถทำาได้จากแหล่งข้อมูลเพียงแหล่งเดียว  ลดความผิดพลาดที่อาจเกิดจากการปรับปรุง ข้อมูล (update anomalies) ซึ่งประกอบด้วย 5
  • 6. ความซำ้า ซ้อ นและข้อ ผิด พลาด จากการปรับ ปรุง ข้อ มูล อมูลเชิง แนวคิดหลักอันสำาคัญของการออกแบบฐานข้ สัมพันธ์ คือ การออกแบบให้มีการเก็บข้อมูลซำ้าซ้อนน้อย ที่สุด เพื่อประหยัดเนื้อที่ในการเก็บข้อมูลและลดปัญหาที่จะเกิดดัง ตัวอย่างต่อไปนี้ 6
  • 7. ตัว อย่า งการออกแบบฐานข้อ มูล ทีด ี ่ Branch Employee (สาขา) ที่อ ยู่ รหั งาน) ่อ -สกุล ตำา แห เงิน ชื รหัส รหัส (พนักส พนัก งา น SG21 SG37 น่ง เดือ น สาขา สาขา B005 B003 ชูชาติ สุข ศรี ผู้ จัดการ 300 00 ผู้ช่วย 200 00 B003 กรุงเทพ B005 ศิริ ดวง เด่น เชียงให ม่ พิษณุโล ก ตัว อย่า งการออกแบบฐานข้อ มูล ทีจ ะมีป ัญ หาของความ ่ SG14 ดวงใจ มี เลขานุ Employee_Branch ้า ซ้อ200 B003ย ดของพนัก งาน ซำ (รวมรายละเอี นตามมา สุข การ 00 ไว้ด ว ยกัน กับ ชื่อ -สกุล ย ดของสาขา ) รหัส ้ รหัส รายละเอี ตำา แหน่ เงิน ที่อ ยู่ SG09 อัจฉรา ผู้ 300 B007 พนัก งานยวแก้ว จัดการ ง เดือ สาขา เขี 00 น SG21 SG37 ชูชาติ สุข ศรี ศิริ ดวงเด่น ผู้จัดการ 300 00 ผู้ช่วย 200 B007 B005 B003 เชียงให ม่ กรุงเทพ 7
  • 8. ตัว อย่า งปัญ หาความซำ้า ซ้อ นในข้อ มูล รีเ ลชั่น EMPLOYEE_BRANCE รหัส พนัก งาน ชื่อ -สกุล ตำา แหน่ เงิน ง เดือ น รหัส สาขา ที่อ ยู่ SG21 ชูชาติ สุข ผู้จัดการ 30000 B005 เชียงให ศรี ม่ SG37 ศิริ ดวงเด่น ผู้ช่วย SG14 ดวงใจ มี สุข 20000 B003 กรุงเทพ เลขานุก 20000 B003 กรุงเทพ าร อัจฉรา ผู้จัดการ 30000 B007 พิษณุโล ก ความผิดเขียวแก้ว พลาดจากการเพิม ่ SG09 oถ้า ต้อ งการเพิม พนัก งานใหม่ ทีอ ยู่ส าขา ่ ่ B005 oจะต้อ งกรอก B005 และทีอ ยูส าขา คือ ่ ่ เชีย งใหม่ เพิม อีก ่ 8
  • 9. ตัว อย่า งปัญ หาความซำ้า ซ้อ นในข้อ มูล รีเ ลชั่น EMPLOYEE_BRANCE รหัส พนัก งาน ชื่อ -สกุล ตำา แหน่ เงิน ง เดือ น รหัส สาขา ที่อ ยู่ SG21 ชูชาติ สุข ผู้จัดการ 30000 B005 เชียงให ศรี ม่ SG37 ศิริ ดวงเด่น ผู้ช่วย 20000 B003 กรุงเทพ ดวงใจ มี เลขานุก 20000 B003 กรุงเทพ สุข าร ความผิด พลาดจากการเพิม ่ SG14 ถ้า ต้อ งการเพิม สาขา ัดการ ป ัญ หาคืB007 พิษณุโล SG09 อัจฉรา ผู้จ จะมี 30000 อ ตารางนี้ ่ เขียวแก้ว ก มีท ง ข้อ มูล พนัก งานและข้อ มูล สาขาอยูร วมกัน ั้ ่ หากจะเพิม เฉพาะ รหัส สาขา และ ทีอ ยู่ ก็ไ ม่ ่ ่ ได้เ พราะ รหัส พนัก งาน จะมีค ่า ว่า งไม่ไ ด้ เพราะเป็น Primary Key ของตาราง ดัง นัน จะบัน ทึก ได้ก ต ่อ เมือ มีพ นัก งานแล้ว ้ ็ ่ 9
  • 10. ความผิด พลาดจากการลบข้อ มูล  ถ้า ลบข้อ มูล หนึ่ง แล้ว ส่ง ผลกระทบกับ ข้อ มูล อื่น ที่ต ้อ งถูก ลบตาม  เช่น พนัก งานรหัส SG21 ลาออก ก็ล บแถวนั้น ออก  ข้อ มูล สาขา B005 ก็จ ะหายไปด้ว ย ข้อ ผิด พลาดจากการเปลี่ย นแปลง  ในกรณีท ี่ต อ งการเปลีย นแปลงข้อ มูล บางตัว ของสาขา ้ ่  เช่น เปลี่ย นที่อ ยู่ข อง B003 ก็ต ้อ งเปลี่ย นหลายที่  ถ้า หากมีพ นัก งานสัง กัด สาขานี้ห ลายที่ก ็ต ้อ งไปตามแก้ท ุก ๆ ที่ ดังนั้นเราควรแยกตาราง Employee_Brance ออกเป็นสอง ตาราง คือ ตารางพนักงาน และตารางสาขา 10
  • 11. พนัก งาน รหัส พนัก งา น ชื่อ -สกุล ตำา แห น่ง เงิน เดือ น รหัส สาขา SG21 ชูชาติ สุข ศรี ผู้ จัดการ 300 00 B005 SG37 ศิริ ดวง เด่น ผู้ช่วย 200 00 B003 สาขา ดวงใจ มี เลขานุ 200 สุรหัส ข การ ยู่ 00 ที่อ อัจสาขา ฉรา ผู้ 300 เขียB005 จัดการ 00 วแก้ว เชียงให ม่ B003 SG14 SG09 B003 กรุงเทพ B007 พิษณุโล B007 11
  • 12. ฟัง ก์ช น การขึ้น ต่อ กัน (Functional ั่ Dependency : FD) ถ้า ให้ X และ Y เป็น Attribute ใน Relation ใดๆ แทนด้ว ย R(X,Y) Attribute Y เป็น จะถูก เรีย กว่า มี ฟัง ก์ช น การขึ้น ต่อ กัน กับ แอททริบ ว ต์ ั ิ X ก็ต ่อ เมือ แต่ล ะค่า ที่ไ ม่ซ ำ้า กัน ของ ่ แอททริบ ว ต์ X มีข ้อ มูล ของ Y ที่ ิ เกี่ย วข้อ งกับ X เพีย ง 1 ค่า เขีย นแทนด้ว ย สัญ ลัก ษณ์ X  Y 12
  • 13. ตัว อย่า ง Employ eeNo Name Position S01 ฉัต รชัย มี สมบัต ิ S02 เอกชัย ใจดี Manager Assistant S03 มนีร ัต น์ เจริญ สุข Manager S04 ขวัญ ชัย ใจเพชร Manager Assistant ดวงกมล ทิพ ย์เ ทพ Staff Manager S05 มานพ เกตุ Staff EmployeeNo แก้ว Position S06 13
  • 14. B) Position (not) employeeNo A EmployeeNo employeeNo S21 B Position Manager  Position Manager EmployeeNo employeeNo S21 employeeNo S41 การขึ้น ต่อ กัน ค่า X จะต้อ งกำา หนดค่า Y ได้ 1:1 14
  • 15. ชนิด ของฟัง ก์ช น การขึ้น ต่อ กัน ( Functional ั่ Dependency :FD)  1) Complete dependencies การขึ้น ต่อ กัน อย่า งสมบูร ณ์  แอททริบิวต์ทไม่ใช่คีย์หลัก ขึ้นต่อ แอททริบิวต์หรือ ี่ กลุ่มของแอททริบิวต์ทเป็นคียหลัก ี่ ์  ตัวอย่าง ตารางทีมแอทริบิวต์ค่าเดียวทำาหน้าทีเป็น ่ ี ่ คีย์หลัก คืหมายเลขบัต รตรประชาชน ต ร อ หมายเลขบั ชื่อ เจ้า ของบั ประชาชน 344010063493 กนกวรรณ พ่วง 1 พงษ์ 343728342034 ชาติชาย เตชะ 3 วงศ์ หมายเลขบัตรประชาชน  ชื่อ 293874203948 กิ่งกาญ เดชา 15
  • 16. ชนิด ของฟัง ก์ช น การขึ้น ต่อ กัน ( Functional ั่ Dependency :FD) ตัวอย่าง ตารางที่มีแอทริบิวต์หลายตัวขึ้นกับคีย์หลักตัวเดียว หมายเลขบัต ร ประชาชน ชื่อ เจ้า ของ บัต ร วัน เกิด วัน ที่ท ำา บัต ร 34401006349 กนกวรรณ พ่วง 31 พงษ์ 27/03/252 28/04/2553 0 34372834203 ชาติชาย เตชะ 43 วงศ์ หมายเลขบัต รประชาชน 23/06/252 25/02/2553 2 ชื่อ เจ้า ของ บัต ร,วัน เกิด ,วั กิ่ง ่ท ำา บัต ร 29387420394 น ทีกาญ เดชา 85 ทรัพย์ 21/04/252 19/0125/52 5 16
  • 17. ชนิด ของฟัง ก์ช น การขึ้น ต่อ กัน ( Functional ั่ Dependency :FD)  ตัวอย่าง ตารางที่มีแอทริบิวหลายตัวรวมกันเป็นคีย์หลัก คือ รหัสนักศึกษา รหัสวิชา ตารางการลง ทะเบีย น รหัส นัก ศึก ษา รหัส วิช า เกรด 520014001 S001 A 520014001 S002 B 520014002 S001 C 520014002 S002 รหัส นัก ศึก ษา,รหัส วิช า เกรด A 17
  • 18. ชนิด ของฟัง ก์ช น การขึ้น ต่อ กัน ( Functional ั่ Dependency :FD)  2) Partial Dependency (การขึ้นต่อกันบางส่วน)  เกิดขึ้นเมือคียหลักประกอบด้วยหลาย Attribute รวม ่ ์ กัน  เมือแอตทริบิวต์บางส่วนของคียหลัก สามารถไประบุค่า ่ ์ แอตทริบิวต์ตัวอื่น ๆ ทีไม่ใช่คีย์หลักของรีเลชั่นได้ ่ รหัส นัก ศึก ษา รหัส วิช า รหัส นัก ศึก ษา, รหัส วิช า รหัส วิช า เกรด ชื่อวิชา Partial Dependency เกรด , ชื่อ วิช า ชื่อ วิช า 18
  • 19. ตัว อย่า งฟัง ก์ช ั่น การขึ้น ต่อ กัน แบบ Partial รหัส นัก ศึก ษา รหัส วิช า เกร ด ชื่อ วิช า 5342670 F01 01 A การเขีย น โปรแกรม 5342670 F02 01 B การออกแบบฐาน ข้อ มูล 5342670 F01 02 D การเขีย น โปรแกรม 5342670 F02 02 A การออกแบบฐาน ข้อ มูล 5342670 F01 03 A การเขีย น โปรแกรม 19
  • 20. ชนิด ของฟัง ก์ช ั่น การขึ้น ต่อ กัน (Functional Dependency : FD) เกิด ขึ้น เมื่อ Attribute ที่ไ ม่ใ ช่ Primary Key ไปขึ้น อยู่ก บ ั Attribute อื่น ที่ไ ม่ใ ช่ Primary Key ในรีเ ลชั่น นัน ้ เลข ชื่อ สกุล ที่อ ยู่ ตำา แหน่ง รถประจำา ๆ  3 Transitive Dependency ประจำา ตัว ตำา แหน่ง 01 ฉัต รชัย มี สมบัต ิ กรุง เทพ ผู้จ ัด การ 02 เอกชัย ใจดี นนทบุร ี ผู้ช ่ว ยผู้จ ัด การ 03 มนีร ัต น์ เจริญ สุข 04 ขวัญ ชัย คำา อธิบ าย ใจเพชร เชีย งใหม่ ราชบุร ี ผู้จ ัด การ ผู้ช ่ว ยผู้จ ัด การ BMW Honda BMW Honda เลขประจำา ตัว เป็น คีย ์ห ลัก (Primary Key) ของตาราง เลขประจำา ตัว ชื่อ สกุล , ที่อ ยู่, 20
  • 21. นอร์ม ล ไลซ์เ ซชั่น ั (Normalization)  Normalization คือ กระบวนการปรับปรุงโครงสร้าง ข้อมูลของฐานข้อมูลที่มีความซำ้าซ้อนให้อยู่ในรูปแบบที่ เป็นบรรทัดฐาน (Normal Form)  การนอร์มัลไลเซชันมีได้ถึง 5 ระดับ ในระดับที่ 3 ก็จัดว่า เพียงพอสำาหรับการออกแบบฐานข้อมูลในปัจจุบัน  1NF - กำาจัด repeating group (กำาจัดกลุ่มของข้อมูลที่มีความซำ้าซ้อน)  2NF - กำาจัด partial dependency (กำาจัดการขึ้นต่อกันบางส่วน)  3NF - กำาจัด transitive dependency (กำาจัดการขึ้นต่อกันของแอตทริบิวท์ที่ไม่ใช่ คีย์หลัก) 21
  • 22. 22
  • 23. First Normal record จะเป็น single Form (1NF)  ทุก Attribute ในแต่ล ะ value ไม่ม ี ค่า ของกลุม ข้อ มูล ที่ซ ำ้า กัน (Repeating ่ Group)  ข้อ มูล ทุก แถว (Tuple) ต้อ งมีค ่า ไม่ซ ำ้า กัน ตารางทีม ล ัก ษณะข้อ มูล เป็น Repeating group ่ ี รหัส ชื่อ นัก ศึก ษา 001 สมชา ย 002 ธีร ชาย นามสกุล สมใจนึก บุญ มาศ รหัส วิช าที่ล ง ทะเบีย น 204-101 Repeating Group 204-204 204-205 204-102 23
  • 24.
  • 25. Second Normal Form (2NF) 1. ต้อ งเป็น First Normal Form (1NF) มาก่อ น 2. ต้อ งไม่ม ี Partial Dependency (การขึ้น ต่อ กัน บางส่ว น) สรุป ก็ค ือ นอร์ม ัล ไลเซชัน ระดับ ที่ 2 (Second normal form : 2NF) เป็น การขจัด แอตตริบ ิว ที่ ไม่ข ึ้น กับ ทั้ง ส่ว นของคีย ์ห ลัก ออกไป เพื่อ ให้แ อตตริบ ิว อื่น ทั้ง หมดขึ้น ตรงกับ ส่ว น ที่เ ป็น คีย ์ห ลัก ทั้ง หมดเท่า นั้น 25
  • 26. ตัว อย่า งตารางที่ Partial Dependency (การขึ้น ต่อ กัน บางส่ว น) รหัส นัก ศึก ษา รหัส วิช า เกร ด ชื่อ วิช า 5342670 F01 01 A การเขีย น โปรแกรม 5342670 F02 01 B การออกแบบฐาน ข้อ มูล 5342670 F01 02 D การเขีย น โปรแกรม 5342670 F02 02 ส รหั A การออกแบบฐาน ข้อ มูล รหัส วิช าA 5342670 F01 นัก ศึก ษา 03 รหัส นั5342670 รหัส วิช า C ก ศึก ษา, F02 03 รหัส วิช า เกรด การเขีย น Partial Dependency โปรแกรม ชื่อวิชา การออกแบบฐาน ่อ วิช า เกรด ,ชื ข้อ มูล 26 ชื่อ วิช า
  • 27. Second Normal Form (2NF)  วิธ ข จัด ปัญ หา ี 1) ต้อ งสร้า งตารางเพิ่ม 2) นำา คอลัม ย์ท ี่ม ีป ญ หาไปใส่ใ นตารางที่ ั สร้า งเพิ่ม 3) กำา หนดคีย ์ห ลัก ให้ก ับ ตารางที่ส ร้า งใหม่ 4) แอททริบ ว ต์ใ ดในตารางเดิม เมื่อ นำา ไปใส่ ิ ในตารางใหม่ ให้ต ัด ออกจากตารางเดิม ยกเว้น ส่ว นของคีย ์ห ลัก คงไว้ใ นตาราง เดิม 27
  • 28. ตารางผล รหัส การเรีย น รหัส นัก ศึก ษา วิช า เก รด ชื่อ วิช า 534267 001 F01 A การเขีย น โปรแกรม 534267 001 F02 B การออกแบบ ฐานข้อ มูล 534267 002 F01 D ตารางนีเ มือ ้ ่ ทำา ให้อ ยูใ นรูป ่ 2 NF จะได้ 2 ตารางดัง นี้ การเขีย น โปรแกรม 534267 F02 A 002 ตารางผล การออกแบบ ฐานข้อ มูล 534267 รหัส ย น Aรหัส F01 การเขีย น การเรี เกรด 003 นัก ศึก ษา โปรแกรม วิช า 534267 F02 F01 การออกแบบ 5342670 C A 003 01 ฐานข้อ มูล 5342670 F02 01 B 5342670 F01 02 ตาราง วิรหัส ชา วิช า ชื่อ วิช า F01 การเขีย น โปรแกรม F02 การออกแบบ ฐานข้อ มูล D 28
  • 29. ให้น ก ศึก ษานอมัล ไลซ์ต ารางนี้ ั ให้อ ยูใ นรูป แบบ 2NF ่ ตารางผลการอบรม รหัส ผู้ เข้า อบรม 0001 รหัส ครอ สอบรม 0001 TR05 0002 TR03 0002 TR09 0003 TR01 TR01 ชื่อ ผู้เ ข้า อบรม นายเอ ใจดี ชื่อ ครอ สอบรม การซ่อม ไฟฟ้า นายเอ ใจดี การซ่อมตู้ เย็น นางบี ใจกล้า การทำา อาหาร นางบี ใจกล้า การเลี้ยง เด็ก นายรวย มี การซ่อม ผลการ ทดสอบ ผ่าน ผ่าน ไม่ผ่าน ผ่าน ผ่าน29
  • 30. Third Normal Form (3NF) 1.Relation นั้นจะต้องมีคุณสมบัติ 2NF 2.ต้องไม่มีความสัมพันธ์ระหว่าง Non-key Attribute หรือ ไม่มี Transitive Dependency สรุป : แอททริบวต์ทไม่ใช่คย์หลัก ต้องไม่ขึ้น ิ ี่ ี ต่อกันเอง 30
  • 31. Third Normal Form (3NF) วิธีขจัดปัญหา 1. สร้างตารางเพิม ่ 2. นำาแอททริบิวต์ที่มีปัญหามาใส่ในตาราง ใหม่ 3. กำาหนดคียหลัก ์ 4. แอททริบิวต์ที่ยายจากตารางเดิมไปใส่ ้ ในตารางใหม่ให้ตัดออกจากตารางเดิม 5. นำาคียหลักในข้อ 3 ไปใส่ในตารางเดิม ์ 31
  • 32. รหัส ชือ สกุล ่ รหัส ชื่อ แผนก เงิน เดือ น พนัก งา แผนก น P001 นพเกศ แก้ว A001 บัญชี 25000  คีย์หลักของตารางนี้คือ รหัสพนักงาน ใส  จากตารางยังมีฟังก์ชนการขึ้นต่อกันแบบ การเงิน ั่ Transitive30000 P002 วารุณี F001 Dependencyรวดเร็ว อยู่ คือ  รหัสแผนก ซึ่งไม่ใช่คีย์หลักของตาราง แต่สามารถระบุค่า ชื่อแผนก ได้ คือ ถ้ารู้รหัสแผนก ก็จะรู้ชื่อแผนก จากตารางข้า งบน ทำา ให้อ ยู่ใ นรูป 3 NF รหัส ชื่อ สกุล รหัส รหัส จะได้ 2 ตารางข้า งล่าเงิน้ งนี พนัก งา น P001 เดือ น แผนก A001 นพเกศ แก้ว 25000 F001 ชื่อ แผนก แผนก A001 บัญชี F001 การเงิน 32
  • 33. สรุป Normalization 1NF ทุกแอททริบิวต์ในแต่ละแถวมีค่าของข้อมูลเพียงค่า เดียว 2NF รีเลชันนั้นต้องไม่มีความสัมพันธ์ระหว่างแอททริบิวต์ แบบบางส่วน (แอททริบิวต์ทุกตัวต้องขึ้นกับคีย์หลักทุกตัว ไม่ขึ้นอยู่กับตัวใดตัวหนึ่ง) 3NF ทุกแอททริบิวต์ที่ไม่ใช่คีย์หลักไม่มีคุณสมบัติในการ กำาหนดค่าของ แอททริบิวต์อื่น 33