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


 ฐานข้อมูลเชิงสัมพันธ์(Relational Database)เป็นฐานข้อมูลที่มีความง่ายต่อการใช้งานใน ปี พ.. 2513 E.F Codd ได้เป็นผู้แนะนําให้ผู้คนในวงการคอมพิวเตอร์ได้รู้จักรูปแบบของฐานข้อมูล เชิงสัมพันธ์ ฐานข้อมูลเชิงสัมพันธ์ใช้ระบบจัดการฐานข้อมูล (Database Management Systems : DBMS) สนับสนุนในการจัดการฐานข้อมูลมากมาย ประกอบกับความสามารถตอบสนองความ ต้องการของผู้ใช้ในเรื่องจัดการฐานข้อมูลของระบบได้อย่างมีประสิทธิภาพ ผู้ใช้ธรรมดาท่ัวไปก็ สามารถใช้งานฐานข้อมูลนี้ได้ เนื่องจากผู้ใช้ไม่จําเป็นต้องทราบเกี่ยวกับการจัดเก็บข้อมูลในระดับ กายภาพ เช่น ไม่ต้องทราบว่าข้อมูลถูกจัดเก็บอยู่ ณ ตําแหน่งใดในดิสก์หรือวิธีการเข้าถึงข้อมูลเป็น แบบใด นอกจากนี้การแสดงความสัมพันธ์ของข้อมูลระหว่างแฟ้มข้อมูล จะสามารถมองเห็นได้จากตัว ข้อมูลที่เก็บอยู่ในแฟ้มข้อมูลเลย
      ในหน่วยที่ นี้จะกล่าวถึงลักษณะของฐานข้อมูลเชิงสัมพันธ์ ความหมายของฐานข้อมูลเชิง สัมพันธ์ โครงสร้างฐานข้อมูลเชิงสัมพันธ์ ข้อดีของฐานข้อมูลเชิงสัมพันธ์ คุณลักษณะในการจัดเก็บ ข้อมูลของรีเลชั่น และประเภทของคีย์ ซึ่งมีรายละเอียดดังนี้


1. ฐานข้อมูลเชิงสัมพันธ์

ฐานข้อมูลเชิงสัมพันธ์ เป็นรูปแบบการจัดการฐานข้อมูลที่ตอบสนองความต้องการของผู้ใช้ได้ อย่างมีประสิทธิภาพ

1.1 ความหมายของฐานข้อมูลเชิงสัมพันธ์
       ฐานข้อมูลเชิงสัมพันธ์เป็น Database ชนิดหนึ่ง ซึ่งนํามาใช้เป็นพื้นฐานในการจัดการ ฐานข้อมูลของโปรแกรม โดยใน Database หนึ่งนั้นอาจประกอบไปด้วย Table หลายๆ Table และ ในแต่ละTable ก็จะมีความสัมพันธ์ (Relation) ซึ่งกันและกัน ได้มีตําราหลายเล่มได้อธิบายถึง ฐานข้อมูลเชิงสัมพันธ์ ไว้ดังนี้
