Vydanie relačno-grafickej DB EdgeDB 2.0

Bol spustený release databázového systému EdgeDB 2.0, ktorý realizuje relačno-grafový model dát a jazyk dotazov EdgeQL, optimalizované na prácu so zložitými hierarchickými dátami. Kód je napísaný v programovacích jazykoch Python a Rust (parser a výkonne kritické časti) a je distribuovaný pod licenciou Apache 2.0. Projekt sa vyvíja ako nadstavba nad PostgreSQL. Klientské knižnice sú pripravené pre jazyky Python, Go, Rust a TypeScript/Javascript. Je poskytovaný príkazový nástroj na správu databáz a interaktívne vykonávanie dotazov (REPL).

Namiesto modelu údajov založeného na tabuľkách v EdgeDB sa používa deklaratívny systém založený na objektových typoch. Namiesto cudzích kľúčov (foreign key) na určenie vzťahu medzi typmi sa používa prepojenie odkazmi (jeden objekt môže byť použitý ako vlastnosť iného objektu).

type Person { required property name -> str; } type Movie { required property title -> str; multi link actors -> Person; }

Na urýchlenie spracovania dopytov sa môžu použiť indexy. Podporujú sa aj funkcie ako prísna typizácia vlastností, obmedzenia hodnôt vlastností, vypočítané vlastnosti a uložené procedúry. Z osobitostí objektovej schémy ukladania EdgeDB, ktorá do určitej miery pripomína ORM, sa uvádza možnosť miešania schém, prepojenia vlastností z rôznych objektov a integrovaná podpora JSON.

Sú poskytované vstavané nástroje na migráciu schémy ukladania — po zmene schémy definovanej v samostatnom esdl-súbore stačí vykonať príkaz „edgedb migration create“ a DB analyzuje rozdiely v schéme a interaktívne vygeneruje skript na prechod na novú schému. História zmien schémy sa automaticky sleduje.

Na formovanie dopytov sa podporuje ako jazyk dopytov GraphQL, tak aj vlastný jazyk EdgeDB, ktorý predstavuje adaptáciu SQL pre hierarchické údaje. Namiesto zoznamov sú výsledky dopytu spracovávané v štruktúrovanej forme a namiesto poddopytov a operácií JOIN je poskytovaná možnosť uviesť jeden dopyt EdgeQL ako výraz v rámci iného dopytu. Podporujú sa transakcie a cykly.

select Movie { title, actors: { name } } filter .title = "The Matrix" insert Movie { title := "The Matrix Resurrections", actors := ( select Person filter .name in { ‘Keanu Reeves’, ‘Carrie-Anne Moss’, ‘Laurence Fishburne’ } ) } for number in {0, 1, 2, 3} union ( select { number, number + 0.5 } );

V novej verzii:

  • Bol pridaný vstavaný webový rozhranie na administráciu databázy, ktoré umožňuje prehliadať a upravovať dáta, vykonávať dotazy EdgeQL a analyzovať aplikovanú schému ukladania. Rozhranie sa spustí príkazom „edgedb ui“, po ktorého vykonaní je prístupné pri prístupe k localhost.
    Vydanie relačno-grafickej DB EdgeDB 2.0
  • Bolo realizované vyjadrenie "GROUP", ktoré umožňuje rozdeľovať a agregovať dáta a vykonávať zoskupenie údajov podľa ľubovolných vyjadrení EdgeQL analogicky so zoskupením v operácii SELECT.
  • Možnosť riadenia prístupu na úrovni objektov. Pravidlá prístupu sú definované na úrovni schémy ukladania a umožňujú obmedziť možnosť využitia určitého súboru objektov v operáciách výberu, vkladania, odstraňovania a aktualizovania. Napríklad, môže sa pridať pravidlo, ktoré povoľuje aktualizáciu publikácie iba autorovi.
  • Bola pridaná možnosť používať globálne premenné v schéme ukladania. Pre prepojenie s používateľom je navrhnutá nová globálna premenná current_user.
  • Bola pridaná podpora typov, ktoré definujú rozsahy hodnôt (range).
  • Bola pripravená oficiálna klientská knižnica pre jazyk Rust.
  • Bol stabilizovaný binárny protokol EdgeDB, v ktorom sa objavila možnosť spracovania súčasne viacerých rôznych relácií v rámci jedného sieťového spojenia, prepojenia cez HTTP, používania globálnych premenných a lokálnych stavov.
  • Pridaná podpora aktivácie cez socket, ktorá umožňuje nenechávať serverový spracovateľ v pamäti a spúšťať ho len pri pokuse o nadviazanie spojenia (užitočné na úsporu zdrojov na systémových vývojároch).

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster