EdgeDB ข้อมูลเชิงสัมพันธ์ของกราฟ DBMS

เมื่อเร็ว ๆ นี้ ประกาศเปิดตัว DBMS « EdgeDB 2.0 » ซึ่งใช้แบบจำลองข้อมูลเชิงสัมพันธ์ของกราฟเชิงสัมพันธ์และภาษาการสืบค้น EdgeQL ซึ่งปรับให้เหมาะสมสำหรับการทำงานกับข้อมูลลำดับชั้นที่ซับซ้อน

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

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

เกี่ยวกับ EdgeDB

โครงการกำลังได้รับการพัฒนาเป็นปลั๊กอินสำหรับ PostgreSQL ไลบรารีไคลเอนต์เตรียมไว้สำหรับภาษา Python, Go, Rust และ TypeScript/Javascript

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

สามารถใช้ดัชนีเพื่อเร่งการประมวลผลแบบสอบถาม อีกด้วย รองรับคุณสมบัติเช่นการพิมพ์คุณสมบัติที่แข็งแกร่ง, ข้อจำกัดค่าคุณสมบัติ คุณสมบัติที่คำนวณ และขั้นตอนการจัดเก็บ คุณลักษณะบางอย่างของสคีมาการจัดเก็บอ็อบเจ็กต์ EdgeDB ซึ่งค่อนข้างชวนให้นึกถึง ORM รวมถึงความสามารถในการผสมสคีมา คุณสมบัติการโยงของอ็อบเจ็กต์ต่างๆ และการรองรับ JSON แบบฝัง

มีเครื่องมือในตัวสำหรับการโยกย้าย สคีมาหน่วยเก็บข้อมูล: หลังจากเปลี่ยนสคีมาที่ระบุในไฟล์ esdl ที่แยกจากกัน เพียงเรียกใช้คำสั่ง "edgedb migration create" และ DBMS จะวิเคราะห์ความแตกต่างในสคีมาและสร้างสคริปต์แบบโต้ตอบ เพื่อย้ายไปยังสคีมาใหม่ ประวัติการปรับเปลี่ยนสคีมาจะถูกติดตามโดยอัตโนมัติ

สำหรับการสืบค้น ทั้งภาษาการสืบค้น GraphQL และ เป็นภาษาของตัวเอง EdgeDB ซึ่งเป็นการปรับ SQL สำหรับข้อมูลแบบลำดับชั้น แทนที่จะเป็นรายการ ผลลัพธ์ของคิวรีมีรูปแบบที่มีโครงสร้าง และแทนที่จะเป็นคิวรีย่อยและ JOIN สามารถระบุคิวรี EdgeQL เป็นนิพจน์ภายในคิวรีอื่นได้ รองรับธุรกรรมและรอบ

คุณสมบัติใหม่หลักของ EdgeDB 2.0

ในเวอร์ชั่นใหม่ที่นำเสนอ เพิ่มเว็บอินเตอร์เฟสแบบบูรณาการ สำหรับการบริหารฐานข้อมูล อนุญาตให้ดูและแก้ไขข้อมูล เรียกใช้คิวรี EdgeQL และวิเคราะห์รูปแบบการจัดเก็บที่ใช้ อินเทอร์เฟซเริ่มต้นด้วยคำสั่ง "edgedb ui" หลังจากนั้นจะพร้อมใช้งานโดยการเข้าถึง localhost

การแสดงออก "GROUP" ถูกนำมาใช้เพื่อแบ่งพาร์ติชั่นและการรวมข้อมูล และการจัดกลุ่มข้อมูลโดยใช้นิพจน์ EdgeQL โดยพลการ คล้ายกับการจัดกลุ่มในการดำเนินการ SELECT

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

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

การเปลี่ยนแปลงอื่น ๆ ที่โดดเด่น:

  • ไลบรารีไคลเอนต์อย่างเป็นทางการสำหรับภาษา Rust ได้รับการจัดเตรียมแล้ว
  • โปรโตคอลไบนารี EdgeDB ได้รับความเสถียร ซึ่งทำให้สามารถประมวลผลเซสชันต่างๆ หลายเซสชันพร้อมกันภายในการเชื่อมต่อเครือข่ายเดียวกัน ส่งต่อผ่าน HTTP โดยใช้ตัวแปรส่วนกลางและสถานะภายในเครื่อง
  • เพิ่มการสนับสนุนสำหรับประเภทที่กำหนดช่วงของค่า (ช่วง)
  • เพิ่มการรองรับการเปิดใช้งานซ็อกเก็ต ซึ่งทำให้ไม่สามารถเก็บไดรเวอร์เซิร์ฟเวอร์ไว้ในหน่วยความจำและเริ่มต้นได้เมื่อพยายามสร้างการเชื่อมต่อเท่านั้น (มีประโยชน์สำหรับการประหยัดทรัพยากรในระบบการพัฒนา)

ในที่สุด สำหรับผู้ที่สนใจต้องการทราบข้อมูลเพิ่มเติมพวกเขาควรรู้ว่าโค้ดนั้นเขียนด้วย Python และ Rust และเผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0

สามารถติดตามข้อมูลเพิ่มเติมได้ที่ ลิงค์ต่อไปนี้


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา