หน่วยที่ 3 โมเดลฐานข้อมูลเชิงสัมพันธ์

           โมเดลฐานข้อมูลเชิงสัมพันธ์ (Relation Database Models)

          ระบบฐานข้อมูลเชิงสัมพันธ์ (Relational Database) เป็นฐานข้อมูลที่ใช้โมเดลเชิงสัมพันธ์ (Relational Database Model)

          เนื่องด้วยแนวคิดของแบบจำลองฐานข้อมูลเชิงสัมพันธ์แบบนี้มีลักษณะที่คนใช้กันทั่วกล่าวคือมีการเก็บเป็นตารางทำให้ง่ายต่อการเข้าใจและการประยุกต์ใช้

          ฐานข้อมูลเชิงสัมพันธ์ คือ การเก็บข้อมูลในรูปของตาราง (Table) หลายๆตารางที่มีความสัมพันธ์กัน ในแต่ละตารางแบ่งออกเป็นแถวๆ และในแต่ละแถวจะแบ่งเป็นคอลัมน์ (Column)          

          โมเดลฐานข้อมูลเชิงสัมพันธ์ ผู้ริเริ่มคือ Dr.E.F.Codd โดยกำหนดส่วนประกอบของโมเดลเชิงสัมพันธ์แบ่งเป็น 3 ส่วนได้แก่

  1. ส่วนที่เกี่ยวข้องกับโครงสร้างของข้อมูล
  2. ส่วนที่เกี่ยวกับการควบคุมความถูกต้องให้กับข้อมูล
  3. ส่วนในการจัดการกับข้อมูล