สมจิตร อาจอินทร์ และงามนิจ อาจอินทร์ (2540:26) ให้ความหมายว่า ฐานข้อมูลเชิง สัมพันธ์เป็นฐานข้อมูลที่มีความนิยมใช้กันมากในปัจจุบัน ซึ่งจะสามารถใช้งานได้กับเครื่องคอมพิวเตอร์ ทุกระดับตั้งแต่ไมโครคอมพิวเตอร์ จนกระทั่งถึงเมนเฟรมคอมพิวเตอร์ โครงสร้างข้อมูลจะถูกเก็บอยู่ ในรูปแบบของตาราง (Table) ซึ่งภายในตารางก็จะแบ่งออกเป็นแถว (row) และ คอลัมน์ (column) การแสดงความสัมพันธ์ของข้อมูลระหว่างแฟ้มข้อมูล จะสามารถมองเห็นได้จากตัวข้อมูลที่เก็บอยู่ใน แฟ้มข้อมูลเลย
ศิริลักษณ์ โรจนกิจอํานวย (2542:45) ให้ความหมายว่า ฐานข้อมูลเชิงสัมพันธ์เป็นการ จัดเก็บรวบรวมข้อมูลเป็นแถวและคอลัมน์ในลักษณะตารางสองมิติ ที่ประกอบด้วยแอททริบิวต์ท่ีแสดงคุณสมบัติของรีเลชั่นหนึ่งๆ โดยท่ีรีเลชั่นต่างๆ ได้ผ่านกระบวนการทํารีเลช่ันให้เป็นบรรทัดฐาน (Normalized) ในระหว่างการออกแบบเพื่อลดความซ้ำซ้อน และเพื่อให้การจัดการฐานข้อมูลเป็นไป อย่างมีประสิทธิภาพ
จากความหมายดังกล่าวสรุปได้ว่า ฐานข้อมูลเชิงสัมพันธ์ คือ การรวบรวมรีเลชั่นต่างๆ ที่ มีความสัมพันธ์ (Relationship) ระหว่างกันเข้าด้วยกัน


1.2 องค์ประกอบของฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์ประกอบด้วยองค์ประกอบ ส่วน ดังน้ี    
    1) ส่วนโครงสร้างของข้อมูล (Data Structure) เป็นส่วนการจัดเก็บข้อมูลในรูปแบบของตารางที่ประกอบด้วยคอลัมน์และแถว
    2) ส่วนจัดการข้อมูล (Data Manipulation) เป็นส่วนของคําสั่งที่ใช้จัดการข้อมูลท่ีถูกเก็บอยู่ในฐานข้อมูล (อยู่ในรปู แบบของภาษา SQL)
   3) ส่วนควบคมุ ความคงสภาพของข้อมูล (Data Integrity) เป็นข้อกําหนดหรือกฎเกณฑ์ท่ีถูกสร้างข้ึนมาเพื่อใช้ควบคุมความคงสภาพของข้อมูล


1.3 ข้อดีของฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์เป็นรูปแบบของฐานข้อมูลที่เข้าใจง่ายสําหรับผู้ใช้ ซึ่งมีข้อดี ดังน้ี 
    1) เป็นรูปแบบของฐานข้อมูลที่เข้าใจง่าย ฐานข้อมูลเชิงสัมพันธ์เป็นกลุ่มของรีเลชั่นหรือตารางที่ข้อมูลถูกจัดเก็บเป็นแถวและคอลัมน์ ซึ่งทําให้ผู้ใช้เห็นภาพของข้อมูลได้ง่าย
   2) มีเครื่องมือที่ช่วยให้ผู้ใช้สามารถจัดการกับข้อมูลได้ด้วยคําสั่งง่ายๆ โดยผู้ใช้ไม่ต้องรู้ว่ามีรายละเอียดของการจัดเก็บข้อมูลอย่างไร
    3) สามารถใช้ภาษาท่ีง่ายในการเรียกดูข้อมูล เช่น ภาษา SQL เป็นภาษาท่ีมีลักษณะคล้ายภาษาอังกฤษ และไม่จาํ เป็นต้องเขียนเป็นลําดับขั้นตอนของคําสั่งอย่างในภาษาอื่น ๆ
    4) การเรียกใช้หรือเช่ือมโยงข้อมูลทําได้ง่าย โดยการใช้ Operator ทางคณิตศาสตร์โดยไม่จําเป็นต้องใช้พอยท์เตอร์ (Pointer)


