EdgeDB, data hubungan graf DBMS

Baru-baru ini keluaran DBMS «EdgeDB 2.0» telah diumumkan, yang melaksanakan model data hubungan graf hubungan dan bahasa pertanyaan EdgeQL, dioptimumkan untuk bekerja dengan data hierarki yang kompleks.

EdgeDB ialah pangkalan data sumber terbuka yang direka sebagai pengganti rohani kepada SQL dan paradigma hubungan. Matlamatnya adalah untuk menyelesaikan beberapa masalah reka bentuk yang sukar yang menjadikan pangkalan data sedia ada tidak perlu membebankan untuk digunakan.

Dikuasakan oleh enjin pertanyaan Postgres di bawah hud, EdgeDB memikirkan skema dengan cara yang sama anda lakukan: sebagai objek dengan sifat yang disambungkan dengan pengikatan. Ia seperti pangkalan data hubungan dengan model data berorientasikan objek atau pangkalan data graf dengan skema yang ketat. Kami memanggilnya pangkalan data hubungan graf.

Mengenai EdgeDB

Projek ini sedang dibangunkan sebagai pemalam untuk PostgreSQL. Pustaka pelanggan disediakan untuk bahasa Python, Go, Rust dan TypeScript/Javascript.

Daripada model data berasaskan jadual, EdgeDB menggunakan sistem deklaratif berdasarkan jenis objek. Daripada kunci asing (kunci asing) untuk menentukan hubungan antara jenis rujukan mengikat digunakan (objek boleh digunakan sebagai harta objek lain).

Indeks boleh digunakan untuk mempercepatkan pemprosesan pertanyaan. Juga ciri seperti menaip harta yang kukuh disokong, kekangan nilai harta, sifat dikira dan prosedur tersimpan. Beberapa ciri skema storan objek EdgeDB, agak mengingatkan ORM, termasuk keupayaan untuk mencampurkan skema, mengikat sifat objek berbeza dan sokongan untuk JSON terbenam.

Alat terbina dalam disediakan untuk berhijrah skema storan: Selepas menukar skema yang dinyatakan dalam fail esdl yang berasingan, jalankan sahaja arahan "edgedb migration create" dan DBMS akan menganalisis perbezaan dalam skema dan menjana skrip secara interaktif. untuk berhijrah ke skema baharu. Sejarah pengubahsuaian skema dijejaki secara automatik.

Untuk pertanyaan, kedua-dua bahasa pertanyaan GraphQL dan sebagai bahasanya sendiri EdgeDB, yang merupakan penyesuaian SQL untuk data hierarki. Daripada senarai, hasil pertanyaan mempunyai format berstruktur, dan bukannya subkueri dan JOIN, pertanyaan EdgeQL boleh ditentukan sebagai ungkapan dalam pertanyaan lain. Urus niaga dan kitaran disokong.

Ciri baharu utama EdgeDB 2.0

Dalam versi baharu yang dibentangkan, antara muka web bersepadu telah ditambah untuk pentadbiran pangkalan data membenarkan untuk melihat dan mengedit data, menjalankan pertanyaan EdgeQL dan menganalisis skema storan yang digunakan. Antara muka dimulakan dengan arahan "edgedb ui", selepas itu ia tersedia dengan mengakses localhost.

Expression "GROUP" telah dilaksanakan untuk membenarkan pembahagian dan pengagregatan data dan mengumpulkan data menggunakan ungkapan EdgeQL sewenang-wenangnya, sama seperti mengumpulkan dalam operasi SELECT.

Keupayaan untuk mengawal akses pada tahap objek, peraturan capaian ditakrifkan pada peringkat skema storan dan membolehkan anda menyekat penggunaan set objek tertentu dalam operasi pilih, sisip, padam dan kemas kini. Sebagai contoh, anda boleh menambah peraturan yang membenarkan hanya pengarang mengemas kini siaran.

Ia juga diketengahkan bahawa menambah keupayaan untuk menggunakan pembolehubah global dalam skema penyimpanan. Untuk mengikat kepada pengguna, pembolehubah global baharu telah dicadangkan.

Perubahan lain yang menonjol:

  • Pustaka pelanggan rasmi untuk bahasa Rust telah disediakan.
  • Protokol binari EdgeDB telah distabilkan, di mana ia telah menjadi mungkin untuk memproses beberapa sesi berbeza secara serentak dalam sambungan rangkaian yang sama, memajukan melalui HTTP, menggunakan pembolehubah global dan keadaan setempat.
  • Sokongan tambahan untuk jenis yang mentakrifkan julat nilai (julat).
  • Sokongan tambahan untuk pengaktifan soket, yang membolehkan pemacu pelayan tidak disimpan dalam memori dan memulakannya hanya apabila cuba mewujudkan sambungan (berguna untuk menjimatkan sumber pada sistem pembangunan).

Akhirnya bagi mereka yang berminat untuk mengetahui lebih lanjut mengenainya, mereka harus tahu bahawa kod itu ditulis dalam Python dan Rust dan dikeluarkan di bawah lesen Apache 2.0.

Anda boleh mengetahui lebih lanjut mengenainya di pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.