Database Open Source
Database sebuah subjek yang teramat penting. Setuju? Database ada di mana-mana—dari kita lahir, sekolah, bekerja, sampai pensiun. Seluruh aktivitas komputasi adalah seputar mengolah data—data keuangan, data percobaan ilmiah, data statistik pengunjung. Tanpa database banyak aspek kehidupan yang akan pincang dan akhirnya mati—perorangan, perusahaan, dan negara. Aplikasi apa pun yang Anda buat, entah itu shopping cart, CRM, portal komunitas, webledger, di jantungnya adalah database.
Pasar untuk database pun amat besar. Untuk mendapatkan gambaran, lihatlah Larry Ellison. Dari satu [keluarga] produk saja, yaitu Oracle, pria ini berhasil mengeruk uang hingga menjadi orang terdua terkaya di dunia setelah Bill Gates—bahkan sempat sehari menduduki tampuk pertama pada posisi $53 milyar saat harga saham Microsoft turun. Dan meski merajai lebih dari separuh pangsa pasar untuk enterprise besar, tentu saja Oracle bukan satu-satunya produk yang tersedia bagi pengguna database, terlebih di kelas kecil dan menengah.
Ukuran pasar database tahun 2002 diperkirakan mencapai $8 milyar, dan telah bertumbuh terus lebih dari 10% dari tahun demi tahun secara konsisten. Saat ini pasar tersebut memang masih didominasi oleh hanya beberapa pemain besar saja. Selain Oracle yang menjadi brand paling top—dan produk paling menguras kocek—terdapat pula Microsoft dengan SQL Servernya, IBM dengan DB2-nya, Sybase, NCR dengan produk data mart/data warehousingnya, dan Borland dengan Interbasenya. Tapi lambat laun dan pasti, gerakan open source mulai merasuki dunia perusahaan dan menggerogoti penjualan produk-produk komersial ini. Beberapa database open source telah ada sejak bertahun-tahun lalu dan kini cukup matang untuk siap dipakai. Memang betul, belum ada database open source yang sematang atau selengkap Oracle dalam hal fitur, tapi: 1) tidak semua orang butuh semua fitur itu; 2) tidak semua orang punya uang untuk membeli Oracle. Didorong oleh kebutuhan untuk menurunkan biaya dan menaikkan interoperabilitas, beberapa organisasi besar—komersial maupun nonkomersial, sebutlah seperti NASA dan Yahoo!—mulai beralih dari modus mahal ke modus gratis. Dalam fokus kali ini kita akan berjalan-jalan dan melihat-lihat produk database open source yang ada.
MySQL
Mengingat banyak pembaca mwmag programer Web, cukuplah aman untuk mengatakan: siapa tak kenal dia? MySQL AB menyebut produknya sebagai database open source terpopuler di dunia. Sangat bisa jadi benar, melihat begitu banyaknya skrip dan situs yang berpasangan, bahkan “menikah”, dengan produk yang satu ini. Dan saya mungkin akan mengatakan bahwa di platform Web, dan baik untuk kategori open source maupun umum, MySQL adalah database yang paling banyak dipakai. Menurut perusahaan pengembangnya, MySQL telah terpasang di sekitar 3 juta komputer. Puluhan hingga ratusan ribu situs mengandalkan MySQL bekerja siang malam memompa data bagi para pengunjungnya.
Penyebab utama MySQL begitu popular di kalangan Web adalah karena ia memang cocok bekerja di lingkungan tersebut. Pertama, MySQL tersedia di berbagai platform Linux dan berbagai varian Unix. Sesuatu yang tidak dimiliki Access, misalnya—padahal Access amat popular di platform Windows. Banyak server Web berbasiskan Unix, ini menjadikan Access otomatis tidak dapat dipakai karena ia pun tidak memiliki kemampuan client-server/networking.
Kedua, fitur-fitur yang dimiliki MySQL memang yang biasanya banyak dibutuhkan dalam aplikasi Web. Misalnya, klausa LIMIT SQL-nya, praktis untuk melakukan paging. Atau jenis indeks field FULLTEXT, untuk full text searching. Atau sebutlah kekayaaan fungsi-fungsi builtinnya, mulai dari memformat dan memanipulasi tanggal, mengolah string, regex, enkripsi dan hashing. Yang terakhir misalnya, praktis untuk melakukan penyimpanan password anggota situs. Sementara fitur-fitur yang lebih jarang digunakan belum atau baru muncul saja di versi-versi terakhir. Subselek misalnya, sampai saat ini tidak ada di MySQL. Atau view, atau stored procedure, atau trigger. Ini membuat MySQL tetap langsing dan cepat, tapi pengembang aplikasi bisnis mungkin jadi berkerut muka mengetahui ini, karena fitur-fitur yang hilang ini seringkali mereka pakai untuk menyederhanakan logika aplikasi mereka. Jangankan itu, sebelum sekitar versi 3.23.15—yang berarti sekitar dua tahun lalu—MySQL tidak bisa melakukan transaksi sama sekali!
Ketiga, MySQL memiliki overhead koneksi yang rendah. Soal kecepatan melakukan transaksi atau kinerja di kondisi load tinggi mungkin bisa diperdebatkan dengan berbagai benchmark berbeda, tapi kalau soal yang satu ini MySQL-lah juaranya. Karakteristik ini membuat MySQL cocok bekerja dengan aplikasi CGI, di mana di setiap request skrip akan melakukan koneksi, mengirimkan satu atau lebih perintah SQL, lalu memutuskan koneksi lagi. Cobalah melakukan hal ini dengan Interbase atau bahkan Oracle. Maka dengan load beberapa request per detik saja server Web/database Anda mungkin akan segera menyerah karena tidak bisa mengimbangi beban ini.
Sejarah MySQL
MySQL dikembangkan oleh sebuah perusahaan Swedia bernama MySQL AB, yang kala itu bernama TcX DataKonsult AB, sejak sekitar 1994–1995, meski cikal bakal kodenya bisa disebut sudah ada sejak 1979. Tujuan mula-mula TcX membuat MySQL pada waktu itu juga memang untuk mengembangkan aplikasi Web untuk klien—TcX adalah perusahaan pengembang software dan konsultan database. Kala itu Michael Widenius, atau “Monty”, pengembang satu-satunya di TcX, memiliki aplikasi UNIREG dan rutin ISAM yang dibuat sendiri dan sedang mencari antarmuka SQL untuk ditempelkan di atasnya. Mula-mula TcX memakai mSQL, atau “mini SQL” (akan kita kunjungi nanti). Barangkali mSQL adalah satu-satunya kode database open source yang tersedia dan cukup sederhana saat itu, meskipun sudah ada Postgres (juga akan dibahas sesaat lagi). Namun ternyata, menurut Monty, mSQL tidaklah cukup cepat maupun fleksibel. Versi pertama mSQL bahkan tidak memiliki indeks. Setelah mencoba menghubungi David Hughes—pembuat mSQL—dan ternyata mengetahui bahwa David tengah sibuk mengembangkan versi dua, maka keputusan yang diambil Monty yaitu membuat sendiri mesin SQL yang antarmukanya mirip dengan mSQL tapi memiliki kemampuan yang lebih sesuai kebutuhan. Lahirlah MySQL.
Nama MySQL (baca: mai és kju él) tidak jelas diambil dari mana. Ada yang bilang ini diambil dari huruf pertama dan terakhir nama panggilan Michael Widenius, Monty. Ada lagi yang bilang kata My diambil dari nama putri Monty, yang memang diberi nama My—karena Monty memang aslinya seorang Finlandia. Tapi sebetulnya kalau source code MySQL dilirik, prefiks my memang sudah terbubuhi di mana-mana—prefiks ini sering menjadi prefiks umum kalau seseorang membuat kode kustom tersendiri untuk sesuatu. Kalau Anda betul-betul penasaran mana yang benar, mungkin bisa bertanya langsung kepada Monty.
MySQL versi 1.0 dirilis Mei 1996 secara terbatas kepada empat orang. Baru di bulan Oktober versi 3.11.0 dilepas ke publik. Namun mula-mula kode ini tidak diberikan di bawah lisensi General Public License, melainkan lisensi khusus yang intinya kurang lebih begini: “Source code MySQL dapat dilihat dan gratis, serta server MySQL dapat dipakai tanpa biaya tapi hanya untuk kebutuhan nonkomersial. Untuk kebutuhan komersial (mis: mengemas dan menjual MySQL, atau menyertakan MySQL dalam program komersial lain) Anda harus bayar lisensi.” Sementara distribusi Windows MySQL sendiri dirilis secara shareware. Barulah pada Juni 2000 MySQL AB mengumumkan bahwa sejak versi 3.23.19, MySQL adalah software bebas berlisensi GPL. Artinya, “Source code MySQL dapat dilihat dan gratis, serta server MySQL dapat dipakai tanpa biaya untuk kebutuhan apa pun. Tapi jika Anda memodifikasi source code, Anda juga harus melepasnya di bawah lisensi yang sama, yaitu GPL.” Kini perusahaan MySQL AB, yang beranggotakan sekitar 10 programer dan 10 karyawan lain itu, memperoleh pemasukan terutama dari jasa konsultasi seputar MySQL.
Versi publik pertama, yang hanya berjalan di Linux dan Solaris serta sebagian besar masih belum terdokumentasi itu, dengan berangsur-angsur diperbaiki dan ditambah fitur demi fiturnya—tapi tetap dengan fokus utama pengembangan pada kelangsingan dan kecepatan. Artinya, fitur yang menyebabkan MySQL menjadi lambat tidaklah ditambahkan, atau ditunda dulu, atau ditambahkan tapi menjadi fitur yang opsional.
Versi awal MySQL ini, meski sudah bisa dipakai untuk aplikasi Web sederhana, belumlah memadai sama sekali untuk aplikasi bisnis. Contohnya, JOIN sederhana sudah ada, tapi tidak ada HAVING—baru di bulan Desember ditambahkan. Sudah ada tipe data TIMESTAMP dan kolom autoupdate, tapi tidak ada system-generated number (sequence)—baru di akhir 1996 juga ditambahkan modifier kolom AUTO_INCREMENT. Sudah ada LIMIT tapi GROUP BY dan ORDER BY memiliki keterbatasan. Dan seterusnya.
Barulah di versi-versi akhir 3.22—sepanjang 1998–1999—MySQL menjadi semakin popular dan dilirik orang. Stabilitasnya sudah baik. Kecepatannya meningkat. Sudah tersedia di berbagai platform, termasuk Windows. Seri 3.22 ini banyak dipakai di berbagai instalasi, mungkin hingga sekarang, sehingga MySQL AB tetap memberikan dukungan technical support untuk seri ini.
MySQL Terus Berkembang
Kalau di seri 3.22 MySQL mulai diadopsi banyak orang dan meningkat populasi penggunanya, maka di seri 3.23 dan 4.0-lah terjadi banyak peningkatan dari sisi teknologi. Ini tidak terlepas dari tuntutan pemakai yang semakin mengandalkan MySQL, namun membutuhkan fitur-fitur yang lebih banyak lagi. Sejak dari sebelum 3.22 dan awal 3.23, MySQL terus dikritik praktisi database maupun penggunanya mengenai tidak adanya fasilitas transaksi (COMMIT dan ROLLBACK). Pengembang MySQL menyarankan penggunaan LOCK TABLES untuk mengatasi masalah update atomik, tapi ini tentu saja bukan pengganti transaksi, karena tidak adanya kemampuan membatalkan efek perubahan di tengah jalan. Di seri 3.23-lah MySQL mulai memiliki kemampuan transaksi, row-level locking, dan foreign key constraint. Meski beberapa fasilitas popular lainnya masih belum ada—seperti subselek, view, dan trigger—ini sudah direncanakan dan akan mulai ditambahkan di seri 4.x.
Seri 3.23. Di seri 3.23 MySQL menambahkan tiga jenis tabel baru: pertama MyISAM, yang sampai sekarang menjadi tipe tabel default; kedua BerkeleyDB, yang pertama kali menambahkan kemampuan transaksi pada MySQL; dan ketiga InnoDB, primadona baru yang potensial. MySQL memang memiliki arsitektur yang memungkinkan tiap tabel ditangani oleh handler yang berbeda. Handler ini menerima perintah akses dan modifikasi dari lapisan MySQL yang lebih atas dan mewujudkannya secara fisik dari dan ke disk. Tabel tipe MyISAM merupakan tabel yang lebih cepat dari tabel ISAM, karena pola aksesnya telah disesuaikan dan dioptimasi untuk pola akses SQL. Selain itu MyISAM mendukung indeks pada kolom bertipe TEXT dan BLOB, serta mendukung tipe indeks FULLTEXT. Tabel tipe BerkeleyDB, atau BDB, menggunakan database embedded BerkeleyDB yang sudah terkenal itu untuk memanfaatkan kemampuan transaksinya. Sejak memiliki handler BDB, MySQL naik statusnya menjadi database yang ACID compliant, sesuatu yang amat penting bagi keamanan data. Namun BerkeleyDB tidaklah terlalu optimal untuk sebuah database SQL, sehingga akhirnya sebuah perusahaan Finlandia Innobase Oy membuat handler table baru bagi MySQL yang menggunakan database embedded InnoDB-nya—kala itu bernama Innobase, namun berganti nama karena masalah trademark produk Innobase yang sudah ada sebelumnya.
InnoDB membuat MySQL menarik karena peningkatan kecepatan dan kemampuan tambahan yang dimungkinkannya. Pertama-tama, InnoDB memiliki fitur transaksi dengan sistem multiversi. Artinya, jika sebuah klien memulai transaksi, maka perubahan yang dilakukan klien tersebut tidak akan terlihat oleh klien lain. Klien lain akan melihat kondisi tabel sebelum transaksi. Barulah jika transaksi oleh klien pertama dicommit, perubahan ini menjadi terlihat di semua klien lain. Bandingkan ini dengan tabel BDB misalnya, di mana klien yang ingin mengakses sebuah tabel yang sedang dipakai dalam sebuah transaksi akan diblok. Dengan kata lain, multiversi menghindari bloking yang tidak perlu. Ini ditambah lagi dengan row-level locking yang disediakan InnoDB, sehingga mempertinggi konkurensi dan mencegah terlalu banyak bloking. Handler tabel MySQL yang lain hanya mendukung table-level locking, sehingga sebuah klien hanya bisa memblok dengan tingkat granulasi tabel dan berpotensi memblok banyak klien lain yang ingin mengakses tabel yang sama. PostgreSQL dan beberapa database komersial sudah memiliki kemampuan-kemampuan ini. Berkat InnoDB, MySQL pun kini memiliki keduanya. Selain itu, InnoDB menambahkan foreign key constraint, sesuatu yang sering didambakan pengguna MySQL karena bisa menyederhanakan logika pemrograman dan menjaga kekonsistenan database mereka.
Seri 4.x. Di seri yang baru berjalan hingga 4.0 tahap alfa ini, pengembang MySQL berjanji akan menjadikan MySQL satu derajat lebih tinggi lagi. Fitur-fitur yang sejak dulu diminta akan dikabulkan, seperti subselek (di 4.1), union (4.0), foreign key constraint (4.0 atau 4.1—meski InnoDB sudah menyediakan ini di 3.23.x), stored procedure (4.1), view (4.2), cursor (4.1 atau 4.2), trigger (4.1). MySQL AB tetap berdedikasi mengembangkan dan memperbaiki MySQL, serta mempertahankan MySQL sebagai database open source terpopuler.
Di versi 3.23 dan selanjutnya MySQL semakin menarik untuk dilirik oleh pengguna non-Web. Situs mysql.com di halaman depannya dengan bangga memajang profil para pengguna MySQL yang terkenal, seperti Yahoo! Finance (yang mulai mengaku menggunakan MySQL beberapa waktu lalu di milis mysql), NASA (yang membuang Oracle demi memotong budget), atau perusahaan sekuritas Jepang Aizawa. MySQL tidak lagi sekedar dipercaya menyimpan data posting komentar pengunjung situs Web (seperti di slashdot.org, pengguna veteran MySQL) atau hit atau log Web, tapi juga kini sebagai tempat menyimpan data keuangan dan transaksi bisnis. Meskipun demikian, karakteristik pengguna database—yang biasanya terdiri dari perusahaan—adalah cenderung konvensional dalam mengadopsi produk baru. Jadi jangan terkejut kalau misalnya sampai sekarang Anda akan masih menjumpai orang yang menganggap MySQL belum ACID-compliant atau belum bisa melakukan transaksi. Padahal sudah dua tahun fitur ini ada di MySQL.
Kerikil Di Tengah Jalan
Sebetulnya babak baru pengembangan MySQL—yaitu saat MySQL dirilis sebagai produk open source sejati—dimulai saat perusahaan kecil MySQL AB ini menjalin kerja sama dengan sebuah perusahaan database Amerika bernama Progress Software di tahun 2000. Progress membantu meyakinkan Monty dkk agar mengganti lisensi produk MySQL menjadi GPL. Selain itu, Progress juga memasuki bisnis open source dengan membentuk NuSphere, yang akan menjual distribusi MySQL khusus. Model bisnis mengemas software open source nampaknya cukup laik di mata Progress, melihat kesuksesan distro-distro Linux dan perusahaan seperti Red Hat. Karena itu Progress juga berencana menyuntikkan dana hingga $2,5 juta dolar kepada MySQL AB, dengan tujuan agar MySQL bisa menjadi lebih baik lagi. Satu lagi, Nusphere juga akan membuat table handler baru bernama Gemini, yang didasarkan pada software database Progress. Gemini akan menambahkan row-level locking dan transaksi pada MySQL.
So far so good. Tapi ternyata, beberapa tindakan yang dilakukan oleh Nusphere membuat MySQL AB kesal. Pertama, Nusphere mengambil domain mysql.org (MySQL AB sendiri memiliki mysql.com hasil pemberian Patrick Lynch) dan tidak membuat pernyataan yang jelas di situs tersebut bahwa MySQL dikembangkan oleh MySQL AB, bukan oleh Nusphere. Dengan kata lain Nusphere memakai nama MySQL dan seolah mengaku menjadi pengembang MySQL, padahal MySQL sejak awal dikembangkan oleh MySQL AB. Kedua, Nusphere dengan distribusinya yang bernama “Nusphere MySQL Advantage” melanggar GPL. Ini ironis, karena perusahaan induknya Progress-lah yang setahun sebelumnya membantu MySQL menjadi GPL. Distribusi binary Nusphere ini megandung kode Gemini yang dilink statik ke MySQL. Menurut lisensi GPL, ini memang berarti kode Gemini pun harus dirilis sebagai GPL. Nyatanya, Nusphere tidak memberikan source code Gemini, tapi hanya berjanji akan melepasnya nanti. MySQL AB mencoba meminta kembali domain mysql.org dan mendesak Nusphere merilis source code Gemini, tanpa hasil.
Perselisihan kemudian menjadi memanas ketika pada tanggal 15 Juni 2001 Nusphere dan Progress mengajukan tuntutan ke pengadilan atas David Axmark (salah satu karyawan awal dan “penginjil” MySQL), Monty, dan MySQL AB, dengan tuduhan melanggar kontrak perjanjian. MySQL AB tidak mau kalah, ia menuntut balik Nusphere atas tuduhan pelanggaran trademark, perjanjian, dan lisensi GPL. Hingga hari artikel ini ditulis, proses pengadilan masih berlangsung. Oleh beberapa pihak keputusan akhir pengadilan akan sangat dinanti, karena jika MySQL AB menang maka supremasi dan validitas lisensi GPL akan benar-benar terbukti “di lapangan.” Ingin mengetahui lebih lanjut mengenai hal ini? Coba lihat FAQ MySQL AB di
[You must be registered and logged in to see this link.] Kalau ada waktu, kunjungi juga slashdot.org dan carilah kata kunci “nusphere”.
Di luar masalah ini, MySQL terus dikembangkan secara aktif oleh MySQL AB. Dan untung bagi para pemakai, Gemini kini praktis telah digantikan oleh InnoDB yang memberikan kemampuan serupa. Saat ini domain mysql.org juga telah diambil alih oleh MySQL AB.
PostgreSQL
Di bawah popularitas MySQL, membayanglah PostgreSQL. Kalau MySQL disebut-sebut sebagai database open source paling popular, maka PostgreSQL sering dijuluki database open source paling mutakhir (advanced). Kedua database ini kadang begitu terlihat kontras satu sama lain, sehingga tidaklah mewakili sama sekali kalau kita katakan keduanya “bersaing.” Kalau MySQL dikembangkan terutama di Eropa, PostgreSQL mula-mula di Amerika (di Universitas of California di Berkeley, sama seperti sistem operasi Unix). Kalau latar belakang pengembangan MySQL adalah untuk kebutuhan bisnis klien, maka PostgreSQL berawal dari proyek akademik. Kalau MySQL berfokus pada kelangsingan dan kecepatan, maka PostgreSQL pada kelengkapan fitur, portabilitas, dan reliabilitas (meski ironis bahwa kini MySQL lebih portabel dalam hal ketersediaan di Windows). Kalau MySQL merupakan sebuah database relasional (RDBMS), maka PostgreSQL disebut objek-relasional (ORDBMS) karena fitur OO-nya seperti pewarisan tabel dan tipe data. [Lihat artikel MySQL vs PostgreSQL].
PostgreSQL memiliki sejarah yang lebih panjang dan berliku. Pertama memulai hidupnya dalam wujud bernama Ingres (“Interactive Graphics and Retrieval System”), yang dikembangkan di Universitas Berkeley mulai tahun 1977 hingga 1985. Pemimpin proyek Ingres adalah Profesor Michael Stonebraker dan Eugene Wong. Ingres mula-mula dikembangkan di atas platform komputer mini PDP-11. Belum ada SQL waktu itu, dan Ingres memiliki bahasa query tersendiri yang disebut QUEL.
Kode Ingres kemudian dikomersilkan sehingga berdirilah Relational Technologies (yang lalu berganti nama menjadi Ingres Corporation, dan kini berada di bawah perusahaan Computer Associates). Sementara itu, dari universitas yang sama, didirikan pulalah perusahaan Sybase dan Illustra (yang lalu bernama Informix, dan kini telah dibeli oleh IBM) oleh para alumninya. Profesor Stonebraker sempat terlibat di ketiga perusahaan ini. Salah satu pendiri Ingres juga merupakan pendiri Illustra. Jadi dari Ingres lahir berbagai produk database: Ingres sendiri, Sybase, dan Informix. Database komersial Ingres (yang mengalami berbagai metamorfosis nama, mulai dari Ingres II, Ingres NET, CA-Ingres, CA-OpenIngres, CA Advantage Ingres) masih ada dan dijual hingga kini.
Dari proyek Ingres juga lahirlah proyek penerusnya, Postgres (1986–1994). Dipimpin juga oleh Stonebraker, proyek ini bertujuan membuat Ingres agar menjadi lebih berorientasi objek. Kode Postgres inilah yang diambil menjadi Illustra dan Informix.
Tahun 1995 dua mahasiswa S2 di universitas yang sama, Jolly Chen dan Andrew Yu, menambahkan SQL pada Postgres untuk menggantikan QUEL. Hasilnya adalah Postgres95. Akhirnya kedua mahasiswa pun lulus dan meninggalkan Berkeley, namun Chen masih terus memaintain Postgres95. Produk ini memiliki komunitas yang aktif berdiskusi di mailing list. Setahun berikutnya, Postgres95 jadi bertambah popular. Anggota mailing list telah mencapai 1000 orang. Seseorang bernama Marc G. Fournier dari Kanada menawarkan sebuah server untuk dipakai menjadi host mailing list dan CVS. Hingga saat itu, ada empat orang yang menjadi pengembang utama Postgres95: Chen, Fournier, dan dua orang lain yaitu Thomas Lockhart di California, AS dan Vadim Mikheev di Rusia. Namun Postgres95 dikembangkan bersama-sama lewat Internet dan sumbangan patch dan berbagai orang di seluruh pelosok dunia.
Sayangnya, proyek ini belum terkelola secara baik, apalagi profesional. Semua pengembang utamanya punya karir masing-masing. Mereka hanya mengembangkan Postgres95 sebagai kerja hobi atau sampingan. Padahal jumlah pemakai sudah cukup banyak. Laporan-laporan bug banyak yang tidak tertangani dengan baik. Menurut Chen, keluarga Postgres secara tradisional dikembangkan dalam suasana akademik, dan belum siap untuk menerima sumbangan kode dan laporan bug yang begitu banyak. Lagipula, kode turun-temurun dari Ingres dan Postgres ini belum sepenuhnya dimengerti, bahkan oleh Chen. Untungnya, para pengembang Postgres95 berdedikasi untuk berbenah diri.
Pertengahan 1996, nama Postgres95 sepakat dianggap sudah basi, maka lahirlah PostgreSQL (baca: post-grés-kju-él), dengan label versi dimulai dari angka 6.0 (versi terakhir dari Postgres/Berkeley adalah 4.2, dan Postgres95 dianggap versi 5.x). Di sinilah, dan juga berlanjut di keluarga 7.0–7.1, banyak terjadi peningkatan dalam hal skalabilitas, fitur, dan kecepatan.
Meskipun demikian, perbaikan berlangsung tidak secara tiba-tiba, melainkan berangsur-angsur. Para pengembangnya perlu terlebih dulu masih perlu membenahi kode-kode lama dan kode yang belum sepenuhnya dimengerti. Hingga versi 6.4 (1998) misalnya—di mana banyak ditambahkan fitur baru seperti dukungan karakter internasional, bahasa stored procedure baru, view, dan beberapa sintaks SQL tambahan—banyak terjadi masalah stabilitas. Beberapa pemakai melaporkan menjalankan proses server PostgreSQL yang lalu secara misterius tiba-tiba mati tanpa laporan apa-apa di log—alias crash. Sebagian yang lain melaporkan diskonek secara acak. Dan sebagian lagi mengeluhkan kurang memuaskannya kinerja PostgreSQL. Bahkan ada pemakai yang membelot ke MySQL. Periode ini merupakan saat-saat yang cukup mengkhawatirkan bagi popularitas PostgreSQL. Contohnya, lihat
[You must be registered and logged in to see this link.] di mana Tim Perdue menceritakan bahwa di tahun 1999, ia terpaksa beralih ke MySQL dalam membangun SourceForge. Kinerja PostgreSQL terlalu berbeda dengan MySQL sehingga mau tak mau pengguna setia PostgreSQL ini harus berganti database.
Versi 6.5 menurut pengembang PostgreSQL merupakan babak baru pemahaman mereka terhadap keseluruhan source code PostgreSQL. Versi ini juga merupakan versi perbaikan bug yang penting; ada banyak bug seperti berbagai kasus crash, kebocoran memori, dan kejanggalan/kekurangan pada sintaks SQL-nya diperbaiki. Selain itu, di versi 6.5 ditambahkan MVCC oleh Vadim, yang berpotensi meningkatkan kinerja PostgreSQL secara signifikan. MVCC, atau Multi Version Concurrency Control, serupa dengan InnoDB pada MySQL dalam hal memberikan kemampuan PostgreSQL memperlihatkan lebih dari satu versi tampilan data bagi klien. Perubahan data yang dibuat oleh klien yang sedang melakukan transaksi tidak akan terlihat dulu oleh klien lain sebelum transaksi dicommit. Ini menghindari locking yang tidak perlu.
Versi 6.5.x (1999, seri terakhir dari 6.x) cukup berhasil dan memuaskan bagi para pemakainya. Namun masih ada beberapa kekurangan PostgreSQL yang dirasakan mengganjal bagi banyak orang. Kekurangan-kekurangan ini lambat laun diperbaiki di seri 7.x, dan menurut Bruce Momjian, di seri 7.3 ia berharap PostgreSQL akan sepenuhnya layak dan sebanding dengan database komersial dalam hal fitur penting. Satu keterbatasan yang paling menyebalkan yaitu ukuran data maksimum sebuah field hanya 8–32KB. Ini menyebabkan orang sulit menyimpan teks panjang atau gambar di dalam database. Keterbatasan ini akhirnya dihapuskan di 7.1. Penambahan penting lainnya antara lain foreign key constraint (ditambahkan di 7.0), write-ahead logging untuk peningkatan keamanan dan kinerja (7.1), serta OUTER JOIN. Masih ada lagi fitur seperti replikasi yang rencananya akan ditambahkan setelah 7.2.
Pengguna setia PostgreSQL boleh berbangga dengan seri 7.x. Di seri ini PostgreSQL mulai menantang dan bahkan mengungguli MySQL dalam hal kecepatan, terutama di query-query kompleks dan pada kondisi load tinggi. Dalam artikelnya Tim Perdue melaporkan hasil benchmark MySQL 3.23 dan PostgreSQL 7.0 dan kesimpulannya adalah: PostgreSQL memang telah menjadi semakin baik. Dan kecepatannya cukup mengagumkan. Stabil pula.
Versi terbaru PostgreSQL saat artikel ini ditulis yaitu 7.2 (dirilis Februari lalu). PostgreSQL dikembangkan dengan siklus rilis sekitar 4 bulan, jadi kita bisa mengharapkan rilis berikutnya sekitar bulan Juni 2002. Hingga sekarang, di antara pengembang inti PostgreSQL yang paling aktif antara lain Thomas, Vadim, Tom Lane (AS), Tatsuo Ishii (Jepang), Hiroshi Inoue (Jepang), Philip Warner (Australia), dan Bruce Momjian (AS).
Fitur OO PostgreSQL
Yang membedakan PostgreSQL dan MySQL adalah kemampuan OO. Di PostgreSQL, kita dapat mendefinisikan sebuah tabel yang mewarisi definisi tabel lain. Misalnya, ada tabel Karyawan yang memiliki field partyId dan currentSalary. Kita dapat mendefinisikan tabel KaryawanDivisiA dengan hanya mendefinisikan field tambahan postId dan ditambah klausa SQL INHERITS (Karyawan). Field-field lain akan otomatis diambil dari tabel induknya, Karyawan. Bukan tabel saja, tipe data baru pun dapat didefinisikan. Dan uniknya, PostgreSQL pun memiliki tipe data geometri (seperti titik, garis, lingkaran, poligon) yang mungkin berguna bagi aplikasi ilmiah tertentu. Satu lagi, anehnya, PostgreSQL memberikan kita kemampuan mendefinisikan sebuah field sebagai array. MySQL mungkin tidak akan memiliki semua ini dalam waktu dekat.
Dari segi kekayaan SQL, para pengembang database mungkin akan lebih tergiur. PostgreSQL memiliki hampir semua fasilitas standar yang biasanya diinginkan: view (tabel virtual), trigger, subselek, stored procedure (dalam beberapa bahasa), dan foreign key constraint. PostgreSQL juga memiliki apa yang disebut rule, yaitu tindakan custom yang bisa kita definisikan dieksekusi saat sebuah tabel di-INSERT, UPDATE, atau DELETE. Sistem rule ini memungkinkan kita mengendalikan bagaimana data kita diubah atau diambil. Misalnya, kita dapat membuat sebuah tabel mernjadi bersifat append-only dengan membuat rule yang membatalkan efek DELETE dan UPDATE. Atau kita bisa melakukan pengecekan data sebelum terjadinya perubahan pada tabel. Atau melindungi row tertentu agar tidak bisa diambil datanya, dsb. Rule ini dipakai untuk mengimplementasi view. Meski begitu mungkin Anda perlu menghindari menggunakan rule secara eksplisit karena fasilitas ini tidak ada dalam standar (SQL92).
Lebih jauh mengenai perbandingan MySQL dan PostgreSQL bisa dilihat di artikel mwmag MySQL vs PostgreSQL.
Bisnis Database Open Source Juga
Keluarga Ingres/Postgres telah melahirkan beberapa perusahaan penjual produk komersial yang sukses—meski saat ini semua perusahaan tersebut telah dimakan oleh raksasa IBM/Microsoft dan CA. Lisensi Ingres/Postgres/Postgres95/PostgreSQL memang sejak dulu amat liberal, ala BSD. Artinya, dibandingkan dengan GPL yang mewajibkan produk turunan menjadi GPL pula, maka lisensi Postgres membolehkan kita memakai produk tersebut untuk tujuan apa pun, termasuk mengemas dan menjualnya sebagai produk komersial yang closed-source. Syaratnya hanya dua: pertama, nama penulis aslinya tetap disebutkan; dan kedua, pengembang awal—termasuk University of California, Berkeley—dibebaskan dari segala tanggung jawab yang terjadi akibat penggunaan software.
Di awal tahun 2000, sebuah perusahaan bernama Landmark Communications Inc. di Amerika mendirikan Great Bridge, yang bertujuan mengembangkan sebuah versi PostgreSQL komersial untuk dijual. Great Bridge merekrut Bruce Momjian menjadi wakil presiden di perusahaan tersebut. Selain itu dua pengembang inti PostgreSQL lainnya juga ikut bergabung. Total tim sekitar 25 orang.
Gerakan ini diikuti sekitar satu tahun kemudian oleh Red Hat, distributor Linux terbesar. Sebelumnya Frank Batten, salah satu investor di Red Hat dan yang lalu menjadi komisaris di Great Bridge, telah menyarankan agar Red Hat memasuki pasar database sejak akhir 1999. Namun waktu itu Red Hat memutuskan untuk tidak masuk ke dalam persaingan dengan Oracle dan IBM, sehingga akhirnya Frank pun keluar. Namun bulan Juni 2001, Red Hat menyatakan akan meluncurkan produk dan solusi database open source. Database yang akan dipakai masih dirahasiakan ketika itu, tapi banyak yang sudah bisa menebak bahwa PostgreSQL-lah yang akan dipakai. Dan benar, sebelumnya memang Red Hat sudah sempat menghubungi Great Bridge untuk mendiskusikan kemungkinan kerja sama (Red Hat mensubkontrak Great Bridge). Namun perundingan gagal, dan Red Hat akhirnya membentuk tim sendiri di bawah tajuk Red Hat Database Project. Tujuannya, ikut mengembangkan PostgreSQL dan menawarkan solusi database open source komersial.
Sayangnya, komersialisasi database open source nampaknya tidak, atau belum, berhasil. Setelah 16 bulan beroperasi dan tidak menghasilkan pemasukan yang memadai, akhirnya pada bulan September 2001 Great Bridge tutup. Ini menunjukkan kembali bahwa pasar database adalah pasar yang konvensional, yang belum akan mengadopsi sesuatu yang baru secara cepat. Bukan berarti database open source tidak bisa dikomersilkan, hanya saja. Dan bukan berarti PostgreSQL gagal secara komersial. Produk ini sudah¬ dipakai secara meluas di industri; hanya saja, untuk masuk ke pasar komersial dibutuhkan waktu dan kesabaran. Masih ada Red Hat dengan RHDB-nya, kita masih menunggu bagaimana prospek usaha tersebut.
Interbase
Para pembaca yang suka menggunakan Delphi mungkin tidak asing lagi dengan Interbase. Ya, produk Borland yang satu ini memang dekat dengan Delphi, karena menjadi database default dan disertakan bersama dalam satu distribusi. Delphi amat popular di Eropa, dan banyak dipakai untuk membuat aplikasi-aplikasi perbankan dan bisnis. Untuk banyak aplikasi tersebut—besar, menengah, maupun kecil—Interbase-lah yang diserahi tanggung jawab menyimpan dan mengelola datanya. Bahkan perusahaan sebesar Motorola, Boeing, dan MCI juga merupakan pemakai Interbase. Jadi dari sini Anda sudah bisa melihat bukti bahwa Interbase memang andal dan stabil. Fokus pengembangan Interbase adalah pada kesederhanaan, terutama bagi pemakai akhir dan pengembang aplikasi.
Seperti rekan-rekan pendahulunya MySQL dan PostgreSQL—saya sebut pendahulu sebab Interbase baru masuk arena open source dalam dua tahun terakhir, dan itu pun akhirnya kandas (ceritanya sesaat lagi)—Interbase pun punya sejarah panjang yang dimulai dari era pra-Intel/PC. Situs firebird.sourceforge.net mengisahkan lika-liku perjalanan Interbase dari awal hingga sekarang, tapi berikut ini saya sarikan dalam lima paragraf.
Tersebutlah tiga orang bernama Jim Starkey, Don DePalma, dan Ann Harrison, yang pada tahun 1984 mendirikan Groton Database Systems. Sebelumnya mereka bertiga adalah karyawan DEC (alias Digital Equipment Corporation, yang pada 1997 akhirnya dibeli oleh Compaq) dan terlibat dalam sebuah proyek database relasional bernama Rdb. Arsitektur database Interbase sendiri memang didasarkan pada Rdb. Interbase berjalan di platform Apollo, kodenya ekstensibel dan portabel.
Dua tahun kemudian, para pendiri Groton menjual sahamnya kepada Ashton-Tate (ingat dBase III+, yang sempat merajai pasar database PC sebelum era client-server?). Ashton-Tate terlibat juga dalam kepemilikan saham perusahaan database lain yaitu Sybase. Di masa ini, karena campur tangan Ashton-Tate, pengembangan Interbase tidak berjalan dengan baik.
Pada tahun 1992, Borland membeli Ashton-Tate dan memperoleh kode Interbase versi 3. Untunglah, di bawah perusahaan yang berbasis di Silicon Valley ini, Interbase seperti mendapatkan denyut jantung kehidupan yang baru. Di bawah kendali Borland, Interbase mendapatkan tambahan fitur antara lain stored procedure dan port Windows (sebelumnya Interbase hanya berjalan terutama di Unix). Interbase juga segera dikemas bersama Delphi dan produk RAD lainnya. Hingga tiba pada Interbase v5.5.
Apa boleh dikata, memang sulit menjadi lawan main sebuah perusahaan sebesar Microsoft. Dalam kebingungannya, Borland sempat berusaha mengganti fokus, beralih nama menjadi Inprise, lalu menjadi Inprise/Borland, lalu kembali lagi memeluk nama semula Borland sekitar satu tahun kemudian. Salah satu langkah lain setengah bimbang dan putus asa yang dilakukan Borland yaitu melepas Interbase 6.0 sebagai produk open source, dengan tujuan mengurangi beban gaji karyawan dan barangkali juga untuk masuk ke pasar baru Linux dan open source (Pertarungan di Windows terlalu berat dan melelahkan!) Borland juga berjanji akan mendirikan satu perusahaan baru sebagai pendukung Interbase open source ini.
Sayangnya, semua ini tidak berjalan mulus. Pertama, tim pengembang Interbase semula tidaklah menyukai keputusan Borland ini. Ini secara cukup dramatis ditunjukkan ketika manajer proyeknya, Bill Karwin, mengundurkan diri dari divisi Interbase. Ann Harrison sendiri, yang masih terlibat dalam pengembangan Interbase, merasa bahwa komunitas pengguna Interbase perlu memiliki wadah resource yang dapat diandalkan. Perlu diketahui bahwa inisiatif open source Borland sendiri akhirnya tidak jalan, karena nampaknya Borland (saat itu masih menyandang nama Inprise) kembali berubah pikiran dan ingin masuk ke bisnis database lagi. Benar saja, Interbase versi 6.5 kembali jadi produk closed-source dan komersial. Apa yang akan terjadi dengan Interbase 6.0?
Firebird
Berdirilah grup IBPhoenix yang diprakarsai oleh Ann dan Paul Beach, yang terakhir menjabat sebagai GM unit bisnis divisi Interbase di Borland. Grup ini menyediakan layanan support Interbase dan berdedikasi terus memperbaiki Interbase open source. Dan lahir pulalah proyek baru yang merupakan fork Interbase, bernama Firebird. Firebird adalah proyek yang bermula dari source code Interbase 6.0 namun dikembangkan oleh para pengembang di luar Borland. Keduanya masih memiliki banyak persamaan hingga sekarang, namun sejak versi 6.0 dan seterusnya keduanya akan berjalan masing-masing. Saat ini bisa dikatakan bahwa Interbase open source = Firebird, dan Interbase semula (milik Borland) telah menjadi produk komersial lagi.
Firebird dirilis dengan lisensi IPL yang serupa dengan GPL. Anda diperbolehkan melihat dan memodifikasi source codenya, tapi dengan catatan perubahan tersebut harus juga dirilis dengan source code di bawah lisensi yang sama.
Fitur dan Stabilitas
Interbase adalah sebuah produk database yang matang, terbukti stabil, dan telah malang-melintang di industri selama belasan tahun. Interbase juga tersedia di Windows maupun Unix. Semua fitur standar yang Anda perlukan dimilikinya: view, stored procedure, trigger, dan dukungan SQL yang cukup kuat. Bahkan IBPhoenix mengatakan MySQL dan PostgreSQL belumlah jadi database tingkat komersial seperti Interbase. Meskipun demikian, Interbase belum tentu cocok bagi aplikasi Web Anda, karena pemakaian resource dan overhead koneksinya relatif lebih tinggi.
SAP DB
Database open source relasional keempat yang penting disebutkan adalah SAP DB. Database ini tidak begitu popular di Web, karena tidak terlalu cocok untuk aplikasi kecil hingga menengah. Namun jika Anda mencari database yang skalabel mendukung jumlah data dan kompleksitas yang tinggi, SAP menjanjikan database yang satu ini tidak akan mengecewakan.
Seperti kita ketahui, SAP AG (kepanjangan: Systems, Applications, and Products in Data Processing), berbasis di Jerman, adalah perusahaan ERP terbesar di dunia. Perusahaan-perusahaan besar internasional menggunakan produk SAP R/3 untuk mengelola proses bisnis mereka. SAP R/3 ini adalah sebuah produk yang besar dan kompleks. Meskipun arsitekturnya menggunakan database tunggal—karena inilah konsep dasar SAP R/3: satu database untuk satu perusahaan—namun jumlah tabelnya mencapai lebih dari 8000 buah. Pada umumnya database yang digunakan oleh SAP R/3 adalah Oracle, namun untuk menekan ongkos total implementasi SAP R/3 bagi sebagian klien, akhirnya SAP mengembangkan sendiri databasenya.
Tidak dari nol, tentu saja, karena itu akan membutuhkan waktu yang terlampau lama. Melainkan, SAP melisensi produk ADABAS yang dibuat oleh perusahaan Jerman juga, Software AG. ADABAS sendiri cikal bakalnya sudah ada sejak tahun 1977, sejak menjadi proyek riset di sebuah universitas di Berlin. Kode hasil proyek ini dikomersilkan menjadi produk DDB/4 oleh Nixdorf Computer AG. Nixdorf dibeli oleh Siemens beberapa tahun kemudian, dan Siemens melisensi database ini kepada Software AG. Maka jadilah ADABAS-D. Hingga saat ini, menurut SAP, ada lebih dari 100 pengembang yang mengerjakan SAP DB.
Sekitar setahun yang lalu, SAP memutuskan untuk melepas source code SAP DB 7.2. Dengan ini maka bertambah lagilah satu alternatif. Yang menarik dari SAP DB adalah skalabilitas dan fitur-fiturnya untuk menangani aplikasi kompleks, buktinya: SAP DB mampu digunakan untuk aplikasi sekompleks SAP R/3. Beberapa fitur yang tidak dimiliki MySQL dan PostgreSQL misalnya, yaitu view yang dapat di-UPDATE, tidak sekedar di-SELECT. Sama seperti PostgreSQL, SAP DB juga memiliki fitur OO. Kalau MySQL baru merencanakan HotBackup pada InnoDB, maka SAP telah memiliki fitur online backup ini. Seperti halnya Interbase, SAP DB pun dilengkapi dengan tool-tool grafis. Satu-satunya alasan utama untuk tidak menggunakan SAP DB barangkali karena komunitasnya jauh lebih kecil dibandingkan MySQL dan PostgreSQL.
SAP DB dirilis di bawah lisensi GPL.
Database Lain
Empat database yang telah dibahas sebelumnya ini secara umum menjadi pilihan utama kebanyakan orang. Namun nasih ada beberapa database open source yang ada di luar sana dan akan saya sebutkan sebagian di antaranya satu persatu.
GNU SQL. Inilah proyek database dari GNU, superproyek yang bertujuan akhir membentuk sistem operasi lengkap yang sepenuhnya dibangun dari software bebas (GPL). Banyak software yang dikembangkan GNU berhasil menjadi popular. Di antaranya adalah gcc (kompiler C), bash (shell Unix), emacs (editor teks), dan GNOME (lingkungan GUI untuk Unix). Ada juga beberapa yang gagal atau terhenti. GNU SQL boleh dibilang masuk ke dalam kategori kedua. Produk ini tidak pernah popular dan pengembangannya telah tertunda/berhenti sama sekali tahun-tahun terakhir ini. Tujuan proyek GNU SQL adalah untuk membuat server database yang portabel dan mendukung dialek SQL89–SQL92 (sebagian). Tidak ada alasan bagi Anda untuk menggunakan database ini, kecuali untuk bermain-main atau jika Anda berminat terlibat dalam pengembangannya.
[You must be registered and logged in to see this link.] mSQL. Alias “mini-SQL”. Produk ini bermula dari tesis doktoral seorang mahasiswa di Australia bernama David Hughes di awal 1990-an. Meski hingga saat ini mSQL tidaklah berkembang dari segi tim, fitur, maupun skalabilitas—bagaikan anak kecil yang tidak lagi tumbuh menjadi dewasa—namun produk ini sempat berjasa, antara lain karena mendorong Michael Widenius mengembangkan MySQL. Kala itu memang tidak ada database SQL gratis yang tersedia. Postgres sudah ada, tapi belum memiliki bahasa SQL.
[You must be registered and logged in to see this link.]Gadfly. Sebuah database SQL in-memory yang diimplementasi dalam Python. Bukan untuk keperluan generik memang, tapi lebih untuk diembed dan mengolah data aplikasi yang muat seluruhnya di memori. Uniknya, meskipun kecil tapi Gadfly mendukung cukup banyak subset SQL dan juga memiliki fitur transaksi. Sekarang tidak lagi dikembangkan secara aktif. Barangkali karena sedikit penggunanya.
[You must be registered and logged in to see this link.]ArunaDB. Kalau Python punya Gadfly, bahasa skripting Ruby pun punya ArunaDB. ArunaDB direncanakan akan menjadi database yang cukup generik dan memiliki fitur-fitur dari transaksi hingga view, dari trigger hingga stored procedure (yang akan Anda tulis dalam Ruby, tentu saja). Hingga artikel proyek ini belum rampung.
[You must be registered and logged in to see this link.]Database Non-SQL
Kalau kita melihat keluar konteks database relasional, maka pilihan yang akan Anda dapatkan lebih banyak lagi. Mulai dari mesin persistensi, database objek (meski tidak terlalu banyak pilihan untuk yang ini), hingga database khusus. Berikut ini saya sebutkan beberapa yang [setidaknya menurut pandangan saya] menarik untuk dilihat:
BerkeleyDB. Meskipun mungkin tidak sefamiliar di telinga kita seperti halnya MySQL atau PostgreSQL, tapi database ini punya track record yang cukup banyak, seperti dipakai oleh BIND (software name server paling dominan di Internet), Sendmail (mail server yang juga paling banyak ada di Internet hingga saat ini), dan juga oleh perusahaan dari mulai Amazon hingga Netscape hingga Motorola. Sleepycat, perusahaan vendor BerkeleyDB, dengan bangga menyebut produknya: “database yang ada di mana-mana.” Ingat bahwa MySQL pun memakai BerkeleyDB untuk mendapatkan kemampuan transaksi pertamanya. BerkeleyDB, atau BDB singkatnya, adalah sebuah library database yang ringan, dengan tujuan utama untuk diembed di dalam aplikasi lain. Dengan library ini, sebuah aplikasi dapat menangani data berukuran besar lengkap dengan kemampuan transaksi. Hingga kini BDB didistribusikan dengan lisensi ganda (seperti halnya MySQL dulu). Penggunaan komersial harus bayar, sementara nonkomersial tidak. Tapi jika aplikasi kita tidak melink BDB secara statik, maka kita tidak diwajibkan membayar.
[You must be registered and logged in to see this link.] Keluarga DBM (gdbm, ndbm, sdbm). Jika Anda membutuhkan hash table yang disimpan di disk, maka sejak dahulu telah tersedia library DBM di Unix. Yang paling banyak digunakan sekarang adalah gdbm dari GNU. Sebagai pemakai akhir mungkin kita jarang berurusan dengan library ini, karena dbm umumnya dipakai sebagai backend oleh aplikasi lain. Sebutlah htdig (full text indexer dan search engine) misalnya, atau praktis berbagai aplikasi lain yang ingin melakukan lookup tabel secara cepat (mis: Apache, Postfix, Squid, database lain, dsb).
[You must be registered and logged in to see this link.]rdfDB. Sebuah proyek menarik oleh mantan CTO Epinions.com. Tujuan database ini yaitu untuk menyimpan data graph yang nanti dapat diekstrak melalui bahasa query mirip SQL. Backendnya saat ini menggunakan DBM.
[You must be registered and logged in to see this link.]FastDB. Library lain untuk mengolah in-memory database, tapi kali ini dalam C++.
[You must be registered and logged in to see this link.] ZODB. Sebuah mesin persistensi untuk Python.
[You must be registered and logged in to see this link.] Penutup
Sebuah produk database nampaknya membutuhkan kematangan dan waktu yang lama untuk diadopsi, karena para pengguna database seperti perusahaan lambat dan hati-hati dalam mengadopsi sesuatu yang baru—yang mana merupakan tindakan yang cukup tepat menimbang bahwa upgrade atau pergantian database memakan biaya serta berisiko besar. Katakanlah Oracle misalnya, yang mempunyai sejarah yang panjang sejak 1977 di platform komputer mini dan mainframe. Demikian juga DB2, yang memulai kehidupannya di mainframe dan barisan hardware IBM sendiri. Microsoft SQL Server memang relatif baru, tapi jangan lupa bahwa produk ini sebelumnya sudah ada dalam wujud Sybase.
Jika Anda melirik open source hari ini, setidaknya sudah ada empat RDBMS open source yang amat layak untuk dipertimbangkan: MySQL, PostgreSQL, Interbase (Firebird), dan SAP DB. Keempatnya bukan produk hari kemarin, melainkan telah dikembangkan sejak bertahun-tahun silam dan dipakai banyak orang. Keempatnya memiliki karakteristik yang berbeda, sehingga memberikan pilihan bagi Anda untuk menggunakan yang paling sesuai dengan kebutuhan. Di tingkat yang lebih low-level, ada BerkeleyDB yang telah terbukti keandalannya. Jika Anda pengguna Python, ZODB bisa jadi tool yang berguna untuk menyimpan objek-objek Anda. Jangan lupa juga Metakit, yang praktis untuk katalog atau data 2 dimensi yang sering berubah skemanya. Pendek kata, open source dapat memberi Anda solusi database sesuai kebutuhan. Pertanyaannya tinggallah: siapkah sumber daya manusia Anda mengelola sistem databasenya?