Verëffentlechung vun der relationaler Grafik DBMS EdgeDB 2.0

D'Verëffentlechung vum EdgeDB 2.0 DBMS gëtt presentéiert, deen de relationalen Grafikdatenmodell an d'EdgeQL Query Sprooch implementéiert, optiméiert fir mat komplexen hierarcheschen Donnéeën ze schaffen. De Code ass a Python a Rust geschriwwen (Parser a Leeschtungskritesch Deeler) a gëtt ënner der Apache 2.0 Lizenz verdeelt. De Projet gëtt als Add-on fir PostgreSQL entwéckelt. Client Bibliothéike si fir Python, Go, Rust an TypeScript / Javascript virbereet. Bitt Kommandozeil Tools fir DBMS Gestioun an interaktiv Ufro Ausféierung (REPL).

Amplaz vun engem Dësch-baséiert Datemodell benotzt EdgeDB en deklarativ System baséiert op Objekttypen. Amplaz vun auslännesche Schlëssele gëtt d'Verknëppung duerch Referenz benotzt fir d'Relatioun tëscht Typen ze definéieren (een Objet kann als Eegeschafte vun engem aneren Objet benotzt ginn).

Typ Persoun {erfuerderlech Eegeschafte Numm -> str; } Typ Film { obligatoresch Eegeschafte Titel -> str; Multi Link Akteuren -> Persoun; }

Indexe kënne benotzt ginn fir Ufroveraarbechtung ze beschleunegen. Features wéi staark Immobilietyping, Immobiliewäertbeschränkungen, berechent Eegeschafte, a gespäichert Prozeduren ginn och ënnerstëtzt. Features vum EdgeDB Objektspeicherschema, wat e bëssen un en ORM erënnert, enthalen d'Fäegkeet fir Schemaen ze vermëschen, Eegeschafte vu verschiddenen Objeten ze verbannen, an integréiert JSON Support.

Built-in Tools ginn zur Verfügung gestallt fir d'Schemamigratioun ze späicheren - nodeems Dir de Schema geännert hutt, deen an enger separater esdl Datei spezifizéiert ass, fuert just de Kommando "edgedb migration create" an d'DBMS analyséiert d'Ënnerscheeder am Schema an generéiert interaktiv e Skript fir d'Migratioun op de neie Schema. D'Geschicht vu Schema Ännerungen gëtt automatesch verfollegt.

Fir Ufroen ze generéieren, souwuel d'GraphQL Query Sprooch wéi och déi propriétaire EdgeDB Sprooch, déi eng Adaptatioun vu SQL fir hierarchesch Donnéeën ass, ënnerstëtzt. Amplaz vu Lëschte ginn Ufroresultater op eng strukturéiert Manéier formatéiert, an amplaz vun Ënnerufroen a JOINs, kënnt Dir eng EdgeQL Ufro als Ausdrock an enger anerer Ufro spezifizéieren. Transaktiounen an Zyklen ginn ënnerstëtzt.

wielt Movie { title, actors: { name } } filter .title = "The Matrix" insert Movie { title := "The Matrix Resurrections", Schauspiller := (wielt Persounfilter .name an { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } fir Nummer an {0, 1, 2, 3} Gewerkschaft (wielt { Zuel, Zuel + 0.5 });

An der neier Versioun:

  • Eng agebaute Web-Interface gouf fir d'Datebankverwaltung bäigefüügt, wat Iech erlaabt Daten ze gesinn an z'änneren, EdgeQL Ufroen auszeféieren an de benotzte Späicherschema ze analyséieren. D'Interface gëtt vum Kommando "edgedb ui" lancéiert, duerno gëtt et verfügbar wann Dir Zougang zu localhost.
    Verëffentlechung vun der relationaler Grafik DBMS EdgeDB 2.0
  • Den Ausdrock "GROUP" gouf implementéiert, wat Iech erlaabt Daten a Gruppéierungsdaten ze partitionéieren an ze sammelen mat arbiträren EdgeQL Ausdréck, ähnlech wéi d'Gruppéierung an enger SELECT Operatioun.
  • D'Kapazitéit fir den Zougang um Objektniveau ze kontrolléieren. Zougangsregele ginn um Niveau vum Späicherschema definéiert an erlaben Iech d'Fäegkeet ze limitéieren fir e bestëmmte Set vun Objeten ze benotzen fir d'Operatioun ze sichen, ze setzen, ze läschen an ze aktualiséieren. Zum Beispill kënnt Dir eng Regel addéieren, déi nëmmen den Auteur erlaabt eng Publikatioun ze aktualiséieren.
  • Füügt d'Fäegkeet fir global Variablen am Späicherschema ze benotzen. Eng nei global Variabel current_user gouf proposéiert fir de Benotzer ze binden.
  • Ënnerstëtzung bäigefüügt fir Typen déi Wäertberäicher definéieren.
  • Eng offiziell Clientsbibliothéik fir d'Rust Sprooch gouf virbereet.
  • Den EdgeDB binäre Protokoll gouf stabiliséiert, wat et méiglech mécht e puer verschidde Sessiounen gläichzäiteg an der selwechter Netzwierkverbindung ze veraarbecht, iwwer HTTP weiderzekommen, mat globalen Variablen a lokale Staaten.
  • Zousätzlech Ënnerstëtzung fir Socketaktivéierung, wat Iech erlaabt de Serverhandler net an der Erënnerung ze halen an et nëmmen auszeféieren wann Dir probéiert eng Verbindung ze grënnen (nëtzlech fir Ressourcen op Entwécklersystemer ze spueren).

Source: opennet.ru

Setzt e Commentaire