Review Database McKoi SQL ( Java Database)
June 13, 2007
Contributed by: Isak_Rickyanto
Ini adalah artikel share / review tentang penggunaan database open source berbasis Java yang bernama McKoi. Penulis review ini adalah Samuel Franklyn.
Pertama kali saya mengetahui ada database Java adalah pada saat saya
menggunakan JBoss. Dalam JBoss ada database Java yang bisa diakses lewat
JDBC API yang nama Hypersonic SQL. Hypersonic SQL ini sekarang namanya
HSQL dan bisa didownload dari http://hsqldb.sourceforge.net/
Saya pelajari database ini ternyata featurenya kurang banyak serta
database ini baru menyimpan data ke file waktu JBoss di shutdown.
Database ini menyimpan dan mengolah semua data dalam database di dalam
memori. Jadi kalau data anda ratusan MB maka database ini juga akan
memakai ratusan MB memori. Kesimpulan saya database ini tidak bisa
dipakai untuk aplikasi bisnis yang serius.
Database Java kedua yang saya ketahui adalah database Cloudscape yang
diikut sertakan dalam J2EE SDK dari Sun. Sayangnya database ini database
komersial. Jadi saya malas mempelajarinya.
McKoi adalah database Java ketiga yang saya kenal. Barulah pada McKoi
saya menemukan database Java yang memuaskan. Featurenya memang tidak
terlalu banyak tapi sudah cukup untuk bisa dibilang RDBMS.
Feature Database McKoi:
- Berbasis file jadi hemat memori
- Besar penggunaan memori bisa dikonfigurasi bisa juga dinamik
- Menggunakan automatic index artinya setiap field diindex.
Ini menghilangkan keperluan untuk tuning dengan konsekuensi insert
yang lebih lambat untuk tabel dengan banyak field. Tapi feature ini
bisa dikonfigurasi
- Relational integrity: Primary Key, Foreign Key, dll.
- Fasilitas transaksi
- Fasilitas field auto-number
- Bisa hot-backup artinya dibackup selagi databasenya masih berjalan
- Bisa digunakan dalam mode embedded atau client/server
Salah satu manfaat terbesar McKoi adalah kalau digunakan sebagai
database yang embedded. Dengan cara ini aplikasi kita bisa diberikan
kepada pemakai dalam bentuk file WAR atau JAR dan langsung bisa
dijalankan. Jadi tidak ada lagi langkah pasang database, ciptakan tabel,
isi tabel dengan nilai awal dan konfigurasi data source. Tentu saja
penggunaan McKoi secara embedded untuk tujuan komersial memerlukan
lisensi komersial soalnya McKoi lisensinya GPL. Tapi kalau kita pakai
McKoi dalam aplikasi GPL maka kita tidak perlu beli lisensi.
McKoi kalau menurut pendapatku bisa dipakai dengan mulus untuk data
tingkat ratusan MB sampai GB. Aku sudah benchmark sederhana performance
select nya cepat sekali cuma kalah cepat sedikit dari MySQL. Hanya saja
performance insert jauh lebih lambat dari MySQL. Tapi ini karena semua
field di index oleh McKoi dan seluruh insert diproteksi pakai transaksi.
Sedangkan di MySQL aku tidak pakai tabel tipe InnoDb yang terlindung
transaksi melainkan cuma tabel MyISAM. Jadi performance insert McKoi dan
MySQL tidak bisa dibandingkan.
Sebenarnya kalau memorynya terlalu low juga McKoi tidak jalan. Raja
efisiensi database dalam pemakaian resource adalah MySQL. Kalau
clientnya memorynya low ya paling bagus pakai MySQL.
Keunggulan McKoi dibanding MySQL adalah jalan dimanapun ada JVM yang
cocok. Jadi misalnya kita pakai Digital Alpha. Nah di platform ini kita
musti kompilasi sendiri MySQL soalnya rasanya tidak ada binarynya di
situs MySQL. Kalau pakai McKoi langsung saja WAR kita yang sudah berisi
mckoidb.jar di taruh dalam Tomcat dan dijalankan. Langsung jalan deh
aplikasi kita. Simple sekali. Jadi keunggulan McKoi adalah keunggulan
Java juga yaitu WORA (Write Once Run Anywhere) dan embedded. Karena
embedded tidak ada perlu langkah setup database.
Situs McKoi SQL
http://mckoi.com/database/
Selada Tuna Italia
June 13, 2007
Paduan tomat dan mentimun dalam selada gaya Italia ini diperkaya dengan ikan tuna kalengan. Saus yang sangat ringan membuat cita rasa alami sayuran menjadi sangat menonjol. Bisa disajikan dengan roti panggang sebagai pelengkapnya.
Bahan:
1 kaleng ikan tuna dalam air, tiriskan
3 buah tomat merah, iris tipis
1 buah mentimun hijau, iris tipis
50 g olive hijau botolan, potong dua
2 batang daun bawang, ambil bagian yang putih, iris serong tipis
Saus, aduk rata :
4 sdm minyak olive
1/2 sdt bawang putih parut
1 sdm white wine vinegar/air jeruk lemon
1/2 sdt merica bubuk
1/2 sdt garam
Cara membuat:
Susun bahan selada dalam mangkuk saji.
Beri Sausnya, aduk hingga rata.
Sajikan segera.
Keunggulan Store Procedure dibanding adhoc query
June 13, 2007
Contributed by: johansmax
Keunggulan penggunaan Stored Procedure dibandingkan adhoc query
Dokumen ini membahas keunggulan penggunaan stored procedure pada DBMS pada umumnya dan MS SQL Server 2k pada khususnya ditinjau dari berbagai aspek seperti kinerja, transparansi, keamanan, fleksibilitas terhadap perubahan proses bisnis, scalabilitas dan ekonomi.
• Kinerja
o Execution plan pada stored procedure sudah dibuat pada saat procedure itu dikompilasi jadi hanya terjadi 1 kali. Berbeda dengan adhoc query terutama dengan query tanpa parameter (tanpa simbol @ pada SQL Serverr). Query adhoc dikompilasi (dibuat parse tree dan query tree) secara realtime, terutama jika query tersebut tidak ada di procedure cache.
o Stored procedure dapat dipin(ditandai) di memori. Artinya sebuah sp dapat dipaksa untuk tetap berada di memori fisik meskipun dbms membutuhkan memori tambahan. Akibatnya operasi swaping in & swapping out sp dapat diminimalkan terutama untuk sp yang sering dipakai. Sebagai catatan dengan harga memori yang makin murah (relatif dalam US $) maka opsi pin ini semakin atraktif
o Query select pada SP dapat diatur menggunakan format tertentu sehingga index dapat digunakan untuk query.
o SP dapat digunakan untuk membatasi jumlah record yang dikirim ke client. Hal ini dapat mengurangi beban jaringan. Hal ini akan sangat mempercepat karena bottle neck utama di applikasi database terletak di jaringan.
o SP terletak di DBMS sehingga untuk proses yang membutuhkan data banyak, round trip untuk permintaan data sampai data itu diterima dapat ditiadakan.
• Transparansi dan skalabilitas
Transparansi ekivalen dengan information hiding di konsep pemograman OO.
o Mendukung ANSI model terhadap database. Ansi model adalah sebuah model database yang memodelkan penglihatan user terhadap database menjadi 3 komponen yaitu user view, logical view dan fisikal view. User view ekivalen dengan perintah select. Logical view ekivalen dengan ERD atau LDS (logical data structure) dan fisikal view ekivalen dengan implementasi tabel di database. Dengan adanya sp maka app user view dapat dibuat sesetabil mungkin meskipun tabel penyusunnya berubah. Perubahan terhadap applikasi client dapat dihindari pada kasus kasus di bawah ini :
Partisi tabel baik secara vertikal , horisontal dan gabungan
Partisi adalah proses pembagian sebuah tabel yang sudah normal menjadi beberapa tabel yang normal. Tabel normal adalah tabel hasil normalisasi.
Misalkan kita punya tabel pelanggan (pelangganid, nama, alamat, kota, propinsi, tanggallahir, jeniskelamin,telepon).
Partisi vertikal ekivalen dengan select pelangganid,nama from pelanggan. Partisi horisontal ekivalen dengan select
* from pelanggan where kota=xxx.
Pertimbangan untuk melakukan partisi dilakukan dengan memperhatikan :
• Frekuensi akses (select) terhadap tabel
Jika user sering mengakses pelangganid,nama dan telepon maka sebaiknya tabel pelanggan dipartisi menjadi 2 yaitu pelanggan_part1 (pelangganid,nama,telepon) dan pelanggan_part2 (pelangganid, alamat, kota, propinsi, tanggallahir, jeniskelamin). Ukuran table pelanggan_part1 akan jauh lebih kecil dibanding dengan tabel pelanggan_part2 dan pelanggan sehingga proses query select akan lebih cepat. Untuk lebih jelasnya dapat dibaca di buku Database system concept karya henry korth bab 12 tentang perhitungan query cost.
• Lokasi user yang mengakses tabel
Misalkan database tersebar dimana user di kota x hanya bisa melihat data pelanggan kota x maka tabel dapat dipartisi secara horisontal
Transformasi dari single server ke multi server (distributed database)
Sudah dijelaskan pada point transparasi horisontal
Normalisasi dan denormalisasi tabel
Untuk meningkatkan kinerja atau membenahi struktur tabel maka proses normalisasi dan denormalisasi dapat dilakukan. Selama interface sp yang digunakan untuk mengakses tabel tidak berubah maka applikasi client tidak perlu berubah. Interface sp yang dimaksud adalah nama sp, jumlah parameter sp, urutan parameter dan tipe data parameter.
• Keamanan
o SP mencegah terjadinya SQL injeksion. SQL injeksion adalah sebuah aksi hacking yang dilakukan di applikasi client dengan cara memodifikasi perintah SQL yang ada di memori applikasi client. Untuk melakukan hal ini dapat digunakan progam seperti softice.
o Hak akses sp terhadap data di database bergantung pada hak akses pembuatnya bukan bergantung pada hak akses pengguna sp. Hal ini memungkinkan user applikasi untuk tidak diberi hak akses terhadap semua tabel yang ada namun diberi hak akses untuk menjalankan sp. Akibat penggunaan mekanisme ini adalah enforcement terhadap aktifitas user (select, inser, update, delete) tersentralisasi bahkan untuk applikasi seperti query analyzer tidak akan bisa digunakan untuk mengakses data secara tidak sah
o Penggunaan SP mendukung penggunaan application role. Application role adalah sebuah role di SQL server 2k dimana role ini tidak memiliki pengguna. Mekanisme ini merupakan mekanisme standard yang disarankan oleh Microsoft untuk membuat applikasi database berbasis SQL server 2k. Keunggulan penggunaan application role ini adalah dengan menggunakannya maka hanya app kita yang bisa mengakses database applikasi lain tidak bisa kecuali user memakai login yang berrole sysadmin.
o Perlindungan hak cipta. SP dapat dienkript sehingga proses tidak dapat dibajak orang dengan mudah
o Memungkinkan manual audit yang sangat baik. Manual audit didefinisikan sebagai audit dimana mekanisme pencatatan log dilakukan oleh applikasi bukan dbms. Memang manual audit dapat dilakukan tanpa penggunaan SP namun manual audit dapat dibypass misalkan dengan menggunakan query analyzer. Dengan SP dan fasilitas application role maka mekanisme manual audit dapat dienforce setiap saat.
• Fleksibilitas terhadap proses bisnis
o SP tersimpan di server. Modifikasi jadi mudah dilakukan dan dengan cepat
• Ekonomi
o SP menyediakan 1 pintu masuk untuk proses data entri. Applikasi client tinggal mengaksesnnya. SP dibuat 1 kali dan bisa diakses oleh applikasi client yang berbeda-beda. Efesien dan murah
Referensi :
• Database system concept karya henry korth
• MS SQL Server 2k BOL
• Microsoft SQL Server 2000 Unleashed, 2nd Edition
• Quest SQL Server XpertKnowledge
• Database security karya silvana castano
• Principles Of Distributed Database System
What is GTK ?
June 13, 2007
Contributed by: rizafahmi
Sudah tahu PHP? Kalau PHP-GTK tahu gak? Ini ada artikel singkat tentang PHP-GTK.
PHP-GTK adalah sebuah extension PHP yang memungkinkan kita membuat aplikasi GUI pada client tanpa tergantung suatu platform. PHP-GTK adalah extension PHP pertama untuk pemrograman GUI.
PHP-GTK pertama kali dikembangkan oleh Andrei Zmievski pada bulan Agustus 2000. Si Zmievski ini emang tertarik dengan GUI. Setelah melihat implementasi PyGTK dan GTK-Perl, dia mulai melakukan percobaan-percobaan berdasarkan pada PyGTK dengan bantuan James Henstridge ( developer PyGTK ). Trus, si Zmievski memperlihatkan kode PHP-GTK kepada Frank Kromann. Si Kromann ini yang membantu Zmievski untuk mengimplementasikan PHP-GTK kedalam Win32