Ngaleupaskeun grafik relational DBMS EdgeDB 2.0

Pelepasan EdgeDB 2.0 DBMS dibere, anu ngalaksanakeun modél data grafik relational sareng basa query EdgeQL, dioptimalkeun pikeun damel sareng data hirarki kompleks. Kodeu ditulis dina Python sareng Rust (parser sareng bagian kritis kinerja) sareng disebarkeun dina lisénsi Apache 2.0. Proyék ieu dikembangkeun salaku tambihan pikeun PostgreSQL. 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});

Dina versi anyar:

  • A panganteur web diwangun-di geus ditambahkeun pikeun administrasi database, ngidinan Anjeun pikeun nempo tur ngédit data, ngajalankeun queries EdgeQL jeung nganalisis skéma gudang dipaké. Antarbeungeutna diluncurkeun ku paréntah "edgedb ui", saatos éta sayogi nalika ngaksés localhost.
    Ngaleupaskeun grafik relational DBMS EdgeDB 2.0
  • Ekspresi "GROUP" parantos dilaksanakeun, ngamungkinkeun anjeun ngabagi sareng ngahijikeun data sareng data grup nganggo ekspresi EdgeQL sawenang, sami sareng ngagolongkeun dina operasi SELECT.
  • Kamampuhan pikeun ngadalikeun aksés dina tingkat obyék. Aturan aksés ditetepkeun dina tingkat skéma panyimpenan sareng ngamungkinkeun anjeun ngawates kamampuan pikeun ngagunakeun sakumpulan objék dina operasi dipulut, nyelapkeun, ngahapus, sareng ngapdet. Salaku conto, anjeun tiasa nambihan aturan anu ngan ukur ngamungkinkeun panulis pikeun ngapdet publikasi.
  • Ditambahkeun kamampuhan pikeun ngagunakeun variabel global dina skéma gudang. Variabel global anyar current_user parantos diusulkeun pikeun ngabeungkeut pangguna.
  • Ditambahkeun dukungan pikeun jinis anu nangtukeun rentang nilai.
  • Perpustakaan klien resmi pikeun basa Rust parantos disiapkeun.
  • Protokol binér EdgeDB parantos distabilkeun, sahingga tiasa ngolah sababaraha sesi anu béda sakaligus dina sambungan jaringan anu sami, diteruskeun via HTTP, nganggo variabel global sareng nagara lokal.
  • Ditambahkeun dukungan pikeun aktivasina stop kontak, anu ngamungkinkeun anjeun henteu ngajaga panangan server dina mémori sareng ngajalankeun éta ngan ukur nalika nyobian ngadamel sambungan (mangpaat pikeun ngahemat sumber daya dina sistem pamekar).

sumber: opennet.ru

Tambahkeun komentar