1.4 ศัพท์พื้นฐาน 
คําศัพท์                                     xxxxปความหมาย
รีเลชั่น (Relation) xxxxxxxxxxxตารางสองมิติที่ประกอบด้วยแถวและคอลัมน์ 
แอททริบิวต์ (Attribute) xxxx  คอลัมน์ในรีเลชั่น
ทูเพิล (Tuple)xxxxxxxxxxxแถวในรีเลชั่น
ดีกรี (Degree)xxxxxxxxxx จํานวนแอททริบิวต์ในรีเลชั่น
คาร์ดินาลิตี้ (Cardinality)xxxxจํานวนแถวข้อมูลในรีเลชั่น
โดเมน (Domain)xxxxxxxxxกลุ่มของข้อมูลท้ังหมดที่เป็นไปได้ของแอททริบิวต์หนึ่งๆ
ค่าว่าง (Null Value)xxxxxxxค่าที่ให้แก่แอททริบิวต์หน่ึงๆ ในกรณีท่ียังไมพ่ ร้อมที่จะใส่ข้อมูล หรือการไม่ทราบค่าข้อมูล
                                                  ของแอททริบิวต์นั้นๆ
คีย์หลัก (Primary Key)xxxxxคีย์คู่แข่งที่ถูกเลือกขึ้นมาเป็นคีย์หลักของรีเลชั่น หรือคีย์ที่ใช้เป็น ตัวแทนของเรคอร์ดในฐานข้อมูล
คีย์ร่วม (Composite Key)xxxxคีย์หลักที่ประกอบด้วยแอททริบิวต์มากกว่าหนึ่งแอททริบิวต์ 
คีย์คู่แข่ง(CandidateKey)xxxxกลุ่มของแอททริบิวต์ท่ีมีสิทธ์ิถูกเลือกให้เป็นคีย์หลักของรีเลชั่น
คีย์นอก (Foreign Key)xxxxxกลุ่มของแอททริบิวต์ในรีเลชั่นหนึ่งๆ ที่มีค่าข้อมูลไปปรากฏ เป็นคีย์หลักของอีกรีเลชั่น 
                                                 (หรืออาจเป็นรีเลชั่นเดียวกัน)


2.โครงสร้างฐานข้อมูลเชิงสัมพันธ์

2.1 รีเลชั่น
    รีเลชั่น (Relation) หรือ ตาราง (Table) เปน็ ความสัมพันธ์ของข้อมูลในรูปแบบตาราง มิติ ประกอบด้วยคอลัมน์และแถว
    คอลัมน์แสดงถึงคุณลักษณะของรีเลชั่น ซึ่งหมายถึง เขตข้อมูล (Field) หรอื แอททริบิวต์ ของรีเลชั่น
    แถวมีความหมายเหมือนระเบียนข้อมูล (Record) ซึ่งเรียกอีกอย่างหนึ่งว่าทูเพิล (Tuple)
1) โครงสร้างของรีเลชั่น
เพื่อให้เกิดความเข้าใจโครงสร้างของรีเลชั่นที่ชัดเจนยิ่งข้ึน ขอยกตัวอย่างรีเลชั่น พนักงานซึ่งเป็นรีเลชั่นหน่ึงของฐานข้อมูลเชิงสัมพันธ์ของขอ้ มูลพนักงาน แสดงดังรูปท่ี 4.1


