H2 (DBMS)

H2 ialah sebuah sistem pengurusan pangkalan data hubungan yang ditulis dalam Java dan boleh dibenamkan di dalam aplikasi Java atau berjalan dalam mod pelayan-pelanggan. Ia ialah perisian bersumber terbuka di bawah Lesen Awam Mozilla 2.0 atau Lesen Awam Eclipse yang asal.

Sejarah 
Pembangunan enjin pangkalan data H2 bermula pada bulan Mei 2004, dan mula diterbitkan pada bulan Disember 2005. Enjin pangkalan datanya ditulis oleh Thomas Mueller. Beliau turut membangunkan Hypersonic SQL, sebuah enjin pangkalan data Java. Pada tahun 2001, projek Hypersonic SQL diberhentikan, dan HSQLDB Group telah dibentuk untuk meneruskan pembangunan kod Hypersonic SQL. Nama H2 bermaksud Hypersonic 2, pun begitu, H2 tidak berkongsi kod dengan Hypersonic SQL mahupun HSQLDB, sebaliknya ia dibuat dari kosong.

Ciri-ciri utama 
H2 menyokong sebahagian daripada SQL piawai. API pengaturcaraan utama ialah SQL dan JDBC, tetapi pemacu ODBC untuk PostgreSQL turut disokong di mana H2 bertindak sebagai pelayan PostgreSQL.

Jadual boleh dibuat dan disimpan samada dalam ingatan (in-memory table) mahupun pada cakera (disk-based table). Tambahan lagi, jadual boleh bersifat kekal mahupun sementara. Jenis-jenis indeks jadual dalam ingatan adalah hash table dan tree, manakala jenis indeks bagi jadual pada cakera adalah b-tree. Kesemua operasi manupulasi data adalah transaksi. Penguncian peringkat jadual dan kawalan serempak berbilang versi adalah dilaksanakan. Protokol lakuan 2-fasa turut disokong, pun begitu, API piawai untuk transaksi teragih tidak dilaksanakan. Ciri-ciri keselamatan yang ada pada pangkalan data ini adalah: hak capaian berasaskan peranan, penyulitan kata laluan mengunakan SHA-256 manakala data menggunakan AES atau Tiny Encryption Algorithm, XTEA. Ciri-ciri kriptografi ini turut tersedia di dalam pangkalan data sebagai fungsi. Sambungan menerusi SSL / TLS turut disokong dalam mod pelanggan-pelayan dan semasa menggunakan aplikasi konsol.

Rujukan

Pautan luar 
 
 Tutorial pangkalan data H2

Sistem pengurusan pangkalan data bebas
Java