Fyrsta stöðuga útgáfan af venslagrafinu DBMS EdgeDB

Fyrsta stöðuga útgáfan af EdgeDB DBMS er fáanleg, sem er viðbót við PostgreSQL með innleiðingu á gagnalíkani venslarita og EdgeQL fyrirspurnarmáli, fínstillt til að vinna með flókin stigveldisgögn. Kóðinn er skrifaður í Python og Rust og er dreift undir Apache 2.0 leyfinu. Viðskiptavinasöfn eru undirbúin fyrir Python, Go, Rust og TypeScript/Javascript. Býður upp á skipanalínuverkfæri fyrir DBMS stjórnun og gagnvirka framkvæmd fyrirspurna (REPL).

Í stað töflubundins gagnalíkans notar EdgeDB yfirlýsingakerfi sem byggir á tegundum hluta. Í stað erlendra lykla er tenging með tilvísun notuð til að skilgreina tengsl milli tegunda (einn hlut er hægt að nota sem eiginleika annars hlutar). tegund Persónu { áskilið eignarheiti -> str; } tegund Kvikmynd { krafist eignarheiti -> str; fjöltengla leikarar -> Persóna; }

Vísitölur er hægt að nota til að flýta fyrir vinnslu fyrirspurna. Eiginleikar eins og sterk eignagerð, takmarkanir á eignavirði, tölvueiginleikar og geymdar aðferðir eru einnig studdir. Eiginleikar EdgeDB-hlutageymslukerfisins, sem minnir nokkuð á ORM, felur í sér möguleika á að blanda saman skema, tengja eiginleika frá mismunandi hlutum og samþættan JSON-stuðning.

Innbyggð verkfæri eru til staðar til að geyma skemaflutning - eftir að hafa breytt stefinu sem tilgreint er í sérstakri esdl skrá, keyrðu bara "edgedb migration create" skipunina og DBMS mun greina muninn á skemanu og búa til gagnvirkt handrit til að flytja til nýtt skema. Saga skemabreytinga er sjálfkrafa rakin.

Til að búa til fyrirspurnir eru bæði GraphQL fyrirspurnartungumálið og eigin EdgeDB tungumál, sem er aðlögun SQL fyrir stigveldisgögn, studd. Í stað lista eru niðurstöður fyrirspurna sniðnar á skipulegan hátt og í stað undirfyrirspurna og JOINs geturðu tilgreint eina EdgeQL fyrirspurn sem tjáningu í annarri fyrirspurn. Viðskipti og lotur eru studdar. veldu Movie { title, actors: { name } } filter .title = "The Matrix" settu inn Movie { title := "The Matrix Resurrections", leikarar := ( veldu Person filter .name í { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } fyrir tölu í {0, 1, 2, 3} sameiningu ( veldu { tala, tala + 0.5 } );

Heimild: opennet.ru

Bæta við athugasemd