จากรูปที่ 4.1 แสดงรีเลชั่นหรือตารางพนักงานในบริษัทแห่งหนึ่ง ประกอบด้วยคอลัมน์ (หรือ แอททริบิวต์รหัสพนักงาน ชื่อ สกุล เงินเดือน ตําแหน่ง และฝ่าย ส่วนแถวของตารางแต่ละแถวแสดง ถึงสมาชิกของตาราง ซึ่งได้แก่ข้อมูลของพนักงานแต่ละคน ที่มีชื่อแอททริบิวต์เหมือนกันแต่ข้อมูล ภายในแอททริบิวต์แตกต่างกัน


คุณสมบัติของรีเลชั่น

    (1) ช่อง (Cell) แตล่ ะช่องของตารางจะเก็บข้อมูลได้เพียงค่าเดียว (Single Value)
    (2) ชนิดข้อมูล ข้อมูลท่ีอยู่ในคอลมั น์เดียวกันจะต้องมีชนิดข้อมูล (Data Type) เป็นแบบเดียวกัน เช่น แอททริบิวต์ เงินเดือน ของทุกแถวจะต้องมีข้อมูลที่เป็นตัวเลขเท่านั้น
   (3) ชื่อคอลัมน์แต่ละคอลัมน์ของรีเลชั่นหน่ึงๆ จะต้องมีช่ือคอลัมน์ที่ไมซ้ำกันส่วน ลําดับของคอลัมน์ก่อนและหลังไม่ถือว่าสําคัญ
   (4) แถวข้อมูลแต่ละแถวของทุกคอลัมน์ในรีเลชน่ั หนึ่งๆ ต้องไม่ซํ้ากัน (ทุกคอลัมน์ส่วนการเรียงลําดับของแถวไม่ถือว่าสําคัญ
    จํานวนแอททริบิวต์ในรีเลชั่น เรียกว่า ดีกรี (Degree) ของรีเลช่ัน ส่วนจํานวนทูเพิลท่ีมีอยู่ใน รีเลชั่นหนึ่ง เรียกว่า คาร์ดินาลิตี้ (Cardinality) หรือจํานวนแถวของข้อมูลในรีเลชั่นน่ันเอง ดังน้ันจาก ตัวอย่างรีเลชั่น พนักงาน” ข้างต้น มีดีกรีเท่ากับ เนื่องจากมีจํานวนแอททริบิวต์ แอททริบิวต์ และมีคาร์ดินาลิตี้เท่ากับ เพราะมีสมาชิกของตารางอยู่ แถว
    โดเมน (Domain) คือ ขอบเขตของค่าของข้อมูลท่ีควรจะเป็นในแต่ละแอททริบิวต์
    ค่าว่าง 
(Null Values) คือ แอททริบิวต์ที่ไม่มีค่าข้อมูลเก็บอยู่
    จากรูปแบบรีเลชั่นในรูปที่ 
4.1 สามารถเขียนฐานข้อมูลเชงิ สัมพันธ์สําหรับรีเลชั่น พนักงาน
ได้ ดังตารางที่ 3.1




หรืออาจเขียนแทนด้วยข้อความสั้นๆ ท่ีประกอบด้วยชื่อรีเลชั่นแล้วตามด้วยวงเล็บ ซึ่งภายใน ประกอบด้วยชื่อของแอททริบิวต์ต่างๆ ดังน้ี

                         พนักงาน (รหัสพนักงานชื่อสกุลเงินเดือนตําแหน่งฝ่าย)

2.2 ประเภทของรีเลชั่น
     1) รีเลชั่นหลัก (Base Relation) เป็นรีเลชั่นหลักที่ถูกกําหนดขึ้นใช้เก็บข้อมูลเพื่อนํา ข้อมูลไปใช้ เมื่อ มีการสร้างรีเลชั่นในภาษาสำหรับนิยามข้อมูล (DDL)
     2) วิว (View) เป็นรีเลชั่นที่ถูกสร้างขึ้นตามความต้องการใช้ข้อมูลของผู้ใช้แต่ละคน เพราะผู้ใช้แต่ละคนในฐานข้อมูลอาจมีความต้องการใช้ข้อมูลในลักษณะที่แตกต่างกัน จึงกําหนดวิว ของตนเองขึ้นจากรีเลชั่นหลัก เพื่อความสะดวกในการใช้ข้อมูลและช่วยให้การรักษาความปลอดภัย ของฐานข้อมูลทําได้ง่ายขึ้น ซึ่งรีเลชั่นนี้จะถูกสมมุติข้ึนโดยไม่มีการเก็บข้อมูลจริงๆ ในระบบ จึงเป็น ตารางสมมุติหรือตารางท่ีแปลค่ามา (Virtual Table หรือ Derived Table) ที่ถูกกําหนดโดยผู้ใช้แต่ละคน


