EdgeDB ، نظام DBMS للبيانات العلائقية للرسم البياني

مؤخرا تم الإعلان عن إصدار DBMS «EdgeDB 2.0» ، التي تنفذ نموذج البيانات العلائقية للرسم البياني ولغة استعلام EdgeQL ، وهي محسّنة للعمل مع البيانات الهرمية المعقدة.

EdgeDB هي قاعدة بيانات مفتوحة المصدر مصممة لتكون خليفة روحي لـ SQL والنموذج العلائقي. هدفها هو حل بعض مشاكل التصميم الصعبة التي تجعل استخدام قواعد البيانات الحالية مرهقًا بلا داعٍ.

مدعومًا بمحرك استعلام Postgres الموجود أسفل الغطاء ، يفكر EdgeDB في المخطط بنفس الطريقة التي تفكر بها: ككائنات ذات خصائص متصلة بواسطة روابط. إنها مثل قاعدة بيانات علائقية مع نموذج بيانات موجه للكائنات أو قاعدة بيانات رسم بياني بمخطط صارم. نسميها قاعدة بيانات علائقية للرسوم البيانية.

حول EdgeDB

يتم تطوير المشروع كمكوِّن إضافي لـ PostgreSQL. يتم إعداد مكتبات العميل للغات Python و Go و Rust و TypeScript / Javascript.

بدلاً من نموذج البيانات المستند إلى الجدول ، EdgeDB يستخدم نظامًا تعريفيًا يعتمد على أنواع الكائنات. بدلاً من المفاتيح الخارجية (المفتاح الخارجي) لتحديد العلاقة بين الأنواع ، يتم استخدام الربط المرجعي (يمكن استخدام كائن كخاصية لكائن آخر).

يمكن استخدام الفهارس لتسريع معالجة الاستعلام. ايضا يتم دعم ميزات مثل خاصية الكتابة القويةوقيود قيمة الممتلكات والخصائص المحسوبة والإجراءات المخزنة. تتضمن بعض ميزات مخطط تخزين كائنات EdgeDB ، التي تذكرنا إلى حد ما بـ ORM ، القدرة على مزج المخططات وربط خصائص كائنات مختلفة ودعم JSON المضمّن.

يتم توفير الأدوات المضمنة للترحيل مخطط التخزين: بعد تغيير المخطط المحدد في ملف esdl منفصل ، ما عليك سوى تشغيل الأمر "edgedbigration create" وسيقوم نظام DBMS بتحليل الاختلافات في المخطط وإنشاء برنامج نصي بشكل تفاعلي. للانتقال إلى المخطط الجديد. يتم تعقب محفوظات تعديل المخطط تلقائيًا.

للاستعلام ، كل من لغة استعلام GraphQL و كلغتها الخاصة EdgeDB ، وهي تكيف لـ SQL للبيانات الهرمية. بدلاً من القوائم ، يكون لنتائج الاستعلام تنسيق منظم ، وبدلاً من الاستعلامات الفرعية و JOINs ، يمكن تحديد استعلام EdgeQL كتعبير داخل استعلام آخر. يتم دعم المعاملات والدورات.

الميزات الرئيسية الجديدة لـ EdgeDB 2.0

في الإصدار الجديد الذي تم تقديمه ، تمت إضافة واجهة ويب متكاملة لإدارة قواعد البيانات يسمح بعرض البيانات وتحريرها وتشغيل استعلامات EdgeQL وتحليل مخطط التخزين المستخدم. تبدأ الواجهة بأمر "edgedb ui" ، وبعد ذلك تصبح متاحة عن طريق الوصول إلى المضيف المحلي.

التعبير تم تنفيذ "GROUP" للسماح بتقسيم البيانات وتجميعها وتجميع البيانات باستخدام تعبيرات EdgeQL عشوائية ، على غرار التجميع في عملية SELECT.

القدرة على التحكم في الوصول على مستوى الكائن ، يتم تحديد قواعد الوصول على مستوى مخطط التخزين وتسمح لك بتقييد استخدام مجموعة محددة من الكائنات في عمليات التحديد والإدراج والحذف والتحديث. على سبيل المثال ، يمكنك إضافة قاعدة تسمح للمؤلف فقط بتحديث منشور.

كما تم تسليط الضوء على ذلك إضافة القدرة على استخدام المتغيرات العالمية في مخطط التخزين. لربط المستخدم ، تم اقتراح متغير عالمي جديد.

من التغييرات الأخرى التي تبرز:

  • تم إعداد مكتبة العميل الرسمية للغة Rust.
  • تم تثبيت بروتوكول EdgeDB الثنائي ، حيث أصبح من الممكن معالجة عدة جلسات مختلفة في وقت واحد ضمن نفس اتصال الشبكة ، وإعادة التوجيه عبر HTTP ، باستخدام المتغيرات العالمية والحالات المحلية.
  • دعم مضاف للأنواع التي تحدد نطاقات القيم (النطاق).
  • تمت إضافة دعم لتنشيط المقبس ، والذي يسمح بعدم الاحتفاظ ببرنامج تشغيل الخادم في الذاكرة وبدء تشغيله فقط عند محاولة إنشاء اتصال (مفيد في توفير الموارد على أنظمة التطوير).

أخيرا للراغبين في معرفة المزيد عنها، يجب أن يعلموا أن الكود مكتوب بلغة Python و Rust ويتم إصداره بموجب ترخيص Apache 2.0.

يمكنك معرفة المزيد عنها في الرابط التالي.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.