บทที่ 3
- 2. รูปแบบของฐานข้อมูลเชิงสัมพันธ์ (Relaional Databasc) ได้รับการคิดค้น
ขึ้น โดย E.FCodd เนื่องจากเป็นรูปแบบของฐานข้อมูลที่เข้าใจง่าย ไม่ซับซ้อน ผู้ใช้
สามารถปฏิบัติการได้ด้วยคาสั่งง่ายๆ อีกทั้งระบบฐานข้อมูลเชิงสัมพันธ์ยังมี
เครื่องมือที่ช่วยให้ผู้ใช้สามารถค้นหาปัญหาที่เกิดขึ้นจากการออกได้โดยง่าย จึงง่าย
ต่อการแก้ไขหาระบบที่ออกแบบไว้ผิดพลาด ระบบจัดการฐานข้อมูลที่ใช้กันเป็น
ส่วนมากในปัจจุบัน จึงเป็นระบบที่ใช้กับฐานข้อมูลเชิงสัมพันธ์ ตัวอย่างเช่น Oracle
Foxpro Ingress เป็นต้น ในหน่วยนี้จะขอกล่าวถึงรายละเอียดที่เกี่ยวข้องกับ
ฐานข้อมูลเชิงสัมพันธ์
- 4. STNO STNAME ADMDATE ADVNO ADVNAME CLUBNO CLUBNAME
1002
3114
3006
2146
3204
นายสมหมาย
น.ส.สีนีย์
น.ส.ดวงใจ
นายปราโมทย์
นายเอนก
15/06/36
13/06/37
15/06/36
13/06/37
13/06/37
201
112
203
201
203
ดร.สมจิต
ผศ.ประคอง
อ.นารี
ดร.สมจิต
อ.นารี
03
01
03
01
ประสานเสียง
คอมพิวเตอร์
ประสานเสียง
คอมพิวเตอร์
เพื่อให้เข้าใจคาศัพท์เทคนิคข้างต้นที่ใช้ในฐานข้อมูลเชิงสัมพันธ์ดีขึ้น จะขอ
ยกตัวอย่างข้อมูลในตารางที่ 3.2 เพื่อประกอบการอธิบาย ดังนี้
จากตารางที่ 3.2 ข้างต้น อธิบายได้ ดังนี้
STUDENT (นักศึกษา)
ตารางที่ 3.2 ตัวอย่างตารางข้อมูลนักศึกษา
- 5. ตารางที่ 3.2 เป็นรีเลชันที่แสดงข้อมุลของประวัตินักศึกษา (STUDENT) ประกอบด้วยแอททริบิวต์
ที่เป็นเค้าร่างของรีเลชัน (Relation Schema) จานวน 7 แอททริบิวต์ (จึงมีค่าดีกรีเท่านกับ 7) ดังนี้คือ
STNO หมายถึง รหัสนักศึกษา
STNAME “ ชื่อนักศึกษา
ADMDATE “ วันที่เริ่มเข้ารับการศึกษา
ADVNO “ รหัสอาจารย์ที่ปรึกษา
ADVNAME “ ชื่ออาจารย์ที่ปรึกษา
CLUBNO “ รหัสชมรมที่นักศึกษาเป็นสมาชิก
CLUBNAME “ ชื่อชมรม
รีเลชันดังกล่าว มีข้อมูลจานวน 5 ทูเพิล จึงมีค่า คาร์ตินาลิตี เท่ากับ 5
- 6. คีย์หลัก หมายถึง ค่าของแอททริบิวต์ที่มีความเป็นเอกลักษณ์ ไม่ซ้าซ้อนกันในแต่ละทู
เพิล ในที่นี้ใช้ STNO เป็นคีย์หลัก
โดเมน หมายถึง ขอบเขตของค่าของข้อมูลในแอททริบิวต์หนึ่งๆ เช่น วันที่เริ่มเข้ารับ
การศึกา จะเป็นค่าวันที่ในปฏิทิน นักศึกษาแต่ละคนอาจสมัครเป็นสมาชิกชมรมใดก็ได้ที่
ตนสนใจ หรืออาจไม่เป็นสมาชิกชมรมใดเลยก็ได้ ดังนั้นค่าของ CLUBNO และ
CLUBNAME จึงอาจเป็น
- 7. ค่าว่าง(Null) ได้จากตารางที่ 3.2 จะเห็นได้ว่า นักศึกษารหัส 2146 ชื่อนายปราโมทย์ ไม่ได้
เป็นสมาชิกชมรมใดเลย จึงไม่มีค่าของ CLUBNO และ CLUBNAME เป็นต้น
เมื่อพิจราณาดูข้อมูลในตาราง 3.2 จะพบว่าค่าของข้อมูลในแต่ละคอลัมน์ ก็คือ ข้อมูลที่
แสดงค่านั้นๆ นั่นเอง ตัวอย่างเช่น ข้อมูลที่อยู่ในคอลัมน์ STNAME ก็คือ ชื่อของนักศึกษา เป็นต้น
ส่วนข้อมูลในแต่ละแถวก็จะมีความแตกต่างกัน ไม่มีข้อมูลในแถวใดเลยที่ซ้ากัน มิฉะนันจะเป็นการเก็บ
ข้อมูลที่ซ้าซ้อนกัน ดังนั้นแล้ว จึงพอจะสรุปความหมายของคาวา “รีเลชัน” ได้ดังนี้
- 8. ความหมายของรีเลชัน
รีเลชัน หมายถึง การรวบรวมข้อมูลจัดเก็บในรูปของตาราง 2 มิติ ประกอบด้วยแอททริ
บิวต์ ซึ่งแสดงคุณสมบัติของรีเลชันนั้นๆ โดยคุณสมบัติของรีเลชันมีดังนี้
1. แต่ละแถวของแต่ละคอลัมน์จะบรรจุข้อมูลเพียงค่าเดียว
2. ค่าที่อยู่ในแต่ละคอลัมน์จะเป็นค่าของแอททริบิวต์ที่ระบุในหัวคอลัมน์นั้นๆ
3. ชื่อของแต่ละคอลัมน์ ก็คือ ชื่อของแอททริบิวต์ซึ่งจะต้องแตกต่างกัน
4. ข้อมูลในแต่ละแถวจะต้องแตกต่างกัน
5. การเรียงลาดับแถวไม่มีความสาคัญ
6. การเรียงลาดับคอลัมน์ไม่มีความสาคัญ
- 9. ความหมายของฐานข้อมูลเชิงสัมพันธ์
จากความหมายของฐานข้อมูลที่กล่าวไว้ในหน่วยที่ 1 แล้วนั้น จึงอาจให้ความหมายของ
ฐานข้อมูลเชิงสัมพันธ์ได้ว่า ฐานข้อมูลเชิงสัมพันธ์ หมายถึง การรวบรวมรีเลชันต่างๆ ที่มีความสัมพันธ์
ระหว่างกันเข้าด้วยกัน โดยรีเรชันต่างๆ เหล่านั้นได้ผ่านกระบวนการทารีเลชันให้เรียบบรรทัดฐาน
(Normalized) แล้ว เพื่อให้การจัดการฐานข้อมูลเป็นไปอย่างมีประสิทธิภาพ
หมายเหตุ รายละเอียดของการทารีเลชันให้อยู่ในรูปแบบที่เป็นบรรทัดฐานจะได้หน่วยต่อไป
- 11. การจัดเก็บข้อมูล
ดังได้ทราบแล้วว่า ข้อมูลที่จัดเก็บอยู่ในฐานข้อมูล ก็คือ ข้อมูลของเอนทิตีต่างๆ การสร้าง
ความสัมพันธ์ระหว่างเอนทิตีในฐานข้อมูลเชิงสัมพันธ์ก็สามารถทาได้ โดยกาหนดเอนทิตีเหล่านั้นให้มี
แอททริบิวต์ที่เหมือนกัน แล้วใช้ค่าของแอททริบิวต์ที่เหมือนกันนั้น เป็นตัวระบุข้อมูลในเอทิตีที่มี
ความสัมพันธ์กัน
ตัวอย่างเช่น เอนทิตีนักศึกษาและเอนทิตีอาจารย์ที่ปรึกษา มีความสัมพันธ์กันในลักษณะที่
นักศึกษาแต่ละคนอยู่ในความดูแลของอาจารย์ที่ปรึกษาคนใด ดังนั้น เราจะกาหนดให้มีแอททริบิวต์ที่
เหมือนกันในสองเอนทิตีนี้ คือ รหัสอาจารย์ที่ปรึกษา ข้อมูลในแถวใดของตารางอาจารย์ที่ปรึกษาที่มีค่า
ของรหัสอาจารย์ที่ปรึกษาตรงกับข้อมูลในตารางนักศึกษา ก็จะแสดงความสัมพันธ์ได้ว่านักศึกษาคนนั้น
อยู่ในความดูแลของอาจารย์ที่ปรึกษาที่มีค่าแอททริบิวต์ที่เป็นรหัสอาจารย์ที่ปรึกษาเดียวกันนั่นเอง
ดังได้กล่าวในหน่วยที่ 1 แล้วว่า ความสัมพันธ์ระหว่างเอนทิตีมีอยู่ 3 ชนิด คือ ความสัมพันธ์
แบบหนึ่งต่อหนึ่ง แบบหนึ่งต่อกลุ่ม และแบบกลุ่มต่อกลุ่ม จึงขอยกตัวอย่างความสัมพันธ์ทั้ง 3 ระดับฐ้า
นข้อมูลเชิงสัมพันธ์ ดังนี้
- 12. 1. การจัดเก็บข้อมูลในฐานข้อมูลเชิงสัมพันธ์ด้วยความสัมพันธ์แบบหนึ่งต่อหนึ่ง
ตัวอย่างเช่น สถาบันการศึกษาแห่งหนึ่ง กาหนดว่า นักศึกษาแต่ละคนจะมีอาจารย์ที่ปรึกษาที่ดูแล
คนเพียง 1 คน ในขณะที่อาจารย์ที่ปรึกษาแต่ละคนก็จะมีนักศึกษาในความดูแลได้เพียงคนเดียว ใน
ลักษณะนี้เราสามารถรวม 2 เอนทิตี คือ เอนทิตีนักศึกา และเอนทิตีอาจารย์ที่ปรึกาเข้าด้วยกัน โดย
ใช้ตารางเก็บข้อมูลเพียงตารางเดียว ดังตารางที่ 3.3
นักศึกษา
รหัสนักศึกษา ชื่อนักศึกษา รหัสอาจารย์ที่
ปรึกษา
ชื่ออาจารย์ที่ปรึกษา
6001
3114
2103
4216
นายสมควร
น.ส.กานดา
น.ส.มาลินี
นายโกเมศ
06
10
11
08
อ.สุพล
อ.ดารณี
อ.กรกฎ
อ.ชาตรี
ตารางที่ 3.3 ตารางเก็บข้อมูล ด้วยความสัมพันธ์แบบหนึ่งต่อหนึ่ง
- 13. จากตารางที่ 3.3 ข้างต้น หากพิจารณาแล้วจะพบว่าตารางดังกล่าวมีข้อมูล 2 ชนิดรวมกันอยู่
คือ ข้อมูลของนักศึกษา และข้อมูลอาจารย์ที่ปรึกา จึงอาจทาให้เกิดปัญหาการเลือกแอททริบิวต์ที่จะใช้เป็น
คีย์หลัก เพราะทั้งรหัสนักศึกษา และรหัสอาจารย์ที่ปรึกา ต่างก็สามารถใช้เป็นคีย์หลักได้ทั้งคู่ กรณีนี้หาก
เลือกรหัสนักศึกษาเป็นคีย์หลักแล้ว รหัสอาจารย์ที่ปรึกาก็จะกลายเป็นคีย์คู่แข่ง (Candidate Key) หรือ คีย์
สารอง (Altcrnatc Key) ไปทันที
จากปัญหาการเลือกว่าจะให้แอททิรบิวต์ใดเป็นคีย์หลัก หากเราแยกเก็บข้อมูลแต่ละเอนทิตีไว้
คนตาราง ดังตารางที่ 3.4
นักศึกษา
รหัสนักศึกษา ชื่อนักศึกษา รหัสอาจารย์ที่ปรึกษา
6001
3114
2103
4216
นายสมควร
น.ส.กานดา
น.ส.มาลินี
นายโกเมศ
06
10
11
08
- 14. อาจารย์ที่ปรึกษา
รหัสนักศึกษา ชื่อนักศึกษา รหัสอาจารย์ที่ปรึกษา
06
10
11
08
อ.สุพล
อ.ดารณี
อ.กรกฎ
อ.ชาตรี
6001
3114
2103
4216
ตารางที่ 3.4 ตัวอย่างตารางเก็บข้อมูล ด้วยความสัมพันธ์แบบหนึ่งต่อหนึ่ง
จากตารางที่ 3.4 ตารางนักศึกาจะใช้รหัสนักศึกษาเป็นคีย์หลัก ส่วนตารางอาจารย์ที่
ปรึกษาจะใช้รหัสอาจารย์ที่ปรึกษาเป็นคีย์หลัก การสร้างความสัมพันธ์รหว่างเอนทิตีทั้งที่กาหนด
ใช้คีย์นอก (Foreign Key)
ดังนั้นในตารางที่ 3.4 ตารางนักศึกษาที่มีรหัสอาจารย์ที่ปรึกษาเป็นคีย์นอก เพื่อเข้าถึง
ข้อมูลในตารางอาจารย์ที่ปรึกษา ส่วนในตารางอาจารย์ที่ปรึกษา จะมีรหัสนักศึกษาเป็นข้อมูลเพื่อ
อ้างอิงถึงข้อมูลในตารางนักศึกษา โดยจะเห็นได้ว่า คีย์นอก จะปรากฎอยู่ในแต่ละตารางครั้งเดียว
ด้วยความสัมพันธ์แบบหนึ่งต่อหนึ่ง นั่นเอง
- 15. 2. การจัดเก็บข้อมูลในฐานข้อมูลเชิงสัมพันธ์ด้วยความสัมพันธ์แบบหนึ่ง่่อหนึ่ง
่ัวอย่างเช่น จากตัวอย่างในหัวข้อ 1 หากกาหนดว่า นักศึกษาแต่ละคนจะมีอาจารย์ที่
ปรึกษาที่ดูแลตนเพียงคนเดียว ในขณะที่อาจารย์ที่ปรึกษาแต่ละคนอาจมีนักศึกษาในความดูแลได้หลายคน
ลักษณะเช่นนี้ จะสามารถใช้ตารางแยกเก็บข้อมูลเป็นเป็น 2 ตาราง คือ ตารางนักศึกษา และตาราง
อาจารย์ที่ปรึกษา โดยในตารางนักศึกษาจะมีคอลัมน์เพิ่มอีก 1 คอลัมน์ เพื่ออาจารย์ที่ปรึกษาที่ดูแลตนอยู่
และค่าของรหัสอาจารย์ที่ปรึกานี้ก็จะเป็นคีย์หลักในตารางอาจารย์ที่ปรึกษาด้วย ดังแสดงในตารางที่ 3.5
อาจารย์ที่ปรึกษานักศึกษา
รหัส
นักศึกษา ชื่อนักศึกษา
รหัสอาจารย์
ที่ปรึกษา
รหัสอาจารย์
ที่ปรึกษา ชื่ออาจารย์
6001
3114
2103
4216
นายสมควร
น.ส.กานดา
น.ส.มาลินี
นายโกเมศ
06
10
11
08
06
08
10
11
อ.สุพล
อ.ชาตรี
อ.ดารณี
อ.กรกฎ
4108
2414
2308
นายวิวัฒน์
น.ส.สุดา
น.ส.ชุติมา
10
06
06
- 16. จากตารางที่ 3.5 จะเห็นได้ว่าข้อมูลนักศึกษาแต่ละคนจะอยู่ในแต่ละแถวของตารางเก็บข้อมูลนักา
ศึกษา และค่าของรหัสอาจารย์ที่ปรึกษาในแต่ละแถวของตารางนักศึกษาจะมีเพียงค่าเดียวซึ่งเป็นความสัมพันธ์
ว่า นักศึกาแต่ละคนจะมีอาจารย์ที่ปรึกษาดูแลเพียงคนเดียว ส่วนตารางอาจารย์ที่ปรึกษาจะไม่มีข้อมูลของ
นักศึกษาเก็บอยู่เลย ดังนั้น ถ้าต้องการทราบว่าอาจารย์ที่ปรึกษาแต่ละคนมีนักศึกษาในความดูแลเป็นใครบ้าง
จะต้องไล่ดูรหัสของอาจารย์ที่ปรึกษาคนนั้นในตารางนักศึกษาเอง ซึ่งอาจจะมีมารกกว่า 1 แถว เป็นการแสดง
ว่า อาจารย์ที่ปรึกษาแต่ละคนมีสิทธิ์มีนักศึกษาในความดูแลได้หลายคน ตัวอย่างเช่น อาจารย์ที่ปรึกษาที่ชื่อ อ.
สุพล มีนักศึกษาในความดูแล 3 คน คือ นายสมควร , น.สสุดา, น.ส.ชุติมา
3. การจัดเก็บข้อมูลในฐานข้อมูลเชิงสัมพันธ์ด้วยความสัมพันธ์แบบกลุ่มต่อกลุ่ม
ตัวอย่างเช่น สถาบันการศึกษาแห่งหนึ่งกาหนดว่า ในการลงทะเบียนเรียนแต่ละครั้งนักศึกษาสา
มารรถลงทะเบียนในรายวิชาได้มากกว่า 1 วิชา และเช่นกันในแต่ละรายวิชาอาจปรากฎอยู่ในใบลงทะเบียน
ของนักศึกษามากกว่า 1 คนได้ จึงเห็นได้ว่า ความสัมพันธ์ระหว่างการลงทะเบียนและรายวิชา จะเป็นแบบ
กลุ่มต่อกลุ่ม ในกรณีนี้จึงต้องสร้างตารางขึ้นใหม่เพื่อบรรจุคีย์ของตารางทั้งสองนี้ ได้แก่ หมายเลขใบ
ลงทะเบียนและรหัสวิชาที่ลงทะเบียน โดยกาหนดให้ตารางที่ 3 ที่เกิดขึ้นนี้ชื่อว่า ตารางบัญชีการลงทะเบียน
ดังแสดงในตารางต่อไปนี้
- 19. จากตารางที่ 3.6 หากต้องการทราบว่า ในเอกสารใบลงทะเบียนหมายเลข 5004 มีการ
ลงทะเบียนเรียนวิชาใดบ้าง เราจะเริ่มดูข้อมูลในตารางบัญชีการลงทะเบียน โดยดูแถวที่มีหมายเลขใบ
ลงทะเบียนเป็นหมายเลข 5004 แล้วใช้รหัสวิชาที่หาได้จากตารางนี้ ไปดูข้อมูลของวิชานั้นตารางรายวิชา
ซึ่งจะเห็นว่า จานวนแถวของข้อมูลที่เป็นหมายเลขใบลงทะเบียน 5004 อาจมากกว่า 1 แถว
ผู้อ่านลองตอบคาถามต่อไปนี้ ถ้าต้องการทราบว่านักศึกาที่ชื่อ น.ส.มาลินี (รหัสนักศึกา 2103)
ลงทะเบียนเรียนชื่อวิชาอะไรบ้าง จะค้นหาอย่างไร
ประเภทของคีย์ (Key)
ดังได้กล่าวไว้ตอนต้นของหน่วยเกี่ยวกับเรื่องคีย์(Key) มาบ้างแล้ว ในหัวข้อนี้จะขอสรุป
คุณสมบัติของคีย์แต่ละประเภท โดยก่อนอื่นควรทราบก่อนว่า แอททริบิวต์โดยแอททริบิวต์หนึ่งในรีเล
ชัน จะมีคุณสมบัติเป็นคีย์ได้ เมื่อแอททริบิวต์นั้นสามารถใช้บ่งบอกถึงค่าในทูเพิลใดทูเพิลหนึ่งในรีเล
ชันนั้นได้ หรือสามารถใช้ในการเชื่อมโยงข้อมูลกับข้อมูลอื่นในอีกรีเลชันหนึ่ง ในประเภทของคีย์ได้
กล่าวถึงไปแล้วในหัวข้อที่ผ่านมา ซึ่งมีอยุ่ด้วยกัน 2 ประเภท คือ
- 20. 1. คีย์หลัก (Primary Key)
เป็นแอททริบิวต์ที่มีคุณสมบัติของข้อมูลเป็นค่าที่เป็นเอกลักษณ์ไม่ซ้าซ้อนกันแอททริบิวต์ที่เป็น
คีย์หลักอาจประกอบด้วยหลายแอททริบิวต์มารวมกัน เพื่อที่จะสามารถให้ค่าเป็นเอกลักษณ์ได้ คีย์หลักที่
ประกอบด้วยหลายแอททริบิวต์นี้ เราเรียกว่า คีย์ผสม (Compoos Key) ตัวอย่างเช่น จากตารางที่ 3.6 ที่ผ่า
นมราในรีเลชันบัญชีการลงทะเบียน เป็นรีเลชันที่แสดงข้อมูลของการลงทะเบียนตามที่ปรากฎในใบ
ลงทะเบียนแต่ละใบ แอททริบิวต์ที่ใช้เป็นคีย์หลักของรีเลชันนี้ คือ แอททรีบิวต์หมายเลขใบลงทะเบียน
และแอททริบิวต์วิชาประกอบกัน จึงจะสามารถให้ค่าที่เป็นเอกลักษณ์ได้ไม่ซ้าซ้อนกัน
2. คีย์นอก (Foreign Key)
เป็นแอททริบิวต์ในรีเลชันหนึ่ง ที่ใช้อ้างถึงแอททริบิวต์เดียวกันในอีกรีเลชันหนึ่ง โดยแอ
ททริบิวต์ที่ถูกอ้างถึงในอีกรีเลชันนั้น มีคุณสมบัติเป็นคีย์หลัก ดังนั้นแอททริบิวต์ที่มีคุณสมบัติเป็นคีย์
นอก จึงมีประโยชน์ในการเชื่อมโยงข้อมูลระหว่างรีเลชัน
- 21. กฎที่เกี่ยวข้องกับคีย์
กฎที่เกี่ยวข้องกับคีย์ในฐานข้อมูลเชิงสัมพันธ์ มีดังนี้
1. กฎความบูรณภาพของเอนทิตี (The Entity Integrity Rule)
กฎความบูรณภาพของเอนทิตี กล่าวว่า “แอททริบิวต์ทุกตัวที่เป็นส่วนของคีย์หรือค่าว่าง (Null)
ไม่ได้ และข้อมูลในแอททริบิวต์นั้น ๆ จะเป็นค่าเอกลักษณ์ (Unique)”
ค่าว่าง ในที่นี้ หมายถึง ค่าที่อยู่นอกกรอบของโดเมน หรือไม่มีค่า ดังนั้นแล้วข้อมูลของแอททริ
บิวต์ที่เป็นคีย์หลักจะต้องทราบค่าที่แน่นอน
ค่าเอกลักษณ์ ในที่นี้ หมายถึง ค่าที่สามารถระบุค่าของแอททริบิวต์อื่นๆ ในทูเพิลนั้นได้
2. กฎความบูรณภาพของการอ้างอิง (The Refercntial Integrity Rule)
กฎความบูรณภาพของการอ้างอิง กล่าวว่า “ค่าของคีย์นอกในรีเลชันหนึ่ง จะต้องสามารถอ้างอิงให้
ตรงกับค่าของคีย์หลักในอีกรีเลชันหนึ่งได้” คีย์นอกจะเป็นค่าว่างได้หรือไม่ขึ้นอยู่กับกฎเกณฑ์ขององค์กร
นั้นๆ
กรณีมีการปรับปรุงข้อมูล ถ้าเป็นการแก้ไข หรือลบข้อมูลของแอททริบิวต์ที่เป็นคีย์หลักในรี
เลชันหนึ่ง ซึ่งคีย์นอกในอีกรีเลชันหนึ่งอ้างถึงอยู่นั้น จะทาการแก้ไขหรือลบข้อมูลนั้นได้หรือไม่จะต้อง
พิจารณาทางเลือกซึ่งเป็นไปได้ 4 ทางด้วยกัน คือ
- 22. 1. แก้ไขหรือลบข้อมูลแบบเป็นทอดๆ (Cascade)
หมายถึง หากมีการแก้ไขหรือลบข้อมูลที่เป็นคีย์หลักในรีเลชันหนึ่ง ระบบจะทาการแก้ไขหรือลบ
ข้อมูล ที่เป็นคีย์นอกในอีกรีเลชันหนึ่งที่อ้างถึงข้อมูลของคีย์หลัก ที่ถูกสั่งให้แก้ไข หรือลบออกด้วย
ตัวอย่างเช่น
กรณีรีเลชันนักศึกา ซึ่งมีรหัสอาจารย์ที่ปรึกาเป็นคีย์นอก เมื่อใดที่อาจารย์ที่ปรึกษาคนนั้นลาออก
เราจะต้องลบข้อมูลของอาจารย์ที่ปรึกษาคนนั้นออกจากรีเลชันอาจารย์ที่ปรึกษา กรณีเช่นนี้ ระบบก็จะลบ
ข้อมูลของนักศึกษาทุกคนที่อยู่ในความดูแลของอาจารย์ที่ปรึกษาคนนั้นออกจากรีเลชันนักศึกษาด้วย
2. การแก้ไขหรือลบข้อมูลแบบมีข้อจากัด (Restrict)
หมายถึง การแก้ไขหรือลบข้อมูลจะกระทาได้ เมื่อข้อมูลที่เป็นคีย์หลักในรีเลชันหนึ่ง ไม่มีข้อมูลที่
ถูกอ้างอิงโดยคีย์นอกจากอีกรีเลชันหนึ่ง เช่น รหัสอาจารย์ที่ปรึกาที่เป็นคีย์หลักในรีเลชันอาจารย์ที่ปรึกา จะ
ถูกแก้ไขหรือลบทิ้งได้ ต่อเมื่อไม่มีข้อมูลนักศึกษาในรีเลชัน นักศึกษาที่อยู่ในความดูแลของอาจารย์ที่ปรึกษา
คนนั้น (ในที่นี้ ในรีเลชันนักศึกษาจะมีรหัสอาจารย์ที่ปรึกษาเป็นคีย์นอก)
- 23. 3. การแก้ไข หรือลบข้อมูลโดยเปลี่ยนเป็นค่าว่าง (Nullify)
หมายถึง การแก้ไขหรือลบข้อมูลจะทาได้ โดยระบบจะเปลี่ยนค่าของคีย์นอกในข้อมูลที่อ้างถึงให้
กลายเป็นค่าว่าง ตัวอย่างเช่น
กรณีมีอาจารย์ที่ปรึกษาคนหนึ่งลาออก ข้อมูลของนักศึกษาที่อยู่ในความดูแลของอาจารย์ที่ปรึกษา
คนนั้น จะถูกเปลี่ยนค่าข้อมูลในแอททริบิวต์ที่เป็นรหัสอาจารย์ที่ปรึกษาให้เป็นค่าว่างไว้ก่อน (โดยรหัส
อาจารย์ที่ปรึกา เป็นคีย์นอกในรีเลชันนักศึกษา)
4. การแก้ไขหรือลบข้อมูลโดยใช้ค่าปริยาย (Default)
หมายถึง การแก้ไขหรือลบข้อมูลจะทาได้ โดยระบบจะทาการปรับค่าคีย์นอกที่อ้างอิงถึงคีย์หลัก
ที่ถูกแก้ไขหรือลบ ให้เป็นค่าปริยายที่กาหนดขึ้น ตัวอย่างเช่น กรณีรหัสอาจารย์ที่ปรึกษาที่เป็นคีย์หลักในรีเล
ชันอาจารย์ที่ปรึกษาถูกแก้ไขหรือลบทิ้ง เนื่องจากอาจารย์ที่ปรึกาคนนั้นลาออก ดังนั้น ระบบก็จะเปลี่ยนค่า
รหัสอาจารย์ที่ปรึกาในข้อมูลของนักศึกษาทุกคนที่อยู่ในความดูแลของอาจารย์ที่ปรึกษาคนนั้นให้เป็นค่า
ปริยาย เช่น เปลี่ยนค่าเป็น “00” ไว้ก่อน ซึ่งมีความหมายว่า ไม่ได้อยู่ในความดูแลของอาจารย์ที่ปรึกษาคนใด
เป็นต้น
- 24. ชนิดของรีเลชัน
ชนิดของรีเลชันที่จะกล่าวถึงในที่นี้ จะเป็นชนิดของรีเลชันในระบบจัดการฐานข้อมูล ได้แก่
1. รีเลชันหลัก (Base Relation)
เป็นรีเลชันที่ถูกสร้างขึ้นเพื่อใช้เก็บข้อมูลจริง เมื่อมีการสร้างรีเลชันขึ้นโดยใช้ภาษาสาหรับ
นิยามข้อมูล (Data Definition Language) ใน SQL เพื่อที่จะนาข้อมูลในรีเลชันนั้น ๆ ไปใช้งานต่อไป
2. วิว (View)
เป็นรีเลชันที่ถูกสร้างขึ้นตามความต้องการของผู้ใช้ เนื่องจากผู้ใช้แต่ละคนจะมีความต้องการใช้
ข้อมูลในลักษณะที่ต่างกัน จึงสร้างวิวแสดงข้อมูลที่ตนเองต้องการเห็นขึ้นมา วิวที่สร้างจะไม่มีการเก็บ
ข้อมูลไว้จริง วิวจึงเป็นเพียงตารางสมมุติ (Virtual Table) ที่นาข้อมูลจากรีเลชันมาใช้งาน
รายละเอียดของการสร้างรีเลชันหลักและวิว จะได้กล่าวในหน่วยของภาษาสอบถามเชิง
โครงสร้างต่อไป