Open Source Data Base MySQL

Sekilas Tentang My-SQL (Open Source Data Base System)

mysql

My-SQL siapa tak kenal dia (bagi para IT atau Hobi komputansi) ? MySQL AB menyebut produknya sebagai database open source terpopuler didunia. 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 diplatform 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 belumatau 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 MySQLtidak 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 antar muka SQL untuk ditempelkan di atasnya. Mula-mula TcX memakai mSQL, atau “mini SQL”.

Barangkali mSQL adalah satu-satunya kode database open source yang tersedia dan cukup sederhana saat itu, meskipun sudah ada Postgres . 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 antar mukanya 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. Adalagi 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 prefik sini sering menjadi prefiks umum kalau seseorang membuat kode custom 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 dibawah 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 auto update, 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.

Informasi Lainnya: Aplikasi Design Grafis GIMP

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 diberbagai instalasi, mungkin hingga sekarang, sehingga MySQL AB tetap memberikan dukungan technical support untuk seri ini.

Kerikil Di Tengah Perjalanan MySQL

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 jutadolar 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 MySQLAdvantage” melanggar GPL. Ini ironis, karena perusahaan induknya Progress-lah yang setahun sebelumnya membantu MySQL menjadi GPL. Distribusi binary Nusphere ini megandung kode Gemini yang di link 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, namun usaha tersebut 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 “pengembang” 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. Oleh beberapa pihak keputusan akhir pengadilan akan sangat dinanti, karena jika MySQL AB menang maka supremasi dan validitas lisensi GPL akan benar-benar terbukti “dilapangan.” Ingin mengetahui lebih lanjut mengenai hal ini ? Coba lihat FAQ MySQL AB di http://www.mysql.com. Kalau ada waktu, kunjungi juga http://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. Dan hingga saat ini domain mysql.org telah diambil alih kembali oleh MySQL AB.


Informasi terkait lainnya:
Chat WhatsApp
WhatsApp