1 BAB 1 MYSQL 1.1 Pendahuluan 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”. 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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
BAB 1
MYSQL
1.1 Pendahuluan
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”.
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
antarmukanya mirip dengan mSQL tapi memiliki kemampuan yang lebih sesuai
kebutuhan. Lahirlah MySQL.
Nama MySQL (baca: mai es ki el) 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
2
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 (misal : 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 programmer 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
3
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.
1.2 Relational Database Management System (RDBMS)
MySQL adalah Relational Database Management System (RDBMS) yang
didistribusikan secara gratis dibawah lisensi GPL (General Public License). Dimana
setiap orang bebas untuk menggunakan MySQL, namun tidak boleh dijadikan produk
turunan yang bersifat komersial.
MySQL sebenarnya merupakan turunan salah satu konsep utama dalam
database sejak lama, yaitu SQL (Structured Query Language). SQL adalah sebuah
konsep pengoperasian database, terutama untuk pemilihan atau seleksi dan
pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah
secara otomatis.
Keandalan suatu sistem database (DBMS) dapat diketahui dari cara kerja
optimizer-nya dalam melakukan proses perintah-perintah SQL, yang dibuat oleh user
maupun program-program aplikasinya.
Sebagai database server, MySQL dapat dikatakan lebih unggul dibandingkan
database server lainnya dalam query data. Hal ini terbukti untuk query yang
dilakukan oleh single user, kecepatan query MySQL bisa sepuluh kali lebih cepat dari
PostgreSQL dan lima kali lebih cepat dibandingkan Interbase.
4
1.3 Fitur MySQL
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. 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. 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.
1.4 Keistimewaan MySQL
Sebagai database server yang memiliki konsep database modern, MySQL memiliki
banyak sekali keistimewaan. Berikut ini beberapa keistimewaan yang dimiliki oleh
MySQL, antara lain :
a. Portabilitas, MySQL dapat berjalan stabil pada berbagai sistem operasi seperti
Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih
banyak lagi.
b. Perangkat lunak sumber terbuka, MySQL didistribusikan sebagai perangkat
lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara
gratis.
5
c. Multi-user, MySQL dapat digunakan oleh beberapa pengguna dalam waktu
yang bersamaan tanpa mengalami masalah atau konflik.
d. Performance tuning, MySQL memiliki kecepatan yang menakjubkan dalam
menangani query sederhana, dengan kata lain dapat memproses lebih banyak
SQL per satuan waktu.
e. Ragam tipe data, MySQL memiliki ragam tipe data yang sangat kaya, seperti
signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-
lain.
f. Perintah dan Fungsi, MySQL memiliki operator dan fungsi secara penuh yang
mendukung perintah Select dan Where dalam perintah (query).
g. Keamanan, MySQL memiliki beberapa lapisan keamanan seperti level
subnetmask, nama host, dan izin akses user dengan sistem perizinan yang
mendetail serta sandi terenkripsi.
h. Skalabilitas dan Pembatasan, MySQL mampu menangani basis data dalam
skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu
tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung
mencapai 32 indeks pada tiap tabelnya.
i. Konektivitas, MySQL dapat melakukan koneksi dengan klien menggunakan
protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
j. Lokalisasi, MySQL dapat mendeteksi pesan kesalahan pada klien dengan
menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa
Indonesia belum termasuk di dalamnya.
k. Antar Muka, MySQL memiliki antar muka (interface) terhadap berbagai
aplikasi dan bahasa pemrograman dengan menggunakan fungsi API
(Application Programming Interface).
6
l. Klien dan Peralatan, MySQL dilengkapi dengan berbagai peralatan (tool) yang
dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang
ada disertakan petunjuk online.
m. Struktur tabel, MySQL memiliki struktur tabel yang lebih fleksibel dalam
menangani ALTER TABLE, dibandingkan basis data lainnya semacam
PostgreSQL ataupun Oracle.
Dengan keistimewaan di atas ada beberapa alasan yang menjadikan MySQL
sehingga sangat populer, diantaranya :
a. Bersifat free dan open source (FOSS).
b. Banyak digunakan di web hosting dengan paket yang sangat ekonomis.
c. Mendukung berbagai storage engine yang bisa kita ganti pada level table.
d. Memiliki komunitas pengguna yang luas dan saling membantu.
e. Besar dan luasnya komunitas pengembang / developer MySQL.
f. Waktu yang singkat dalam siklus pengembangan dan perbaikan kesalahan.
g. Arsitektur yang sangat baik dengan pilihan berbagai storage engine.
h. Kaya akan fitur dan utilitas baik dari komunitas maupun korporasi.
i. Memiliki support berbayar untuk pelanggan korporasi (corporate customers)
sehingga terjamin.
1.5 Ketentuan Memberi Perintah dalam MySQL
Seperti halnya dalam membuat setiap program kita harus terlebih dahulu mengetahui
ketentuan - ketentuan yang harus dibuat dalam memberi perintah kepada program
tersebut. Begitu halnya juga seperti MySQL, berikut ini merupakan beberapa
ketentuan dalam memberi perintah di MySQL :
a. Setiap perintah harus diakhiri dengan tanda titik koma (;) atau dengan
memberikan perintah \g atau \G. Namun, pada umumnya user menggunakan
tanda titik koma untuk mengakhiri perintah pada MySQL.
7
b. Setiap perintah akan disimpan dalam buffer (memori sementara) untuk
menyimpan histori perintah-perintah yang pernah diberikan.
c. Perintah-perintah yang bukan SQL dapat dipendekkan dengan menggunakan \
dan huruf depan perintah.
d. Perintah help atau \h digunakan untuk menampilkan daftar dan aturan
memberikan perintah di lingkungan MySQL.
e. Perintah-perintah dalam lingkungan MySQL tidak menerapkan aturan case
sensitive, tetapi case insensitive yaitu perintah bisa dituliskan dalam huruf
besar atau pun huruf kecil.
f. Aturan case sensitive diterapkan pada penamaan objek-objek dalam database
seperti nama database atau nama table, namun aturan ini hanya ada dalam
lingkungan Unix dan Linux.
g. Untuk melihat perintah-perintah yang sudah pernah kita ketikkan, tekan
tombol tanda panah atas.
1.6 Bahasa Pemrograman
Terdapat beberapa API (Application Programming Interface) tersedia yang
memungkinkan aplikasi-aplikasi komputer yang ditulis dalam berbagai bahasa
pemrograman untuk dapat mengakses basis data MySQL.
Beberapa aplikasi komputer tersebut antara lain: bahasa pemrograman C, C++,
C#, bahasa pemrograman Eiffel, bahasa pemrograman Smalltalk, bahasa
pemrograman Java, bahasa pemrograman Lisp, Perl, PHP, bahasa pemrograman