3. ประเภทของคีย์

คีย์แบ่งออกเป็น ประเภท ได้แก่

3.1 คีย์หลัก (Primary Key)คีย์หลัก (Primary Key) หรือ ค่าเอกลักษณ์ (Unique Identifier) คือ แอททริบิวต์ท่ีมี
ค่าของข้อมูลไม่ซํ้ากันในแต่ละทูเพิล
      คุณสมบัติของคีย์หลัก
          1) ข้อมูลของแอททริบิวต์ท่ีเป็นคีย์หลัก จะมคี วามเป็นหน่ึงเดียว (Uniqueness) กล่าวคือ ทุกๆ แถวของตารางจะต้องไม่มีข้อมูลของแอททริบวิ ต์ที่เป็นคีย์หลักน้ีซํ้ากัน
         2) ต้องประกอบด้วยจํานวนแอททริบิวต์ที่น้อยท่ีสุด (Minimally) แต่สามารถใช้เป็น ตัวชี้เฉพาะเจาะจงหรืออ้างอิงถึงแถวใดแถวหน่ึงในรีเลชั่นได้
         จากรีเลชั่น พนักงาน” ข้างต้นหากจะพิจารณาว่าแอททริบิวต์ใดเป็นคีย์หลัก จะพบว่า แอททริบิวต์ที่มีข้อมูลไม่ซ้ำกันเลย คือ แอททริบิวต์ รหัสพนักงาน เพราะสามารถเจาะจงถึงแถวข้อมูล พนักงานคนใดคนหน่ึงได้ ดังนั้น คีย์หลักสําหรับรีเลชั่น พนักงาน” คือ รหัสพนักงาน
        แอททริบิวต์ที่เป็นคีย์หลักของรีเลชั่นจะแทนได้ด้วยการขีดเส้นใต้แอททริบิวต์ดังกล่าว ดังแสดงในข้อความสัญลักษณ์ต่อไปนี้
                     พนักงาน (รหัสพนักงานช่ือ-สกุลเงินเดือนตําแหน่ง, ฝ่า)         คีย์รวม (Composite Key) คือ คีย์หลักที่ประกอบด้วยแอททริบิวต์มากกว่าหน่ึงแอททริบิวต์ขึ้นไป
         คีย์คู่แข่งและคีย์สํารอง (Candidate Key and Alternate Key) สําหรับรีเลชั่นบางรีเลชั่นอาจมีแอททริบิวต์หลายแอททริบิวต์ที่มีคุณสมบัติเป็นคีย์หลักได้ จะเรียกกลุ่มของแอททริบิวต์ที่ สามารถเป็นคีย์หลักได้ว่า คีย์คู่แข่ง (Candidate Key) ซึ่งแอททริบิวต์ท่ีเราไม่เลือกเป็นคีย์หลัก แต่มี คุณสมบัติในการเป็นคีย์หลักได้เราเรียกว่า คีย์สํารอง (Alternate Key)

3.2 คีย์นอก (Foreign Key)คีย์นอก (Foreign Key) เป็นแอททริบิวต์ท่ีใช้ในการอ้างอิงถึงแอททริบิวต์เดียวกันในอีกรีเลชั่นหนึ่ง โดยท่ีแอททริบิวต์นี้มีคุณสมบัติเป็นคีย์หลักในรีเลชั่นที่ถูกอ้างอิงถึง การที่มีแอททริบิวต์นี้ ปรากฏอยู่ในรีเลชั่นทั้งสองก็เพื่อประโยชน์ในการเช่ือมโยงข้อมูลซึ่งกันและกัน


