SlideShare a Scribd company logo
1 of 24
หน่วยที่ 3
ฐานข้อมูลเชิงสัมพันธ์
รูปแบบของฐานข้อมูลเชิงสัมพันธ์ (Relaional Databasc) ได้รับการคิดค้น
ขึ้น โดย E.FCodd เนื่องจากเป็นรูปแบบของฐานข้อมูลที่เข้าใจง่าย ไม่ซับซ้อน ผู้ใช้
สามารถปฏิบัติการได้ด้วยคาสั่งง่ายๆ อีกทั้งระบบฐานข้อมูลเชิงสัมพันธ์ยังมี
เครื่องมือที่ช่วยให้ผู้ใช้สามารถค้นหาปัญหาที่เกิดขึ้นจากการออกได้โดยง่าย จึงง่าย
ต่อการแก้ไขหาระบบที่ออกแบบไว้ผิดพลาด ระบบจัดการฐานข้อมูลที่ใช้กันเป็น
ส่วนมากในปัจจุบัน จึงเป็นระบบที่ใช้กับฐานข้อมูลเชิงสัมพันธ์ ตัวอย่างเช่น Oracle
Foxpro Ingress เป็นต้น ในหน่วยนี้จะขอกล่าวถึงรายละเอียดที่เกี่ยวข้องกับ
ฐานข้อมูลเชิงสัมพันธ์
ศัพท์เทคนิค
ในฐานข้อมูลเชิงสัมพันธ์
ศัพท์เทคนิค
ในระบบแฟ้มข้อมูล
ศัพท์ทั่วไป
รีเลชัน (Relation)
ทูเพิล (Tuple)
แอททริบิวต์(Attributc)
คาร์ดินาลิตี
(Cardinalily)
ดีกรี (Degrec)
คีย์หลัก (Primary Key)
โดเมน (Damain)
แฟ้มข้อมูล (File)
ระเบียน (Record)
เขตข้อมูล (Field)
จานวนระเบียน
จานวนเขตข้อมูล
คีย์หลัก
ของเขตของค่าของข้อมูล
ตาราง (Table)
แถว (Row)
คอลัมณ์ (Column)
จานวนแถว
จานวนคอลัมน์
ค่าเอกลักษณ์
(UniqueIdentificr)
ขอบเขตของค่าของข้อมูล
ศัพท์เทคนิคที่เกี่ยวข้อง
ในหัวข้อนี้จะเป็นการแนะนาคาศัพท์ที่ใช้เรียกกันในฐานข้อมูลเชิงสัมพันธ์ เพื่อให้เข้าใจได้ง่าย
จะขออ้างถึงคาศัพท์ทั่วไป และคาศัพท์ที่ใช้ในการประมวลผลแฟ้มข้อมูล ดังนี้
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 ตัวอย่างตารางข้อมูลนักศึกษา
ตารางที่ 3.2 เป็นรีเลชันที่แสดงข้อมุลของประวัตินักศึกษา (STUDENT) ประกอบด้วยแอททริบิวต์
ที่เป็นเค้าร่างของรีเลชัน (Relation Schema) จานวน 7 แอททริบิวต์ (จึงมีค่าดีกรีเท่านกับ 7) ดังนี้คือ
STNO หมายถึง รหัสนักศึกษา
STNAME “ ชื่อนักศึกษา
ADMDATE “ วันที่เริ่มเข้ารับการศึกษา
ADVNO “ รหัสอาจารย์ที่ปรึกษา
ADVNAME “ ชื่ออาจารย์ที่ปรึกษา
CLUBNO “ รหัสชมรมที่นักศึกษาเป็นสมาชิก
CLUBNAME “ ชื่อชมรม
รีเลชันดังกล่าว มีข้อมูลจานวน 5 ทูเพิล จึงมีค่า คาร์ตินาลิตี เท่ากับ 5
คีย์หลัก หมายถึง ค่าของแอททริบิวต์ที่มีความเป็นเอกลักษณ์ ไม่ซ้าซ้อนกันในแต่ละทู
เพิล ในที่นี้ใช้ STNO เป็นคีย์หลัก
โดเมน หมายถึง ขอบเขตของค่าของข้อมูลในแอททริบิวต์หนึ่งๆ เช่น วันที่เริ่มเข้ารับ
การศึกา จะเป็นค่าวันที่ในปฏิทิน นักศึกษาแต่ละคนอาจสมัครเป็นสมาชิกชมรมใดก็ได้ที่
ตนสนใจ หรืออาจไม่เป็นสมาชิกชมรมใดเลยก็ได้ ดังนั้นค่าของ CLUBNO และ
CLUBNAME จึงอาจเป็น
ค่าว่าง(Null) ได้จากตารางที่ 3.2 จะเห็นได้ว่า นักศึกษารหัส 2146 ชื่อนายปราโมทย์ ไม่ได้
เป็นสมาชิกชมรมใดเลย จึงไม่มีค่าของ CLUBNO และ CLUBNAME เป็นต้น
เมื่อพิจราณาดูข้อมูลในตาราง 3.2 จะพบว่าค่าของข้อมูลในแต่ละคอลัมน์ ก็คือ ข้อมูลที่
แสดงค่านั้นๆ นั่นเอง ตัวอย่างเช่น ข้อมูลที่อยู่ในคอลัมน์ STNAME ก็คือ ชื่อของนักศึกษา เป็นต้น
ส่วนข้อมูลในแต่ละแถวก็จะมีความแตกต่างกัน ไม่มีข้อมูลในแถวใดเลยที่ซ้ากัน มิฉะนันจะเป็นการเก็บ
ข้อมูลที่ซ้าซ้อนกัน ดังนั้นแล้ว จึงพอจะสรุปความหมายของคาวา “รีเลชัน” ได้ดังนี้
ความหมายของรีเลชัน
รีเลชัน หมายถึง การรวบรวมข้อมูลจัดเก็บในรูปของตาราง 2 มิติ ประกอบด้วยแอททริ
บิวต์ ซึ่งแสดงคุณสมบัติของรีเลชันนั้นๆ โดยคุณสมบัติของรีเลชันมีดังนี้
1. แต่ละแถวของแต่ละคอลัมน์จะบรรจุข้อมูลเพียงค่าเดียว
2. ค่าที่อยู่ในแต่ละคอลัมน์จะเป็นค่าของแอททริบิวต์ที่ระบุในหัวคอลัมน์นั้นๆ
3. ชื่อของแต่ละคอลัมน์ ก็คือ ชื่อของแอททริบิวต์ซึ่งจะต้องแตกต่างกัน
4. ข้อมูลในแต่ละแถวจะต้องแตกต่างกัน
5. การเรียงลาดับแถวไม่มีความสาคัญ
6. การเรียงลาดับคอลัมน์ไม่มีความสาคัญ
ความหมายของฐานข้อมูลเชิงสัมพันธ์
จากความหมายของฐานข้อมูลที่กล่าวไว้ในหน่วยที่ 1 แล้วนั้น จึงอาจให้ความหมายของ
ฐานข้อมูลเชิงสัมพันธ์ได้ว่า ฐานข้อมูลเชิงสัมพันธ์ หมายถึง การรวบรวมรีเลชันต่างๆ ที่มีความสัมพันธ์
ระหว่างกันเข้าด้วยกัน โดยรีเรชันต่างๆ เหล่านั้นได้ผ่านกระบวนการทารีเลชันให้เรียบบรรทัดฐาน
(Normalized) แล้ว เพื่อให้การจัดการฐานข้อมูลเป็นไปอย่างมีประสิทธิภาพ
หมายเหตุ รายละเอียดของการทารีเลชันให้อยู่ในรูปแบบที่เป็นบรรทัดฐานจะได้หน่วยต่อไป
ข้อดีของฐานข้อมูลเชิงสัมพันธ์
ด้วยข้อดีของฐานข้อมูลเชิงสัมพันธ์ ที่ทาให้ผู้ใช้รู้สึกว่าฐานข้อมูลนี้เข้าใจง่าย จึงทาให้
ฐานข้อมูลเชิงสัมพันธ์เป็นที่นิยมใช้แพร่หลาย จึงพอสรุปข้อดีของฐานข้อมูลเชิงสัมพันธ์ ได้ดังนี้
1. เป็นรูปแบบของฐานข้อมูลที่เข้าใจง่าย เนื่องจากฐานข้อมูลเชิงสัมพันธ์เป็นกลุ่มของตาราง
หรือรีเลชัน ที่ข้อมูลจัดเก็บในลักษณะเป็นแถวและคอลัมน์ ทาให้ผู้ใช้มองภาพได้ง่าย
2. มีเครื่องมือที่ช่วยให้ผู้ใช้สามารถจัดการกับข้อมูลได้ด้วยคาสั่งง่ายๆ โดยผู้ใช้ไม่ต้องทราบ
รายละเอียดของการจัดเก็บข้อมูลที่อยู่ภายใน
3. สามารถใช้ภาษาที่ง่ายต่อการเรียกดูข้อมูล เช่น ภาษา SQL โดยไม่จาเป็นต้องเขียนเป็น
ลาดับขั้นตอนของคาสั่งอย่างในภาษาอื่นๆ
4. การเชื่อมโยงข้อมูลสามารถทาได้ง่าย ด้วยการใช้เครื่องหมายคานวณและเปรียบเทียบทาง
คณิตศาสตร์ โดยไม่จาเป็นต้องใช้พอยน์เตอร์ (Pointer)
การจัดเก็บข้อมูล
ดังได้ทราบแล้วว่า ข้อมูลที่จัดเก็บอยู่ในฐานข้อมูล ก็คือ ข้อมูลของเอนทิตีต่างๆ การสร้าง
ความสัมพันธ์ระหว่างเอนทิตีในฐานข้อมูลเชิงสัมพันธ์ก็สามารถทาได้ โดยกาหนดเอนทิตีเหล่านั้นให้มี
แอททริบิวต์ที่เหมือนกัน แล้วใช้ค่าของแอททริบิวต์ที่เหมือนกันนั้น เป็นตัวระบุข้อมูลในเอทิตีที่มี
ความสัมพันธ์กัน
ตัวอย่างเช่น เอนทิตีนักศึกษาและเอนทิตีอาจารย์ที่ปรึกษา มีความสัมพันธ์กันในลักษณะที่
นักศึกษาแต่ละคนอยู่ในความดูแลของอาจารย์ที่ปรึกษาคนใด ดังนั้น เราจะกาหนดให้มีแอททริบิวต์ที่
เหมือนกันในสองเอนทิตีนี้ คือ รหัสอาจารย์ที่ปรึกษา ข้อมูลในแถวใดของตารางอาจารย์ที่ปรึกษาที่มีค่า
ของรหัสอาจารย์ที่ปรึกษาตรงกับข้อมูลในตารางนักศึกษา ก็จะแสดงความสัมพันธ์ได้ว่านักศึกษาคนนั้น
อยู่ในความดูแลของอาจารย์ที่ปรึกษาที่มีค่าแอททริบิวต์ที่เป็นรหัสอาจารย์ที่ปรึกษาเดียวกันนั่นเอง
ดังได้กล่าวในหน่วยที่ 1 แล้วว่า ความสัมพันธ์ระหว่างเอนทิตีมีอยู่ 3 ชนิด คือ ความสัมพันธ์
แบบหนึ่งต่อหนึ่ง แบบหนึ่งต่อกลุ่ม และแบบกลุ่มต่อกลุ่ม จึงขอยกตัวอย่างความสัมพันธ์ทั้ง 3 ระดับฐ้า
นข้อมูลเชิงสัมพันธ์ ดังนี้
1. การจัดเก็บข้อมูลในฐานข้อมูลเชิงสัมพันธ์ด้วยความสัมพันธ์แบบหนึ่งต่อหนึ่ง
ตัวอย่างเช่น สถาบันการศึกษาแห่งหนึ่ง กาหนดว่า นักศึกษาแต่ละคนจะมีอาจารย์ที่ปรึกษาที่ดูแล
คนเพียง 1 คน ในขณะที่อาจารย์ที่ปรึกษาแต่ละคนก็จะมีนักศึกษาในความดูแลได้เพียงคนเดียว ใน
ลักษณะนี้เราสามารถรวม 2 เอนทิตี คือ เอนทิตีนักศึกา และเอนทิตีอาจารย์ที่ปรึกาเข้าด้วยกัน โดย
ใช้ตารางเก็บข้อมูลเพียงตารางเดียว ดังตารางที่ 3.3
นักศึกษา
รหัสนักศึกษา ชื่อนักศึกษา รหัสอาจารย์ที่
ปรึกษา
ชื่ออาจารย์ที่ปรึกษา
6001
3114
2103
4216
นายสมควร
น.ส.กานดา
น.ส.มาลินี
นายโกเมศ
06
10
11
08
อ.สุพล
อ.ดารณี
อ.กรกฎ
อ.ชาตรี
ตารางที่ 3.3 ตารางเก็บข้อมูล ด้วยความสัมพันธ์แบบหนึ่งต่อหนึ่ง
จากตารางที่ 3.3 ข้างต้น หากพิจารณาแล้วจะพบว่าตารางดังกล่าวมีข้อมูล 2 ชนิดรวมกันอยู่
คือ ข้อมูลของนักศึกษา และข้อมูลอาจารย์ที่ปรึกา จึงอาจทาให้เกิดปัญหาการเลือกแอททริบิวต์ที่จะใช้เป็น
คีย์หลัก เพราะทั้งรหัสนักศึกษา และรหัสอาจารย์ที่ปรึกา ต่างก็สามารถใช้เป็นคีย์หลักได้ทั้งคู่ กรณีนี้หาก
เลือกรหัสนักศึกษาเป็นคีย์หลักแล้ว รหัสอาจารย์ที่ปรึกาก็จะกลายเป็นคีย์คู่แข่ง (Candidate Key) หรือ คีย์
สารอง (Altcrnatc Key) ไปทันที
จากปัญหาการเลือกว่าจะให้แอททิรบิวต์ใดเป็นคีย์หลัก หากเราแยกเก็บข้อมูลแต่ละเอนทิตีไว้
คนตาราง ดังตารางที่ 3.4
นักศึกษา
รหัสนักศึกษา ชื่อนักศึกษา รหัสอาจารย์ที่ปรึกษา
6001
3114
2103
4216
นายสมควร
น.ส.กานดา
น.ส.มาลินี
นายโกเมศ
06
10
11
08
อาจารย์ที่ปรึกษา
รหัสนักศึกษา ชื่อนักศึกษา รหัสอาจารย์ที่ปรึกษา
06
10
11
08
อ.สุพล
อ.ดารณี
อ.กรกฎ
อ.ชาตรี
6001
3114
2103
4216
ตารางที่ 3.4 ตัวอย่างตารางเก็บข้อมูล ด้วยความสัมพันธ์แบบหนึ่งต่อหนึ่ง
จากตารางที่ 3.4 ตารางนักศึกาจะใช้รหัสนักศึกษาเป็นคีย์หลัก ส่วนตารางอาจารย์ที่
ปรึกษาจะใช้รหัสอาจารย์ที่ปรึกษาเป็นคีย์หลัก การสร้างความสัมพันธ์รหว่างเอนทิตีทั้งที่กาหนด
ใช้คีย์นอก (Foreign Key)
ดังนั้นในตารางที่ 3.4 ตารางนักศึกษาที่มีรหัสอาจารย์ที่ปรึกษาเป็นคีย์นอก เพื่อเข้าถึง
ข้อมูลในตารางอาจารย์ที่ปรึกษา ส่วนในตารางอาจารย์ที่ปรึกษา จะมีรหัสนักศึกษาเป็นข้อมูลเพื่อ
อ้างอิงถึงข้อมูลในตารางนักศึกษา โดยจะเห็นได้ว่า คีย์นอก จะปรากฎอยู่ในแต่ละตารางครั้งเดียว
ด้วยความสัมพันธ์แบบหนึ่งต่อหนึ่ง นั่นเอง
2. การจัดเก็บข้อมูลในฐานข้อมูลเชิงสัมพันธ์ด้วยความสัมพันธ์แบบหนึ่ง่่อหนึ่ง
่ัวอย่างเช่น จากตัวอย่างในหัวข้อ 1 หากกาหนดว่า นักศึกษาแต่ละคนจะมีอาจารย์ที่
ปรึกษาที่ดูแลตนเพียงคนเดียว ในขณะที่อาจารย์ที่ปรึกษาแต่ละคนอาจมีนักศึกษาในความดูแลได้หลายคน
ลักษณะเช่นนี้ จะสามารถใช้ตารางแยกเก็บข้อมูลเป็นเป็น 2 ตาราง คือ ตารางนักศึกษา และตาราง
อาจารย์ที่ปรึกษา โดยในตารางนักศึกษาจะมีคอลัมน์เพิ่มอีก 1 คอลัมน์ เพื่ออาจารย์ที่ปรึกษาที่ดูแลตนอยู่
และค่าของรหัสอาจารย์ที่ปรึกานี้ก็จะเป็นคีย์หลักในตารางอาจารย์ที่ปรึกษาด้วย ดังแสดงในตารางที่ 3.5
อาจารย์ที่ปรึกษานักศึกษา
รหัส
นักศึกษา ชื่อนักศึกษา
รหัสอาจารย์
ที่ปรึกษา
รหัสอาจารย์
ที่ปรึกษา ชื่ออาจารย์
6001
3114
2103
4216
นายสมควร
น.ส.กานดา
น.ส.มาลินี
นายโกเมศ
06
10
11
08
06
08
10
11
อ.สุพล
อ.ชาตรี
อ.ดารณี
อ.กรกฎ
4108
2414
2308
นายวิวัฒน์
น.ส.สุดา
น.ส.ชุติมา
10
06
06
จากตารางที่ 3.5 จะเห็นได้ว่าข้อมูลนักศึกษาแต่ละคนจะอยู่ในแต่ละแถวของตารางเก็บข้อมูลนักา
ศึกษา และค่าของรหัสอาจารย์ที่ปรึกษาในแต่ละแถวของตารางนักศึกษาจะมีเพียงค่าเดียวซึ่งเป็นความสัมพันธ์
ว่า นักศึกาแต่ละคนจะมีอาจารย์ที่ปรึกษาดูแลเพียงคนเดียว ส่วนตารางอาจารย์ที่ปรึกษาจะไม่มีข้อมูลของ
นักศึกษาเก็บอยู่เลย ดังนั้น ถ้าต้องการทราบว่าอาจารย์ที่ปรึกษาแต่ละคนมีนักศึกษาในความดูแลเป็นใครบ้าง
จะต้องไล่ดูรหัสของอาจารย์ที่ปรึกษาคนนั้นในตารางนักศึกษาเอง ซึ่งอาจจะมีมารกกว่า 1 แถว เป็นการแสดง
ว่า อาจารย์ที่ปรึกษาแต่ละคนมีสิทธิ์มีนักศึกษาในความดูแลได้หลายคน ตัวอย่างเช่น อาจารย์ที่ปรึกษาที่ชื่อ อ.
สุพล มีนักศึกษาในความดูแล 3 คน คือ นายสมควร , น.สสุดา, น.ส.ชุติมา
3. การจัดเก็บข้อมูลในฐานข้อมูลเชิงสัมพันธ์ด้วยความสัมพันธ์แบบกลุ่มต่อกลุ่ม
ตัวอย่างเช่น สถาบันการศึกษาแห่งหนึ่งกาหนดว่า ในการลงทะเบียนเรียนแต่ละครั้งนักศึกษาสา
มารรถลงทะเบียนในรายวิชาได้มากกว่า 1 วิชา และเช่นกันในแต่ละรายวิชาอาจปรากฎอยู่ในใบลงทะเบียน
ของนักศึกษามากกว่า 1 คนได้ จึงเห็นได้ว่า ความสัมพันธ์ระหว่างการลงทะเบียนและรายวิชา จะเป็นแบบ
กลุ่มต่อกลุ่ม ในกรณีนี้จึงต้องสร้างตารางขึ้นใหม่เพื่อบรรจุคีย์ของตารางทั้งสองนี้ ได้แก่ หมายเลขใบ
ลงทะเบียนและรหัสวิชาที่ลงทะเบียน โดยกาหนดให้ตารางที่ 3 ที่เกิดขึ้นนี้ชื่อว่า ตารางบัญชีการลงทะเบียน
ดังแสดงในตารางต่อไปนี้
การลงทะเบียน
หมายเลขใบ
ลงทะเบียน
วันที่
ลงทะเบียน
รหัส
นักศึกษา
5001
5004
5005
5010
01/06/40
01/06/40
02/06/40
02/26/40
3114
2103
6001
4108
รายวิชา
รหัสวิชา ชื่อวิชา
จานวน
หน่วยกิต
100-101
100-102
110-105
110-106
ภาษาไทย-1
ภาษาไทย-2
ภาษาอังกฤษ-1
ภาษาอังกฤษ-2
2
3
2
3
130-111
130-120
พลศึกษา
ตรรกศาสตร์
1
2
บัญชีการลงทะเบียน
หมายเลข
ใบลงทะเบียน
รหัสวิชา
5001
5001
5001
5004
5004
5005
5005
5005
5010
5010
101-102
130-111
130-120
110-106
130-111
101-102
110-105
130-120
100-101
110-105
่ารางที่ 3.6 ตัวอย่างตารางเก็บข้อมูล ด้วยความสัมพันธ์แบบกลุ่มต่อกลุ่ม
จากตารางที่ 3.6 หากต้องการทราบว่า ในเอกสารใบลงทะเบียนหมายเลข 5004 มีการ
ลงทะเบียนเรียนวิชาใดบ้าง เราจะเริ่มดูข้อมูลในตารางบัญชีการลงทะเบียน โดยดูแถวที่มีหมายเลขใบ
ลงทะเบียนเป็นหมายเลข 5004 แล้วใช้รหัสวิชาที่หาได้จากตารางนี้ ไปดูข้อมูลของวิชานั้นตารางรายวิชา
ซึ่งจะเห็นว่า จานวนแถวของข้อมูลที่เป็นหมายเลขใบลงทะเบียน 5004 อาจมากกว่า 1 แถว
ผู้อ่านลองตอบคาถามต่อไปนี้ ถ้าต้องการทราบว่านักศึกาที่ชื่อ น.ส.มาลินี (รหัสนักศึกา 2103)
ลงทะเบียนเรียนชื่อวิชาอะไรบ้าง จะค้นหาอย่างไร
ประเภทของคีย์ (Key)
ดังได้กล่าวไว้ตอนต้นของหน่วยเกี่ยวกับเรื่องคีย์(Key) มาบ้างแล้ว ในหัวข้อนี้จะขอสรุป
คุณสมบัติของคีย์แต่ละประเภท โดยก่อนอื่นควรทราบก่อนว่า แอททริบิวต์โดยแอททริบิวต์หนึ่งในรีเล
ชัน จะมีคุณสมบัติเป็นคีย์ได้ เมื่อแอททริบิวต์นั้นสามารถใช้บ่งบอกถึงค่าในทูเพิลใดทูเพิลหนึ่งในรีเล
ชันนั้นได้ หรือสามารถใช้ในการเชื่อมโยงข้อมูลกับข้อมูลอื่นในอีกรีเลชันหนึ่ง ในประเภทของคีย์ได้
กล่าวถึงไปแล้วในหัวข้อที่ผ่านมา ซึ่งมีอยุ่ด้วยกัน 2 ประเภท คือ
1. คีย์หลัก (Primary Key)
เป็นแอททริบิวต์ที่มีคุณสมบัติของข้อมูลเป็นค่าที่เป็นเอกลักษณ์ไม่ซ้าซ้อนกันแอททริบิวต์ที่เป็น
คีย์หลักอาจประกอบด้วยหลายแอททริบิวต์มารวมกัน เพื่อที่จะสามารถให้ค่าเป็นเอกลักษณ์ได้ คีย์หลักที่
ประกอบด้วยหลายแอททริบิวต์นี้ เราเรียกว่า คีย์ผสม (Compoos Key) ตัวอย่างเช่น จากตารางที่ 3.6 ที่ผ่า
นมราในรีเลชันบัญชีการลงทะเบียน เป็นรีเลชันที่แสดงข้อมูลของการลงทะเบียนตามที่ปรากฎในใบ
ลงทะเบียนแต่ละใบ แอททริบิวต์ที่ใช้เป็นคีย์หลักของรีเลชันนี้ คือ แอททรีบิวต์หมายเลขใบลงทะเบียน
และแอททริบิวต์วิชาประกอบกัน จึงจะสามารถให้ค่าที่เป็นเอกลักษณ์ได้ไม่ซ้าซ้อนกัน
2. คีย์นอก (Foreign Key)
เป็นแอททริบิวต์ในรีเลชันหนึ่ง ที่ใช้อ้างถึงแอททริบิวต์เดียวกันในอีกรีเลชันหนึ่ง โดยแอ
ททริบิวต์ที่ถูกอ้างถึงในอีกรีเลชันนั้น มีคุณสมบัติเป็นคีย์หลัก ดังนั้นแอททริบิวต์ที่มีคุณสมบัติเป็นคีย์
นอก จึงมีประโยชน์ในการเชื่อมโยงข้อมูลระหว่างรีเลชัน
กฎที่เกี่ยวข้องกับคีย์
กฎที่เกี่ยวข้องกับคีย์ในฐานข้อมูลเชิงสัมพันธ์ มีดังนี้
1. กฎความบูรณภาพของเอนทิตี (The Entity Integrity Rule)
กฎความบูรณภาพของเอนทิตี กล่าวว่า “แอททริบิวต์ทุกตัวที่เป็นส่วนของคีย์หรือค่าว่าง (Null)
ไม่ได้ และข้อมูลในแอททริบิวต์นั้น ๆ จะเป็นค่าเอกลักษณ์ (Unique)”
ค่าว่าง ในที่นี้ หมายถึง ค่าที่อยู่นอกกรอบของโดเมน หรือไม่มีค่า ดังนั้นแล้วข้อมูลของแอททริ
บิวต์ที่เป็นคีย์หลักจะต้องทราบค่าที่แน่นอน
ค่าเอกลักษณ์ ในที่นี้ หมายถึง ค่าที่สามารถระบุค่าของแอททริบิวต์อื่นๆ ในทูเพิลนั้นได้
2. กฎความบูรณภาพของการอ้างอิง (The Refercntial Integrity Rule)
กฎความบูรณภาพของการอ้างอิง กล่าวว่า “ค่าของคีย์นอกในรีเลชันหนึ่ง จะต้องสามารถอ้างอิงให้
ตรงกับค่าของคีย์หลักในอีกรีเลชันหนึ่งได้” คีย์นอกจะเป็นค่าว่างได้หรือไม่ขึ้นอยู่กับกฎเกณฑ์ขององค์กร
นั้นๆ
กรณีมีการปรับปรุงข้อมูล ถ้าเป็นการแก้ไข หรือลบข้อมูลของแอททริบิวต์ที่เป็นคีย์หลักในรี
เลชันหนึ่ง ซึ่งคีย์นอกในอีกรีเลชันหนึ่งอ้างถึงอยู่นั้น จะทาการแก้ไขหรือลบข้อมูลนั้นได้หรือไม่จะต้อง
พิจารณาทางเลือกซึ่งเป็นไปได้ 4 ทางด้วยกัน คือ
1. แก้ไขหรือลบข้อมูลแบบเป็นทอดๆ (Cascade)
หมายถึง หากมีการแก้ไขหรือลบข้อมูลที่เป็นคีย์หลักในรีเลชันหนึ่ง ระบบจะทาการแก้ไขหรือลบ
ข้อมูล ที่เป็นคีย์นอกในอีกรีเลชันหนึ่งที่อ้างถึงข้อมูลของคีย์หลัก ที่ถูกสั่งให้แก้ไข หรือลบออกด้วย
ตัวอย่างเช่น
กรณีรีเลชันนักศึกา ซึ่งมีรหัสอาจารย์ที่ปรึกาเป็นคีย์นอก เมื่อใดที่อาจารย์ที่ปรึกษาคนนั้นลาออก
เราจะต้องลบข้อมูลของอาจารย์ที่ปรึกษาคนนั้นออกจากรีเลชันอาจารย์ที่ปรึกษา กรณีเช่นนี้ ระบบก็จะลบ
ข้อมูลของนักศึกษาทุกคนที่อยู่ในความดูแลของอาจารย์ที่ปรึกษาคนนั้นออกจากรีเลชันนักศึกษาด้วย
2. การแก้ไขหรือลบข้อมูลแบบมีข้อจากัด (Restrict)
หมายถึง การแก้ไขหรือลบข้อมูลจะกระทาได้ เมื่อข้อมูลที่เป็นคีย์หลักในรีเลชันหนึ่ง ไม่มีข้อมูลที่
ถูกอ้างอิงโดยคีย์นอกจากอีกรีเลชันหนึ่ง เช่น รหัสอาจารย์ที่ปรึกาที่เป็นคีย์หลักในรีเลชันอาจารย์ที่ปรึกา จะ
ถูกแก้ไขหรือลบทิ้งได้ ต่อเมื่อไม่มีข้อมูลนักศึกษาในรีเลชัน นักศึกษาที่อยู่ในความดูแลของอาจารย์ที่ปรึกษา
คนนั้น (ในที่นี้ ในรีเลชันนักศึกษาจะมีรหัสอาจารย์ที่ปรึกษาเป็นคีย์นอก)
3. การแก้ไข หรือลบข้อมูลโดยเปลี่ยนเป็นค่าว่าง (Nullify)
หมายถึง การแก้ไขหรือลบข้อมูลจะทาได้ โดยระบบจะเปลี่ยนค่าของคีย์นอกในข้อมูลที่อ้างถึงให้
กลายเป็นค่าว่าง ตัวอย่างเช่น
กรณีมีอาจารย์ที่ปรึกษาคนหนึ่งลาออก ข้อมูลของนักศึกษาที่อยู่ในความดูแลของอาจารย์ที่ปรึกษา
คนนั้น จะถูกเปลี่ยนค่าข้อมูลในแอททริบิวต์ที่เป็นรหัสอาจารย์ที่ปรึกษาให้เป็นค่าว่างไว้ก่อน (โดยรหัส
อาจารย์ที่ปรึกา เป็นคีย์นอกในรีเลชันนักศึกษา)
4. การแก้ไขหรือลบข้อมูลโดยใช้ค่าปริยาย (Default)
หมายถึง การแก้ไขหรือลบข้อมูลจะทาได้ โดยระบบจะทาการปรับค่าคีย์นอกที่อ้างอิงถึงคีย์หลัก
ที่ถูกแก้ไขหรือลบ ให้เป็นค่าปริยายที่กาหนดขึ้น ตัวอย่างเช่น กรณีรหัสอาจารย์ที่ปรึกษาที่เป็นคีย์หลักในรีเล
ชันอาจารย์ที่ปรึกษาถูกแก้ไขหรือลบทิ้ง เนื่องจากอาจารย์ที่ปรึกาคนนั้นลาออก ดังนั้น ระบบก็จะเปลี่ยนค่า
รหัสอาจารย์ที่ปรึกาในข้อมูลของนักศึกษาทุกคนที่อยู่ในความดูแลของอาจารย์ที่ปรึกษาคนนั้นให้เป็นค่า
ปริยาย เช่น เปลี่ยนค่าเป็น “00” ไว้ก่อน ซึ่งมีความหมายว่า ไม่ได้อยู่ในความดูแลของอาจารย์ที่ปรึกษาคนใด
เป็นต้น
ชนิดของรีเลชัน
ชนิดของรีเลชันที่จะกล่าวถึงในที่นี้ จะเป็นชนิดของรีเลชันในระบบจัดการฐานข้อมูล ได้แก่
1. รีเลชันหลัก (Base Relation)
เป็นรีเลชันที่ถูกสร้างขึ้นเพื่อใช้เก็บข้อมูลจริง เมื่อมีการสร้างรีเลชันขึ้นโดยใช้ภาษาสาหรับ
นิยามข้อมูล (Data Definition Language) ใน SQL เพื่อที่จะนาข้อมูลในรีเลชันนั้น ๆ ไปใช้งานต่อไป
2. วิว (View)
เป็นรีเลชันที่ถูกสร้างขึ้นตามความต้องการของผู้ใช้ เนื่องจากผู้ใช้แต่ละคนจะมีความต้องการใช้
ข้อมูลในลักษณะที่ต่างกัน จึงสร้างวิวแสดงข้อมูลที่ตนเองต้องการเห็นขึ้นมา วิวที่สร้างจะไม่มีการเก็บ
ข้อมูลไว้จริง วิวจึงเป็นเพียงตารางสมมุติ (Virtual Table) ที่นาข้อมูลจากรีเลชันมาใช้งาน
รายละเอียดของการสร้างรีเลชันหลักและวิว จะได้กล่าวในหน่วยของภาษาสอบถามเชิง
โครงสร้างต่อไป

