OrientDB - แนวคิดพื้นฐาน

คุณสมบัติหลักของ OrientDB คือการรองรับวัตถุหลายรุ่นกล่าวคือรองรับโมเดลต่างๆเช่นเอกสารกราฟคีย์ / ค่าและวัตถุจริง ประกอบด้วย API แยกต่างหากเพื่อรองรับทั้งสี่รุ่นนี้

แบบจำลองเอกสาร

รูปแบบเอกสารคำศัพท์เป็นของฐานข้อมูล NoSQL หมายความว่าข้อมูลถูกเก็บไว้ใน Documents และกลุ่มของ Documents เรียกว่าเป็นCollection. ในทางเทคนิคเอกสารหมายถึงชุดของคู่คีย์ / ค่าหรือเรียกอีกอย่างว่าฟิลด์หรือคุณสมบัติ

OrientDB ใช้แนวคิดเช่นคลาสคลัสเตอร์และลิงค์สำหรับจัดเก็บจัดกลุ่มและวิเคราะห์เอกสาร

ตารางต่อไปนี้แสดงการเปรียบเทียบระหว่างโมเดลเชิงสัมพันธ์โมเดลเอกสารและโมเดลเอกสาร OrientDB -

แบบจำลองเชิงสัมพันธ์ แบบจำลองเอกสาร แบบจำลองเอกสาร OrientDB
ตาราง คอลเลกชัน คลาสหรือคลัสเตอร์
แถว เอกสาร เอกสาร
คอลัมน์ คู่คีย์ / ค่า ฟิลด์เอกสาร
ความสัมพันธ์ ไม่สามารถใช้ได้ ลิงค์

โมเดลกราฟ

โครงสร้างข้อมูลกราฟคือแบบจำลองข้อมูลที่สามารถจัดเก็บข้อมูลในรูปแบบของจุดยอด (โหนด) ที่เชื่อมต่อกันด้วยขอบ (Arcs) แนวคิดของฐานข้อมูลกราฟ OrientDB มาจากกราฟคุณสมบัติ จุดยอดและขอบเป็นสิ่งประดิษฐ์หลักของแบบจำลองกราฟ ประกอบด้วยคุณสมบัติซึ่งสามารถทำให้สิ่งเหล่านี้ดูเหมือนกับเอกสาร

ตารางต่อไปนี้แสดงการเปรียบเทียบระหว่างโมเดลกราฟโมเดลข้อมูลเชิงสัมพันธ์และโมเดลกราฟ OrientDB

แบบจำลองเชิงสัมพันธ์ โมเดลกราฟ โมเดลกราฟ OrientDB
ตาราง Vertex และ Edge Class คลาสที่ขยาย "V" (สำหรับ Vertex) และ "E" (สำหรับ Edges)
แถว จุดยอด จุดยอด
คอลัมน์ คุณสมบัติ Vertex และ Edge คุณสมบัติ Vertex และ Edge
ความสัมพันธ์ ขอบ ขอบ

รูปแบบคีย์ / ค่า

แบบจำลองคีย์ / ค่าหมายความว่าข้อมูลสามารถจัดเก็บในรูปแบบของคู่คีย์ / ค่าซึ่งค่าอาจเป็นประเภทที่เรียบง่ายและซับซ้อน สามารถรองรับเอกสารและองค์ประกอบกราฟเป็นค่า

ตารางต่อไปนี้แสดงการเปรียบเทียบระหว่างโมเดลเชิงสัมพันธ์โมเดลคีย์ / ค่าและโมเดลคีย์ / ค่า OrientDB

แบบจำลองเชิงสัมพันธ์ แบบจำลองคีย์ / ค่า โมเดลคีย์ / ค่าของ OrientDB
ตาราง ถัง คลาสหรือคลัสเตอร์
แถว คู่คีย์ / ค่า เอกสาร
คอลัมน์ ไม่สามารถใช้ได้ ฟิลด์เอกสารหรือคุณสมบัติ Vertex / Edge
ความสัมพันธ์ ไม่สามารถใช้ได้ ลิงค์

โมเดลวัตถุ

โมเดลนี้ได้รับการสืบทอดโดยการเขียนโปรแกรมเชิงวัตถุและรองรับ Inheritance ระหว่างประเภท (ประเภทย่อยขยายประเภทซุปเปอร์) Polymorphism เมื่อคุณอ้างถึงคลาสพื้นฐานและ Direct binding จาก / ไปยังวัตถุที่ใช้ในภาษาโปรแกรม

ตารางต่อไปนี้แสดงการเปรียบเทียบระหว่างโมเดลเชิงสัมพันธ์โมเดลอ็อบเจ็กต์และโมเดลอ็อบเจ็กต์ OrientDB

แบบจำลองเชิงสัมพันธ์ แบบจำลองวัตถุ โมเดลวัตถุ OrientDB
ตาราง คลาส คลาสหรือคลัสเตอร์
แถว วัตถุ เอกสารหรือจุดยอด
คอลัมน์ คุณสมบัติของวัตถุ ฟิลด์เอกสารหรือคุณสมบัติ Vertex / Edge
ความสัมพันธ์ ตัวชี้ ลิงค์

ก่อนดำเนินการต่อในรายละเอียดควรทราบคำศัพท์พื้นฐานที่เกี่ยวข้องกับ OrientDB ก่อนดีกว่า ต่อไปนี้เป็นคำศัพท์ที่สำคัญบางส่วน

บันทึก

