Rilis grafik relasional DBMS EdgeDB 2.0

Rilis EdgeDB 2.0 DBMS ditampilake, sing ngetrapake model data grafik relasional lan basa pitakon EdgeQL, dioptimalake kanggo nggarap data hierarki kompleks. Kode kasebut ditulis nganggo Python lan Rust (parser lan bagean kritis kinerja) lan disebarake ing lisensi Apache 2.0. Proyek iki dikembangake minangka tambahan kanggo PostgreSQL. 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, loro 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});

Ing versi anyar:

  • Antarmuka web sing dibangun wis ditambahake kanggo administrasi database, ngidini sampeyan ndeleng lan ngowahi data, mbukak pitakon EdgeQL lan nganalisa skema panyimpenan sing digunakake. Antarmuka diluncurake kanthi printah "edgedb ui", sawise iku kasedhiya nalika ngakses localhost.
    Rilis grafik relasional DBMS EdgeDB 2.0
  • Ekspresi "GROUP" wis dileksanakake, ngidini sampeyan pamisah lan nglumpukake data lan data klompok nggunakake ekspresi EdgeQL sing sewenang-wenang, padha karo klompok ing operasi SELECT.
  • Kemampuan kanggo ngontrol akses ing tingkat obyek. Aturan akses ditetepake ing tingkat skema panyimpenan lan ngidini sampeyan mbatesi kemampuan nggunakake sakumpulan obyek tartamtu ing operasi njupuk, nglebokake, mbusak, lan nganyari. Contone, sampeyan bisa nambah aturan sing mung ngidini penulis nganyari publikasi.
  • Nambahake kemampuan kanggo nggunakake variabel global ing skema panyimpenan. Variabel global anyar current_user wis diusulake kanggo ikatan karo pangguna.
  • Dhukungan ditambahake kanggo jinis sing nemtokake kisaran nilai.
  • Pustaka klien resmi kanggo basa Rust wis disiapake.
  • Protokol binar EdgeDB wis stabil, saengga bisa ngolah sawetara sesi sing beda-beda bebarengan ing sambungan jaringan sing padha, diterusake liwat HTTP, nggunakake variabel global lan negara lokal.
  • Dhukungan ditambahake kanggo aktivasi soket, sing ngidini sampeyan ora nyimpen pawang server ing memori lan mbukak mung nalika nyoba nggawe sambungan (migunani kanggo nyimpen sumber daya ing sistem pangembang).

Source: opennet.ru

Add a comment