Rumah > pembangunan bahagian belakang > Tutorial Python > Jinbase - Pangkalan data terbenam transaksi berbilang model

Jinbase - Pangkalan data terbenam transaksi berbilang model

Susan Sarandon
Lepaskan: 2024-12-04 13:06:10
asal
744 orang telah melayarinya

Jinbase – Multi-model transactional embedded database

Hai Dev !

Saya Alex, peminat teknologi. Saya teruja untuk menunjukkan kepada anda Jinbase, pangkalan data terbenam transaksi berbilang model saya.

Hampir setahun yang lalu, saya memperkenalkan Paradict, pandangan saya tentang pensirilan penstriman berbilang format. Memandangkan kebolehbacaannya, format teks Paradict muncul secara de facto sebagai format data yang menarik untuk fail konfigurasi. Tetapi menggunakan Paradict untuk mengurus fail konfigurasi akan menyebabkan antara muka pengaturcaraannya menjadi berantakan dan menjadikannya mengelirukan bagi pengguna yang masih mempunyai pilihan perpustakaan alternatif (TOML, INI File, dll.) khusus untuk fail konfigurasi. Jadi saya menggunakan Paradict sebagai pergantungan untuk KvF (format fail nilai kunci), projek baharu saya yang memfokuskan pada fail konfigurasi dengan bahagian.

Dengan format binari yang padat, saya fikir Paradict akan menjadi pergantungan yang cekap untuk projek baharu yang akan bergantung pada fungsi I/O (seperti Buka, Baca, Tulis, Cari, Beritahu dan Tutup) untuk melaksanakan minimalistik lagi boleh dipercayai penyelesaian kegigihan. Tetapi itu sebelum saya mengetahui bahawa "fail adalah keras". SQLite dengan urus niaganya, jenis data BLOB dan I/O tambahan untuk BLOB kelihatan seperti gergasi yang sesuai untuk digunakan untuk projek baharu saya.

Jinbase bermula kecil sebagai kedai nilai kunci dan berakhir sebagai pangkalan data terbenam berbilang model yang menolak sempadan perkara yang biasa kami lakukan dengan SQLite. Peralihan pertama kepada model data kedua (depoh) berlaku apabila saya menyedari bahawa stor nilai kunci tidak sesuai untuk kes di mana pengecam unik (UID) sepatutnya dijana secara automatik untuk setiap rekod baharu, menjimatkan pengguna beban menyediakan pengecam yang secara tidak sengaja boleh tertakluk kepada perlanggaran dan dengan itu menimpa rekod sedia ada. Selepas itu, saya melaksanakan keupayaan carian yang menerima julat UID untuk stor depot, selang masa (rekod ditanda masa secara automatik) untuk kedua-dua depot dan stor nilai kunci serta corak dan julat nombor GLOB untuk rentetan dan kekunci integer dalam stor nilai kunci .

Model data baris gilir dan tindanan muncul sebagai penyelesaian untuk kes penggunaan di mana rekod mesti digunakan dalam susunan tertentu. Rekod biasa akan diambil dan dipadamkan daripada pangkalan data dalam satu unit transaksi.

Memandangkan SQLite digunakan sebagai enjin storan, Jinbase menyokong model hubungan de facto. Untuk kemudahan, semua jadual yang berkaitan dengan dalaman Jinbase diawali dengan jinbase_, menjadikan Jinbase sebagai alat yang berguna untuk membuka fail SQLite lama untuk menambah model data baharu yang selamat wujud bersama model hubungan ad hoc.

Kesemua empat model data utama (nilai kunci, depoh, baris gilir, tindanan) menyokong jenis data serasi Paradict, seperti kamus, rentetan, data binari, integer, boolean, tarikh tarikh, dsb. Di bawah hud, apabila pengguna memulakan operasi tulis, Jinbase bersiri (kecuali data binari), ketulan, dan menyimpan data secara berulang. Rekod boleh diakses bukan sahaja secara pukal, tetapi juga dengan dua tahap kebutiran akses separa: peringkat bait dan peringkat medan.

Walaupun I/O tambahan SQLite untuk BLOB direka untuk menyasarkan lajur BLOB individu berturut-turut, Jinbase memanjangkan ini supaya untuk setiap rekod, bacaan tambahan meliputi semua bahagian seolah-olah ia adalah BLOB bersatu tunggal. Untuk rekod kamus sahaja, Jinbase secara automatik mencipta dan mengekalkan indeks ringan yang terdiri daripada penunjuk ke medan akar, yang kemudiannya membenarkan pengekstrakan daripada rekod sewenang-wenangnya kandungan medan dinyahsiri secara automatik sebelum dikembalikan.

Kes penggunaan yang paling jelas untuk Jinbase ialah menyimpan pilihan pengguna, meneruskan data sesi sebelum keluar, pemprosesan strim data berdasarkan pesanan, mendedahkan data untuk proses lain, menaik taraf fail SQLite lama dengan model data baharu dan penyelesaian ketekalan data yang ditempah khas.

Jinbase ditulis dalam Python, tersedia di PyPI dan anda boleh bermain dengan contoh pada README.

Beri tahu saya pendapat anda tentang projek ini.

Pautan Projek: https://github.com/pyrustic/jinbase

Atas ialah kandungan terperinci Jinbase - Pangkalan data terbenam transaksi berbilang model. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan