หน่วยที่ 2 รูปแบบของฐานข้อมูล

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

ในหน่วยท่ี น้ีจะกล่าวถึงคําศัพท์พื้นฐานท่ีเกี่ยวข้องกับฐานข้อมูล เค้าร่างของฐานข้อมูล ความสัมพันธ์ระหว่างข้อมูลของเอนทิตี้ ระดับของข้อมูล และรูปแบบของฐานข้อมูล ซึ่งมีรายละเอียด ดังนี้


1. ศัพท์พื้นฐานของฐานข้อมูล

เอนทิตี้ (Entity) หรือ ตาราง (Table) หรือ รีเลชั่น (Relation) คือ การรวบรวมข้อมูลจัดเก็บ ในรูปของตาราง มิติ
แอททริบิวต์ (Attribute) คือ รายละเอียดของข้อมูลในเอนทิตี้ เป็นชื่อเขตข้อมูล หรือฟิลด์(Field)
ความสัมพันธ์ (Relationship) คือ ความสัมพันธ์ระหว่างเอนทิตี้ (Entity)
ทูเพิล (Tuple) คือ ค่าของข้อมูลในแต่ละแถว (Row) หรือที่เรียกว่า เรคอร์ด (Record) คาร์ดินาลิตี้ (Cardinality) คือ จํานวนแถวของข้อมูลในแต่ละรีเลชั่น หรือจํานวนเรคอร์ดใน
คีย์หลัก (Primary Key) หรือ ค่าเอกลักษณ์ (Unique Identifier) คือ แอททริบิวต์ท่ีมีค่าของ
โดเมน (Domain) คือ ขอบเขตของค่าของข้อมูลที่ควรจะเป็นในแต่ละแอททริบิวต์ ฐานข้อมูลนั่นเองข้อมูลไม่ซ้ำกันในแต่ละทูเพิล


2. เค้าร่างของฐานข้อมูล (Database Schema)

ในการออกแบบฐานข้อมูล ต้องระบุช่ือของเอนทิตี้ และรายละเอียดของแต่ละเอนทิตี้ประกอบ ด้วยแอททริบิวต์อะไรบ้าง มีลักษณะความสัมพันธ์ของข้อมูลในเอนทิตี้อย่างไร ซึ่งรายละเอียดของ โครงสร้างของฐานข้อมูลน้ีเรียกว่าเค้าร่างของฐานข้อมูล(Database Schema) ส่วนข้อมูลท่ีถูก บันทึกลงในฐานข้อมูล เรียกว่า อินสแตนซ์ (Instance หรือ Occurrence) แสดงดังตารางท่ี 2.1


Schema หมายถึง โครงสร้างข้อมูลหรือนิยามข้อมูล 
Instance หมายถึง เนื้อข้อมูลท่ีเก็บอยู่ในโครงสร้างข้อมูล

ตารางท่ี 2.1 แสดงโครงสร้างของข้อมูลพนักงานบริษัทแห่งหน่ึง
จากตัวอย่างตารางที่ 2.1 สามารถอธิบายโครงสร้างของข้อมูล ได้ดังนี้
เค้าร่างของฐานข้อมูล (Database Schema) คือ 
     รหัสพนักงานชื่อพนักงานตําแหน่งแผนกวุฒิการศึกษา

เน้ือข้อมูล (Instance) 
    คือ 55001, นางสาวสุดสวย รักงานผู้จัดการทั่วไปการตลาดปริญญาตรี


เมื่อมีการเรียกใช้หรือแก้ไขข้อมูลจะทําให้ค่าของข้อมูล(Instance) มีการเปลี่ยนแปลงได้ ตลอดเวลาส่วนเค้าร่างท่ีได้จากการออกแบบฐานข้อมูล(Database Schema) ไม่ควรมีการ เปลี่ยนแปลง ถ้ามีการเปล่ียนแปลงก็ไม่ควรให้เกิดข้ึนบ่อยครั้ง


3. ความสัมพันธ์ระหว่างเอนทิตี้

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

3.1 ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One-to-one Relationship)
        เป็นการแสดงความสัมพันธ์ของข้อมูลในเอนทิตี้หนึ่ง ว่ามีความสัมพันธ์กับข้อมูลของอีก เอนทิตี้หนึ่ง ในลักษณะที่เป็นหนึ่งต่อหนึ่ง เช่น
        ความสัมพันธ์ของประชาชนกับหมายเลขรหัสประจําตัวประชาชน ซึ่งประชาชน คน จะต้องมีหมายเลขรหัสประจําตัวประชาชน หมายเลข ซึ่งไม่ช้ำกัน
        นักศึกษากับรหัสประจําตัวนักศึกษา นักศึกษาแต่ละคนก็จะมีรหัสประจําตัวนักศึกษาไม่ ซํ้ากัน รถยนต์กับทะเบียนรถยนต์ก็เช่นกัน รถยนต์แต่ละคันก็จะมีหมายเลขทะเบียนไม่ชํ้ากัน จึงมี ความสัมพันธ์แบบหนึ่งต่อหน่ึง แสดงดังรูปท่ี 2.1