1. โครงสร้างของข้อมูลเชิงสัมพันธ์ (Relational Data Structure)

  • ความสัมพันธ์ (รีเลชัน) Relation

                  ความสัมพันธ์ (รีเลชัน) Relation จะอยู่ในลักษณะของตาราง 2 มิติ [มีความสัมพันธ์] ประกอบด้วยทางด้านแถว และคอลัมน์ ซึ่งแต่ละรีเลชันจะมีชื่อรีเลชันเพื่อใช้อ้างอิง 

          คุณสมบัติของความสัมพันธ์ (รีเลชัน) Relation โดยทั่ว ๆ ไปความสัมพันธ์หนึ่ง ๆ จะมีคุณสมบัติต่าง ๆ ดังนี้

  • ข้อมูลในแต่ละแถวจะไม่ซ้ำกัน หมายถึง ไม่มีทูเพิล (Tuple) หรือ ข้อมูลในแต่ละแถวของรีเลชันคู่ใด ๆ เลยที่ซ้ำกัน (No duplicate tuples)
  • ไม่มีการกำหนดลำดับที่ให้กับแถวแต่ละแถว หมายถึง ลำดับที่ของทูเพิล (Tuple) หรือ ข้อมูลในแต่ละแถวของรีเลชัน ไม่มีความสำคัญ ลำดับที่ของ Attributes ไม่มีความสำคัญ
  • ค่าของ Attribute จะเป็นค่าเดี่ยว ๆ นั่นคือ ค่าของข้อมูลที่ปรากฏอยู่ในตารางจะเป็นค่า ๆ เดียว เป็นลิสต์ของค่าหลาย ๆ ค่าไม่ได้ ซึ่ง Relation ที่มีคุณสมบัติข้อนี้จะถูกเรียกว่าเป็น Relation ที่อยู่ในรูปแบบ Normal form และค่าของข้อมูลในแต่ละ Attribute จะบรรจุค่าของข้อมูลประเภทเดียวกัน
  • ไม่มีการกำหนดลำดับให้กับฟิลด์ การอ้างถึงฟิลด์ใด ๆ จะใช้ชื่อของฟิลด์ในการอ้างถึง  ไม่ได้ใช้ลำดับที่ที่ฟิลด์นั้นปรากฏอยู่ในความสัมพันธ์ และค่าของข้อมูลในแต่ละฟิลด์ของระเบียนจะบรรจุข้อมูลได้เพียงค่าเดียวโดยข้อมูลในแต่ละฟิลด์จะต้องบรรจุข้อมูลเพียงค่าเดียว

                    ชนิดของความสัมพันธ์ (รีเลชัน) Relation ในระบบจัดการฐานข้อมูลอาจจำแนกได้เป็น 2 ประเภท 

  • 1) ความสัมพันธ์หลัก (รีเลชันหลัก) (Base Relation) เป็นความสัมพันธ์ที่ถูกกำหนดขึ้นเพื่อเก็บข้อมูลและเพื่อนำข้อมูลไปใช้เมื่อมีการสร้างความสัมพันธ์โดยใช้ Data Definition Language เช่น ใน SQL คำสั่ง CREATE TABLE เป็นการสร้างความสัมพันธ์หลัก 
  • 2) มุมมอง หรือ วิว (View) หรืออาจเรียกอีกอย่างหนึ่งว่าความสัมพันธ์สมมุติ (Virtual Relation) เป็นความสัมพันธ์ที่ถูกสร้างขึ้นตามความต้องการใช้ข้อมูลของผู้ใช้แต่ละคน เนื่องจากผู้ใช้แต่ละคนต้องการใช้ข้อมูลในลักษณะที่แตกต่างกัน จึงทำการกำหนดวิวของตัวเองขึ้นมาเพื่อความสะดวกในการใช้ข้อมูล และช่วยให้การรักษาความปลอดภัยของฐานข้อมูล
  • โดเมน (Domain)

                   โดเมน (Domain) คือ การกำหนดขอบเขตและชนิดของข้อมูลเพื่อป้องกันความผิดพลาดในการป้อนข้อมูลในรีเลชัน

  • ทูเพิล (Tuple)

                  ทูเพิล (Tuple) คือ  ข้อมูลในแต่ละแถวของรีเลชัน  อาจมีการเปลี่ยนแปลงโดยการ  ลบ  เพิ่มหรือปรับปรุงข้อมูล

  • กุญแจ หรือ คีย์ (Key) 

                   กุญแจ หรือ คีย์ (Key) คือ ฟิลด์ที่มีลักษณะเฉพาะตัวเป็นแอททริบิวท์ที่สามารถแยกความแตกต่างของข้อมูลในแต่ละทูเพิลได้

                   ดังนั้น กุญแจ หรือ คีย์ (Key) จึงหมายถึง สิ่งที่ใช้กำหนดความเป็นเอกลักษณ์ในความสัมพันธ์

  • คีย์หลัก (PK: Primary Key) หรือ กุญแจหลัก (PK เป็นคีย์คู่แข่ง candidate key ตัวหนึ่งที่ถูกเลือกขึ้นมาเป็นคีย์หลัก) คุณสมบัติของคีย์หลัก คือ มีความเป็นหนึ่งเดียว ค่าของคีย์หลักต้องไม่ซ้ำกันเลย ประกอบด้วยจำนวนแอททริบิวต์น้อยที่สุดที่สามารถเจาะจงทัพเพิลหนึ่งในรีเลชันได้ (PK ห้ามซ้ำ)
  • คีย์รอง ( Alternate Key หรือ Secondary Key) กุญแจที่ไม่ถูกเลือกให้เป็นกุญแจหลัก
  • คีย์นอก (FK: Foreign Key) ใช้ในการเชื่อมโยงข้อมูลระหว่างความสัมพันธ์เข้าด้วยกัน (nonkey attribute ใน relation หนึ่งที่เป็น primary key ใน relation อื่น)
  • คีย์อย่างง่าย (Simple key) ประกอบด้วย attribute เดียว
  • คีย์ประกอบ (Combine key หรือ Composite key) กุญแจที่ประกอบขึ้นจากแอททริบิวท์มากกว่า 1 แอททริบิวท์ เมื่อนำแอททริบิวต์ทั้งหมดมาผสมกัน  ทำให้ได้ค่าที่ไม่ซ้ำกันเลย
  • คีย์คู่แข่ง (Candidate Key) สามารถจะเป็นคู่แข่งซึ่งจะถูกเลือกให้เป็นคีย์หลัก
  • ซุปเปอร์คีย์ (Super key) กลุ่มของแอททริบิวต์ของรีเลชันที่สามารถเจาะจง (identify) ความเป็นหนึ่งเดียวของทัพเพิลที่แตกต่างจากทัพเพิลอื่นได้  หมายถึง attribute หรือ เซ็ทของ attribute ที่สามารถบ่งบอกว่าแต่ละแถว (Tuple) แตกต่างกัน ในทุก ๆ ความสัมพันธ์ จะต้องมีอย่างน้อย หนึ่ง Super key ในเซ็ทของ attributes
  • แอททริบิวต์ (Attribute)

                    แอททริบิวต์ (Attribute) หมายถึง แต่ละคอลัมน์ที่อยู่ในรีเลชัน แต่ละแอททริบิวต์จะมีชื่อกำกับแต่ละแอททริบิวต์ในต่ละรีเลชัน

          

  • คาร์ดินัลลิตี้ (Cardinality)

                    คาร์ดินัลลิตี้ (Cardinality) หมายถึง การอธิบายถึงลักษณะความสัมพันธ์ของข้อมูลของตารางกับอีกตารางหนึ่ง (จำนวนทูเพิลหรือแถวในแต่ละตารางหรือรีเลชัน) ซึ่งมีอยู่ 3 แบบ คือ ความสัมพันธ์ของข้อมูลแบบหนึ่งต่อหนึ่ง (One to One) แบบหนึ่งต่อกลุ่ม (One to Many) แบบกลุ่มต่อกลุ่ม (Many to Many)

  • ดีกรี (Degree)

                    ดีกรี (Degree) หมายถึง  จำนวนแอททิริบิวท์ของแต่ละตาราง(รีเลชัน) หรือ จำนวนแอททิริบิวท์ที่มีอยู่ในแต่ละตาราง(รีเลชัน)

  • ค่าว่าง (Null Values)

                    ค่าว่าง (Null Values) คือ ค่าของ Attribute อาจจะเป็นค่าว่าง (Null) คือ ไม่มีค่าหรือยังไม่ทราบค่าได้

 


