EdgeDB 2.0 ДҚБЖ реляциялық графигін шығару

Күрделі иерархиялық деректермен жұмыс істеу үшін оңтайландырылған реляциялық графикалық деректер моделін және EdgeQL сұрау тілін жүзеге асыратын EdgeDB 2.0 ДҚБЖ шығарылымы ұсынылған. Код Python және Rust тілдерінде жазылған (талдауыш және өнімділік үшін маңызды бөліктер) және Apache 2.0 лицензиясы бойынша таратылады. Жоба PostgreSQL қосымшасы ретінде әзірленуде. Клиенттік кітапханалар Python, Go, Rust және TypeScript/Javascript үшін дайындалған. ДҚБЖ басқару және интерактивті сұрауды орындау (REPL) үшін пәрмен жолы құралдарын қамтамасыз етеді.

Кестеге негізделген деректер үлгісінің орнына EdgeDB нысан түрлеріне негізделген декларативті жүйені пайдаланады. Сыртқы кілттердің орнына типтер арасындағы қатынасты анықтау үшін сілтеме бойынша байланыстыру қолданылады (бір нысан басқа нысанның қасиеті ретінде пайдаланылуы мүмкін).

type Person { талап етілетін сипат атауы -> str; } type Movie { талап етілетін сипат атауы -> str; көп буынды актерлер -> Адам; }

Сұрауларды өңдеуді жылдамдату үшін индекстерді пайдалануға болады. Күшті сипатты теру, сипат мәніне шектеулер, есептелетін сипаттар және сақталған процедуралар сияқты мүмкіндіктерге де қолдау көрсетіледі. ORM-ді біршама еске түсіретін EdgeDB нысанын сақтау схемасының мүмкіндіктері схемаларды араластыру мүмкіндігін, әртүрлі нысандардың сипаттарын байланыстыруды және біріктірілген JSON қолдауын қамтиды.

Кірістірілген құралдар схема тасымалдауын сақтау үшін қамтамасыз етілген - бөлек esdl файлында көрсетілген схеманы өзгерткеннен кейін «edgedb migration create» пәрменін іске қосыңыз және ДҚБЖ схемадағы айырмашылықтарды талдайды және интерактивті түрде көшіру сценарийін жасайды. жаңа схема. Схема өзгерістерінің тарихы автоматты түрде бақыланады.

Сұрауларды жасау үшін GraphQL сұрау тіліне де, иерархиялық деректерге арналған SQL бейімделуі болып табылатын меншікті EdgeDB тіліне де қолдау көрсетіледі. Тізімдердің орнына сұрау нәтижелері құрылымдық түрде пішімделеді және ішкі сұраулар мен JOIN-тердің орнына бір EdgeQL сұрауын басқа сұрау ішінде өрнек ретінде көрсетуге болады. Транзакциялар мен циклдерге қолдау көрсетіледі.

Фильмді таңдаңыз { атауы, актерлер: { аты } } сүзгі .title = «Матрица» кірістіру Фильм { атауы := «Матрицаның қайта тірілулері», актерлер := ( { 'Киану Ривз', 'Карри- Энн Мосс', 'Лоренс Фишберн' } ) } {0, 1, 2, 3} бірліктегі нөмір үшін ( { сан, сан + 0.5 } тармағын таңдаңыз);

Жаңа нұсқада:

  • Дерекқорды басқару үшін деректерді көруге және өңдеуге, EdgeQL сұрауларын орындауға және пайдаланылған сақтау схемасын талдауға мүмкіндік беретін кірістірілген веб-интерфейс қосылды. Интерфейс «edgedb ui» пәрмені арқылы іске қосылады, содан кейін ол localhost-қа кіру кезінде қолжетімді болады.
    EdgeDB 2.0 ДҚБЖ реляциялық графигін шығару
  • «GROUP» өрнегі іске асырылды, ол ТАҢДАУ әрекетіндегі топтастыруға ұқсас еркін EdgeQL өрнектерін пайдаланып деректерді және деректерді топтауға және біріктіруге мүмкіндік береді.
  • Объекті деңгейінде қол жеткізуді басқару мүмкіндігі. Қатынас ережелері сақтау схемасы деңгейінде анықталады және алу, кірістіру, жою және жаңарту әрекеттерінде белгілі бір нысандар жинағын пайдалану мүмкіндігін шектеуге мүмкіндік береді. Мысалы, жарияланымды жаңартуға авторға ғана рұқсат беретін ережені қосуға болады.
  • Сақтау схемасында жаһандық айнымалы мәндерді пайдалану мүмкіндігі қосылды. Жаңа жаһандық ағымдағы_user айнымалысы пайдаланушыға байланыстыру үшін ұсынылды.
  • Мәндер ауқымын анықтайтын түрлерге қолдау қосылды.
  • Rust тіліне арналған ресми клиенттер кітапханасы дайындалды.
  • EdgeDB екілік протоколы тұрақтандырылды, бұл бір желі қосылымында бір уақытта бірнеше әртүрлі сеанстарды өңдеуге, HTTP арқылы қайта жіберуге, жаһандық айнымалылар мен жергілікті күйлерді пайдалана отырып.
  • Сервер өңдеушісін жадта сақтамауға және қосылым орнату әрекеті кезінде ғана іске қосуға мүмкіндік беретін ұяшықты белсендіруге қолдау қосылды (әзірлеушілер жүйелеріндегі ресурстарды сақтау үшін пайдалы).

Ақпарат көзі: opennet.ru

пікір қалдыру