สาระการเร ี ยนร ้ ู 1. ศัพท ์ เทคน ิ คทเ ี่กย ี่วข ้ องกบัฐานข ้ อมูลเช ิ งสัมพัน์์ 2. การจัดเกบ ็ ข ้ อมูล 3. ประเภทของคีย์ (Key) 4. กฎที่เกี่ยวข้องกับคีย์ 5. ชนิดของรีเลชัน
ศัพท ์ เทคน ิ คทเ ี่กย ี่วข ้ องกบัฐานข ้ อมูลเช ิ งสัมพนั์ ์ รูปแบบของฐานข้อมูลเชิงสัมพันธ์ (Relational Database) ได้รับ การคิดคนัข ้ึ น โดย E.F. Codd เนื่องจากเป็ นรูปแบบของฐานข้อมูลที่ เขา ้ใจง่ายไม่ซับชอ ้ น ผูใ้ ชส้ ามารถปฏิบตัิการไดด ้ ว ้ ยคา สั่งง่ายๆ อ ี ก ท ้ งัระบบฐานขอ ้ มูลเชิงสัมพนัธ ์ ยงัม ี เคร ื่องม ื อท ี่ช่วยให้ผู้ใช้สามารถ ค ้ นหาปัญหาท ี่เกิดข ้ึ นจากการออกแบบได ้โดยง่าย จ ึ งง่ายต่อการ แกไ้ ขหากระบบท ี่ออกแบบไวผ ้ิดพลาด ระบบจดัการฐานขอ ้ มูลที่ใช้ กันเป็ นส่วนมากในปัจจุบันจ ึ งเป็ นระบบท ี่ใช ้ กับฐานข ้อมูลเชิง สัมพนัธ ์ ตวัอยา่งเช่น Oracle Foxpro Ingress เป็ นตน ้ ในหน่วยน ้ ี จะ ขอกล่าวถ ึ งรายละเอ ี ยดท ี่เก ี่ยวขอ ้ งกบัฐานขอ ้ มูลเชิงสมพันธ์ ั
ศัพท์เทคนิค ในฐานข ้ อมูลเชิงสัมพนั์ ์ ศัพท์เทคนิค ในฐานข้อมูลเชิงสัมพนั์ ์ ศัพท์ทั่วไป รีเลชัน (Relation) แฟ้มข้อมูล (File) ตาราง (Table) ทูเพิล(Tuple) ระเบียน (Record) แถว (Row) แอททริบิวต์(Attribute) เขตข้อมูล (Field) คอลัมน์ (Column) คาร์ดินาลิตี (Cardinality) จ านวนระเบียน จ านวนแถว ดีกรี (Degree) จ านวนเขตข้อมูล จ านวนคอลัมน์ คีย์หลัก (Primary Key) คีย์หลัก ค่าเอกลกัษณ ์ (Uniqueldentifer) โดเมน (Domain) ขอบเขตของค่าของขอ ้ มูล ขอบเขตของค่าของขอ ้ มูล ตารางที่ 4.1ศพัทเ ์ ทคนิคท ี่เก ี่ยวขอ ้ งกบัฐานขอ ้ มูลเชงสัมพันธ์ ิ
ศัพท ์ เทคน ิ คทเ ี่กย ี่วข ้ องกบัฐานข ้ อมูลเช ิ งสัมพนั์ ์ โดเมน หมายถึง ขอบเขตของค าของข้อมูลในแอททริบิวต์หน่ึ งๆ เช่น วนัท ี่เริ่มเขา ้ รับการศ ึ กษาจะเป็ นค่าวนัท ี่ในปฏิทินนกัศ ึ กษาแต่ละคนอาจสมคัรเป็ นสมาชิกชมรม ใดก ็ไดท ้ ี่ตนสนใจ หร ื ออาจไม่เป็ นสมาชิกชมรมใดเลยก ็ได ้ ดงัน ้ นัค่าของ CLUBNO และ CLUBNAME จ ึ งอาจเป็ นค่าวา่ง (Null) รีเลชัน หมายถึง การรวบรวมขอ ้ มูลจดัเก ็ บในรูปของตาราง 2 มิติ ประกอบด้วย แอททริบิวต์ซึ่งแสดงคุณสมบัติของรีเลชนัน ้ นัๆ โดยคุณสมบตัิของรีเลชนัม ี ดงัน ้ ี 1. แต่ละแถวของแต่ละคอลมัน ์ จะบรรจุขอ ้ มูลเพ ี ยงค่าเด ี ยว 2. ค่าท ี่อยใู่นแต่ละคอลมัน ์ จะเป็ นค่าของแอททริบิวต์ที่ระบุในหวัคอลมัน ์ น ้ นัๆ 3. ช ื่อของแต่ละคอลมัน ์ กค ็ื อช ื่อของแอททริบิวต์ซึ่งจะต้องแตกต่างกนั 4. ขอ ้ มูลในแต่ละแถวจะตอ ้ งแตกต่างกนั 5. การเร ี ยงลา ดบัแถวไม่ม ี ความสา คญั 6. การเร ี ยงลา ดบัคอลมัน ์ไม่ม ี ความสา คญั
ตารางที่ 4.2 ตารางเกบ ็ ขอ ้ มูล ดว ้ ยความสมัพนัธ ์ แบบหน่ึ งต่อหน่ึ ง 1. การจัดเกบ ็ ข ้ อมูลในฐานข ้ อมูลเช ิ งสัมพนั์ ์ ด ้ วยความสัมพนั์ ์ แบบหนึ่งต่อหนึ่ง ตัวอย่าง สถาบนัการศ ึ กษาแห่งหน่ึ งกา หนดวา่นกัศ ึ กษาแต่ละคนจะม ี อาจารย์ที่ปรึกษา ที่ดูแลตน เพียง 1 คนในขณะท ี่อาจารยท ์ ี่ปร ึ กษาแต่ละคนกจ ็ ะม ี นกัศ ึ กษาในความดูแลได้เพียง คนเด ี ยวในลกัษณะน ้ ี เราสามารถรวม 2 เอนทิตี คือ เอนทิตีนักศึกษาและเอนทิตีอาจารย์ที่ ปร ึ กษาเขา ้ ดว ้ ยกนั โดยใชต ้ ารางเกบ ็ ขอ ้ มูลเพ ี ยงตารางเด ี ยว ดงัตาราง4.2 รหัสนักศึกษา ชื่อนักศึกษา รหัสอาจารย์ที่ปรึกษา ชื่ออาจารย์ที่ปรึกษา 6001 นายสมควร 06 อ.สุพล 3114 น.ส.กานดา 10 อ.ดารณี 2103 น.ส.มาลินี 11 อ.กรกฏ 4216 นายโกเมศ 08 อ.ชาตรี
รหัสอาจารย์ที่ปรึกษา ชื่ออาจารย์ 06 อ.สุพล 08 อ.ชาตรี 10 อ.ดารณี 11 อ.กรกฏ ตารางที่ 4.3 ตารางเกบ ็ ขอ ้ มูล ดว ้ ยความสมัพนัธ ์ แบบหน่ึ งต่อกลุ่ม 2. การจัดเกบ ็ ข ้ อมูลในฐานข ้ อมูลเช ิ งสัมพนั์ ์ ด ้ วยความสัมพนั์ ์ แบบหน ึ่งต ่ อกล ุ่ม ตัวอย่าง จากตวัอยา่งในหวัขอ ้ 1 หากกา หนดวา่นกัศ ึ กษาแต่ละคนจะม ี อาจารยท ์ ี่ปร ึ กษาท ี่ดูแลตนเพียงคน เด ี ยวในขณะท ี่อาจารยท ์ ี่ปร ึ กษาแต่ละคนอาจม ี นกัศ ึ กษาในความดูแลไดห ้ ลายคน ลกัษณะเช่นน ้ ีจะสามารถใช้ ตารางแยกเกบ ็ ขอ ้ มูลเป็ น 2 ตาราง คือ ตารางนักศึกษาและตารางอาจารย์ที่ปรึกษา โดยในตารางนักศึกษาจะมี คอลมัน ์ เพิ่มอ ี ก1 คอลมัน ์ เพ ื่อเกบ ็ ค่ารหสัอาจารยท ์ ี่ปร ึ กษาท ี่ดูแลตนอยู่และค่าของรหสัอาจารยท ์ ี่ปร ึ กษาน ้ ี กจ ็ ะ เป็ นคีย์หลักในตารางอาจารย์ที่ปรึกษาด้วย ดังตาราง 4.3 รหัสชื่อนักศึกษา นักศึกษา รหัสอาจารย์ที่ปรึกษา 6001 นายสมควร 06 3114 น.ส.กานดา 10 2103 น.ส.มาลินี 11 4216 นายโกเมศ 08 4108 นายวิวัฒน์ 10 2414 น.ส.สุดา 06 2308 น.ส.ชุติมา 08
3. การจัดเกบ ็ ข ้ อมูลในฐานข ้ อมูลเช ิ งสัมพนั์ ์ ด ้ วยความสัมพนั์ ์ แบบกล ุ่มต ่ อกล ุ่ม ตัวอย่าง สถาบนัการศ ึ กษาแห่งหน่ึ งกา หนดวา่ ในการลงทะเบ ี ยนเร ี ยนแต่ละคร ้ังนกัศ ึ กษาสามารถ ลงทะเบ ี ยนในรายวชิาไดม ้ ากกวา่ 1 วชิาและเช่นกนั ในแต่ละรายวชิาอาจปรากฏอยใู่นใบลงทะเบ ี ยน ของนกัศ ึ กษามากกวา่ 1 คนได ้ จ ึ งเห ็ นไดว ้ า่ความสมัพนัธ ์ ระหวา่งการลงทะเบ ี ยนและรายวชา จะเป็ น ิ แบบกลุ่มต่อกลุ่ม ในกรณ ี น ้ ี จ ึ งตอ ้ งสร ้ างตารางข ้ึ นใหม่เพ ื่อบรรจุค ี ยข ์ องตารางท ้ งัสองน ้ ีไดแ ้ ก่หมายเลข ใบลงทะเบ ี ยนและรหสัวชิาท ี่ลงทะเบ ี ยน โดยกา หนดใหต ้ ารางท ี่3 ท ี่เกิดข ้ึ นน ้ ี ช ื่อวา ตารางบัญชีการ ่ ลงทะเบียน หมายเลข ใบลงทะเบียน วันที่ ลงทะเบียน รหัส นักศึกษา 5001 010640 3114 5002 010640 2103 5003 020640 6001 5004 020640 4108 รหัสวิชา ชื่อวิชา จ านวนหน่วยกิต 100-101 ภาษาไทย-1 2 100-102 ภาษาไทย-2 3 110-105 ภาษาอังกฤษ-1 2 110-106 ภาษาอังกฤษ-2 3 130-111 พลศึกษา 1 130-120 ตรรกศาสตร์ 2 การลงทะเบียน
หมายเลขใบลงทะเบียน รหัสวิชา 5001 101-102 5001 130-111 5001 130-120 5001 110-106 5001 130-111 บัญชีการลงทะเบียน หมายเลขใบลงทะเบียน รหัสวิชา 5005 101-102 5005 110-105 5005 130-120 5010 100-101 5010 110-105
ประเภทของคีย์ (Key) ซ่ึ งม ี อยดู่ว ้ ยกนั 2 ประเภท คือ คีย์หลัก (Primary Key) เป็ นแอททริบิวต์ที่มีคุณสมบัติของข้อมูลเป็นค่าท ี่เป็ นเอก ลกัษณ ์ไม่ซ ้ า ซอ ้ นกนัแอททริบิวต์ที่เป็ นคีย์หลักอาจประกอบด้วยหลายแอททริบิวต์มารวม กนัเพ ื่อท ี่จะสามารถใหค ้่าท ี่เป็ นเอกลกัษณ ์ไดค ้ี ยห ์ ลกัท ี่ประกอบดว ้ยหลายแอททริบิวต์น ้ ี เรา เร ี ยกวา่ค ี ยผ ์ สม (Composite Key) คีย์นอก (Foreign Key) เป็ นแอททริบิวตในรีเลชันหนึ่ง ที่ใช้อ้างถึงแอททริบิวต์ เด ี ยวกนั ในอ ี กร ีเลชันหนึ่ง โดยแอททริบิวต์ที่ถูกอ้างถึงในอีกรีเลชนัน ้นมีคุณสมบัติเป็ นคีย์ ั หลกัดงัน ้ นัแอททริบิวต์ที่มีคุณสมบัติเป็ นคีย์นอกจึงมีประโยชน์ในการเชื่อมโยงข้อมูล ระหวา่งรีเลชัน
กฎทเ ี่กย ี่วข ้ องกบัคย ี์ในฐานข ้ อมูลเช ิ งสัมพนั์ ์ มด ี งัน ี้ 1. กฎความบูรณภาพของเอนทิตี (The Entity Integrity Rule) กฎความบูรณภาพของเอนทิต ี กล่าววา่ "แอททริบิวต์ทุกตวัท ี่เป็ นส่วนของค ี ยห ์ ลกัจะเป็ นค่าวา่ง (Null) ไม่ได ้ และขอ ้ มูลในแอททริบิวต์น ้ นัๆ จะเป็ นค่าเอกลกัษณ ์(Unique)“ 2. กฎความบูรณภาพของการอ ้ างอง ิ(The Referential Integrity Rule) กฎความบูรณภาพของการอา ้ งอิงกล่าววา่ "ค่าของค ี ยน ์ อกในร ีเลชันหนึ่ง จะต้องสามารถอ้างอิงให้ตรง กบัค่าของค ี ยห ์ ลกัในอ ี กร ีเลชันหนึ่งได้" ค ี ยน ์ อกจะเป็ นค่าวา่งไดห ้ ร ื อไม่ข ้ึ นอยกู่บักฎเกณฑข ์ ององคก ์ ร น ้ นัๆ จะทา การแกไ้ ขหร ื อลบขอ ้ มูลน ้ นั ไดห ้ ร ื อไม่จะตอ ้ งพิจารณาทางเล ื อกซ่ึ งเป็ นไปได้ 4 ทางดว ้ ยกนั คือ 2.1 แก ้ไขหร ื อลบข ้ อมูลแบบเป็ นทอดๆ (Cascade) หมายถ ึ ง หากม ี การแกไ้ ขหร ื อลบขอมูล ้ ที่เป็ นคีย์หลักในรีเลชันหน่ึ ง ระบบจะทา การแกไ้ ขหร ื อลบขอ ้ มูลท ี่เป็ นค ี ยน ์ อกในอีกรีเลชันหนึ่งที่อ้าง ถ ึ งขอ ้ มูลของค ี ยห ์ ลกัท ี่ถูกสั่งใหแ ้ กไ้ ขหร ื อลบออกดว ้ ย
2.2 การแก ้ไขหร ื อลบข ้ อมูลแบบมข ี้ อจ ากดั (Restrict) หมายถ ึ งการแกไ้ ขหร ื อลบขอ ้ มูลจะ กระท าได้ เมื่อข้อมูลที่เป็ นคีย์หลักในรีเลชันหน่ึ งไม่ม ี ขอ ้ มูลท ี่ถูกอา ้ งอิงโดยคีย์นอกจากอีกรีเลชันหนึ่ง 2.3 การแก ้ไข หร ื อลบข ้ อมูลโดยเปลย ี่นเป็ นค ่ าว ่ าง (Nullify) หมายถ ึ งการแกไ้ ขหร ื อลบข้อมูล จะทา ได ้โดยระบบจะเปล ี่ยนค่าของค ี ยน ์ อกในขอ ้ มูลท ี่อา ้ งถ ึ งใหก ้ ลายเป็ นค่าวา่ง 2.4 การแก ้ไขหร ื อลบข ้ อมูลโดยใช ้ ค ่ าปร ิ ยาย (Default) หมายถ ึ งการแกไ้ ขหร ื อลบขอ ้ มูล จะท าได้โดยระบบจะท าการปรับค่ค ี ยน ์ อกท ี่อา ้ งอิงถ ึ งค ี ยห ์ ลกัท ี่ถูกแกไ้ ขหร ื อลบใหเ ้ป็ นค่าปริยายท ี่ กา หนดข ้ึ น ตวัอยา่งเช่น กรณ ี รหสัอาจารยท ์ ี่ปร ึ กษาท ี่เป็ นค ี ยห ์ ลกัในรีเลชันอาจารยท ์ ี่ปร ึ กษาถูกแกไ้ ข หร ื อลบทิ้ ง เน ื่องจากอาจารยท ์ ี่ปร ึ กษาคนน ้ นัลาออก ดงัน ้ นัระบบกจ ็ ะเปล ี่ยนค่ารหสอาจารย์ที่ปรึกษาใน ั ขอ ้ มูลของนกัศ ึ กษาทุกคนท ี่อยใู่นความดูแลของอาจารยท ์ ี่ปร ึ กษาคนน ้ นั ใหเ ้ป็ นค่าปริยาย
ชนิดของรีเลชันที่จะกล่าวถึงในที่นี้จะเป็ นชนิดของรีเลชันในระบบจัดการฐานข ้ อมูลได ้ แก ่ 1. รีเลชันหลัก (Base Relation) เป็ นรีเลชนัท ี่ถูกสร ้ างข ้ึ นเพ ื่อใชเ ้ กบ ็ ขอ ้ มูลจริงเม ื่อม ี การสร ้ างรีเลชนัข ้ึ นโดยใช ้ ภาษาส าหรับนิยามข้อมูล (Data Definition Language) ใน SQL เพื่อที่จะน าข้อมูลในรีเลชัน น ้ นัๆ ไปใชง ้ านต่อไป 2.วิว (View) เป็ นรีเลชนัท ี่ถูกสร ้ างข ้ึ นตามความตอ ้ งการของผใู้ ช ้ เน ื่องจากผใู้ ชแ ้ ต่ละคนจะม ี ความตอ ้ งการใชข ้ อ ้ มูลในลกัษณะท ี่ต่างกนัจ ึ งสร ้ างววิแสดงขอ ้ มูลท ี่ตนเองตอ ้ งการเห ็ นข ้ึ นมา ววิท ี่สร ้ างข ้ึ นจะไม่ม ี การเกบ ็ ขอ ้ มูลไวจ ้ ริงววิจ ึ งเป็ นเพ ี ยงตารางสมมติ(Vitual Table) ที่น า ข้อมูลจากรีเลชันหลักมาใช้งาน รายละเอียดของการสร้างรีเลชันหลกัและววิจะไดก ้ ล่าวในหน่วยของภาษาสอบถามเชิง โครงสร ้ างต่อไป
ข้อที่ 1 รูปแบบของฐานข้อมูลเชิงสัมพันธ์ (Relational Database) ได้รับการคิดคันขึ้น โดย ก. E.F. Codd ข. Charles Babbage ค. C.J. Codd ง. Pascal ข้อที่ 2 การจัดเก็บข้อมูลในฐานข้อมูลเชิงสัมพันธ์ มีกี่แบบ ก. 2 แบบ ข. 3 แบบ ค. 4 แบบ ง. ผิดทุกข้อ ข้อที่ 3 คุณสมบัติของรีเลชันมีอะไรบ้าง ก. แต่ละแถวของแต่ละคอลัมน์จะบรรจุ ข้อมูลเพียงค่าเดียว ข. ข้อมูลในแต่ละแถวจะต้องแตกต่างกัน ค. การเรียงล าดับแถวไม่มีความส าคัญ ง. ถูกทุกข้อ ข้อที่ 4 ตาราง 2 มิติ ที่ใช้บรรจุข้อมูลในฐานข้อมูลเชิงสัมพันธ์ เรียก อีกอย่างหนึ่งว่าอะไร ก. แฟ้มข้อมูล ข. รีเลชัน ค. ระเบียนข้อมูล ง. เอนทิตี ข้อที่ 5 ขอบเขตของค่าของข้อมูลในแอททริบิวต์หนึ่งๆ เรียกว่า อะไร ก. โดเมน ข. ดีกรี ค. บรรทัดฐาน ง. คาร์ดินาลิตี
ข้อที่ 1 รูปแบบของฐานข้อมูลเชิงสัมพันธ์ (Relational Database) ได้รับการคิดคันขึ้น โดย ก. E.F. Codd ข. Charles Babbage ค. C.J. Codd ง. Pascal ข้อที่ 2 การจัดเก็บข้อมูลในฐานข้อมูลเชิงสัมพันธ์ มีกี่แบบ ก. 2 แบบ ข. 3 แบบ ค. 4 แบบ ง. ผิดทุกข้อ ข้อที่ 3 คุณสมบัติของรีเลชันมีอะไรบ้าง ก. แต่ละแถวของแต่ละคอลัมน์จะบรรจุ ข้อมูลเพียงค่าเดียว ข. ข้อมูลในแต่ละแถวจะต้องแตกต่างกัน ค. การเรียงล าดับแถวไม่มีความส าคัญ ง. ถูกทุกข้อ ข้อที่ 4 ตาราง 2 มิติ ที่ใช้บรรจุข้อมูลในฐานข้อมูลเชิงสัมพันธ์ เรียก อีกอย่างหนึ่งว่าอะไร ก. แฟ้มข้อมูล ข. รีเลชัน ค. ระเบียนข้อมูล ง. เอนทิตี ข้อที่ 5 ขอบเขตของค่าของข้อมูลในแอททริบิวต์หนึ่งๆ เรียกว่า อะไร ก. โดเมน ข. ดีกรี ค. บรรทัดฐาน ง. คาร์ดินาลิตี