Relaatiokaavion DBMS EdgeDB 2.0 julkaisu

EdgeDB 2.0 DBMS:n julkaisu esitellään, joka toteuttaa relaatiokaaviotietomallin ja EdgeQL-kyselykielen, joka on optimoitu monimutkaisten hierarkkisten tietojen käsittelyyn. Koodi on kirjoitettu Pythonilla ja Rustilla (jäsennys- ja suorituskykykriittiset osat) ja sitä jaetaan Apache 2.0 -lisenssillä. Projektia kehitetään PostgreSQL:n lisäosana. Asiakaskirjastot on valmistettu Pythonille, Golle, Rustille ja TypeScriptille/Javascriptille. Tarjoaa komentorivityökalut DBMS-hallintaan ja interaktiiviseen kyselyn suorittamiseen (REPL).

Taulukkopohjaisen tietomallin sijaan EdgeDB käyttää objektityyppiin perustuvaa deklaratiivista järjestelmää. Vieraiden avainten sijaan linkittämistä käytetään viittauksella määrittämään tyyppien välinen suhde (yksi objektia voidaan käyttää toisen objektin ominaisuutena).

type Henkilö { vaadittu ominaisuuden nimi -> str; } type Movie { vaadittu ominaisuuden otsikko -> str; monen linkin toimijat -> henkilö; }

Indeksejä voidaan käyttää nopeuttamaan kyselyn käsittelyä. Ominaisuuksia, kuten vahva ominaisuuden tyyppi, omaisuuden arvon rajoitukset, lasketut ominaisuudet ja tallennetut menettelyt, tuetaan myös. EdgeDB-objektien tallennusmallin ominaisuudet, joka muistuttaa hieman ORM:ää, sisältävät kykyä sekoittaa skeemoja, linkkiominaisuuksia eri objekteista ja integroitua JSON-tukea.

Sisäänrakennetut työkalut toimitetaan skeeman siirron tallentamiseen - kun olet muuttanut erillisessä esdl-tiedostossa määritettyä skeemaa, suorita "edgedb migration create" -komento ja DBMS analysoi skeeman erot ja luo interaktiivisesti komentosarjan siirtymistä varten uusi kaava. Kaavan muutoshistoriaa seurataan automaattisesti.

Kyselyjen luomiseen tuetaan sekä GraphQL-kyselykieltä että EdgeDB-kieltä, joka on SQL:n mukautus hierarkkista dataa varten. Listojen sijasta kyselytulokset muotoillaan jäsennellysti, ja alikyselyjen ja JOIN:ien sijaan voit määrittää yhden EdgeQL-kyselyn lausekkeeksi toisessa kyselyssä. Tapahtumat ja syklit ovat tuettuja.

select Movie { title, actors: { name } } filter .title = "The Matrix" insert Movie { title := "The Matrix Resurrections", actors := ( valitse Henkilösuodatin .name in { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } numerolle 0, 1, 2, 3} liitossa ( valitse { numero, numero + 0.5 } );

Uudessa versiossa:

  • Tietokannan hallintaa varten on lisätty sisäänrakennettu verkkokäyttöliittymä, jonka avulla voit tarkastella ja muokata tietoja, suorittaa EdgeQL-kyselyitä ja analysoida käytettyä tallennusjärjestelmää. Käyttöliittymä käynnistetään "edgedb ui" -komennolla, jonka jälkeen se tulee saataville käytettäessä localhostia.
    Relaatiokaavion DBMS EdgeDB 2.0 julkaisu
  • "GROUP"-lauseke on otettu käyttöön, jonka avulla voit osioida ja koota tietoja ja ryhmitellä tietoja mielivaltaisilla EdgeQL-lausekkeilla, kuten ryhmittely SELECT-operaatiossa.
  • Kyky hallita pääsyä objektitasolla. Käyttöoikeussäännöt määritellään tallennusskeematasolla, ja niiden avulla voit rajoittaa kykyä käyttää tiettyä objektijoukkoa nouto-, lisäys-, poisto- ja päivitystoiminnoissa. Voit esimerkiksi lisätä säännön, joka sallii vain kirjoittajan päivittää julkaisun.
  • Lisätty mahdollisuus käyttää globaaleja muuttujia tallennusjärjestelmässä. Uutta globaalia muuttujaa current_user on ehdotettu sitovaksi käyttäjään.
  • Lisätty tuki tyypeille, jotka määrittävät arvoalueita.
  • Rust-kielen virallinen asiakaskirjasto on valmisteltu.
  • EdgeDB-binaariprotokolla on vakiintunut, mikä mahdollistaa useiden eri istuntojen käsittelyn samanaikaisesti samassa verkkoyhteydessä, edelleenlähetyksessä HTTP:n kautta, globaalien muuttujien ja paikallisten tilojen avulla.
  • Lisätty tuki socket-aktivointiin, jonka avulla et pidä palvelimen käsittelijää muistissa ja käytä sitä vain, kun yrität muodostaa yhteyttä (hyödyllinen resurssien säästämiseen kehittäjäjärjestelmissä).

Lähde: opennet.ru

Lisää kommentti