2. การควบคุมความถูกต้องให้กับข้อมูล

          กฎที่เกี่ยวข้องกับการรักษาความถูกต้อง

                    กฎที่ใช้สำหรับรักษาความถูกต้องของข้อมูล แบ่งออกเป็น 2 กฎคือ กฎที่เกี่ยวข้องกับเอนทิตี้ และกฎที่เกี่ยวข้องกับการเชื่อมโยงความสัมพันธ์ของเอนทิตี้ )

  • กฎความบูรณภาพหรือคงสภาพของเอนทิตี้ (Entity Integrity Rule)

                        กฎความบูรณภาพของเอนทิตี้ เป็นกฎที่ใช้กำหนดเพื่อให้ข้อมูลของเอนทิตี้ มีความถูกต้อง

แอตทริบิวส์ที่ทำหน้าที่เป็นคีย์หลักของตารางไม่สามารถมีค่าเป็นค่าว่างได้ (Null Value) และจะต้องมีคุณสมบัติที่เป็นเอกลักษณ์ (identity) (ความเป็นเอกลักษณ์ คือ สามารถระบุข้อมูลแอตทริบิวส์อื่นๆ ที่อยู่ในทูเพิลเดียวกันได้)

  • กฎความบูรณภาพหรือคงสภาพของการอ้างอิง (Referential Integrity Rule)

                        กฎความบูรณภาพของการอ้างอิง คือกฎที่ใช้รักษาความถูกต้องของข้อมูลที่มีความสัมพันธ์กันของเอนทิตี ค่าของคีย์นอก (FK) ในตารางจะต้องมีข้อมูลอยู่ในอีกตารางหนึ่งที่คีย์นอกของตารางนั้นอ้างอิงถึง