More Related Content

What's hot

05 ภาษาที่ใช้ในระบบการจัดการฐานข้อมูล
05 ภาษาที่ใช้ในระบบการจัดการฐานข้อมูล05 ภาษาที่ใช้ในระบบการจัดการฐานข้อมูล
05 ภาษาที่ใช้ในระบบการจัดการฐานข้อมูลNattipong Siangyen
 
ระบบฐานข้อมูลเบื้องต้น
ระบบฐานข้อมูลเบื้องต้นระบบฐานข้อมูลเบื้องต้น
ระบบฐานข้อมูลเบื้องต้นTophuto Piyapan
 
แบบรูป ลักษณะคุณสมบัติและข้อดีของฐานข้อมูลเชิงวัตถุ
แบบรูป ลักษณะคุณสมบัติและข้อดีของฐานข้อมูลเชิงวัตถุแบบรูป ลักษณะคุณสมบัติและข้อดีของฐานข้อมูลเชิงวัตถุ
แบบรูป ลักษณะคุณสมบัติและข้อดีของฐานข้อมูลเชิงวัตถุAmIndy Thirawut
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลkruthanyaporn
 
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล Watuka Wannarun
 
บทที่7
บทที่7บทที่7
บทที่7nunzaza
 
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูลบทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูลRungnapa Rungnapa
 
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูลLecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูลskiats
 