3.2 ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One-to-many Relationship)
      เป็นการแสดงความสัมพันธ์ของข้อมูลของเอนทิตี้หน่ึง ว่ามีความสัมพันธ์กับข้อมูลหลาย ข้อมูลกับอีกเอนทิตี้หนึ่ง เช่น
      ความสัมพันธ์ของ แผนกกับพนักงาน ซึ่งแผนกแต่ละแผนกจะประกอบไปด้วยพนักงาน ท่ีสังกัดอยู่ในแผนกหลายคน
      ความสัมพันธ์ของโรงเรียนกับนักเรียน โรงเรียน โรงเรียน มีนักเรียนหลายคนเรียนอยู่ ในโรงเรียน จึงมีความสัมพันธ์แบบหน่ึงต่อกลุ่ม แสดงดังรูปท่ี 2.2
3.3 ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many-to-many Relationship)
         เป็นการแสดงความสัมพันธ์ของข้อมูลของ เอนทิตี้ ในลักษณะแบบกลุ่มต่อกลุ่มเช่น
         ความสัมพันธ์ของนักศึกษากับรายวิชา นักศึกษาหลายคน อาจลงทะเบียนเรียนได้หลาย รายวิชาในการลงทะเบียนเรียนแต่ละภาคเรียน และอาจมีลงทะเบียนเรียนหลายครั้ง จึงมี ความสัมพันธ์แบบกลุ่มต่อกลุ่ม
       ความสัมพันธ์ของลูกค้า/การสั่งซื้อกับสินค้า ลูกค้าหลายคน อาจซื้อสินค้าได้หลายชนิด ในการซื้อแต่ละคร้ังและอาจมีการสั่งซื้อหลายคร้ัง จึงมีความสัมพันธ์แบบกลุ่มต่อกลุ่ม ที่ 2.3 แสดงดังรูป


4. ระดับของข้อมูล

     ระบบฐานข้อมูลเป็นการนําข้อมูลที่เก่ียวข้องกันมารวมกันไว้ในระบบเดียวกัน เพื่อให้ผู้ใช้ สามารถใช้ข้อมูลที่อยู่ในฐานข้อมูลเดียวกัน ผู้ใช้แต่ละคนจะมองข้อมูลในแง่มุม หรือวิว(View) ท่ี ต่างกัน ผู้ใช้บางคนอาจต้องเรียกใช้ข้อมูลทั้งแฟ้มข้อมูล บางคนอาจต้องการเรียกใช้ข้อมูลเพียง บางส่วนของแฟ้มข้อมูล โดยผู้ใช้ไม่จําเป็นต้องสนใจว่าการจัดเก็บข้อมูลท่ีแท้จริงจะเป็นอย่างไร ดังนั้น การเลือกใช้วิธีจัดเก็บข้อมูลที่เหมาะสม จึงเป็นส่วนท่ีทําให้การเรียกใช้ข้อมูลเกิดประสิทธิภาพ
     ระบบฐานข้อมูลมีการเรียกใช้โดยผู้ใช้หลายกลุ่ม ข้อมูลที่ผู้ใช้สามารถเรียกใช้ได้มีการแบ่งระดับ ของข้อมูลออกเป็นระดับต่างๆ เพื่อให้การใช้ข้อมูลของผู้ใช้เป็นไปอย่างเหมาะสม แบ่งเป็น ระดับ ดังนี้

4.1 ระดับภายนอกหรือวิว (External Level หรือ View). เป็นระดับของข้อมูลที่อยู่สูงที่สุด ประกอบไปด้วยภาพท่ีผู้ใช้แต่ละคนมองข้อมูล (View) เค้าร่างของข้อมูลระดับนี้เกิดจากความต้องการข้อมูลของผู้ใช้

