Kutolewa kwa grafu ya uhusiano DBMS EdgeDB 2.0

Kutolewa kwa EdgeDB 2.0 DBMS kunawasilishwa, ambayo inatekeleza modeli ya data ya grafu ya uhusiano na lugha ya swala ya EdgeQL, iliyoboreshwa kwa kufanya kazi na data changamano ya kiidara. Nambari hiyo imeandikwa katika Python na Rust (sehemu za uchanganuzi na muhimu za utendaji) na inasambazwa chini ya leseni ya Apache 2.0. Mradi unaendelezwa kama nyongeza ya PostgreSQL. Maktaba za mteja zimetayarishwa kwa Python, Go, Rust na TypeScript/Javascript. Hutoa zana za mstari wa amri kwa usimamizi wa DBMS na utekelezaji wa hoja shirikishi (REPL).

Badala ya modeli ya data ya mezani, EdgeDB hutumia mfumo wa kutangaza kulingana na aina za vitu. Badala ya funguo za kigeni, kuunganisha kwa rejeleo hutumiwa kufafanua uhusiano kati ya aina (kitu kimoja kinaweza kutumika kama mali ya kitu kingine).

aina Mtu { required jina la mali -> str; } chapa Filamu { jina la mali linalohitajika -> str; waigizaji wa viungo vingi -> Mtu; }

Fahirisi zinaweza kutumika kuharakisha usindikaji wa hoja. Vipengele kama vile uandishi thabiti wa sifa, vizuizi vya thamani ya mali, sifa zilizokokotwa, na taratibu zilizohifadhiwa pia zinatumika. Vipengele vya mpango wa uhifadhi wa kitu wa EdgeDB, ambao unakumbusha kwa kiasi fulani ORM, ni pamoja na uwezo wa kuchanganya miundo, sifa za kuunganisha kutoka kwa vitu tofauti, na usaidizi uliojumuishwa wa JSON.

Zana zilizojengwa ndani zimetolewa kwa ajili ya kuhifadhi uhamiaji wa schema - baada ya kubadilisha schema iliyoainishwa katika faili tofauti ya esdl, endesha tu amri ya "edgedb migration create" na DBMS itachambua tofauti za schema na kutoa hati kwa maingiliano ya kuhamia schema mpya. Historia ya mabadiliko ya schema inafuatiliwa kiotomatiki.

Ili kuunda maswali, lugha ya maswali ya GraphQL na lugha ya EdgeDB inayomilikiwa, ambayo ni urekebishaji wa SQL kwa data ya daraja, zinatumika. Badala ya orodha, matokeo ya hoja hupangwa kwa njia iliyopangwa, na badala ya hoja ndogo na JOIN, unaweza kubainisha hoja moja ya EdgeQL kama usemi ndani ya hoja nyingine. Shughuli na mizunguko zinatumika.

chagua Filamu { title, actors: { name } } filter .title = "The Matrix" weka Filamu { title := "The Matrix Resurrections", waigizaji := ( chagua Kichujio cha Mtu .name katika { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } kwa nambari katika muungano wa {0, 1, 2, 3} ( chagua { nambari, nambari + 0.5 } );

Katika toleo jipya:

  • Kiolesura cha wavuti kilichojengewa ndani kimeongezwa kwa ajili ya usimamizi wa hifadhidata, huku kuruhusu kutazama na kuhariri data, kuendesha maswali ya EdgeQL na kuchambua mpango wa hifadhi uliotumiwa. Kiolesura kinazinduliwa kwa amri ya "edgedb ui", baada ya hapo kinapatikana wakati wa kufikia localhost.
    Kutolewa kwa grafu ya uhusiano DBMS EdgeDB 2.0
  • Usemi wa "GROUP" umetekelezwa, hukuruhusu kugawa na kujumlisha data na data ya kikundi kwa kutumia misemo ya EdgeQL ya kiholela, sawa na kupanga katika kikundi katika operesheni CHAGUA.
  • Uwezo wa kudhibiti ufikiaji katika kiwango cha kitu. Sheria za ufikiaji zimefafanuliwa katika kiwango cha schema cha uhifadhi na hukuruhusu kupunguza uwezo wa kutumia seti fulani ya vitu katika kuleta, kuingiza, kufuta na kusasisha shughuli. Kwa mfano, unaweza kuongeza sheria ambayo inaruhusu mwandishi pekee kusasisha chapisho.
  • Imeongeza uwezo wa kutumia vigeu vya kimataifa katika taratibu za hifadhi. Kibadilishi kipya cha kimataifa cha sasa_mtumiaji kimependekezwa kumfunga mtumiaji.
  • Usaidizi ulioongezwa kwa aina zinazofafanua safu za thamani.
  • Maktaba rasmi ya mteja kwa lugha ya Rust imetayarishwa.
  • Itifaki ya binary ya EdgeDB imeimarishwa, na kuifanya iwezekane kuchakata vikao kadhaa tofauti kwa wakati mmoja ndani ya muunganisho sawa wa mtandao, kusambaza kupitia HTTP, kwa kutumia vigezo vya kimataifa na majimbo ya ndani.
  • Usaidizi ulioongezwa kwa uanzishaji wa tundu, ambayo hukuruhusu usihifadhi kidhibiti cha seva kwenye kumbukumbu na kuiendesha tu wakati wa kujaribu kuanzisha muunganisho (muhimu kwa kuokoa rasilimali kwenye mifumo ya wasanidi).

Chanzo: opennet.ru

Kuongeza maoni