สถาปัตยกรรมฐานข้อมูล
สถาปัตยกรรมฐานข้อมูลสถาปัตยกรรมฐานข้อมูล
สถาปัตยกรรมฐานข้อมูลskiats
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูลYongyut Nintakan
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูลOrapan Chamnan
 
พจนานุกรมข้อมูล
พจนานุกรมข้อมูลพจนานุกรมข้อมูล
พจนานุกรมข้อมูลtumetr
 
แนวคิดแผนภาพกระแสข้อมูล
แนวคิดแผนภาพกระแสข้อมูลแนวคิดแผนภาพกระแสข้อมูล
แนวคิดแผนภาพกระแสข้อมูลShengyou Lin
 

What's hot (20)

05 ภาษาที่ใช้ในระบบการจัดการฐานข้อมูล
05 ภาษาที่ใช้ในระบบการจัดการฐานข้อมูล05 ภาษาที่ใช้ในระบบการจัดการฐานข้อมูล
05 ภาษาที่ใช้ในระบบการจัดการฐานข้อมูล
 
ระบบฐานข้อมูลเบื้องต้น
ระบบฐานข้อมูลเบื้องต้นระบบฐานข้อมูลเบื้องต้น
ระบบฐานข้อมูลเบื้องต้น
 
แบบรูป ลักษณะคุณสมบัติและข้อดีของฐานข้อมูลเชิงวัตถุ
แบบรูป ลักษณะคุณสมบัติและข้อดีของฐานข้อมูลเชิงวัตถุแบบรูป ลักษณะคุณสมบัติและข้อดีของฐานข้อมูลเชิงวัตถุ
แบบรูป ลักษณะคุณสมบัติและข้อดีของฐานข้อมูลเชิงวัตถุ
 