หน่วยที่เล็กที่สุดที่คุณสามารถโหลดและจัดเก็บในฐานข้อมูล บันทึกสามารถจัดเก็บได้สี่ประเภท

  • Document
  • บันทึกไบต์
  • Vertex
  • Edge

รหัสบันทึก

เมื่อ OrientDB สร้างเรกคอร์ดเซิร์ฟเวอร์ฐานข้อมูลจะกำหนดตัวระบุหน่วยให้กับเรกคอร์ดโดยอัตโนมัติเรียกว่า RecordID (RID) RID ดูเหมือน # <cluster>: <position> <cluster> หมายถึงหมายเลขประจำตัวคลัสเตอร์และ <position> หมายถึงตำแหน่งสัมบูรณ์ของเร็กคอร์ดในคลัสเตอร์

เอกสาร

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

เอกสารสามารถจัดการได้อย่างง่ายดายโดยการส่งออกและนำเข้าในรูปแบบ JSON ตัวอย่างเช่นดูเอกสารตัวอย่าง JSON ต่อไปนี้ เป็นการกำหนดรายละเอียดเอกสาร

{ 
   "id"        : "1201", 
   "name"      : "Jay", 
   "job"       : "Developer", 
   "creations" : [ 
      { 
         "name"    : "Amiga", 
         "company" : "Commodore Inc." 
      }, 
		
      { 
         "name"    : "Amiga 500", 
         "company" : "Commodore Inc." 
      } 
   ] 
}

RecordBytes

Record Type เหมือนกับประเภท BLOB ใน RDBMS OrientDB สามารถโหลดและจัดเก็บเอกสารประเภท Record พร้อมกับข้อมูลไบนารี

จุดยอด

ฐานข้อมูล OrientDB ไม่เพียง แต่เป็นฐานข้อมูลเอกสารเท่านั้น แต่ยังเป็นฐานข้อมูล Graph ด้วย แนวคิดใหม่เช่น Vertex และ Edge ใช้ในการจัดเก็บข้อมูลในรูปแบบของกราฟ ในฐานข้อมูลกราฟหน่วยพื้นฐานที่สุดของข้อมูลคือโหนดซึ่งใน OrientDB เรียกว่าจุดยอด เวอร์เท็กซ์เก็บข้อมูลสำหรับฐานข้อมูล

ขอบ

มีประเภทบันทึกแยกต่างหากที่เรียกว่า Edge ที่เชื่อมต่อจุดยอดหนึ่งไปยังอีกจุดยอดหนึ่ง ขอบเป็นแบบสองทิศทางและสามารถเชื่อมต่อจุดยอดสองจุดเท่านั้น ขอบใน OrientDB มีสองประเภทคือแบบปกติและอีกแบบหนึ่งมีน้ำหนักเบา

คลาส

คลาสเป็นแบบจำลองข้อมูลประเภทหนึ่งและแนวคิดที่ดึงมาจากกระบวนทัศน์การเขียนโปรแกรมเชิงวัตถุ ตามแบบจำลองฐานข้อมูลเอกสารแบบดั้งเดิมข้อมูลจะถูกจัดเก็บในรูปแบบของการรวบรวมในขณะที่ข้อมูลแบบจำลองฐานข้อมูลเชิงสัมพันธ์จะถูกเก็บไว้ในตาราง OrientDB เป็นไปตาม Document API พร้อมกับกระบวนทัศน์ OPPS ตามแนวคิดคลาสใน OrientDB มีความสัมพันธ์ใกล้เคียงที่สุดกับตารางในฐานข้อมูลเชิงสัมพันธ์ แต่คลาส (ไม่เหมือนตาราง) สามารถเป็น schema-less, schema-full หรือ mixed คลาสสามารถสืบทอดจากคลาสอื่น ๆ ได้โดยสร้างต้นไม้ของคลาส แต่ละคลาสมีคลัสเตอร์หรือคลัสเตอร์ของตัวเอง (สร้างขึ้นโดยค่าเริ่มต้นหากไม่มีการกำหนด)

คลัสเตอร์

คลัสเตอร์เป็นแนวคิดสำคัญที่ใช้ในการจัดเก็บเร็กคอร์ดเอกสารหรือจุดยอด พูดง่ายๆคลัสเตอร์คือที่เก็บกลุ่มของระเบียน โดยค่าเริ่มต้น OrientDB จะสร้างหนึ่งคลัสเตอร์ต่อคลาส ระเบียนทั้งหมดของคลาสจะถูกเก็บไว้ในคลัสเตอร์เดียวกันที่มีชื่อเดียวกันกับคลาส คุณสามารถสร้างคลัสเตอร์ได้สูงสุด 32,767 (2 ^ 15-1) ในฐานข้อมูล

คลาส CREATE เป็นคำสั่งที่ใช้สร้างคลัสเตอร์ที่มีชื่อเฉพาะ เมื่อสร้างคลัสเตอร์แล้วคุณสามารถใช้คลัสเตอร์เพื่อบันทึกเรกคอร์ดโดยระบุชื่อในระหว่างการสร้างแบบจำลองข้อมูลใด ๆ

ความสัมพันธ์

OrientDB รองรับความสัมพันธ์สองประเภท: อ้างอิงและฝัง Referenced relationships หมายความว่ามันจัดเก็บลิงก์โดยตรงไปยังวัตถุเป้าหมายของความสัมพันธ์ Embedded relationshipsหมายความว่าจะเก็บความสัมพันธ์ไว้ในบันทึกที่ฝังไว้ ความสัมพันธ์นี้แข็งแกร่งกว่าความสัมพันธ์อ้างอิง

ฐานข้อมูล

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