Rilis stabil pisanan saka grafik relasional DBMS EdgeDB

Rilis stabil pisanan saka EdgeDB DBMS kasedhiya, sing minangka tambahan kanggo PostgreSQL kanthi implementasi model data grafik hubungan lan basa pitakon EdgeQL, dioptimalake kanggo nggarap data hirarkis sing rumit. Kode kasebut ditulis nganggo Python lan Rust lan disebarake miturut lisensi Apache 2.0. Pustaka klien disiapake kanggo Python, Go, Rust lan TypeScript/Javascript. Nyedhiyakake alat baris perintah kanggo manajemen DBMS lan eksekusi pitakon interaktif (REPL).

Tinimbang model data adhedhasar tabel, EdgeDB nggunakake sistem deklaratif adhedhasar jinis obyek. Tinimbang tombol manca, ngubungake kanthi referensi digunakake kanggo nemtokake hubungan antarane jinis (siji obyek bisa digunakake minangka properti obyek liyane). ketik Wong {jeneng properti sing dibutuhake -> str; } ketik Movie { judhul properti sing dibutuhake -> str; aktor multi link -> Wong; }

Indeks bisa digunakake kanggo nyepetake pangolahan pitakon. Fitur kayata ngetik properti sing kuwat, watesan nilai properti, properti sing dihitung, lan prosedur sing disimpen uga didhukung. Fitur skema panyimpenan obyek EdgeDB, sing kaya-kaya kaya ORM, kalebu kemampuan kanggo nyampur skema, ngubungake properti saka macem-macem obyek, lan dhukungan JSON sing terintegrasi.

Piranti sing dibangun kasedhiya kanggo nyimpen migrasi skema - sawise ngganti skema sing ditemtokake ing file esdl sing kapisah, mung nglakokake printah "edgedb migration create" lan DBMS bakal nganalisa beda-beda ing skema kasebut lan ngasilake skrip kanthi interaktif kanggo migrasi menyang skema anyar. Riwayat owah-owahan skema dilacak kanthi otomatis.

Kanggo ngasilake pitakon, basa pitakon GraphQL lan basa EdgeDB proprietary, sing minangka adaptasi saka SQL kanggo data hierarkis, didhukung. Tinimbang dhaptar, asil pitakon diformat kanthi cara terstruktur, lan tinimbang subkueri lan GABUNGAN, sampeyan bisa nemtokake siji pitakon EdgeQL minangka ekspresi ing pitakon liyane. Transaksi lan siklus didhukung. pilih Movie { judhul, aktor: { jeneng } } filter .title = "The Matrix" nglebokake Movie { judhul : = "The Matrix Resurrections", aktor := ( pilih Filter wong .jeneng ing { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne'} )} kanggo nomer ing {0, 1, 2, 3} union (pilih {nomer, nomer + 0.5});

Source: opennet.ru

Add a comment