ArangoDB - โมเดลข้อมูลและการสร้างแบบจำลอง
ในบทนี้เราจะเน้นหัวข้อต่อไปนี้ -
- ปฏิสัมพันธ์ฐานข้อมูล
- แบบจำลองข้อมูล
- การดึงข้อมูล
ArangoDB รองรับรูปแบบข้อมูลที่ใช้เอกสารและแบบจำลองข้อมูลตามกราฟ ก่อนอื่นให้เราอธิบายรูปแบบข้อมูลตามเอกสาร
เอกสารของ ArangoDB มีลักษณะใกล้เคียงกับรูปแบบ JSON มีแอตทริบิวต์ตั้งแต่ศูนย์ขึ้นไปมีอยู่ในเอกสารและมีค่าที่แนบมากับแต่ละแอตทริบิวต์ ค่าเป็นประเภทอะตอมเช่นตัวเลขบูลีนหรือค่าว่างสตริงตามตัวอักษรหรือชนิดข้อมูลผสมเช่นเอกสาร / อ็อบเจ็กต์หรืออาร์เรย์แบบฝัง อาร์เรย์หรือออบเจ็กต์ย่อยอาจประกอบด้วยชนิดข้อมูลเหล่านี้ซึ่งหมายความว่าเอกสารเดียวสามารถแสดงโครงสร้างข้อมูลที่ไม่สำคัญได้
นอกจากนี้ตามลำดับชั้นเอกสารจะถูกจัดเรียงเป็นคอลเลคชันซึ่งอาจไม่มีเอกสาร (ตามทฤษฎี) หรือเอกสารมากกว่าหนึ่งชุด เราสามารถเปรียบเทียบเอกสารกับแถวและคอลเลกชันกับตารางได้ (ในที่นี้ตารางและแถวหมายถึงระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ - RDBMS)
แต่ใน RDBMS การกำหนดคอลัมน์เป็นสิ่งที่จำเป็นต้องมีในการจัดเก็บเรกคอร์ดลงในตารางโดยเรียกใช้สกีมานิยามเหล่านี้ อย่างไรก็ตามในฐานะที่เป็นคุณลักษณะใหม่ ArangoDB จึงไม่มีสคีมา - ไม่มีเหตุผลเบื้องต้นในการระบุว่าเอกสารจะมีคุณลักษณะใด
และแตกต่างจาก RDBMS เอกสารแต่ละฉบับสามารถจัดโครงสร้างได้แตกต่างจากเอกสารอื่นอย่างสิ้นเชิง เอกสารเหล่านี้สามารถบันทึกร่วมกันในคอลเลกชั่นเดียว ในทางปฏิบัติลักษณะทั่วไปอาจมีอยู่ในเอกสารในคอลเลกชันอย่างไรก็ตามระบบฐานข้อมูลเช่น ArangoDB ไม่ได้ผูกมัดคุณกับโครงสร้างข้อมูลเฉพาะ
ตอนนี้เราจะพยายามทำความเข้าใจของ ArangoDB [graph data model] ซึ่งต้องใช้คอลเลคชันสองประเภทประเภทแรกคือคอลเล็กชันเอกสาร (เรียกว่าคอลเลกชันจุดยอดในภาษากลุ่ม - ทฤษฎี) ส่วนที่สองคือคอลเลกชันขอบ มีความแตกต่างเล็กน้อยระหว่างสองประเภทนี้ คอลเลกชัน Edge ยังจัดเก็บเอกสาร แต่มีลักษณะเฉพาะด้วยคุณสมบัติเฉพาะสองประการ_from และ _toสำหรับการสร้างความสัมพันธ์ระหว่างเอกสาร ในทางปฏิบัติเอกสาร (ขอบอ่าน) จะเชื่อมโยงเอกสารสองชุด (อ่านจุดยอด) ทั้งสองเก็บไว้ในคอลเลกชันที่เกี่ยวข้อง สถาปัตยกรรมนี้ได้มาจากแนวคิดทางทฤษฎีของกราฟที่มีป้ายกำกับกราฟกำกับโดยไม่รวมขอบที่ไม่เพียง แต่มีป้ายกำกับเท่านั้น แต่ยังสามารถเป็น JSON ที่สมบูรณ์เหมือนเอกสารในตัวเอง
ในการคำนวณข้อมูลใหม่ลบเอกสารหรือจัดการข้อมูลจะใช้คิวรีซึ่งเลือกหรือกรองเอกสารตามเกณฑ์ที่กำหนด ไม่ว่าจะเป็นแบบเรียบง่ายในฐานะ "เคียวรีตัวอย่าง" หรือซับซ้อนเท่ากับ "รวม" คิวรีจะถูกเข้ารหัสใน AQL - ArangoDB Query Language