สญั ลักษณท์ ใี่ ชใ้ น E-R Model
101
สญั ลักษณท์ ใี่ ชใ้ น E-R Model
102
ข้นั ตอนกำรออกแบบ E-R Model
ในการออกแบบ ER-Diagram มีด้วยกันหลาย
ข้ันตอนสาหรับใน 5 ขั้นตอนแรกเป็นการออกแบบ
ทางดา้ นโครงสร้างพน้ื ฐานของโมเดล ได้แก่ เอนทิตี้ รเี ลชัน
ชิป คีย์หลัก คีย์สารอง คีย์ภายนอก และกฎเกณฑ์พ้ืนฐาน
จากนั้นจึงเร่ิมเพิ่มรายละเอียดในระดับที่ผู้ใช้มองเห็น
(User View) และรวมรายละเอียดเหล่าน้ันเข้าด้วยกัน จึง
ไดเ้ ปน็ โมเดลขอ้ มูลเชิงตรรกะท่สี มบรู ณ์
103
ขนั้ ตอนกำรออกแบบ E-R Model 104
1. กำรกำหนดเอนทิตี้หลกั
อ อ ก แ บ บ ฐ า น ข้ อ มู ล โ ด ย เ ริ่ ม จ า ก ก า ร น า
Requirement ในข้างต้นที่กล่าวมาแล้ว การกาหนดเอนทิตี
น้ันเป็นงานที่ยาก วิธีการให้พิจารณาข้อมูลท้ังหมดท่ีมี และ
จัดกลุ่มของข้อมูล โดยดูจากค่าและความหมายถ้าสามารถ
รวมกลุ่มกันได้ก็ให้รวมเข้าไว้ในเอนทิตีเดียวกัน แล้วนาไป
กาหนดชื่อและความหมายลงในพจนานุกรมข้อมูล และเขียน
ลงโมเดลขอ้ มูลด้วยการตั้งชอ่ื ไม่ควรเกนิ 20 ตัวอกั ษร
ขั้นตอนกำรออกแบบ E-R Model 105
2. กำรกำหนดควำมสมั พนั ธร์ ะหวำ่ งเอนทติ ้ี
กาหนดชือ่ ความหมาย รีเลชันชปิ ทิศทาง และขนาด
อัตราส่วนที่เกิดรีเลชันชิปน้ันๆ พร้อมทั้งบันทึกลงใน
พจนานุกรมข้อมูลด้วยสาหรับชื่อก็ไม่ควรเกิน 20 ตัวอักษร
จ า ก นั้ น ส า ม า ร ถ แ บ่ ง ก ลุ่ ม รี เ ล ชั น ชิ ป ร ะ ห ว่ า ง เ อ น ทิ ตี ไ ด้
เรียบร้อยแล้ว พบว่า รีเลชันชิปแบบ 1 : Many เป็นส่ิงท่ีเรา
ตอ้ งสนใจมากทส่ี ดุ เพราะเปน็ ตัวทาใหก้ ารสรา้ งฐานขอ้ มูลเชิง
ตรรกะมคี วามยุ่งยากซบั ซ้อนมากขึ้น
ขนั้ ตอนกำรออกแบบ E-R Model 106
3. กำรกำหนดคีย์หลกั และคยี ์รอง
การเพ่มิ ข้อมูลท่ีเรียกว่า แอททรบิ วิ ทล์ งในทกุ ๆ เอนทติ ี
สิง่ ทส่ี าคัญอีกประการหน่งึ คอื เอนทิตที ่ีเป็นซับไทปจ์ ะต้องมี
คีย์หลักอันเดยี วกบั เอนทิตที ่เี ปน็ ซปุ เปอรไ์ ทปข์ องมนั หลังจาก
กาหนดแล้วให้ตงั้ ชื่อระบุในโมเดลขอ้ มูลเชิงตรรกะพรอ้ มทงั้ ใสใ่ น
พจนานุกรมขอ้ มลู ดว้ ย การตัง้ ช่อื ควรกาหนดสน้ั และง่าย
โดยสามารถใชช้ อื่ ย่อก็ได้ และควรหลกี เลย่ี งการตัง้ ชอื่ แอททริ
บวิ ท์ของสองส่ิงท่ไี มเ่ หมอื นกนั ด้วยช่ือเดียวกนั
ขั้นตอนกำรออกแบบ E-R Model
4. กำรกำหนดคียภ์ ำยนอก
เมื่อกาหนดคีย์หลักและคีย์รองได้แล้ว ให้กาหนด
คีย์ภายนอกสาหรับเอนทิตีท่ีมีรีเลชันชิปกันทุกอัน คีย์
ภายนอก คอื แอททรบิ ิวท์ในเอนทิตีระดับลกู ทแ่ี ทนคีย์หลัก
ของเอนทิตีระดับพ่อแม่ เพื่อใช้ในการอ้างถึงระเบียนใน
เอนทิตีระดับพ่อแม่และแสดงถึงรีเลชันชิประหว่างเอนทิตี
ต่าง ๆ
107
ขัน้ ตอนกำรออกแบบ E-R Model
5. พิจำรณำขอบเขตคำ่ โดเมนของแอททริบิวท์
การพิจารณาขอบเขตค่าโดเมนของแอททรบิ วิ ท์ใหท้ า
การกาหนดโดเมนของแอททริบวิ ท์ทกุ ตวั ในเอนทิตแี ล้ว
บนั ทึกในพจนานกุ รมข้อมลู
108
ขัน้ ตอนกำรออกแบบ E-R Model
กล่มุ คา่ ที่ถูกตอ้ งเปน็ ไปไดส้ าหรับแอททรบิ ิวทแ์ ตล่ ะตัว ได้แก่
1. ชนิดของข้อมูล (Data Type) เช่น จานวนเตม็ วนั ที่
ตัวอกั ษร และทศนยิ ม เปน็ ต้น
2. ความยาว (Length) เชน่ 5 หลกั หรือ 35 ตัวอกั ษร
3. รูปแบบข้อมูล (Format) เชน่ dd/mm/yy (วนั ท่ี)
109
ขน้ั ตอนกำรออกแบบ E-R Model
4. ชว่ งของขอ้ มูลหรือขอ้ กาหนดอนื่ ๆ (Range,Constraints)
5. ความหมาย (Meaning) อธบิ ายความหมายของ
แอททรบิ วิ ท์น้นั วา่ คืออะไร
6. ความเปน็ หน่ึงเดียว (Uniqueness) ตอ้ งมคี ่าเป็นหนึง่ เดียว
7. ความเป็นนัล (Null support) อนุญาตให้เป็นนัลไดห้ รอื ไม่
ค่าโดยปรยิ าย (Default value) กาหนดใหม้ คี า่ เป็น 0
110
6. 3204-2004
รปู แบบท่ีเป็ นบรรทดั ฐาน ระบบจดั การฐานขอ้ มลู
(Database Management System)
เนื้อหำสำระ
1. การแปลงแผนภาพอี-อาร์ เป็นโครงสร้างตาราง
“ 2. การปรบั ฐานขอ้ มลู ให้อยใู่ นรูปแบบบรรทดั ฐาน
3. รูปแบบบรรทดั ฐาน
112
กำรแปลงแผนภำพอ-ี อำร์ เป็นโครงสรำ้ งตำรำง
1. แปลง Entity
1) กรณี Simple Attribute
- สร้างตารางสาหรบั Entity
- ชอ่ื ของตาราง นามาจาก ชื่อของ Entity
- ชอื่ ของคอลัมน์ นามาจากชือ่ ของ Attribute ของ Entity
- Primary Key ของ ตาราง นามาจาก Primary Key ของ Entity
113
กำรแปลงแผนภำพอ-ี อำร์ เป็นโครงสร้ำงตำรำง
Students
S_ID BirthYear
First_name Last_name
Students
S_ID First_name Last_name BirthYear
114
กำรแปลงแผนภำพอ-ี อำร์ เปน็ โครงสร้ำงตำรำง street city
state
2) กรณี Composite Attributes Customer
Zip
- นาเพียงแอททริบิวท์ Code
cus_ID
Address
แบบ simple ทบ่ี รรจอุ ยู่ใน
แอททริบวิ ท์แบบ Composite First_name Last_name
มาเทา่ นนั้
115
Customer
cus_ID First_name Last_name street city State zipcode
กำรแปลงแผนภำพอ-ี อำร์ เปน็ โครงสรำ้ งตำรำง
3) กรณี Multivalued Attribute
- ตอ้ งมีการสร้างรีเลชันสองรีเลชนั
- รเี ลชนั แรกจะบรรจคุ ่าแอททรบิ ิวท์ทีม่ ีอยู่ใน Entity ทัง้ หมด ยกเวน้
แอททริบวิ ท์ทเ่ี ปน็ แบบ Multivalued
- รีเลชันที่สองให้บรรจุ 2 แอททริบิวท์
- แอททรบิ ิวท์แรกคอื คยี ์หลักท่ีอยู่ในรีเลชันแรก
- แอททรบิ ิวทส์ อง คอื แอททริบวิ ทท์ ีเ่ ปน็ Multivalued
116
กำรแปลงแผนภำพอ-ี อำร์ เป็นโครงสรำ้ งตำรำง
117
กำรแปลงแผนภำพอ-ี อำร์ เป็นโครงสรำ้ งตำรำง
2. กำรแปลง Weak Entity
1) สร้างตารางใหม่สาหรบั Weak Entity นา
Primary Key จาก Master Entity มาเปน็ Primary Key
ร่วมกับ Primary Key เดิมของ Weak Entity
2) Attribute น้ันจะมาเปน็ Foreign Key สาหรับ
ชีไ้ ปยงั ตารางของ Master Entity
118
กำรแปลงแผนภำพอ-ี อำร์ เป็นโครงสรำ้ งตำรำง
119
กำรแปลงแผนภำพอ-ี อำร์ เปน็ โครงสรำ้ งตำรำง
3. แปลงควำมสัมพันธ์แบบ One-to-Many
1) นา Primary Key ฝั่ง One ไปเพมิ่ เปน็ คอลัมน์ ในฝ่ัง Many
2) คอลมั น์ น้ันจะเปน็ Foreign Key อา้ งถึง Primary Key ของ
ตารางท่ีตอ้ งการอ้างถึง(ฝง่ั One)
3) การแปลง Many-to-One กก็ ระทาอย่างเดยี วกัน
120
กำรแปลงแผนภำพอ-ี อำร์ เปน็ โครงสรำ้ งตำรำง
“
121
กำรแปลงแผนภำพอ-ี อำร์ เปน็ โครงสร้ำงตำรำง
4. แปลงควำมสมั พนั ธ์แบบ Many-to-Many
- สร้างตารางของความสมั พนั ธ์ขึน้ มา 1 ตารางเพอ่ื เกบ็
Primary Key ของทง้ั 2 ตาราง
- คอลัมนท์ ่ไี ด้ใหม่ทัง้ 2 คอลัมนจ์ ะเปน็ Foreign Key
ชไ้ี ปยังตารางทดี่ ึงมา
- ใช้ Entity ใหม่ ที่ได้มาเปน็ ทงั้ 2 Entity เปน็
Primary Key ของตารางความสมั พันธ์
122
กำรแปลงแผนภำพอ-ี อำร์ เป็นโครงสรำ้ งตำรำง
123
รูปแบบบรรทัดฐำน
1. รปู แบบบรรทัดฐำนขนั้ ที่ 1 (first normal form : 1NF)
การปรับเข้าส่รู ูปแบบบรรทัดฐานข้นั ที่ 1 (first normal form หรือ
เขียนย่อวา่ 1NF) จะต้องระบแุ ละขจดั กลุ่มของขอ้ มลู ซา้ (repeating group)
โดยกลุ่มของขอ้ มูลซ้าน้อี าจหมายถึงแอททรบิ วิ ท์ หรอื กลุ่มของแอททริบวิ ท์
ภายในรเี ลชนั ทที่ าใหเ้ กดิ คา่ หลายค่าสาหรบั คยี ห์ น่ึงๆ
สรุปกฎรปู แบบบรรทดั ฐานข้นั ที่ 1 (1NF) คอื แตล่ ะเซลลข์ องรีเลชนั
จะต้องประกอบดว้ ยคา่ เพยี งค่าเดยี วทไ่ี มส่ ามารถแบ่งแยกได้
124
รปู แบบบรรทดั ฐำน
125
รปู แบบบรรทดั ฐำน 126
2. รูปแบบบรรทัดฐำนข้ันที่ 2 (second normal form : 2NF)
รูปแบบบรรทัดฐานข้ันท่ี 2 (second normal form : 2NF)
มีพื้นฐานอยู่บนแนวความคิดของความสัมพันธ์ระหว่างค่าของแอทท
ริบิวท์แบบฟังก์ชัน (functional dependency) ซึ่งหมายถึง การที่
แอททริบิวท์หน่ึงหรือมากกว่าหนึ่ง เม่ือประกอบกันแล้วสามารถ
กาหนดค่าของแอททริบิวท์อ่ืนๆ ในรีเลชันเดียวกันนั้นได้ ต้องทา
ความเข้าใจกับแนวคิดของความสัมพันธ์ระหว่างค่าของแอททริบิวท์
แบบฟังก์ชันทต่ี อ้ งนามาใชใ้ นการพิจารณารปู แบบบรรทัดฐานขนั้ ท่ี 2
รปู แบบบรรทดั ฐำน
รหสั ชอื่ โครงการ รหสั พนกั งาน ชอื่ พนกั งาน ตาแหนง่ อตั รา/ชว่ั โมง ชว่ั โมง
72 ไลฟ์ คอนโด 205 สามารถ ขาดี Database designer 2,200.00 12.00
72 ไลฟ์ คอนโด 1,000.00 25.00
72 ไลฟ์ คอนโด 310 สมชอบ รอบคอบ Programmer 2,000.00
85 คลน่ื ลกู ใหม่ 2,200.00 5.00
85 คลนื่ ลกู ใหม่ 458 วนั เพญ็ เดอื นเพ็ญ System Analyst 1,000.00 8.00
85 คลนื่ ลกู ใหม่ 2,000.00 15.00
205 สามารถ ขาดี Database designer 3.00
311 สมศรี เรียบรอ้ ย Programmer
458 วนั เพญ็ เดอื นเพญ็ System Analyst
127
รปู แบบบรรทดั ฐำน
128
รูปแบบบรรทัดฐำน
3. รูปแบบบรรทัดฐำนข้ันที่ 3 (third normal form : 3NF)
การท่ีจะปรับรีเลชันที่อยู่ในรูปแบบบรรทัดฐานข้ันท่ี 2 เข้า
สู่รูปแบบบรรทัดฐานข้ันท่ี 3 (third normal form : 3NF) ต้องมี
ความเข้าในเร่ืองของความสัมพันธ์แบบถ่ายทอด (transitive
dependency) หมายความว่า แอททริบิวท์ท่ีไม่ได้เป็นคีย์หลักมี
ความสมั พนั ธ์กนั เอง ดงั จะพจิ ารณาได้จากตัวอย่างเดิมที่กล่าวถึงใน
1NF และ 2NF ภายหลังจากกระบวนการปรับให้อยู่ในรูป 2NF
แล้ว ไดร้ เี ลชนั จานวน 3 รีเลชัน
129
รปู แบบบรรทัดฐำน
สรุปกฎรูปแบบบรรทัดฐานขั้นท่ี 3 (3NF) คือ รีเลชันท่ี
อยู่ในรูปของ 2NF และไม่มีความสัมพันธ์แบบถ่ายทอดหรือ
กล่าวได้อีกนัยหน่ึง คือแอททริบิวท์ที่ไม่เป็นคีย์หลักต้องไม่มี
ความสมั พันธ์กนั เอง
130
รปู แบบบรรทดั ฐำน
131
รปู แบบบรรทดั ฐำน
132
รปู แบบบรรทัดฐำน 133
4. รปู แบบบรรทดั ฐำนของบอยซ-์ คอดด์
(Boyce-Codd normal form: BCNF)
รูปแบบบรรทดั ฐานของบอยซ์-คอดด์ (Boyce-Codd
normal form: BCNF) เป็นกรณีพเิ ศษของรปู แบบบรรทัดฐานขน้ั
ท่ี 3 ในกรณที ่คี ีย์หลกั เปน็ คีย์ผสม และแอททริบิวท์ที่ไม่ไดเ้ ป็นคีย์
หลกั เปน็ ตัวกาหนดคา่ ส่วนหนง่ึ ของคียห์ ลัก
สรปุ กฏรูปแบบบรรทัดฐานของบอยซ์-คอดด์ (BCNF) คือ
ทุกๆ ตวั กาหนดคา่ ในรีเลชันต้องเป็นคีย์คู่แข่ง
รปู แบบบรรทดั ฐำน
134
รปู แบบบรรทดั ฐำน
135
รปู แบบบรรทัดฐำน 136
5. รูปแบบบรรทดั ฐำนขัน้ ที่ 4 (fourh normal form : 4NF)
การที่จะปรับรีเลชันทอ่ี ย่ใู นรปู แบบบรรทดั ฐานขน้ั ที่ 3 เขา้
สู่รูปแบบบรรทัดฐานข้นั ท่ี 4 (fourh normal form : 4NF) ตอ้ งมี
ความเข้าในเรื่องของความสัมพนั ธ์ทีข่ น้ึ ตอ่ กันหลายค่า
(multivalued dependency) หรือกล่าวได้ว่า เกดิ กลุ่มข้อมูลซา้
หลายกลมุ่
สรปุ กฎรูปแบบบรรทดั ฐานขน้ั ท่ี 4 (4NF) คอื รีเลชนั ที่อยู่
ในรูปของ 3 NF และไมม่ ีความสมั พนั ธท์ ข่ี ้ึนตอ่ กันหลายคา่
รปู แบบบรรทดั ฐำน
137
รปู แบบบรรทดั ฐำน
138
รปู แบบบรรทดั ฐำน
139
รูปแบบบรรทดั ฐำน 140
6. รูปแบบบรรทัดฐำนขัน้ ที่ 5 (fifth normal form : 5NF)
การทีจ่ ะปรบั รีเลชนั ทอี่ ยู่ในรูปแบบบรรทดั ฐานขั้นที่ 4 เขา้
สู่รูปแบบบรรทัดฐานข้ันท่ี 5 (fifth normal form : 5NF) การ
แปลงให้อยู่ในรูปของนอร์มัลฟอร์มท่ี 5 จะพิจารณาถึงการข้ึนต่อ
กันของขอ้ มูลในการแยกข้อมลู ในรเี ลชนั ออกเป็นรีเลชันย่อย และ
ประกอบรีเลชันย่อยกลับเป็นรีเลชันใหญ่เช่นเดิม ซึ่งเป็นการ
ตรวจสอบว่าเมื่อรวมกันใหม่ด้วยวิธีการจอยน์แล้วจะได้รีเลชัน
กลับมาเหมอื นเดมิ ทุกประการหรือไม่
รปู แบบบรรทดั ฐำน
สรปุ กฎรปู แบบบรรทัดฐานขนั้ ที่ 5 (5NF) คือ รีเลชนั ท่อี ยู่
ในรปู ของ 4 NF และดูการแบ่งแยกรีเลชันตามคุณสมบตั จิ อยนด์ ี
เพนเดนซี
141
รปู แบบบรรทดั ฐำน
142
7. 3204-2004
ภาษาฐานขอ้ มลู ระบบจดั การฐานขอ้ มลู
(Database Management System)
เนอ้ื หำสำระ
1. คาสง่ั Create
2. คาสง่ั Insert
“ 3. คาสั่ง Delete
4. คาส่ัง Update
5. คาส่งั Select
6. คาส่งั Where
144
คำสัง่ CREATE
1. คำสงั่ ทใ่ี ช้ในกำรสรำ้ งตำรำง
คาสั่งท่ีใชใ้ นการสรา้ งตาราง CREATE TABLE โดยกาหนดช่ือคอลัมน์ในตาราง
ชนดิ ขอ้ มูล คยี ห์ ลกั คยี อ์ ้างองิ และ เงอื่ นไข โดยคาสั่งมีรูปแบบดังน้ี
CREATE TABLE ชอ่ื ตาราง
(ชือ่ คอลมั น์ ชนิดข้อมลู [เงือ่ นไข],
ชอื่ คอลมั น์ ชนดิ ขอ้ มลู [เงอื่ นไข], ...
[,PRIMARY KEY (ชือ่ คอลัมน)์ ]
[,FOREIGN KEY (ชื่อคอลมั น์) REFERENCES ชื่อตารางทอ่ี า้ งอิง] );
145
คำส่ัง CREATE
ตัวอย่ำง
CREATE TABLE Supplier
Sno CHAR(5) NOT NULL,
Sname VARCHAR(20) NOT NULL,
City VARCHAR(15) NOT NULL,
PRIMARY KEY (Sno) );
ตัวอยา่ งขา้ งตน้ สรา้ งตารางช่ือ Supplier ซง่ึ ประกอบด้วย คอลมั นค์ ือ Sno, 146
Sname และ City ซึง่ มชี นดิ ข้อมลู เปน็ ตัวอกั ษรแบบ CHAR และ VARCHAR โดยกาหนด
เง่อื นไข NOT NULL คอื ไมย่ อมให้ข้อมูลทเ่ี กบ็ ในคอลมั นเ์ หลา่ นม้ี ีคา่ เปน็ คา่ ว่าง และ
กาหนดให้ Sno เป็นคีย์หลัก
คำสัง่ CREATE
CREATE TABLE SupplierProduct
Sno CHAR(5) NOT NULL,
Pno CHAR(5) NOT NULL,
PRIMARY KEY (Sno,Pno),
FOREIGN KEY (Sno) REFERENCES Supplier,
FOREIGN KEY (Pno) REFERENCES Product);
ตวั อยา่ งข้างตน้ เปน็ คาสัง่ เพ่อื สรา้ งตารางเช่นเดียวกนั แตม่ ีการกาหนดคีย์
อา้ งอิงด้วยสว่ นของคาสัง่ FOREIGN KEY เพอื่ การอา้ งองิ ไปยงั ตาราง Supplier และ
ตาราง Product
147
คำสัง่ CREATE
CREATE TABLE SupplierProduct
Sno CHAR(5) NOT NULL,
Pno CHAR(5) NOT NULL,
PRIMARY KEY (Sno,Pno),
FOREIGN KEY (Sno) REFERENCES Supplier,
FOREIGN KEY (Pno) REFERENCES Product);
ตวั อยา่ งข้างตน้ เปน็ คาสัง่ เพ่อื สรา้ งตารางเช่นเดียวกนั แตม่ ีการกาหนดคีย์
อา้ งอิงด้วยสว่ นของคาสัง่ FOREIGN KEY เพอื่ การอา้ งองิ ไปยงั ตาราง Supplier และ
ตาราง Product
148
คำสัง่ INSERT
149
คำสง่ั INSERT
1. กำรเพม่ิ ข้อมลู
ภาษา SQL ใช้คาสง่ั INSERT ใช้ในการเพ่ิมรายการขอ้ มูลในตาราง
1.1 เพมิ่ ข้อมลู รำยกำรเดยี ว
INSERT INTO Staff
VALUES (‘555’,‘วันวสิ า แสงขา’, ‘DB’);
คาส่ัง INSERT ตามรูปแบบข้างตน จะเพมิ่ หนงึ่ รายการในตาราง Staff
โดยรายการที่เพม่ิ อยู่ภายในวงเลบ็ ประกอบดว้ ยคา่ ของแตล่ ะคอลัมน์ซ่ึงคั่นดว้ ย
เครื่องจุลภาค และบนั ทกึ เขา้ สู่ตารางเรียงตามลาดับของคอลมั น์ในโครงสร้างของ
ตาราง ไดผ้ ลเปน็ ตารางทีม่ ี 5 รายการ จากเดิม 4 รายการ
150