Database
DatabaseDatabase
Database
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
 
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
 
บทที่7
บทที่7บทที่7
บทที่7
 
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูลบทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
 
Lesson 1
Lesson 1Lesson 1
Lesson 1
 
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูลLecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
 
แนวการสอบ ม.4
แนวการสอบ ม.4แนวการสอบ ม.4
แนวการสอบ ม.4
 
สถาปัตยกรรมฐานข้อมูล
สถาปัตยกรรมฐานข้อมูลสถาปัตยกรรมฐานข้อมูล
สถาปัตยกรรมฐานข้อมูล
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 
งานคอม#2
งานคอม#2งานคอม#2
งานคอม#2
 
พจนานุกรมข้อมูล
พจนานุกรมข้อมูลพจนานุกรมข้อมูล
พจนานุกรมข้อมูล
 
บทที่ 3 ฐานข้อมูลเชิงสัมพันธ์
บทที่ 3 ฐานข้อมูลเชิงสัมพันธ์บทที่ 3 ฐานข้อมูลเชิงสัมพันธ์
บทที่ 3 ฐานข้อมูลเชิงสัมพันธ์
 
SA Chapter 6
SA Chapter 6SA Chapter 6
SA Chapter 6
 
แนวคิดแผนภาพกระแสข้อมูล
แนวคิดแผนภาพกระแสข้อมูลแนวคิดแผนภาพกระแสข้อมูล
แนวคิดแผนภาพกระแสข้อมูล
 
