Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL

โมเดลเครือข่าย (Network Model)


โมเดลเครือข่ายเป็นส่วนขยายของโครงสร้างแบบลำดับชั้น (hierarchical) เพราะมันอนุญาตให้จัดการความสัมพันธ์ many-to-many ในโครงสร้างแบบต้นไม้ที่อนุญาตให้มีพาเรนต์หลายตัว

มีแนวคิดพื้นฐาน 2 ข้อของโมเดลเครือข่าย -

  • เรคอร์ดมีฟิลด์ที่ต้องการการจัดระเบียบแบบลำดับชั้น
  • เซต (Sets) ใช้กำหนดความสัมพันธ์ one-to-many ระหว่างเรคอร์ดที่มีเจ้าของหนึ่ง คน และสมาชิกหลายคน

เรคอร์ดอาจทำหน้าที่เป็นเจ้าของในเซตได้หลายเซต และเป็นสมาชิกในเซตได้หลายเซต

P.S. เซต (Set) ต้องไม่สับสนกับเซตทางคณิตศาสตร์

เซตถูกออกแบบด้วย linked list แบบวงกลม (circular linked lists) โดยประเภทเรคอร์ดหนึ่ง คือ เจ้าของของเซต หรือเรียกว่า parent ปรากฏครั้งเดียวในแต่ละวงกลม และประเภทเรคอร์ดที่สอง หรือ subordinate/child อาจปรากฏหลายครั้งในแต่ละวงกลม

ลำดับชั้นถูกสร้างขึ้นระหว่างประเภทเรคอร์ด 2 ประเภท โดยประเภทหนึ่ง (A) เป็นเจ้าของอีกประเภทหนึ่ง (B) ในเวลาเดียวกัน เซตอื่นสามารถสร้างขึ้นได้ โดยเซตหลัง (B) เป็นเจ้าของเซตก่อน (A) ในโมเดลนี้ การเป็นเจ้าของถูกกำหนดโดยทิศทาง ดังนั้น เซตทั้งหมดประกอบเป็นกราฟทิศทางทั่วไป (general directed graph) การเข้าถึงเรคอร์ดพัฒนาขึ้นโดยโครงสร้างการจัดทำดัชนีของ linked list แบบวงกลม

โมเดลเครือข่ายมีคุณสมบัติหลักดังนี้ -

  • สามารถแทนความซ้ำซ้อนของข้อมูลได้มีประสิทธิภาพมากกว่าโมเดลลำดับชั้น
  • สามารถมีเส้นทางมากกว่าหนึ่งเส้นทางจากโหนดก่อนหน้าไปยังโหนดถัดไป
  • การดำเนินงานของโมเดลเครือข่ายถูกดูแลโดยโครงสร้างการจัดทำดัชนีของ linked list (แบบวงกลม) โดยโปรแกรมรักษาตำแหน่งปัจจุบันและนำทางจากเรคอร์ดหนึ่งไปอีกเรคอร์ดโดยปฏิบัติตามความสัมพันธ์ที่เรคอร์ดมีส่วนร่วม
  • เรคอร์ดยังสามารถค้นหาได้โดยการให้ค่าคีย์

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

โมเดลเครือข่าย (Network Model)

ชุดของเรคอร์ดถูกแทนด้วยโหนด และโครงสร้างเซตช่วยสร้างความสัมพันธ์ในเครือข่าย ช่วยเชื่อมโยงคู่ของโหนดด้วยการใช้โหนดหนึ่งเป็นเจ้าของและอีกโหนดเป็นสมาชิก ความสัมพันธ์ one-to-many จัดการโดยโครงสร้างเซต หมายความว่า เรคอร์ดในโหนดเจ้าของสามารถเกี่ยวข้องกับเรคอร์ดหนึ่งหรือมากกว่าในโหนดสมาชิก แต่เรคอร์ดเดียวในโหนดสมาชิกเกี่ยวข้องกับเรคอร์ดเพียงหนึ่งในโหนดเจ้าของ

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

โมเดลเครือข่าย (Network Model)

แผนภาพด้านบนแสดงแผนภาพโครงสร้างเซตพื้นฐาน เซต (การเชื่อมต่อ) หนึ่งหรือมากกว่าสามารถกำหนดระหว่างคู่โหนดเฉพาะได้ และโหนดเดียวก็สามารถเกี่ยวข้องในเซตอื่นกับโหนดอื่นในฐานข้อมูลได้

ข้อมูลสามารถเข้าถึงได้ง่ายภายในโมเดลเครือข่ายด้วยโครงสร้างเซตที่เหมาะสม ไม่มีข้อจำกัดในการเลือกโหนดรูท ข้อมูลสามารถเข้าถึงผ่านโหนดใดก็ได้ และเคลื่อนที่ไปข้างหน้าหรือถอยหลังด้วยเซตที่เกี่ยวข้อง

ตัวอย่างเช่น เมื่อผู้ใช้ต้องการหาเอเจนต์ที่จองนัดหมายเฉพาะ เขาเริ่มด้วยการค้นหาเรคอร์ดนัดหมายที่เหมาะสมในโหนด ENGAGEMENTS และจากนั้นกำหนดว่าลูกค้าคนไหน "เป็นเจ้าของ" เรคอร์ดนัดหมายนั้นผ่านโครงสร้างเซต Schedule สุดท้าย ระบุเอเจนต์ที่ "เป็นเจ้าของ" เรคอร์ดลูกค้าผ่านโครงสร้างเซต Represent

ข้อดี

  • เข้าถึงข้อมูลเร็ว
  • อนุญาตให้ผู้ใช้สร้างคิวรีที่ซับซ้อนมากกว่าที่สร้างด้วยฐานข้อมูลลำดับชั้น ดังนั้น คิวรีหลากหลายสามารถรันบนโมเดลนี้ได้

ข้อเสีย

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