More Related Content
Similar to 2. ใบความรู้ที่ 5
Similar to 2. ใบความรู้ที่ 5 (20)
2. ใบความรู้ที่ 5
- 1. ใบความรู้ ที่ 5
รหัสวิชา ง32202 ชื่ อวิชา การสร้ างฐานข้ อมูลเบืองต้ น
้
ระดับชั้ นมัธยมศึกษาปี ที่ 5
หน่ วยการเรียนรู้ ที่ 5 เรื่อง การสร้ างความสั มพันธ์ ระหว่ างตาราง
จํานวน 4 คาบเรียน
-------------------------------------------------------------------------------------------------------------------------------ในฐานข้อมูล เชิงสัมพันธ์ ( Relational Database) มักจะทํางานกับข้อมูลหลายๆ ตาราง เพื่อขจัด
ปั ญหาความซํ้าซ้อนของข้อมูล ในการเชื่อมความสัมพันธ์ระหว่างตาราง
1. ประเภทของความสั มพันธ์ ระหว่ างตารางในฐานข้ อมูล แบ่งออกเป็ น 3 ประเภท ได้แก่
1.1 ความสั มพันธ์ แบบหนึ่งต่ อหนึ่ง (One-to-One Relationship)
ั
จับคู่กน
การสร้างความสัมพันธ์ระหว่างตารางในฐานข้อมูลแบบหนึ่งต่อหนึ่ง หมายถึง มีฟิลด์ขอมูล 1 ฟิ ลด์ที่
้
ตัวอย่ างเช่ น อาจารย์ กบคอมพิวเตอร์ หากกําหนดว่า อาจารย์ 1 คน จะมีคอมพิวเตอร์ 1 เครื่ อง และ
ั
เครื่ องคอมพิวเตอร์ 1 เครื่ อง จะต้องเป็ นของอาจารย์คนเดียวเท่านั้น
อาจารย์
คอมพิวเตอร์
•
ตัวอย่ างที่ 1
•
ความสั มพันธ์ แบบหนึ่งต่ อหนึ่ง
ตัวอย่ างที่ 2
สถาบันการศึกษาแห่งหนึ่ง กําหนดว่า อาจารย์แต่ละคนจะมีนกศึกษาในความดูแลของตนได้เพียง 1
ั
คน ในขณะที่นกศึกษาแต่ละคนก็จะมีอาจารย์ที่ปรึ กษาโครงงานได้เพียงคนเดียว จึงสามารถแสดงตารางที่ใช้
ั
เก็บข้อมูล ได้ดงนี้
ั
อาจารย์
นักศึกษา
รหัสอาจารย์ ทปรึกษา
ี่
60
01
11
80
ชื่ออาจารย์ ทปรึกษา
ี่
นายธนู อินจันทร์
น.ส.อารี ย ์ ฤทัยชื่น
น.ส.นุชนาฎ พาสุข
นายเฉลิมชัย ขวัญเมือง
รหัสนักศึกษา
1006
4113
3102
6214
ชื่อนักศึกษา
นายธานี ศรี สุดใจ
น.ส.สุดา ชัยอนันต์
น.ส.มาลี ตะวันแดง
นายคมศร สว่างใจ
- 2. จากตารางข้างต้น พิจารณาแล้วจะพบว่าในตารางดังกล่าวมีขอมูล 2 ชนิดรวมกันอยู่ คือ ข้อมูลของ
้
อาจารย์ที่ปรึ กษา และข้อมูลของนักศึกษา จึงอาจทําให้เกิดปั ญหาการเลือกแอททริ บิวต์ที่จะเป็ นคียหลัก
์
เพราะทั้งรหัสอาจารย์ที่ปรึ กษาและรหัสนักศึกษา ต่างก็สามารถใช้เป็ นคียหลักได้เช่นกัน ดังนั้น หากเลือก
์
รหัสอาจารย์ที่ปรึ กษาเป็ นคียหลักแล้ว รหัสนักศึกษาก็จะกลายเป็ น คีย์ค่ ูแข่ ง (Candidate Key) หรื อ คีย์รอง
์
(Alternate Key) ไปทันที
ดังนั้น หากมีการแยกเก็บข้อมูลแต่ละเอนทิตีไว้คนละตาราง จะได้ดงนี้
ั
อาจารย์ ทปรึกษา
ี่
รหัสอาจารย์
60
01
11
80
ชื่ออาจารย์
นายธนู อินจันทร์
น.ส.อารี ย ์ ฤทัยชื่น
น.ส.นุชนาฎ พาสุข
นายเฉลิมชัย ขวัญเมือง
รหัสนักศึกษา
1006
4113
3102
6214
รหัสนักศึกษา
1006
4113
3102
6214
ชื่อนักศึกษา
นายธานี ศรี สุดใจ
น.ส.สุดา ชัยอนันต์
น.ส.มาลี ตะวันแดง
นายคมศร สว่างใจ
รหัสอาจารย์
60
01
11
80
นักศึกษา
จากตารางทั้งสองข้างต้น ตารางอาจารย์ที่ปรึ กษาจะใช้รหัสอาจารย์ที่ปรึ กษาเป็ นคียหลัก ส่ วนตาราง
์
นักศึกษา ใช้รหัสนักศึกษาเป็ นคียหลัก ความสัมพันธ์ระหว่างเอนทิตีท้งสองจึงกําหนดใช้ คีย์นอก (Foreign
์
ั
Key) ทําให้ตารางอาจารย์ที่ปรึ กษา มีรหัสนักศึกษาเป็ นคียนอก เพื่ออ้างอิงถึงข้อมูลในตารางนักศึกษา ส่ วน
์
ในตารางนักศึกษาจะมีรหัสอาจารย์ที่ปรึ กษาเป็ นคียนอก เพื่ออ้างอิงถึงข้อมูลในตารางอาจารย์ที่ปรึ กษา และ
์
ํ
่
คียนอกที่กาหนดก็จะปรากฏอยูในแต่ละตาราง เพียงครั้งเดียว เนื่องจากเป็ นความสัมพันธ์แบบหนึ่งต่อหนึ่ง
์
นันเอง
่
1.2
ความสั มพันธ์ แบบหนึ่งต่ อกลุ่ม (One-to-Many Relationship)
การสร้างความสัมพันธ์ระหว่างตารางฐานข้อมูลแบบหนึ่งต่อกลุ่ม หมายถึง มีฟิลด์ ข้อมูล 1 ฟิ ลด์ที่
ั
จับคู่กบฟิ ลด์ขอมูลหลายฟิ ลด์ในตารางอื่น แต่ฟิลด์ในตารางนั้นจับคู่ได้เพียงแค่ฟิลด์เดียว
้
ตัวอย่ างเช่ น อาจารย์ กบวิชา หากกําหนดว่า วิชา 1 วิชา จะมีอาจารย์สอนได้เพียง 1 คนเท่านั้น แต่
ั
อาจารย์ 1 คน สามารถสอนได้หลายวิชา
- 3. ตัวอย่ างที่ 1
อาจารย์
วิชา
•
ความสั มพันธ์ แบบหนึ่งต่ อกลุ่ม
ตัวอย่ างที่ 2
ตารางนักศึกษาและตารางอาจารย์ที่ปรึ กษา โดยในตารางนักศึกษาจะเพิ่มสดมภ์อีก 1 สดมภ์ เพื่อเก็บ
ค่ารหัสอาจารย์ที่ปรึ กษาที่ดูแลตนอยู่ และค่าของรหัสอาจารย์ที่ปรึ กษานี้ ก็จะเป็ นคียหลักในตารางอาจารย์ที่
์
ปรึ กษาด้วย ดังแสดงในตารางต่อไปนี้
นักศึกษา
อาจารย์ทปรึกษา
ี่
รหัสอาจารย์ ที่
รหัสอาจารย์ทปรึกษา
ี่
ชื่ออาจารย์
รหัสนักศึกษา
ชื่อนักศึกษา
1006
4113
3102
6214
8104
4412
8302
นายธานี
น.ส.สุดา
น.ส.มาลี
นายคมศร
นายอาวุธ
น.ส.อัจฉรา
น.ส.สมใจ
ปรึกษา
60
01
11
80
01
60
60
60
01
11
80
อ.ธนู
อ.อารี ย ์
อ.นุชนาฎ
อ.เฉลิมชัย
่
จากตารางข้ างต้ น ข้อมูลนักศึกษาแต่ละคนจะอยูในแต่ละแถวของตารางนักศึกษา และค่าของรหัส
่
อาจารย์ที่ปรึ กษาในแต่ละแถวของตารางนักศึกษาจะมีเพียงค่าเดียว ซึ่ งเป็ นความสัมพันธ์วา นักศึกษาแต่ละ
คนจะมีอาจารย์ที่ปรึ กษาดูแลเพียงคนเดียว ส่ วนตารางอาจารย์ที่ปรึ กษาจะไม่มีขอมูลของนักศึกษาเก็บอยูเ่ ลย
้
ดังนั้น ถ้าต้องการทราบว่าอาจารย์ที่ปรึ กษาแต่ละคนมีนกศึกษาในความดูแลเป็ นใครบ้าง จะต้องไล่ดูรหัส
ั
อาจารย์ที่ปรึ กษาคนนั้นในตารางนักศึกษา ซึ่ งอาจจะมีมากกว่าหนึ่งแถว เป็ นการแสดงว่า อาจารย์ที่ปรึ กษาแต่
ละคนมีนกศึกษาในความดูแลได้หลายคน ตัวอย่างเช่น อาจารย์ที่ปรึ กษาที่ชื่อ อ.ธนู มีนกศึกษาในความดูแล
ั
ั
3 คน คือ นายธานี น.ส.อัจฉรา และน.ส.สมใจ
1.3
ความสั มพันธ์ แบบกลุ่มต่ อกลุ่ม (Many-to-Many Relationship)
การสร้างความสัมพันธ์ระหว่างตารางฐานข้อมูลแบบกลุ่มต่อกลุ่ม หมายถึง มีฟิลด์ขอมูลหลายฟิ ลด์ที่
้
ั
จับคู่กนระหว่างตาราง
- 4. ตัวอย่ างเช่ น นักเรียนกับวิชา หากกําหนดว่า นักเรี ยนแต่ละคนสามารถเรี ยนได้หลายวิชา และแต่ละ
วิชาก็สามารถมีนกเรี ยนเรี ยนได้หลายคน
ั
ตัวอย่ างที่ 1
นักเรียน
วิชา
ความสั มพันธ์ แบบกลุ่มต่ อกลุ่ม
ตัวอย่ างที่ 2
ยกตัวอย่าง กรณี การลงทะเบียนเรี ยนในสถาบันการศึกษาแห่งหนึ่ง กําหนดว่า การลงทะเบียนเรี ยน
่
แต่ละครั้งนักศึกษาสามารถลงทะเบียนเรี ยนได้มากกว่า 1 วิชา ซึ่ งวิชาแต่ละวิชาก็อาจปรากฏอยูในใบ
ลงทะเบียนของนักศึกษามากกว่า 1 คน ดังนั้น ความสั มพันธ์ ระหว่ างการลงทะเบียนและรายวิชา จะเป็ นแบบ
กลุ่มต่ อกลุ่ม กรณี เช่นนี้จะต้องสร้างตารางขึ้นใหม่ ใช้ชื่อว่า ตารางรายการลงทะเบียน เพื่อให้ตารางใหม่น้ ี
เป็ นตารางที่จะสร้างความสัมพันธ์ของตารางรายการลงทะเบียน กับ ตารางรายวิชา ซึ่ งในตารางรายการ
ลงทะเบียนจะประกอบด้วยแอททริ บิวต์หมายเลขใบลงทะเบียน และรหัสวิชาที่ลงทะเบียน ดังแสดงในตาราง
ต่อไปนี้
การลงทะเบียน รายวิชา
หมายเลขใบ
วันที่
จํานวน
รหัสนักศึกษา
รหัสวิชา
ชื่อวิชา
ลงทะเบียน
ลงทะเบียน
หน่ วยกิต
2101
01/05/46
4113
410-101 ภาษาไทย - 1
2
2102
09/05/46
3102
410-102 ภาษาไทย - 2
2
2103
10/05/46
1006
510-101 ภาษาอังกฤษ - 1
2
2104
10/05/46
8104
510-102 ภาษาอังกฤษ - 2
2
630-101 พลศึกษา
1
630-102 ตรรกศาสตร์
3
- 5. รายการลงทะเบียน
หมายเลขใบลงทะเบียน
2101
2101
2101
2102
2102
2103
2103
2103
2104
2104
รหัสวิชา
410-102
630-101
630-102
510-102
630-101
410-102
510-101
630-102
410-101
510-101
จากตาราง หากต้องการทราบว่าใบ
ลงทะเบียนหมายเลข 2102 มีการลงทะเบียน
เรี ยนวิชาใดบ้าง เราจะเริ่ มดูขอมูลในตาราง
้
รายการลงทะเบียน โดยดูแถวที่มีหมายเลข
ใบลงทะเบียนเป็ นหมายเลข 2102 แล้วใช้
รหัสวิชาที่หาได้จากตารางนี้ ไปดูขอมูลของ
้
วิชานั้นในตารางรายวิชา พบว่า จํานวนแถว
ของข้อมูลที่เป็ นหมายเลขใบลงทะเบียน
2102 มีมากกว่า 1 แถว
2. วิธีการสร้ างความสั มพันธ์ ระหว่ างตารางในฐานข้ อมูล
วิธีการสร้ างความสั มพันธ์ ระหว่ างตาราง แบบหนึ่งต่ อหนึ่ง
ั
— ตารางที่มีเขตข้อมูลสัมพันธ์กนหนึ่งเขตข้อมูล ซึ่ งก่อนสร้างความสัมพันธ์ตองปิ ด
้
ตารางทั้งหมดลงเสี ยก่อน แล้วไปที่แท็บเครื่ องมือฐานข้อมูล คลิกปุ่ มคําสังความสัมพันธ์ จะเปิ ดแท็บ
่
บริ บทเครื่ องมือการทําความสัมพันธ์
ที่แท็บออกแบบให้คลิกแสดงตารางที่ตองการสร้าง
้
ความสัมพันธ์ออกมา แล้วดับเบิลคลิกเพิ่มชื่อตารางที่ตองการสร้างความสัมพันธ์ จากนั้นจึงลากชื่อ
้
เขตข้อมูลที่เหมือนกันของทั้งสองตาราง ให้ตรงกัน เมื่อแผ่นงานแก้ไขความสัมพันธ์ปรากฏขึ้นมาให้
คลิกเลือก บังคับให้มี Referential Integrity ซึ่ งหมายความว่า ระบบของกฎต่าง ๆ ที่ Access 2007 ใช้
่
ั
เพื่อให้ มันใจได้วาความสัมพันธ์ระหว่างระเบียนในตารางที่สัมพันธ์กนนั้นถูกต้อง และจะต้องไม่
่
ั
ลบหรื อ เปลี่ยนแปลงข้อมูลที่มีความสัมพันธ์กนโดยบังเอิญ
เริ่ มต้นสร้างความสัมพันธ์จากการคลิกปุ่ มคําสั่ง
ความสัมพันธ์ บนแท็บเครื่ องมือฐานข้อมูล