คุณสมบัติของคีย์นอก
      1) คีย์นอกจะเป็นแอททริบิวต์หรือกลุ่มของแอททริบิวต์ที่อยู่ในรีเลชั่นหน่ึงๆ ท่ีค่า ของแอททริบิวต์นั้นไปปรากฏเป็นคีย์หลักในอีกรีเลชั่น (หรือ อาจเป็นรีเลชั่นเดิมก็ได้)
     2) คีย์นอกเปรียบเสมือนการเช่ือมข้อมูลในรีเลชั่นหนึ่งกับอีกรีเลชั่นหนึ่ง ซึ่งเป็นการ สร้างความสัมพันธ์ระหว่างรีเลชั่น
     3) คีย์นอกและคีย์หลักของอีกรีเลชั่นท่ีมีความสัมพันธ์กัน จะต้องอยู่ภายใต้โดเมน เดียวกัน และคีย์นอกไม่จําเป็นต้องมีช่ือเหมือนกับคีย์หลักของอีกรีเลชั่นที่มีความสัมพนั ธ์กัน
     4) รีเลชั่นหนึ่งๆ อาจจะมีคีย์นอกอยู่หรือจะไม่มีก็ได้ แต่ทุกรีเลชั่นจะต้องมีคีย์หลักเสมอ

หมายเหตุ
      1. รีเลชั่นใดท่ีมีคีย์นอกอยู่ด้วย แสดงว่ารีเลชั่นนั้นมีความสัมพันธ์กับรีเลชั่นอื่นใน ลักษณะแม่-ลูก(parent-child)นั่นคือ รีเลชั่นที่มีคีย์นอกถือว่าเป็นรีเลชั่นลูกและอีกรีเลชั่นหนึ่งเป็น รีเลชั่นแม่ความสําคัญระหว่างรีเลชั่นนแม่-ลูก เกี่ยวข้องกับการรักษาความคงสภาพของข้อมูล
     2. จํานวนคีย์นอกของรีเลชั่นใดรีเลชั่นหนึ่ง จะเป็นตัวบ่งบอกถึงจํานวนความ สัมพันธ์ที่รีเลชนั่ นั้นมีกับรีเลชั่นอื่น


สรุป

ฐานข้อมูลเชิงสัมพันธ์เป็นฐานข้อมูลท่ีมีความนิยมใช้กันมากในปัจจุบัน ฐานข้อมูลเชิงสัมพันธ์ เป็นการเก็บข้อมูลในรูปแบบของตารางท่ีเรียกว่า รีเลชั่น ซึ่งแสดงถึงรูปแบบของตารางสองมิติ ประกอบด้วยแถวและคอลัมน์ของข้อมูล แต่ละแถวในตารางจะมีความหมายเหมือนกับระเบียน สําหรับแถวของรีเลชั่นเรียกอีกอย่างหนึ่งว่า ทูเพิล (Tuple) และคอลัมน์แต่ละคอลัมน์ของตารางก็จะ มีความหมายเหมือนกับเขตข้อมูลหรือแอททริบิวต์ (Attribute) ประเภทของรีเลชั่นมีลักษณะการ ทํางานอยู่ ประเภท คือ รีเลชั่นหลัก (Base Relation) เป็นรีเลชั่นที่ใช้จัดเก็บข้อมูล และวิว (View) เป็นรีเลชั่นที่ถูกสร้างข้ึนตามความต้องการใช้ข้อมูลของผู้ใช้แต่ละคน รูปแบบฐานข้อมูลเชิงสัมพันธ์ บังคับให้ทุกรีเลชั่นต้องมีคีย์หลัก(Primary Key)คือแอททริบิวต์ท่ีมีค่าของข้อมูลไม่ซ้ำกันในแต่ละ ทูเพิลส่วนคีย์นอก(Foreign Key) เป็นแอททริบิวต์ท่ีใช้ในการอ้างอิงถึงแอททริบิวต์เดียวกันในอีก รีเลชั่นหน่ึง ประโยชน์เพื่อเป็นการเชื่อมโยงข้อมูลระหว่างรีเลชั่น