4.2 ระดับแนวคิด (Conceptual Level). เป็นระดับของข้อมูลท่ีอยู่ถัดลงมา อธิบายถึงฐานข้อมูลว่าประกอบด้วยเอนทิตี้ โครงสร้างของข้อมูล ความสัมพันธ์ของข้อมูล กฎเกณฑ์และข้อจํากัดต่างๆ อย่างไร ข้อมูลในระดับน้ี เป็นข้อมูลที่ผ่านการวิเคราะห์และออกแบบโดยผู้บริหารฐานข้อมูล (DBA) หรือนักวิเคราะห์ และ ออกแบบฐานข้อมูล เป็นระดับของข้อมูลท่ีถูกออกแบบเพื่อให้ผู้ใช้ข้อมูลในระดับภายนอกสามารถ เรียกใช้ข้อมูลได้

4.3 ระดับภายใน (Internal level หรือ Physical Level)
เป็นระดับของข้อมูลที่อยู่ล่างสุด ซึ่งข้อมูลจะถูกเก็บอยู่จริงในสื่อบันทึกข้อมูลมีโครงสร้าง การจัดเก็บข้อมูล รวมถึงการเข้าถึงข้อมูลต่างๆ ในฐานข้อมูล เพื่อดึงข้อมูลที่ต้องการ แสดงดังรูป ท่ี 2.4



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


5. รูปแบบของฐานข้อมูล

    ข้อมูลในฐานข้อมูลโดยท่ัวไปจะถูกสร้างให้มีโครงสร้างที่ง่ายต่อความเข้าใจและการใช้งานของ ผู้ใช้ โดยทั่วไปแล้วฐานข้อมูลที่มีใช้อยู่ในปัจจุบันมี รูปแบบด้วยกัน ดังนี้

5.1 ฐานข้อมูลแบบเชิงสัมพันธ์ (Relational Database)
     ฐานข้อมูลแบบเชิงสัมพันธ์ ประกอบด้วยกลุ่มของเอนทิตี้ท่ีมีความสัมพันธ์กัน โดยข้อมูล ของแต่ละเอนทิตี้จะถูกจัดเก็บข้อมูลในรูปแบบของตาราง มิติ ในแนวแถว (Row) และแนวคอลัมน์ (Column) โดยบรรทัดแรกของตารางคือ ชื่อแอททริบิวต์ แสดงดังรูปท่ี 2.5
ในการเชื่อมโยงข้อมูลระหว่างตาราง จะเช่ือมโยงโดยใช้แอททริบิวต์ท่ีมีอยู่ในท้ังสองตารางเป็น ตัวเช่ือมโยงข้อมูลกัน ฐานข้อมูลเชิงสัมพันธ์เป็นรูปแบบที่ง่าย และนิยมใช้ในปัจจุบัน ตัวอย่าง รูปแบบฐานข้อมูลเชิงสัมพันธ์ของพนักงานบริษัทแห่งหนึ่ง ประกอบด้วย ตาราง แสดงดังตาราง ท่ี 2.2 ตารางท่ี 2.3 และตารางท่ี 2.4


5.2  ฐานข้อมูลแบบลําดับขั้น (Hierarchical Database)
      เป็นฐานข้อมูลที่นําเสนอข้อมูลและความสัมพันธ์ระหว่างข้อมูลในรูปแบบของ โครงสร้างต้นไม้ (Tree Structure) เป็นโครงสร้างลักษณะคล้ายต้นไม้เป็นลําดับขั้น ซึ่งแตกออกเป็น กิ่งก้านสาขา ผู้ที่คิดค้นฐานข้อมูลแบบนี้ คือ North American Rockwell โดยใช้แนวความคิดของ โปรแกรม Generalized Update Access Method (GUAM)
     โครงสร้างของฐานข้อมูลแบบลําดับขั้นจะมีโครงสร้างของข้อมูลเป็นลักษณะ ความสัมพันธ์แบบพ่อลูก คือ พ่อ (Parent) 1 คนมีลูก (Child) ได้หลายคน แต่ลูกมีพ่อได้คนเดียว (ความสัมพันธ์แบบ ต่อ n) หรือแบบพ่อคนเดียวมีลูก คน (ความสัมพันธ์แบบ ต่อ 1) ซึ่งจัดแยก ออกเป็นลําดับขั้น โดยระดับขั้นที่ จะมีเพียงแฟ้มข้อมูลเดียว คือ พ่อ ในระดับขั้นท่ี และระดับขั้นที่ จะมีกี่แฟ้มข้อมูลก็ได้ โดยในโครงสร้างข้อมูลแบบลําดับขั้นแต่ละกรอบจะมีตัวชี้ (Pointers) หรือ หัวลูกศรวิ่งเข้าหาได้ไม่เกิน หัว
