EdgeDB, графична СУБД за релационни данни

наскоро беше обявено пускането на СУБД «EdgeDB 2.0», който имплементира модела на релационните данни на релационния граф и езика за заявки EdgeQL, оптимизиран за работа със сложни йерархични данни.

EdgeDB е база данни с отворен код, проектирана като духовен наследник на SQL и релационната парадигма. Неговата цел е да разреши някои трудни проблеми с дизайна, които правят съществуващите бази данни ненужно обременителни за използване.

Осъществено от машината за заявки на Postgres под капака, EdgeDB мисли за схемата по същия начин, както и вие: като обекти със свойства, свързани чрез свързвания. Това е като релационна база данни с обектно-ориентиран модел на данни или графична база данни със стриктна схема. Наричаме го релационна база данни от графики.

Относно EdgeDB

Проектът се разработва като плъгин за PostgreSQL. Клиентските библиотеки са подготвени за езиците Python, Go, Rust и TypeScript/Javascript.

Вместо базиран на таблица модел на данни, EdgeDB използва декларативна система, базирана на типове обекти. Вместо външни ключове (чужд ключ) за определяне на връзката между типовете се използва референтно свързване (един обект може да се използва като свойство на друг обект).

Индексите могат да се използват за ускоряване на обработката на заявки. Също поддържат се функции като силно въвеждане на свойства, ограничения на стойността на свойствата, изчислени свойства и съхранени процедури. Някои от характеристиките на схемата за съхранение на обекти EdgeDB, донякъде напомнящи на ORM, включват възможността за смесване на схеми, свързване на свойства на различни обекти и поддръжка за вграден JSON.

Осигурени са вградени инструменти за мигриране схемата за съхранение: След като промените схемата, посочена в отделен esdl файл, просто изпълнете командата „edgedb migration create“ и СУБД ще анализира разликите в схемата и ще генерира интерактивно скрипт. за мигриране към новата схема. Историята на модификациите на схемата се проследява автоматично.

За заявки, както езикът за заявки GraphQL, така и като собствен език EdgeDB, който е адаптация на SQL за йерархични данни. Вместо списъци, резултатите от заявката имат структуриран формат и вместо подзаявки и JOIN, заявка за EdgeQL може да бъде указана като израз в друга заявка. Поддържат се транзакции и цикли.

Основни нови характеристики на EdgeDB 2.0

В новата версия, която беше представена, добавен е интегриран уеб интерфейс за администриране на бази данни позволява преглед и редактиране на данни, стартиране на EdgeQL заявки и анализирайте използваната схема за съхранение. Интерфейсът се стартира с командата "edgedb ui", след което е достъпен чрез достъп до localhost.

Изразът „GROUP“ е внедрен, за да позволи разделяне и агрегиране на данни и групиране на данни с помощта на произволни изрази на EdgeQL, подобно на групирането в операция SELECT.

Възможност за контрол на достъпа на ниво обект, правилата за достъп са дефинирани на ниво схема за съхранение и ви позволяват да ограничите използването на конкретен набор от обекти при операции за избор, вмъкване, изтриване и актуализиране. Например, можете да добавите правило, което позволява само на автора да актуализира публикация.

Също така се подчертава, че добавена възможност за използване на глобални променливи в схемата за съхранение. За обвързване с потребителя е предложена нова глобална променлива.

От останалите промени, които се открояват:

  • Подготвена е официалната клиентска библиотека за езика Rust.
  • Двоичният протокол EdgeDB е стабилизиран, в който е станало възможно да се обработват няколко различни сесии едновременно в рамките на една и съща мрежова връзка, пренасочване през HTTP, използване на глобални променливи и локални състояния.
  • Добавена е поддръжка за типове, които определят диапазони от стойности (обхват).
  • Добавена е поддръжка за активиране на сокет, което позволява да не се съхранява сървърният драйвер в паметта и да се стартира само когато се опитвате да установите връзка (полезно за спестяване на ресурси на системи за разработка).

Накрая за тези, които се интересуват да знаят повече за това, те трябва да знаят, че кодът е написан на Python и Rust и е пуснат под лиценза Apache 2.0.

Можете да научите повече за това на следваща връзка.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.