ประเภทของฐานข้อมูล

ส่วนใหญ่องค์กรต่างๆ จะมีโครงสร้างเป็นแบบลำดับชั้น ซึ่งข้อมูลขององค์กรเหล่านี้ จะมีความเหมาะสมกับแบบจำลองข้อมูลเชิงลำดับชั้น (Hierarchical Data Model) มากที่สุด ปรากฏว่า ไม่มีหลักฐาน หรือเอกสารอย่างเป็นทางการ ที่อธิบายถึงแบบจำลองข้อมูลนี้ อย่างไรก็ตาม มีระบบการจัดการฐานข้อมูลในสมัยก่อนหลายระบบ ที่พัฒนา โดยใช้โครงสร้างการเก็บข้อมูลแบบลำดับชั้น ตัวอย่างเช่น ระบบมาร์สที่ ๖ (MARS VI) ระบบไอเอ็มเอส (IMS) ระบบ ๒๐๐๐ ของ เอ็มอาร์ไอ (MRI's System-2000) เป็นต้น

ตัวอย่างการแสดงโครงสร้างแบบจำลองข้อมูลเชิงลำดับชั้น
ตัวอย่างการแสดงโครงสร้างแบบจำลองข้อมูลเชิงลำดับชั้น 

โครงสร้างข้อมูลพื้นฐานของแบบจำลองข้อมูลนี้ ประกอบด้วย ๒ ชนิดคือ ระเบียน (Record) และความสัมพันธ์แบบพ่อกับลูก (Parent- Child Relationship : PCR) ระเบียนคือ กลุ่มค่า ของข้อมูลของเอนทิตี (entity) หนึ่งๆ หรือของ ความสัมพันธ์ (relationship) ระหว่างเอนทิตี ซึ่ง ระเบียนข้อมูลชนิดเดียวกันเมื่อนำมารวมกลุ่มกัน ก็จะเรียกว่า ชนิดระเบียน (Record Type) สำหรับคำว่าเอนทิตีนั้น เป็นคำเฉพาะที่ใช้ใน สาขาฐานข้อมูล หมายถึง วัตถุใดๆ ทั้งที่เป็น นามธรรมและรูปธรรมที่บรรจุไว้ เป็นข้อมูล ซึ่งประกอบด้วยคุณสมบัติ (attribute) ต่างๆ ตัวอย่างเช่น ฐานข้อมูลของบริษัทผู้ผลิตอาจจะ ประกอบด้วยเอนทิตีพนักงาน แผนก โครงการ ชิ้นส่วนที่ผลิต ผู้จัดส่งวัตถุดิบ โกดัง เป็นต้น โดยที่เอนทิตีพนักงานอาจจะมีคุณลักษณะที่ ประกอบด้วย ชื่อ นามสกุล เลขประจำตัวบัตร ประชาชน วันเกิด ที่อยู่ เบอร์โทรศัพท์ ตำแหน่ง เป็นต้น 

ส่วนความสัมพันธ์แบบพีซีอาร์ (PCR) นั้น เป็นความสัมพันธ์ระหว่าง ๒ ระเบียนใดๆ แบบ ๑ ต่อมาก (one-to-many : 1:N) โดยที่ชนิดระเบียน ที่เป็นพ่อกับชนิดระเบียน ที่เป็นลูกนั้น จะมีหน้าที่ และบทบาทแตกต่างกัน โดยสิ้นเชิง จึงไม่สามารถสลับกันเป็นพ่อเป็นลูกได้ ซึ่งข้อจำกัดนี้ ส่งผลให้แบบจำลองข้อมูลแบบลำดับชั้นไม่สามารถ นำไปใช้งานกับฐานข้อมูลจำนวนมากได้ ตัวอย่าง ของชนิดระเบียนและความสัมพันธ์แบบพ่อกับลูก ได้แก่ ระเบียนภาควิชา ระเบียนนักศึกษา และ ระเบียนอาจารย์ และความสัมพันธ์แบบพ่อกับลูก ๒ ความสัมพันธ์ ได้แก่ (ภาควิชา นักศึกษา) และ (ภาควิชา อาจารย์) โดยที่ระเบียนภาควิชา เป็นพ่อในทั้งสองความสัมพันธ์ สำหรับความ สัมพันธ์ (ภาควิชา นักศึกษา) หมายถึง ความสัมพันธ์ที่ว่า นักศึกษาคนใด สังกัดในภาควิชาใด โดยที่ภาควิชาหนึ่งๆ จะมีนักศึกษาได้หลายคน (ความสัมพันธ์แบบ ๑ ต่อมาก) และนักศึกษาคนหนึ่ง จะสังกัดได้เพียง ๑ ภาควิชาเท่านั้น ส่วนความสัมพันธ์ (ภาควิชา อาจารย์) นั้น ก็มีความหมาย ในลักษณะเดียวกัน แต่ละภาควิชา จะมีอาจารย์ในสังกัดได้หลายคน และอาจารย์แต่ละคน จะสังกัดได้เพียง ๑ ภาควิชาเท่านั้น


ตัวอย่างการใช้ความสัมพันธ์แบบเสมือนพ่อกับลูก
ตัวอย่างการใช้ความสัมพันธ์แบบเสมือนพ่อกับลูก

ข้อจำกัดของความสัมพันธ์แบบพ่อกับลูก แบบทิศทางเดียวนี้ จะแทนความสัมพันธ์แบบ ๑ ต่อมากเท่านั้น สำหรับความสัมพันธ์แบบ ๑ ต่อ ๑ เราก็ใช้หลักการเดิม เพียงแต่ต้องระบุเงื่อนไขเพิ่มเติมเข้าไป ที่ระเบียนลูก (child record) ว่า มีได้เพียง ๑ ค่าต่อ ๑ ระเบียนพ่อ (parent record) เท่านั้น อย่างไรก็ตาม ยังมีปัญหา ที่แก้ไขยากอีก ได้แก่ ๑. ความสัมพันธ์แบบมาก ต่อมาก (many-to-many : M:N) ๒. ชนิด ระเบียนอันหนึ่งเป็นระเบียนลูกในหลายๆความ สัมพันธ์แบบพ่อกับลูก และ ๓. ความสัมพันธ์ ระหว่างหลายๆชนิดระเบียน โดยที่ชนิดระเบียน มีมากกว่า ๒ ชนิดขึ้นไป 

สำหรับกรณีแรก และกรณีที่ ๒ นั้น สามารถแก้ไขได้ ด้วยการทำซ้ำข้อมูลจริง ในระเบียน (record occurences) ของชนิดระเบียนลูก ในทุกๆความสัมพันธ์ แต่สำหรับปัญหาในกรณีที่ ๓ นั้น ไม่สามารถแก้ไขได้ ด้วยวิธีการเดียวกัน อย่างไรก็ตาม การทำซ้ำมีข้อเสียคือ สิ้นเปลืองเนื้อที่หน่วยความจำในการจัดเก็บ และมีปัญหา ในเรื่องความถูกต้องของข้อมูลอีกด้วย เนื่องจากมีข้อมูลระเบียนเดียวกันอยู่หลายแห่ง เมื่อมีการเปลี่ยนแปลงรายละเอียดภายในระเบียน จะต้องแน่ใจว่า ทุกระเบียน ได้เปลี่ยนแปลงค่าเป็นค่าใหม่หมดแล้ว ซึ่งบางครั้งผู้แก้ไขข้อมูลอาจพลั้งเผลอ ทำให้ข้อมูลระเบียนเดียวกัน ที่ต่ออยู่กับคนละความสัมพันธ์ มีรายละเอียดต่างกัน ดังนั้น จึงได้มีการนำเสนอวิธีแก้ ปัญหาเหล่านี้ด้วยการใช้ความสัมพันธ์แบบเสมือน พ่อกับลูก (Virtual Parent-Child Relationship : VPCR) ซึ่งเป็นความสัมพันธ์ระหว่างระเบียนชนิด เสมือนลูก (Virtual Child Type) และระเบียนชนิด เสมือนพ่อ (Virtual Parent Type) โดยที่ระเบียน เสมือนลูกคือ ระเบียนชนิดที่มีตัวชี้ (pointer) ชี้ไปยังระเบียนอีกชนิดหนึ่ง ที่เป็นระเบียนเสมือนพ่อ อันที่จริงแล้ว วิธีการของพีซีอาร์ และวีพีอาร์นั้น เหมือนกันในแง่คิด แต่ทว่าแตกต่างกันในขั้นตอน การพัฒนาใช้งาน คือ พีซีอาร์จะใช้ลำดับเชิงลำดับชั้น (hierarchical sequence) ส่วนพีซีอาร์มักจะสร้างด้วยการใช้ตัวชี้ (pointer)
ข้อบังคับของแบบจำลองข้อมูลเชิงลำดับชั้น 

๑. ไม่มีข้อมูลจริงของระเบียนใดๆ ยกเว้น รากต้นไม้ (root) ที่จะดำรงอยู่ได้ โดยไม่ติดอยู่กับระเบียนพ่อ หมายความว่า 

  • ระเบียนลูกไม่สามารถใส่เข้าไปได้ ถ้าไม่นำไปต่ออยู่กับระเบียนพ่อ 
  • ระเบียนลูกสามารถถูกยกเลิกได้ แต่ถ้ายกเลิกระเบียนพ่อ ระเบียนลูกทั้งหมด จะต้องถูกยกเลิกด้วย 
  • กฎทั้งหมดข้างต้นนั้น ไม่รวมระเบียนเสมือนลูก และระเบียนเสมือนพ่อ 
๒. ถ้าระเบียนลูกมีระเบียนพ่อตั้งแต่ ๒ ตัวขึ้นไป จากระเบียนชนิดเดียวกัน ระเบียนลูกจำเป็นต้องทำซ้ำภายในแต่ละระเบียนพ่อ 

๓. ถ้าระเบียนลูกมีระเบียนพ่อตั้งแต่ ๒ ตัวขึ้นไปจากระเบียนต่างชนิดกัน สามารถเป็นได้ก็ต่อเมื่อ มีพ่อตัวจริงได้ ๑ ชนิด ส่วนที่เหลือนั้น จะต้องเป็นเสมือนพ่อ (virtual parent) ทั้งหมด

ภาษาจัดดำเนินการแบบจำลองข้อมูลเชิงลำดับชั้น 

เป็นภาษาสำหรับจัดการข้อมูลแบบครั้งละระเบียน (record-at-a-time) เป็นภาษาขั้นต่ำ ซึ่งคำสั่งในภาษานี้ จะต้องติดอยู่กับคำสั่งของภาษาโปรแกรมคอมพิวเตอร์ทั่วๆ ไป ภาษาใดภาษาหนึ่ง เช่น ภาษาปาสกาล และภาษาซี เป็นต้น ภาษานี้ จะต้องมีบริเวณที่เรียกว่า บริเวณทำงานของผู้ใช้ (User Work Area : UWA) ซึ่งเป็นบริเวณใน ภาษาโปรแกรมคอมพิวเตอร์ทั่วไป ใช้สำหรับ กำหนดโครงสร้างและลักษณะของตัวแปรต่างๆ ของข้อมูลทั้งหมดที่มีอยู่ในฐานข้อมูล 

คำสั่งหลักของภาษาจัดดำเนินการของแบบ จำลองนี้คือ 

  • คำสั่งนำออกมา (Get) เพื่อดึงข้อมูลจากฐานข้อมูล มาไว้ที่ตัวแปร ที่เกี่ยวข้องกันในบริเวณทำงานของผู้ใช้ เพื่อจัดการต่อไป คำสั่งนี้มีคำสั่งย่อยๆ ได้แก่ นำระเบียนแรกออกมา (Get First) นำระเบียนถัดไปออกมา (Get Next) นำระเบียนถัดไป ภายใต้พ่อเดียวกันออกมา (Get Next Within Parent) นำระเบียนตามเส้นทางความสัมพันธ์ออกมา (Get Path)
  • คำสั่งเพิ่ม (Insert) เพื่อจัดเก็บระเบียนใหม่ลงในฐานข้อมูล 
  • คำสั่งลบ (Delete) เพื่อยกเลิก หรือลบระเบียน ที่เป็นระเบียนปัจจุบัน (Current Record) ออกจากฐานข้อมูล 
  • คำสั่งแทนที่ (Replace) เพื่อเปลี่ยนแปลงค่าบางค่าของระเบียนปัจจุบัน
  • คำสั่งนำออกมา และถือไว้ (Get Hold) เพื่อดึงระเบียนออกมา และทำให้เป็นระเบียนปัจจุบัน เพื่อจะได้ทำการยกเลิก หรือเปลี่ยนแปลงค่าต่อไป
ตัวอย่าง (ใช้ร่วมกับภาษาปาสกาล)

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

$GET FIRST อาจารย์ WHERE อาจารย์. ชื่อ :='สมศักดิ์' : อาจารย์.นามสกุล :='รักชาติไทย';
if DB_STATUS = 0 then begin
writeln (อาจารย์.ชื่อ, อาจารย์.เงินเดือน);
end;
else writeln ('NO RECORD FOUND');

แบบจำลองฐานข้อมูลแบ่งออกเป็น 4 แบบ คือ

1. ฐานข้อมูลแบบลำดับชั้น (Hierarchical Model) เป็นฐานข้อมูลที่นำเสนอข้อมูลและความสัมพันธ์ระหว่างข้อมูลในรูปแบบของ โครงสร้างต้นไม้ (tree structure) เป็นโครงสร้างลักษณะคล้ายต้นไม้เป็นลำดับชั้น ซึ่งแตกออกเป็นกิ่งก้านสาขา หรือที่เรียกว่า เป็นการจัดเก็บข้อมูลในลักษณะความสัมพันธ์แบบ พ่อ-ลูก (Parent-Child Relationship Type : PCR Type)
คุณสมบัติของฐานข้อมูลแบบลำดับขั้น
1. Record ที่อยู่ด้านบนของโครงสร้างหรือพ่อ(Parent Record) นั้นสามารถมีลูกได้มากกว่าหนึ่งคน แต่ลูก (Child Record) จะไม่สามารถมีพ่อได้มากกว่า 1 คนได้
2. ทุก Record สามารถมีคุณสมบัติเป็น Parent Record(พ่อ) ได้
3. ถ้า Record หนึ่งมีลูกมากกว่าหนึ่ง Record แล้ว การลำดับความสัมพันธ์
ของ Child Record จะลำดับจากซ้ายไปขวา
ลักษณะเด่น
• เป็นระบบฐานข้อมูลที่มีระบบโครงสร้างซับซ้อนน้อยที่สุด
• มีค่าใช้จ่ายในการจัดสร้างฐานข้อมูลน้อย
• ลักษณะโครงสร้างเข้าใจง่าย
• เหมาะสำหรับงานที่ต้องการค้นหาข้อมูลแบบมีเงื่อนไขเป็นระดับและออกงานแบบเรียงลำดับต่อเนื่อง
• ป้องกันระบบความลับของข้อมูลได้ดี เนื่องจากต้องอ่านแฟ้มข้อมูลที่เป็นต้นกำเนิดก่อน
ข้อเสีย
• Record ลูก ไม่สามารถมี record พ่อหลายคนได้ เช่น นักศึกษาสามารถลงทะเบียนได้มากกว่า 1 วิชา
• มีความยืดหยุ่นน้อย เพราะการปรับโครงสร้างของ Tree ค่อนข้างยุ่งยาก
• มีโอกาสเกิดความซ้ำซ้อนมากที่สุดเมื่อเทียบกับระบบฐานข้อมูลแบบโครงสร้างอื่น
• หากข้อมูลมีจำนวนมาก การเข้าถึงข้อมูลจะใช้เวลานานในการค้นหา เนื่องจากจะต้องเข้าถึงที่ต้นกำเนิดของข้อมูล

2. ฐานข้อมูลแบบเครือข่าย (Network Model) - ลักษณะฐานข้อมูลนี้จะคล้ายกับลักษณะฐานข้อมูลแบบลำดับชั้น จะมีข้อแตกต่างกันตรงที่ในลักษณะฐานข้อมูลแบบเครือข่ายนี้สามารถมีต้นกำเนิดของข้อมูลได้มากกว่า 1 และยินยอมให้ระดับชั้นที่อยู่เหนือกว่าจะมีได้หลายแฟ้มข้อมูลถึงแม้ว่าระดับชั้นถัดลงมาจะมีเพียงแฟ้มข้อมูลเดียว
- ลักษณะโครงสร้างระบบฐานข้อมูลแบบเครือข่ายจะมีโครงสร้างของข้อมูลแต่ละแฟ้มข้อมูลมีความสัมพันธ์คล้ายร่างแห
ข้อดี
• ช่วยลดความซ้ำซ้อนของข้อมูลได้ทั้งหมด
• สามารถเชื่อมโยงข้อมูลแบบไป-กลับ ได้
• สะดวกในการค้นหามากกว่าลักษณะฐานข้อมูลแบบลำดับชั้น เพราะไม่ต้องไปเริ่มค้นหาตั้งแต่ข้อมูลต้นกำเนิดโดยทางเดียว และการค้นหาข้อมูลมีเงื่อนไขได้มากและกว้างกว่าโครงสร้างแบบลำดับชั้น

3. ฐานข้อมูลเชิงสัมพันธ์ (Relational Model) เป็นการจัดข้อมูลในรูปแบบของตาราง 2 มิติ คือมี แถว (Row) และ คอลัมน์ (Column) โดยการเชื่อมโยงข้อมูลระหว่างตาราง จะใช้ Attribute ที่มีอยู่ทั้งสองตารางเป็นตัวเชื่อมโยงข้อมูล
ข้อดี
• เหมาะกับงานที่เลือกดูข้อมูลแบบมีเงื่อนไขหลายคีย์ฟิลด์ข้อมูล
• ป้องกันข้อมูลถูกทำลายหรือแก้ไขได้ดี เนื่องจากโครงสร้างแบบสัมพันธ์นี้ผู้ใช้จะไม่ทราบว่าการเก็บข้อมูลในฐานข้อมูลอย่างแท้จริงเป็นอย่างไร จึงสามารถป้องกันข้อมูลถูกทำลายหรือถูกแก้ไขได้ดี
• การเลือกดูข้อมูลทำได้ง่าย มีความซับซ้อนของข้อมูลระหว่างแฟ้มต่าง ๆ น้อยมาก อาจมีการฝึกฝนเพียงเล็กน้อยก็สามารถใช้ทำงานได้
ข้อเสีย
• มีการแก้ไขปรับปรุงแฟ้มข้อมูลได้ยากเพราะผู้ใช้จะไม่ทราบการเก็บข้อมูลในฐานข้อมูลอย่างแท้จริงเป็นอย่างไร
• มีค่าใช้จ่ายของระบบสูงมากเพราะเมื่อมีการประมวลผลคือ การอ่าน เพิ่มเติม ปรับปรุงหรือยกเลิกระบบจะต้องทำการสร้างตารางขึ้นมาใหม่ ทั้งที่ในแฟ้มข้อมูลที่แท้จริงอาจจะมีการเปลี่ยนแปลงเพียงเล็กน้อย

4. ฐานข้อมูลเชิงวัตถุ (Object Oriented Model)

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

วัตถุประสงค์ของแบบจำลองข้อมูล

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

ไม่มีความคิดเห็น:

แสดงความคิดเห็น