Mi sch3
Mi sch3Mi sch3
Mi sch3
 

Similar to บทที่ 3

ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูลความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูลkruthanyaporn
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูลYongyut Nintakan
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลIsareeya Keatwuttikan
 
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูลบทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูลniwat50
 
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูล
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูลการจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูล
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูลchanoot29
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to DatabaseOpas Kaewtai
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to DatabaseOpas Kaewtai
 
2. ใบความรู้ที่ 1
2. ใบความรู้ที่ 12. ใบความรู้ที่ 1
2. ใบความรู้ที่ 1ครูเพชร
 
งานกลุ่ม ฐานข้อมูลเชิงสัมพันธ์ ม.2/4 เลขที่ 1-18-26-29-31-34-40
งานกลุ่ม ฐานข้อมูลเชิงสัมพันธ์ ม.2/4 เลขที่ 1-18-26-29-31-34-40งานกลุ่ม ฐานข้อมูลเชิงสัมพันธ์ ม.2/4 เลขที่ 1-18-26-29-31-34-40
งานกลุ่ม ฐานข้อมูลเชิงสัมพันธ์ ม.2/4 เลขที่ 1-18-26-29-31-34-40KittinanSuksom2
 
งานกลุ่ม3ฐานข้อมูลเชิงสัมพันธ์
งานกลุ่ม3ฐานข้อมูลเชิงสัมพันธ์งานกลุ่ม3ฐานข้อมูลเชิงสัมพันธ์
งานกลุ่ม3ฐานข้อมูลเชิงสัมพันธ์Earn'kanittha Thunyadee
 
