ฐานข้อมูลแบบลําดับชั้น hierarchical database หมายถึง

แบบจำลองข้อมูลเชิงลำดับชั้น (Hierarchical Data Model)

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

ฐานข้อมูลแบบลําดับชั้น hierarchical database หมายถึง

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


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

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

ฐานข้อมูลแบบลําดับชั้น hierarchical database หมายถึง

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


ข้อจำกัดของความสัมพันธ์แบบพ่อกับลูก แบบทิศทางเดียวนี้ จะแทนความสัมพันธ์แบบ ๑ ต่อมากเท่านั้น สำหรับความสัมพันธ์แบบ ๑ ต่อ ๑ เราก็ใช้หลักการเดิม เพียงแต่ต้องระบุเงื่อนไขเพิ่มเติมเข้าไป ที่ระเบียนลูก (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');

Hierarchical Database เป็นโครงสร้างฐานข้อมูลแบบใด

1.4.3 ฐานข้อมูลแบบลำดับชั้น (Hierarchical Database) ฐานข้อมูลแบบลำดับขั้น เป็นโครงสร้างที่จัดเก็บข้อมูลในลักษณะความสัมพันธ์แบบ Parent-Child Relationship Type หรือเป็นโครงสร้างรูปแบบต้นไม้ ข้อมูลที่จัดเก็บในที่นี้ คือ ระเบียน (Record) ซึ่งประกอบด้วยค่าของเขตข้อมูลของเอนทิตี้หนึ่งๆนั่นเอง

ฐานข้อมูล (Database) หมายถึงอะไร

ระบบฐานข้อมูล (Database System) หมายถึง โครงสร้างสารสนเทศที่ประกอบด้วยรายละเอียด ของข้อมูลที่เกี่ยวข้องกันที่จะนำมาใช้ในระบบต่าง ๆ ร่วมกัน

ฐานข้อมูลเชิงสัมพันธ์ (Relational Database) หมายถึงข้อใด

ฐานข้อมูลเชิงสัมพันธ์ นั้นหมายความว่า จะมีการจัดเก็บข้อมูลในลักษณะที่เป็นกลุ่มของข้อมูลที่มีความสัมพันธ์กัน ในฐานข้อมูลหนึ่งๆ สามารถที่จะมีตารางตั้งแต่ 1 ตารางเป็นต้นไป และในแต่ละตารางนั้นก็สามารถมีได้หลายคอลัมน์ (Column) หลายแถว (Row) ตัวอย่างเช่น เราต้องการเก็บข้อมูลพนักงาน ในตารางของข้อมูลพนักงานก็จะประกอบด้วย ...

Relational Database (SQL) คืออะไร

Relational Database คือ ฐานข้อมูลเชิงสัมพันธ์เป็นฐานข้อมูลที่เข้าใจ ง่าย ทั้งนี้เนื่องจากการเรียกใช้ข้อมูลจากรีเลชั่นต่างๆ สามารถใช้หลักทาง พีชคณิตเข้าช่วย พีชคณิตดังกล่าวเรียกว่าพีชคณิตเชิงสัมพันธ์ (The Relational Algebra) ซึ่งประกอบด้วย Operators ทางคณิตศาสตร์ที่ใช้ในการ เรียกข้อมูลจากฐานข้อมูลเชิงสัมพันธ์