EdgeDB, DBMS data relasional grafik

Baru-baru ini rilis DBMS «EdgeDB 2.0» diumumkan, yang mengimplementasikan model data relasional grafik relasional dan bahasa kueri EdgeQL, dioptimalkan untuk bekerja dengan data hierarki yang kompleks.

EdgeDB adalah database open source yang dirancang sebagai penerus spiritual SQL dan paradigma relasional. Tujuannya adalah untuk memecahkan beberapa masalah desain yang sulit yang membuat database yang ada tidak perlu membebani untuk digunakan.

Didukung oleh mesin kueri Postgres di bawah tenda, EdgeDB memikirkan skema dengan cara yang sama seperti yang Anda lakukan: sebagai objek dengan properti yang dihubungkan oleh binding. Ini seperti database relasional dengan model data berorientasi objek atau database grafik dengan skema yang ketat. Kami menyebutnya database relasional dari grafik.

Tentang EdgeDB

Proyek ini sedang dikembangkan sebagai plugin untuk PostgreSQL. Pustaka klien disiapkan untuk bahasa Python, Go, Rust, dan TypeScript/Javascript.

Alih-alih model data berbasis tabel, EdgeDB menggunakan sistem deklaratif berdasarkan jenis objek. Alih-alih kunci asing (foreign key) untuk menentukan hubungan antara jenis referensi mengikat digunakan (sebuah objek dapat digunakan sebagai properti dari objek lain).

Indeks dapat digunakan untuk mempercepat pemrosesan kueri. Juga fitur seperti pengetikan properti yang kuat didukung, batasan nilai properti, properti yang dihitung, dan prosedur tersimpan. Beberapa fitur skema penyimpanan objek EdgeDB, agak mengingatkan pada ORM, termasuk kemampuan untuk mencampur skema, mengikat properti objek yang berbeda, dan dukungan untuk JSON tertanam.

Alat bawaan disediakan untuk bermigrasi skema penyimpanan: Setelah mengubah skema yang ditentukan dalam file esdl terpisah, jalankan saja perintah "edgedb migration create" dan DBMS akan menganalisis perbedaan dalam skema dan menghasilkan skrip secara interaktif. untuk bermigrasi ke skema baru. Riwayat modifikasi skema dilacak secara otomatis.

Untuk kueri, bahasa kueri GraphQL dan sebagai bahasanya sendiri EdgeDB, yang merupakan adaptasi dari SQL untuk data hierarkis. Alih-alih daftar, hasil kueri memiliki format terstruktur, dan sebagai ganti subkueri dan GABUNG, kueri EdgeQL dapat ditentukan sebagai ekspresi dalam kueri lain. Transaksi dan siklus didukung.

Fitur baru utama EdgeDB 2.0

Dalam versi baru yang dihadirkan, antarmuka web terintegrasi telah ditambahkan untuk administrasi database memungkinkan untuk melihat dan mengedit data, menjalankan kueri EdgeQL dan menganalisis skema penyimpanan yang digunakan. Antarmuka dimulai dengan perintah "edgedb ui", setelah itu tersedia dengan mengakses localhost.

La Expresion "GROUP" diimplementasikan untuk memungkinkan partisi dan agregasi data dan mengelompokkan data menggunakan ekspresi EdgeQL arbitrer, mirip dengan pengelompokan dalam operasi SELECT.

Kemampuan untuk mengontrol akses di tingkat objek, aturan akses ditentukan pada tingkat skema penyimpanan dan memungkinkan Anda untuk membatasi penggunaan kumpulan objek tertentu dalam operasi pilih, sisipkan, hapus, dan perbarui. Misalnya, Anda dapat menambahkan aturan yang hanya mengizinkan penulis untuk memperbarui postingan.

Itu juga disorot itu kemampuan tambahan untuk menggunakan variabel global dalam skema penyimpanan. Untuk mengikat pengguna, variabel global baru telah diusulkan.

Dari perubahan lain yang menonjol:

  • Pustaka klien resmi untuk bahasa Rust telah disiapkan.
  • Protokol biner EdgeDB telah distabilkan, di mana dimungkinkan untuk memproses beberapa sesi berbeda secara bersamaan dalam koneksi jaringan yang sama, meneruskan melalui HTTP, menggunakan variabel global dan status lokal.
  • Menambahkan dukungan untuk jenis yang menentukan rentang nilai (rentang).
  • Dukungan tambahan untuk aktivasi soket, yang memungkinkan untuk tidak menyimpan driver server dalam memori dan memulainya hanya ketika mencoba membuat koneksi (berguna untuk menghemat sumber daya pada sistem pengembangan).

Akhirnya bagi mereka yang tertarik untuk mengetahui lebih banyak tentangnya, mereka harus tahu bahwa kode tersebut ditulis dalam Python dan Rust dan dirilis di bawah lisensi Apache 2.0.

Anda dapat mengetahuinya lebih lanjut di link berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.