Relāciju grafika DBMS EdgeDB 2.0 izlaišana

Tiek prezentēts EdgeDB 2.0 DBVS laidiens, kas ievieš relāciju diagrammu datu modeli un EdgeQL vaicājumu valodu, kas optimizēta darbam ar sarežģītiem hierarhiskiem datiem. Kods ir rakstīts Python un Rust (parsētājs un veiktspējai kritiskās daļas) un tiek izplatīts saskaņā ar Apache 2.0 licenci. Projekts tiek izstrādāts kā PostgreSQL papildinājums. Klientu bibliotēkas ir sagatavotas Python, Go, Rust un TypeScript/Javascript. Nodrošina komandrindas rīkus DBVS pārvaldībai un interaktīvai vaicājuma izpildei (REPL).

Tabulas datu modeļa vietā EdgeDB izmanto deklaratīvu sistēmu, kuras pamatā ir objektu tipi. Ārējo atslēgu vietā saistīšana ar atsauci tiek izmantota, lai definētu attiecības starp veidiem (vienu objektu var izmantot kā cita objekta īpašību).

type Persona { obligātā īpašuma nosaukums -> str; } type Movie { obligātā īpašuma nosaukums -> str; multi link aktieri -> Persona; }

Indeksus var izmantot, lai paātrinātu vaicājumu apstrādi. Tiek atbalstītas arī tādas funkcijas kā spēcīga rekvizītu ievadīšana, īpašuma vērtības ierobežojumi, aprēķinātie rekvizīti un saglabātās procedūras. EdgeDB objektu uzglabāšanas shēmas līdzekļi, kas nedaudz atgādina ORM, ietver iespēju sajaukt shēmas, saišu rekvizītus no dažādiem objektiem un integrētu JSON atbalstu.

Shēmas migrācijas glabāšanai tiek nodrošināti iebūvēti rīki - pēc atsevišķā esdl failā norādītās shēmas maiņas vienkārši palaidiet komandu “edgedb migration create”, un DBVS analizēs shēmas atšķirības un interaktīvi ģenerēs skriptu migrēšanai uz jauna shēma. Shēmas izmaiņu vēsture tiek automātiski izsekota.

Lai ģenerētu vaicājumus, tiek atbalstīta gan GraphQL vaicājumu valoda, gan patentētā EdgeDB valoda, kas ir SQL adaptācija hierarhiskiem datiem. Sarakstu vietā vaicājuma rezultāti tiek formatēti strukturētā veidā, un apakšvaicājumu un JOIN vietā varat norādīt vienu EdgeQL vaicājumu kā izteiksmi citā vaicājumā. Tiek atbalstīti darījumi un cikli.

atlasiet Filmu {nosaukums, aktieri: {nosaukums}} filter .title = "Matrica" ​​insert Movie { title := "The Matrix Resurrections", aktieri := ( atlasiet Personas filtru .name in { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } skaitlim savienībā 0, 1, 2, 3} ( izvēlieties { number, number + 0.5 } );

Jaunajā versijā:

  • Datu bāzes administrēšanai ir pievienots iebūvēts tīmekļa interfeiss, kas ļauj skatīt un rediģēt datus, palaist EdgeQL vaicājumus un analizēt izmantoto krātuves shēmu. Saskarne tiek palaista ar komandu “edgedb ui”, pēc kuras tā kļūst pieejama, piekļūstot localhost.
    Relāciju grafika DBMS EdgeDB 2.0 izlaišana
  • Izteiksme “GROUP” ir ieviesta, ļaujot sadalīt un apkopot datus un grupēt datus, izmantojot patvaļīgas EdgeQL izteiksmes, līdzīgi kā grupēšana operācijā SELECT.
  • Spēja kontrolēt piekļuvi objekta līmenī. Piekļuves noteikumi ir definēti krātuves shēmas līmenī un ļauj ierobežot iespēju izmantot noteiktu objektu kopu ieneses, ievietošanas, dzēšanas un atjaunināšanas darbībās. Piemēram, varat pievienot noteikumu, kas atļauj tikai autoram atjaunināt publikāciju.
  • Pievienota iespēja izmantot globālos mainīgos krātuves shēmā. Ir ierosināts jauns globālais mainīgais pašreizējais_lietotājs, kas jāsaista ar lietotāju.
  • Pievienots atbalsts veidiem, kas nosaka vērtību diapazonus.
  • Ir sagatavota rustu valodas oficiālā klientu bibliotēka.
  • EdgeDB binārais protokols ir stabilizēts, ļaujot vienlaicīgi apstrādāt vairākas dažādas sesijas viena tīkla savienojuma ietvaros, pārsūtot caur HTTP, izmantojot globālos mainīgos un lokālos stāvokļus.
  • Pievienots atbalsts ligzdas aktivizēšanai, kas ļauj neglabāt servera apdarinātāju atmiņā un palaist to tikai mēģinot izveidot savienojumu (noder, lai taupītu resursus izstrādātāju sistēmās).

Avots: opennet.ru

Pievieno komentāru