You are on page 1of 4

วิชา ระบบฐานข้อมูล สุนี โชติดิลก ปีการศึกษา 2565

แบบฝึกหัดที่ 2
(ERD จากข้อ 5 หน้า ....... )
จงนอร์มัลไลซ์ตารางให้อยู่ในรูป 3NF (เป็นตารางที่มาจาก ERD)

หนังสือ(รหัสหนังสือ, ชื่อหนังสือ, ราคาต้นทุน, ราคาเช่า, วันที่ซื้อมา)


การเช่าหนังสือ(ลาดับที่เช่า, ชื่อลูกค้า, รหัสหนังสือ, รหัสพนักงาน, วันที่เช่า, วันที่คืน)

* * * * * * * * * * * * * *
วิธีทา 1NF
พิจารณาพบว่าตาราง หนังสือ ไม่มี Repeating Group ดังนั้น ตารางดังกล่าวอยู่ในรูป 1NF

พิจารณาตาราง การเช่าหนังสือ พบว่า มี Repeating Group คือ แอททริบิวท์รหัสหนังสือ และ


แอททริบิวท์ วันที่คืน (ดูการพิจารณาในกระดาษทด หลังสรุป)
เพราะลูกค้า 1 คนอาจเช่าหนังสือมากกว่า 1 เล่ม แต่ละเล่มอาจนามาคืนไม่พร้อมกัน ดังนั้น ตารางดังกล่าว
ไม่อยู่ในรูป 1NF นอร์มัลไลซ์ตารางให้อยู่ในรูป 1NF ได้โดยเลือกแอททริบิวท์รหัสหนังสือ เป็นคีย์หลักของกลุ่ม
ซ้า จะได้ตารางที่อยู่ในรูป 1NF ดังนี้

การเช่าหนังสือ(ลาดับที่เช่า, รหัสหนังสือ, ชื่อลูกค้า, รหัสพนักงาน, วันที่เช่า, วันที่คืน)

สรุปจะมีตารางที่อยู่ในรูป 1NF ดังนี้

หนังสือ(รหัสหนังสือ, ชื่อหนังสือ, ราคาต้นทุน, ราคาเช่า, วันที่ซื้อมา)


การเช่าหนังสือ(ลาดับที่เช่า, รหัสหนังสือ, ชื่อลูกค้า, รหัสพนักงาน, วันที่เช่า, วันที่คืน)

ลาดับที่เช่า - - -> ชื่อลูกค้า, รหัสพนักงาน, วันที่เช่า กระดาษทด


รหัสหนังสือ - - ->

2NF
พิจารณาตาราง หนังสือ ทีอ่ ยู่ในรูป 1NF พบว่า ไม่มี Partial FD ดังนั้น ตารางดังกล่าวอยู่ในรูป
2NF เพราะ Non key ทุกตัวขึ้นกับทุกส่วนของ Primary key

พิจารณาตาราง การเช่าหนังสือ ที่อยู่ในรูป 1NF

ลาดับที่เช่า - - - -> ชื่อลูกค้า, รหัสพนักงาน, วันที่เช่า - - -> Partial FD

พบว่า มี Partial FD ดังนั้น ตารางดังกล่าว ไม่อยู่ในรูป 2NF


2
ดังนั้น Normalize ตารางให้อยู่ในรูป 2NF ดังนี้

ขั้นตอนที่ 1 สร้างตารางใหม่ ชื่อ “รายละเอียด_การเช่าหนังสือ”


ขั้นตอนที่ 2 นา แอททริบิวท์ที่มีปัญหา

ลาดับที่เช่า - - - -> ชื่อลูกค้า, รหัสพนักงาน, วันที่เช่า

ใส่ในตารางใหม่
รายละเอียด_การเช่าหนังสือ(ลาดับที่เช่า, ชื่อลูกค้า, รหัสพนักงาน, วันที่เช่า)

ขั้นตอนที่ 3 เลือก primary key

รายละเอียด_การเช่าหนังสือ(ลาดับที่เช่า, ชื่อลูกค้า, รหัสพนักงาน, วันที่เช่า)

