EdgeDB ДҚБЖ реляциялық графигінің бірінші тұрақты шығарылымы

EdgeDB ДҚБЖ бірінші тұрақты шығарылымы қол жетімді, ол күрделі иерархиялық деректермен жұмыс істеу үшін оңтайландырылған реляциялық графикалық деректер моделі мен EdgeQL сұрау тілі жүзеге асырылатын PostgreSQL қосымшасы болып табылады. Код Python және Rust тілдерінде жазылған және Apache 2.0 лицензиясы бойынша таратылады. Клиенттік кітапханалар 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 } тармағын таңдаңыз);

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

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