إصدار الرسم البياني العلائقي DBMS EdgeDB 2.0

تم تقديم إصدار EdgeDB 2.0 DBMS، الذي ينفذ نموذج بيانات الرسم البياني العلائقي ولغة استعلام EdgeQL، المُحسّنة للعمل مع البيانات الهرمية المعقدة. تمت كتابة التعليمات البرمجية بلغة Python وRust (المحلل اللغوي والأجزاء المهمة للأداء) ويتم توزيعها بموجب ترخيص Apache 2.0. يتم تطوير المشروع كوظيفة إضافية لـ PostgreSQL. مكتبات العملاء مُجهزة لـ Python وGo وRust وTypeScript/Javascript. يوفر أدوات سطر الأوامر لإدارة قواعد البيانات وتنفيذ الاستعلام التفاعلي (REPL).

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

اكتب الشخص { اسم الخاصية المطلوبة -> str؛ } اكتب الفيلم { عنوان الخاصية المطلوبة -> str؛ الجهات الفاعلة متعددة الارتباط -> الشخص؛ }

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

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

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

حدد الفيلم { العنوان، الممثلين: { الاسم } } filter .title = "The Matrix" أدخل الفيلم { title := "The Matrix Resurrections"، الممثلين: = (حدد مرشح الشخص .name في { 'Keanu Reeves'، 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } للرقم في {0, 1, 2, 3} الاتحاد (حدد { number, number + 0.5 } );

новой версии:

  • تمت إضافة واجهة ويب مدمجة لإدارة قاعدة البيانات، مما يسمح لك بعرض البيانات وتحريرها وتشغيل استعلامات EdgeQL وتحليل نظام التخزين المستخدم. يتم تشغيل الواجهة بواسطة الأمر "edgedb ui"، وبعد ذلك تصبح متاحة عند الوصول إلى المضيف المحلي.
    إصدار الرسم البياني العلائقي DBMS EdgeDB 2.0
  • تم تنفيذ تعبير "GROUP"، مما يسمح لك بتقسيم البيانات وتجميعها وتجميعها باستخدام تعبيرات EdgeQL التعسفية، على غرار التجميع في عملية SELECT.
  • القدرة على التحكم في الوصول على مستوى الكائن. يتم تعريف قواعد الوصول على مستوى مخطط التخزين وتسمح لك بالحد من القدرة على استخدام مجموعة معينة من الكائنات في عمليات الجلب والإدراج والحذف والتحديث. على سبيل المثال، يمكنك إضافة قاعدة تسمح للمؤلف فقط بتحديث المنشور.
  • تمت إضافة القدرة على استخدام المتغيرات العالمية في مخطط التخزين. تم اقتراح متغير عام جديد current_user لربطه بالمستخدم.
  • تمت إضافة دعم للأنواع التي تحدد نطاقات القيم.
  • تم إعداد مكتبة عميل رسمية للغة Rust.
  • تم تثبيت بروتوكول EdgeDB الثنائي، مما يجعل من الممكن معالجة عدة جلسات مختلفة في وقت واحد داخل نفس اتصال الشبكة، وإعادة التوجيه عبر HTTP، باستخدام المتغيرات العالمية والحالات المحلية.
  • تمت إضافة دعم لتنشيط المقبس، والذي يسمح لك بعدم الاحتفاظ بمعالج الخادم في الذاكرة وتشغيله فقط عند محاولة إنشاء اتصال (مفيد لحفظ الموارد على أنظمة المطورين).

المصدر: opennet.ru

إضافة تعليق