ขั้นตอนที่ 4 ปรับปรุงตารางเดิม ได้ดังนี้


การเช่าหนังสือ(ลาดับที่เช่า, รหัสหนังสือ, วันที่คืน)

สรุปจะมีตารางที่อยู่ในรูป 2NF ดังนี้


หนังสือ(รหัสหนังสือ, ชื่อหนังสือ, ราคาต้นทุน, ราคาเช่า, วันที่ซื้อมา)
รายละเอียด_การเช่าหนังสือ(ลาดับที่เช่า, ชื่อลูกค้า, รหัสพนักงาน, วันที่เช่า)
การเช่าหนังสือ(ลาดับที่เช่า, รหัสหนังสือ, วันที่คืน)
* * * * * * * * * * * * * * * * * * * * * * * * *

3NF
พิจารณาตาราง การเช่าหนังสือ ที่อยู่ในรูป 2NF พบว่า ไม่มี Non Key ขึ้นต่อกัน ดังนั้น ตาราง
ดังกล่าวอยู่ในรูป 3NF เพราะไม่มี Determinant จึงทาให้ไม่มี Determinant ที่ไม่เป็น Candidate Key

พิจารณาตาราง รายละเอียด_การเช่าหนังสือ ที่อยู่ในรูป 2NF พบว่า ไม่มี Non Key ขึ้นต่อกัน ดังนั้น
ตารางดังกล่าวอยู่ในรูป 3NF เพราะไม่มี Determinant จึงทาให้ไม่มี Determinant ที่ไม่เป็น Candidate Key
3
สิ่งที่ต้องหาคือ 1. Non key ขึ้นต่อกัน
ถ้ามี พิจารณาข้อ 2 ถ้าไม่มี จะอยู่ในรูป 3NF
2. มีการขึ้นต่อกันแบบ transitive หรือไม่
ถ้า ขึ้นต่อกันแบบ transitive จะ ไม่อยู่ในรูป 3NF ให้ นอร์มัลไลซ์
ถ้า ไม่ขึ้นต่อกันแบบ transitive จะอยูใ่ นรูป 3NF

หนังสือ(รหัสหนังสือ, ชื่อหนังสือ, ราคาต้นทุน, ราคาเช่า, วันที่ซื้อมา) 2NF

พิจารณาตาราง หนังสือ ที่อยู่ในรูป 2NF พบว่า มี Non Key ขึ้นต่อกันดังนี้

ชื่อหนังสือ ราคาต้นทุน, ราคาเช่า, วันที่ซื้อมา

พิจารณาพบว่าไม่ขึ้นต่อกันแบบ Transitive dependency ดังนี้


Determinant ที่ทำหน้ำที่
Primary key
เป็ น primary key ได้
รหัสหนังสือ ชื่อหนังสือ

ราคาต้นทุน, ราคาเช่า, วันที่ซื้อมา


ได้รูป สามเหลี่ยม ฉะนั้น ไม่เป็น Transitive dependency

ดังนั้น ตารางดังกล่าวอยู่ในรูป 3NF เพราะ มี Determinant ทุกตัวเป็น Candidate Key

สรุปจะมีตารางที่อยู่ในรูป 3NF ดังนี้


หนังสือ(รหัสหนังสือ, ชื่อหนังสือ, ราคาต้นทุน, ราคาเช่า, วันที่ซื้อมา)
รายละเอียด_การเช่าหนังสือ(ลาดับที่เช่า, ชื่อลูกค้า, รหัสพนักงาน, วันที่เช่า)
การเช่าหนังสือ(ลาดับที่เช่า, รหัสหนังสือ, วันที่คืน)
4

กระดาษทด
1NF หา Repeating Group

กระดำษทด
นักศึกษา
ลำดับทีเ่ ช่ ำ รหัสหนังสื อ ชื่อลูกค้ำ รหัสพนักงำน วันที่เช่ำ วันที่คืน
12 0123 น้ ำทิพย์ E_45 12/5/52 14/5/53
3333 16/5/53
มีมากกว่า 1ค่า

Atomic (ใน 1 เซลมีค่าเดียว) Repeating Group

You might also like