The Troublesome of Database
Database kini sudah menjadi salah satu bagian atau bahkan nyawa dari sebuah aplikasi berbasiskan data. Mulai dari Website Company profile sederhana sampai dengan program information system yang rumit menggunakan database sebagai backbone penyimpanan data.
Dalam banyak buku programing yang pernah saya temui, semua tidak pernah membahas bagaimana troublesome-nya database apabila dalam aplikasi kita hendak mengubah DBMSnya. Apabila kita membuat program tersebut dengan cara seperti yang banyak tertera di buku-buku programing yang beredar di Indonesia kebanyakan, kita akan butuh waktu lebih lama mungkin dari saat kita membuat programnya saat kita harus mengubah DBMS yang kita gunakan.
Sebut saja 2 DBMS yang cukup terkenal MSSQL dan MySQL. Kedua DBMS tersebut kerap menjadi standart dalam pembuatan aplikasi. Tak heran kedua DBMS tersebut cukup banyak yang menggunakannya. Tetapi coba perhatikan. Coba saja kita menggunakan mysql function dalam PHP untuk mengkoneksikan ke mysql. Saat kita hendak mengganti DBMS kita ke MSSQL, berapa jumlah file yang gharus diedit untuk mengganti tulisan mysql menjadi mssql.
Itu baru dalam konteks yang sangat dangkal yaitu dalam hal pengkoneksiannya. Lalu bagaimana yang lebih dalam? Seperti Query? Contoh saja di MySQL terdapat syntax LIMIT yang sering digunakan di dalam pembuatan halaman untuk membatasi jumlah record, bagaimana di MSSQL? Yap, kita tidak bisa menemukan perintah LIMIT di MSSQL.
Masalah-masalah seperti inilah yang sering dihadapi oleh developer atau pengembang software. Sedangkan dalam pembuatan software, kita harus flexible dengan memperhitungkan beban load dari aplikasi untuk disesuaikan DBMS mana yang akan kita gunakan untuk aplikasi kita.
Pada kejadian saya sendiri, saya sebenarnya sudah lama menyadari hal ini, hanya saja baru akhir-akhir ini saya konsen ke dalam hal peralihan DBMS ini. Dan percayalah, kejadian seperti ini sangat memakan energi dan membuang-buang waktu.
Oleh karena itu, Beberapa hari terakhir ini, saya mengembangkan sedikit banyak adapater bridge untuk mengatasi masalah tersebut. Tidak bisa dibilang tuntas dengan cara baru tersebut, melainkan mengurangi beban berat yang ada.
Dalam style pembuatan aplikasi baru-baru ini, cukup terkenal multi layered programing. Yang mana maksudnya disini adalah dalam sebuah aplikasi terdapat layer-layer atau bagian yang mengkhususkan dan diberi tugas untuk menangani masalah. Style ini jujur untuk saya sendiri sangat membantu dalam hal maintenence dan penanganan bug-bug serta pengembangan selanjutnya bila diperlukan.
Salah satu bagian yang paling inti adalah Database Abstraction Layer(DAL/DBAL). Fungsinya dari DAL/DBAL ini adalah sebagai pengantara antara Database dan Aplikasi. Tujuan utama dari DAL/DBAL ini sebenarnya bisa disimpulkan adalah untuk meminimalisasi ketergantungan Aplikasi pada DBMS. Dengan artian Sebisa mungkin dalam Query yang di hardcode dalam aplikasi tidak terdapat fungsi-fungsi atau syntax dari DBMS tertentu.
Contoh saja Dalam MySQL mengambil waktu sekarang dengan syntax fungsi “NOW()” sedangkan di MSSQL menggunakan “GETDATE()” dll. Hal ini sering membuat “pekerjaan tambahan” bagi programer saat harus melakukan migrasi DBMS.
Dalam susunan Aplikasi saya sendiri DAL/DBAL sendiri memegang bagian sangat penting dalam aplikasi. Tentunya DAL/DBAL ini sebagai penerjemah programing ke DBMS. Sehingga diusahakan si Programing bisa memberi perintah dan diterima DBMS 100% akurat tanpa adanya kesalahan karena perbedaan syntax dan fungsi antar DBMS.
Biasanya dalam DAL/DBAL mempunya fungsi khusus untuk masing-masing DBMS yang disupportnya yang biasa dinamakan “Driver”. Biasanya juga di dalam driver ini terdapat fungsi-fungsi spesifik unik antar database. Biasanya agar terjadi kesamaan, dilakukanlah emulasi. Sebagai contoh saja dalam memberlakukan SELECT LIMIT pada mssql yang tidak mengenal LIMITING function seperti mySQL atau PostgreSQL.
DAL/DBAL memang tidak 100% bisa menghilangkan ketergantungan antara satu DBMS dengan DBMS yang lainnya, karena masing-masing DBMS memiliki cara yang unik masing-masing. Tetapi lebih baik ketimbang harus lembur dan membuang-buang waktu karena permasalahan perbedaan DBMS. Untuk saya sendiri sebagai pengguna PHP, mungkin salah satu contoh kongkrit DAL/DBAL yang cukup sering dignakan dan cukup populer adalah ADODB for PHP. Walau saya uga masih dalam taraf mempelajarinya, tetapi ADODB for PHP ini cukup menarik dipelajari. ![]()
Popularity: 1% [?]
This Blog
My name is Rizky Gunawan, graduated(Waw, thanks God I can graduated :P ) from Computer Science Major. My Hobby is Coding, and my speciality is web development using PHP. Currently I'm working on some press company in Indonesia as Internal Software Developer.
Tags
ajax AMD AMD HSF Anime Anime Music Ar tonelico ATI Clannad core i5 Crysis GeForce Gigabyte hymmnos Intel Intel HSF javascript K-ON Kosaka Kirino Linux Microsoft Motherboard MSI Music Video mySQl Nvidia ONKYO Overclocking P55 PC Games Phenom II X4 php Project Skripsi Soundcard Thermalright thermalright Ultra 120 Extreme Touhou Ubuntu VGA Card Warhead Web Design web project Windows Windows 7 Wordpress ThemeReent Comment
Archives