กฎควบคุมความถูกต้อง คือ เรคอร์ดพ่อสามารถมีเรคอร์ดลูกได้หลายเรคอร์ดแต่เรคอร์ด ลูกแต่ละเรคอร์ดจะมีเรคอร์ดพ่อได้เพียงเรคอร์ดเดียวเท่านั้น
ตัวอย่าง ร้านขายเครื่องใช้ไฟฟ้า ในการขายสินค้า พนักงานขายสามารถขายสินค้าให้แก่ ลูกค้าได้หลายคน แต่ลูกค้าแต่ละคนต้องซื้อสินค้ากับพนักงาน คน แต่ก็สามารถซื้อสินค้าได้ มากกว่า อย่างข้ึนไป แสดงดังรูปที่ 2.6 และรูปที่ 2.7

-  เหมาะสําหรับงานที่ต้องการค้นหาข้อมูลแบบมีเงื่อนไขเป็นระดับและออกรายงานแบบ เรียงลําดับต่อเนื่อง
-  ป้องกันระบบความลับของข้อมูลได้ดีเนื่องจากต้องอ่านแฟ้มข้อมูลที่เป็นต้นกําเนิดก่อน

ข้อจํากัดของรูปแบบฐานข้อมูลแบบลําดับขั้น
- มีโอกาสเกิดความซ้ำซ้อนมากท่ีสุดเมื่อเทียบกับฐานข้อมูลแบบโครงสร้างอื่น
ขาดความสัมพันธ์ระหว่างแฟ้มข้อมูลในรูปเครือข่าย 
- มีความคล่องตัวน้อยกว่าโครงสร้างแบบอื่นๆเพราะการเรียกใช้ข้อมูลต้องผ่านทางต้น กําเนิด (root) เสมอ ถ้าต้องการค้นหาข้อมูลซึ่งปรากฏในระดับล่างๆ แล้ว จะต้องค้นหา ท้ังแฟ้ม


5.3 ฐานข้อมูลแบบเครือข่าย (Network Database)
    โครงสร้างของข้อมูลแต่ละแฟ้มข้อมูลมีความสัมพันธ์คล้ายร่างแห โดยมีลักษณะ โครงสร้างคล้ายกับโครงสร้างแบบลําดับขั้น แตกต่างกันตรงที่โครงสร้างแบบเครือข่ายสามารถมี ต้นกําเนิดของข้อมูลได้มากกว่า เรคอร์ด การออกแบบลักษณะของฐานข้อมูลแบบเครือข่ายทําให้ สะดวกในการค้นหามากกว่าลักษณะฐานข้อมูลแบบลําดับขั้น เพราะไม่ต้องไปเริ่มค้นหาตั้งแต่ข้อมูล ต้นกําเนิดโดยทางเดียว ข้อมูลแต่ละกลุ่มจะเชื่อมโยงกันโดยตัวชี้
ข้อมูลภายในฐานข้อมูลแบบน้ีสามารถมีความสัมพันธ์กันแบบใดก็ได้ อาจเป็นหนึ่งต่อ หน่ึง หน่ึงต่อกลุ่ม หรือกลุ่มต่อกลุ่ม

กฎการควบคุมของฐานข้อมูลแบบเครือข่าย
   โครงสร้างแบบเครือข่ายสามารถยินยอมให้ระดับขั้นที่อยู่เหนือกว่ามีหลายแฟ้มข้อมูล แม้ว่าระดับขั้นถัดลงมาจะมีเพียงแฟ้มข้อมูลเดียว โดยเรคอร์ดที่อยู่เหนือกว่ามีความสัมพันธ์กับ เรคอร์ดที่อยู่ระดับล่างได้มากกว่า เรคอร์ด โดยแต่ละเรคอร์ดสัมพันธ์กันด้วยการลิงค์ (Links)ฐานข้อมูลแบบเครือข่ายจะทําให้สะดวกในการค้นหามากกว่าฐานข้อมูลแบบลําดับขั้น เพราะไม่ต้อง ไปเริ่มค้นหาต้ังแต่ข้อมูลต้นกําเนิดโดยทางเดียว ข้อมูลแต่ละกลุ่มจะเชื่อมโยงกันโดยตัวชี้
ตัวอย่างของโครงสร้างข้อมูลแบบเครือข่าย เช่น ร้านขายอุปกรณ์คอมพิวเตอร์แห่งหน่ึง ส่ังสินค้าหลายชนิดจากผู้ผลิตสินค้าหลายๆ บริษัท แล้วนําสินค้าไปเก็บไว้ในคลังสินค้า ซึ่งแสดง ความสัมพันธ์ของผู้ผลิตสินค้าและคลังสินค้า โดยการใช้ลูกศรเชื่อมโยง แสดงดังรูปที่ 2.8 และ รูปที่ 2.9




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



สรุป

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