สรุปกลุ่มที่ 1,2,3,5,6
สรุปกลุ่มที่ 1,2,3,5,6สรุปกลุ่มที่ 1,2,3,5,6
สรุปกลุ่มที่ 1,2,3,5,6Khanut Anusatsanakul
 
ระบบฐานข้อมูล
ระบบฐานข้อมูลระบบฐานข้อมูล
ระบบฐานข้อมูลchanoot29
 
งานคอมนางสาว มลทิรา เอกกุล เรื่อง เทคโนโลยีการสื่อสาร
งานคอมนางสาว มลทิรา  เอกกุล เรื่อง เทคโนโลยีการสื่อสารงานคอมนางสาว มลทิรา  เอกกุล เรื่อง เทคโนโลยีการสื่อสาร
งานคอมนางสาว มลทิรา เอกกุล เรื่อง เทคโนโลยีการสื่อสารmiwmilk
 
ฐานข้อมูลนะสอน
ฐานข้อมูลนะสอนฐานข้อมูลนะสอน
ฐานข้อมูลนะสอนsariya25
 

Similar to บทที่ 3 (20)

Db1
Db1Db1
Db1
 
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูลความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 
บท1
บท1บท1
บท1
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
 
บท1
บท1บท1
บท1
 
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูลบทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
 
