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

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

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