Prvé stabilné vydanie relačného grafu DBMS EdgeDB

K dispozícii je prvé stabilné vydanie EdgeDB DBMS, ktoré je doplnkom k PostgreSQL s implementáciou dátového modelu relačného grafu a dotazovacieho jazyka EdgeQL, optimalizovaného pre prácu s komplexnými hierarchickými údajmi. Kód je napísaný v jazykoch Python a Rust a je distribuovaný pod licenciou Apache 2.0. Klientske knižnice sú pripravené pre Python, Go, Rust a TypeScript/Javascript. Poskytuje nástroje príkazového riadka na správu DBMS a vykonávanie interaktívnych dotazov (REPL).

Namiesto tabuľkového dátového modelu používa EdgeDB deklaratívny systém založený na typoch objektov. Namiesto cudzích kľúčov sa na definovanie vzťahu medzi typmi používa prepojenie odkazom (jeden objekt môže byť použitý ako vlastnosť iného objektu). typ Osoba { požadovaný názov vlastnosti -> str; } type Movie { požadovaný názov vlastnosti -> str; multi link aktéri -> Osoba; }

Indexy možno použiť na urýchlenie spracovania dotazov. Podporované sú aj funkcie ako silné typovanie vlastností, obmedzenia hodnoty vlastností, vypočítané vlastnosti a uložené procedúry. Funkcie schémy ukladania objektov EdgeDB, ktorá trochu pripomína ORM, zahŕňajú schopnosť miešať schémy, vlastnosti prepojenia z rôznych objektov a integrovanú podporu JSON.

Na ukladanie migrácie schémy sú k dispozícii vstavané nástroje – po zmene schémy špecifikovanej v samostatnom súbore esdl stačí spustiť príkaz „edgedb Migration create“ a DBMS analyzuje rozdiely v schéme a interaktívne vygeneruje skript na migráciu na nová schéma. História zmien schémy je automaticky sledovaná.

Na generovanie dotazov je podporovaný dotazovací jazyk GraphQL aj proprietárny jazyk EdgeDB, ktorý je prispôsobením SQL pre hierarchické údaje. Namiesto zoznamov sú výsledky dotazov naformátované štruktúrovaným spôsobom a namiesto poddotazov a JOINov môžete zadať jeden dotaz EdgeQL ako výraz v rámci iného dotazu. Transakcie a cykly sú podporované. vyberte Film { názov, herci: { meno } } filter .title = "Matrix" vložiť Film { title := "The Matrix Resurrections", herci := ( vyberte filter osôb .meno v { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } pre číslo v spojení {0, 1, 2, 3} ( vyberte { číslo, číslo + 0.5 } );

Zdroj: opennet.ru

Pridať komentár