บทที่1
บทที่1บทที่1
บทที่1
 
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูล
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูลการจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูล
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูล
 
การจัดเก็บข้อมูล
การจัดเก็บข้อมูลการจัดเก็บข้อมูล
การจัดเก็บข้อมูล
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to Database
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to Database
 
2. ใบความรู้ที่ 1
2. ใบความรู้ที่ 12. ใบความรู้ที่ 1
2. ใบความรู้ที่ 1
 
งานกลุ่ม ฐานข้อมูลเชิงสัมพันธ์ ม.2/4 เลขที่ 1-18-26-29-31-34-40
งานกลุ่ม ฐานข้อมูลเชิงสัมพันธ์ ม.2/4 เลขที่ 1-18-26-29-31-34-40งานกลุ่ม ฐานข้อมูลเชิงสัมพันธ์ ม.2/4 เลขที่ 1-18-26-29-31-34-40
งานกลุ่ม ฐานข้อมูลเชิงสัมพันธ์ ม.2/4 เลขที่ 1-18-26-29-31-34-40
 
งานกลุ่ม3ฐานข้อมูลเชิงสัมพันธ์
งานกลุ่ม3ฐานข้อมูลเชิงสัมพันธ์งานกลุ่ม3ฐานข้อมูลเชิงสัมพันธ์
งานกลุ่ม3ฐานข้อมูลเชิงสัมพันธ์
 
