Pelepasan stabil munggaran tina grafik relational DBMS EdgeDB

Pelepasan stabil munggaran tina EdgeDB DBMS sayogi, anu mangrupikeun tambihan kana PostgreSQL kalayan palaksanaan model data grafik relational sareng basa query EdgeQL, dioptimalkeun pikeun damel sareng data hirarki kompleks. Kodeu ditulis dina Python sareng Rust sareng disebarkeun dina lisénsi Apache 2.0. Perpustakaan klien disiapkeun pikeun Python, Go, Rust sareng TypeScript / JavaScript. Nyadiakeun parabot garis paréntah pikeun manajemén DBMS sarta palaksanaan query interaktif (REPL).

Gantina model data basis tabel, EdgeDB ngagunakeun sistem déklaratif dumasar kana jenis objék. Gantina konci asing, linking ku rujukan dipaké pikeun nangtukeun hubungan antara jenis (hiji obyék bisa dipaké salaku sipat objék séjén). tipe Jalma {diperlukeun ngaran harta -> str; } tipe Movie {judul sipat diperlukeun -> str; aktor multi link -> Jalma; }

Indéks tiasa dianggo pikeun nyepetkeun pamrosésan pamundut. Fitur sapertos ketikan harta anu kuat, larangan nilai harta, sipat diitung, sareng prosedur anu disimpen ogé dirojong. Fitur tina skéma panyimpen objék EdgeDB, anu rada ngingetkeun kana ORM, kalebet kamampuan pikeun nyampur skéma, ngaitkeun sipat tina objék anu béda, sareng dukungan JSON terpadu.

Parabot diwangun-di disadiakeun pikeun nyimpen migrasi skéma - sanggeus ngarobah schema dieusian dina file esdl misah, ngan ngajalankeun "edgedb migration create" paréntah jeung DBMS bakal nganalisis béda dina skéma jeung interaktif ngahasilkeun skrip pikeun migrasi ka skéma anyar. Sajarah parobahan skéma otomatis dilacak.

Pikeun ngahasilkeun patarosan, boh basa query GraphQL sareng basa EdgeDB proprietary, anu mangrupikeun adaptasi SQL pikeun data hirarkis, dirojong. Gantina béréndélan, hasil query diformat dina cara terstruktur, sarta gaganti subqueries na JOINs, Anjeun bisa nangtukeun hiji query EdgeQL salaku ekspresi dina pamundut sejen. Transaksi sareng siklus dirojong. pilih Pilem {judul, aktor: {ngaran}} saringan .judul = "The Matrix" sisipan Pilem {judul:= "The Matrix Resurrections", palaku := (pilih Jalma filter .ngaran dina { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne'})} pikeun nomer dina {0, 1, 2, 3} union (pilih {nomer, angka + 0.5});

sumber: opennet.ru

Tambahkeun komentar