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 ยังมีฐานข้อมูลหลายประเภท สำหรับข้อมูลเพิ่มเติมเกี่ยวกับประเภทเหล่านี้โปรดดูประเภทฐานข้อมูล