3. การจัดการกับข้อมูล (Data manipulation)

                    Dr. E.F. Codd ได้นำทฤษฎีของเซท (set) ซึ่งเป็นทฤษฎีทางคณิตศาสตร์มาใช้ในการจัดการกับข้อมูลของฐานเชิงสัมพันธ์ โดยเซท หมายถึง คำที่ใช้บ่งบอกถึงกลุ่มของสิ่งต่างๆ และเมื่อกล่าวถึงกลุ่มใดแน่นอนว่าสิ่งใดอยู่ในกลุ่มสิ่งใดไม่อยู่ในกลุ่ม ตัวอย่าง ให้ A เป็นเซตของผลไม้, A = {สับปะรด, ทุเรียน, มังคุด, ลำไย, ลิ้นจี่}   จำนวนสมาชิกของ A, n(A)=5 และให้ B เป็นเซตสีของรุ้ง จะได้ B = {สีม่วง, สีคราม, สีน้ำเงิน, สีเขียว, สีเหลือง, สีแสด, สีแดง} และ n(B)=7

            การจัดการกับข้อมูล (Data manipulation) ได้แก่

  • ยูเนียน (Union) ใช้สัญลักษณ์ (∪) เชื่อมความสัมพันธ์เข้าด้วยกัน คือ การแสดงข้อมูลตามลักษณะทฤษฎีการ Union ของเซต กล่าวได้ว่ายูเนียนของ A และ B คือเซตที่เกิดจากการรวบรวมสมาชิกของ A และ B เข้าไว้ด้วยกัน
  •  
  • อินเตอร์เซกชัน (Intersection) คือ โอเปอเรเตอร์ทางคณิตศาสตร์ที่ใช้ในการแสดงข้อมูลที่มีอยู่ในทั้งสองรีเลชั่น หรือมากกว่า โดยรีเลชั่นที่จะมา Intersection กันจะเป็นรีเลชั่นที่ไปกันได้ กล่าวได้ว่า อินเตอร์เซกชัน ของ A และ B คือเซตที่ประกอบด้วยสมาชิกที่เหมือนกันของ A และ B
  •  
  • ผลต่างระหว่างเซต (Difference Set) (Minus) ใช้สัญลักษณ์ (-) หาความแตกต่างระหว่างความสัมพันธ์ คือ การแสดงข้อมูลทูเพิลของรีเลชัน ซึ่งไม่มีอยู่ในอีกรีเลชันหนึ่ง ตามทฤษฎีการ Difference ของเซต กล่าวได้ว่า ผลต่างระหว่างเซต A และเซต B คือสมาชิกอยู่ในเซต B โดย“ผลต่างระหว่างเซต A และเซต B เขียนแทนด้วย A – B ”
  •  
  • Join Operator คือ การกระทำเพื่อแสดงข้อมูลที่เป็นไปได้ทั้งหมดที่เกิดจากการเชื่อมโยงข้อมูลของ 2 รีเลชั่น
  • Division คือ การแสดงข้อมูลจากสองรีเลชั่น โดยที่รีเลชั่นทั้งสองมีแอททริบิวต์อย่างน้อยหนึ่งแอททริบิวต์ที่เหมือนกัน ผลลัพธ์ที่ได้ จะเป็นค่าของแอททริบิวต์จากรีเลชั่นที่มีจำนวนแอททริบิวต์มากกว่า
  • แบบมีข้อจำกัด (Restrict) คือ การแสดงข้อมูลในทูเพิล ซึ่งมีข้อมูลตรงตามเงื่อนไขที่ระบุ หากมีการปรับปรุง(Update)หรือลบ(Delete) ข้อมูลในกุญแจหลักของรีเลชันหลัก(Parent relation) ที่มีข้อมูลที่เป็นกุญแจนอกอ้างอิงอยู่ในขณะนั้น  จะไม่สามารถปรับปรุงหรือลบข้อมูลดังกล่าวได้ ตัวอย่างเช่น หากต้องการแก้ไข “รหัสสาขา” ในรีเลชัน “สาขา”  จาก “B005” เป็น B050” (หรือต้องการลบ สาขาที่มีรหัส “B005” ออกจากรีเลชัน “สาขา”) จะไม่สามารถทำได้หากมีการอ้างถึงข้อมูล “B005” ในแอททริบิวท์ “รหัสสาขา” ในรีเลชัน “พนักงาน” (ซึ่งทำหน้าที่เป็นกุญแจนอก)  จะแก้ไขได้ก็ต่อเมื่อ ไม่มีการอ้างถึงข้อมูลดังกล่าวในกุญแจนอกของรีเลชัน “พนักงาน” แล้ว
  • Projection Operator ใช้สัญลักษณ์ (π)(pi) แสดงข้อมูลเฉพาะบางฟิลด์จากตารางโดยจะแสดงทุกรายการ ดังนั้น Projection คือ โอเปอเรเตอร์ทางคณิตศาสตร์ที่ใช้ในการแสดงข้อมูลเพียงบางแอททริบิวต์จากรีเลชั่นหนึ่ง ๆ ซึ่งการแสดงข้อมูลอาจจะเป็นแบบมีเงื่อนไขหรือไม่มีก็ได้ กล่าวได้ว่าเลือกเฉพาะบางแอททริบิวต์ของตารางหรือความสัมพันธ์ (รีเลชัน)ที่ต้องการมาแสดง (เทียบได้กับการใ้ช้คำสั่ง Select...From ในภาษา SQL)
  • Cross-product (X) หรือ Cartesian Product คือ การรวมความสัมพันธ์ โดย Product คือ การกระทำเพื่อแสดงข้อมูลที่เป็นไปได้ทุกกรณีของการจับคู่กันระหว่าง 2 รีเลชัน (จับคู่ 2 ตาราง)