สรุปกลุ่มที่ 1,2,3,5,6
สรุปกลุ่มที่ 1,2,3,5,6สรุปกลุ่มที่ 1,2,3,5,6
สรุปกลุ่มที่ 1,2,3,5,6
 
ระบบฐานข้อมูล
ระบบฐานข้อมูลระบบฐานข้อมูล
ระบบฐานข้อมูล
 
งานคอมนางสาว มลทิรา เอกกุล เรื่อง เทคโนโลยีการสื่อสาร
งานคอมนางสาว มลทิรา  เอกกุล เรื่อง เทคโนโลยีการสื่อสารงานคอมนางสาว มลทิรา  เอกกุล เรื่อง เทคโนโลยีการสื่อสาร
งานคอมนางสาว มลทิรา เอกกุล เรื่อง เทคโนโลยีการสื่อสาร
 
ฐานข้อมูลนะสอน
ฐานข้อมูลนะสอนฐานข้อมูลนะสอน
ฐานข้อมูลนะสอน
 
Ch5 database system
Ch5 database systemCh5 database system
Ch5 database system
 

บทที่ 3

  • 2. รูปแบบของฐานข้อมูลเชิงสัมพันธ์ (Relaional Databasc) ได้รับการคิดค้น ขึ้น โดย E.FCodd เนื่องจากเป็นรูปแบบของฐานข้อมูลที่เข้าใจง่าย ไม่ซับซ้อน ผู้ใช้ สามารถปฏิบัติการได้ด้วยคาสั่งง่ายๆ อีกทั้งระบบฐานข้อมูลเชิงสัมพันธ์ยังมี เครื่องมือที่ช่วยให้ผู้ใช้สามารถค้นหาปัญหาที่เกิดขึ้นจากการออกได้โดยง่าย จึงง่าย ต่อการแก้ไขหาระบบที่ออกแบบไว้ผิดพลาด ระบบจัดการฐานข้อมูลที่ใช้กันเป็น ส่วนมากในปัจจุบัน จึงเป็นระบบที่ใช้กับฐานข้อมูลเชิงสัมพันธ์ ตัวอย่างเช่น Oracle Foxpro Ingress เป็นต้น ในหน่วยนี้จะขอกล่าวถึงรายละเอียดที่เกี่ยวข้องกับ ฐานข้อมูลเชิงสัมพันธ์
  • 3. ศัพท์เทคนิค ในฐานข้อมูลเชิงสัมพันธ์ ศัพท์เทคนิค ในระบบแฟ้มข้อมูล ศัพท์ทั่วไป รีเลชัน (Relation) ทูเพิล (Tuple) แอททริบิวต์(Attributc) คาร์ดินาลิตี (Cardinalily) ดีกรี (Degrec) คีย์หลัก (Primary Key) โดเมน (Damain) แฟ้มข้อมูล (File) ระเบียน (Record) เขตข้อมูล (Field) จานวนระเบียน จานวนเขตข้อมูล คีย์หลัก ของเขตของค่าของข้อมูล ตาราง (Table) แถว (Row) คอลัมณ์ (Column) จานวนแถว จานวนคอลัมน์ ค่าเอกลักษณ์ (UniqueIdentificr) ขอบเขตของค่าของข้อมูล ศัพท์เทคนิคที่เกี่ยวข้อง ในหัวข้อนี้จะเป็นการแนะนาคาศัพท์ที่ใช้เรียกกันในฐานข้อมูลเชิงสัมพันธ์ เพื่อให้เข้าใจได้ง่าย จะขออ้างถึงคาศัพท์ทั่วไป และคาศัพท์ที่ใช้ในการประมวลผลแฟ้มข้อมูล ดังนี้
  • 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) แล้ว เพื่อให้การจัดการฐานข้อมูลเป็นไปอย่างมีประสิทธิภาพ หมายเหตุ รายละเอียดของการทารีเลชันให้อยู่ในรูปแบบที่เป็นบรรทัดฐานจะได้หน่วยต่อไป
  • 10. ข้อดีของฐานข้อมูลเชิงสัมพันธ์ ด้วยข้อดีของฐานข้อมูลเชิงสัมพันธ์ ที่ทาให้ผู้ใช้รู้สึกว่าฐานข้อมูลนี้เข้าใจง่าย จึงทาให้ ฐานข้อมูลเชิงสัมพันธ์เป็นที่นิยมใช้แพร่หลาย จึงพอสรุปข้อดีของฐานข้อมูลเชิงสัมพันธ์ ได้ดังนี้ 1. เป็นรูปแบบของฐานข้อมูลที่เข้าใจง่าย เนื่องจากฐานข้อมูลเชิงสัมพันธ์เป็นกลุ่มของตาราง หรือรีเลชัน ที่ข้อมูลจัดเก็บในลักษณะเป็นแถวและคอลัมน์ ทาให้ผู้ใช้มองภาพได้ง่าย 2. มีเครื่องมือที่ช่วยให้ผู้ใช้สามารถจัดการกับข้อมูลได้ด้วยคาสั่งง่ายๆ โดยผู้ใช้ไม่ต้องทราบ รายละเอียดของการจัดเก็บข้อมูลที่อยู่ภายใน 3. สามารถใช้ภาษาที่ง่ายต่อการเรียกดูข้อมูล เช่น ภาษา SQL โดยไม่จาเป็นต้องเขียนเป็น ลาดับขั้นตอนของคาสั่งอย่างในภาษาอื่นๆ 4. การเชื่อมโยงข้อมูลสามารถทาได้ง่าย ด้วยการใช้เครื่องหมายคานวณและเปรียบเทียบทาง คณิตศาสตร์ โดยไม่จาเป็นต้องใช้พอยน์เตอร์ (Pointer)
  • 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) ที่นาข้อมูลจากรีเลชันมาใช้งาน รายละเอียดของการสร้างรีเลชันหลักและวิว จะได้กล่าวในหน่วยของภาษาสอบถามเชิง โครงสร้างต่อไป