MySQL adalah sebuah perangkat lunak Pembuat database yang
bersifat terbuka atau open source dan berjalan disemua platform baik Linux
maupun Si Windows, MySQL merupakan program pengakses database yang
bersifat network sehingga dapat digunakan untuk aplikasi Multi User (Pengguna
Banyak).
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 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.
Beberapa
alasan yang menjadikan MySQL sangat populer adalah :
- Bersifat
free dan open source (FOSS).
- Banyak
digunakan di web hosting dengan paket yang sangat ekonomis.
- Mendukung
berbagai storage engine yang bisa kita ganti pada level table.
- Memiliki
komunitas pengguna yang luas dan saling membantu.
- Besar
dan luasnya komunitas pengembang / developer MySQL.
- Waktu
yang relatif singkat dalam siklus pengembangan dan perbaikan kesalahan.
- Arsitektur
yang sangat baik dengan pilihan berbagai storage engine.
- Kaya
akan fitur dan utilitas baik dari komunitas maupun korporasi.
- Memiliki
support berbayar untuk pelanggan korporasi (corporate
customers) sehingga terjamin.
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.
MySQL adalah sebuah perangkat lunak sistem
manajemen basis data SQL (bahasa Inggris: database
management system) atau DBMS yang multithread, multi-user, dengan
sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual
dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok
dengan penggunaan GPL.
Tidak sama dengan proyek-proyek seperti Apache, dimana
perangkat lunak dikembangkan oleh komunitas umum, dan hak cipta untuk kode
sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori
oleh sebuah perusahaan komersial Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode
sumbernya.
Perkembangan MySQL
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.
Kemudian ahirlah 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.
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 di versi-versi akhir seri 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,
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 hingga sekarang, sehingga MySQL AB tetap memberikan dukungan
technical support untuk seri ini.
Setelah itu, pada bula Agustus 2002,
Muncullah MySQL versi 4.0 beta yang dirilis pada bulan Maret 2003, lalu versi
4.0 beta dikembangkan menjadi versi 4.1 beta yang dirilis pada bulan juni 2004.
Kemudian pada bulan maret 2005 muncullah MySQL versi 5.0 telah dirilis. Bahkan
MySQL AB memberikan embelembel recommended pada MySQL 5.0 yang akhirnya
diperbarui menjadi MySQL versi 5.1 Versi 5.1 saat ini sedang dalam tahap re
produksi sejak November 2005. Versi 5.1 saat ini sedang dalam tahap re produksi
sejak November 2005 dan terus dilakukan pengembangan hingga sekarang ini
Kelebihan
dan Kekurangan dari My SQL
Kelebihan :
- Dapat bekerja di beberapa
platform yang berbeda seperti LINUX, Windows, MacOS, FreeBSD, Solaris,
dll.
- Dapat dikoneksikan pada bahasa
C, C++, Java , Perl, PHP, dan Python.
- Mempunyai lebih banyak tipe
data seperti : signed/unsigned integer yang memiliki panjang data sebesar
1,2,3,4 dan 8 byte. FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME,
DATETIME, TIMESTAMP, YEAR, SET, dan tipe ENUM.
- Mendukung penuh terhadap
kalimat SQL GROUP BY dan ORDER BY . Mendukung terhadap fungsi penuh (
COUNT ( ), COUNT(DISTINCT), AVG( ), STD ( ), SUM ( ), MAX ( ), AND MIN ( )
).
- Mendukung terhadap LEFT OUTHER
JOIN dengan ANSI SQL dan sintak ODBC.
- Mendukung ODBC for windows 95'
(dengan source program). Semua fungsi ODBC 2.5 dan sebagainya. Sebagai
contoh kita dapat menggunakan Access untuk connect ke MySQL server.
- Menggunakan GNU automake,
autoconf, dan LIBTOOL untuk portabilitas.
- Kita dapat menggabungkan
beberapa table dari database yang berbeda dalam query yang sama. Structure
table MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani
ALTER TABLE dibandingkan DBMS lainnya.
- Ditulis dengan menggunakan
bahasa C dan C++. Diuji oleh compiler yang sangat jauh berbeda.
- Privilege (hak) dan password
sangat fleksibel dan aman serta mengijinkan "Host-Based" Verifikasi.
Memiliki beberapa lapisan keamanan , seperti subnet mask, nama host, dan
izin akses user dengan sistem perijinan yang mendetail serta
sandi/password terenkripsi.
- Program dapat running di semua
OS,PHP MySQL berjalan secara web base, itu artinya semua operating system
yang memiliki web browser dapat menggunakan aplikasi ini, dan semua OS
tentu saja selalu memiliki web browser, Windows dengan internet explorer,
Linux dengan Mozilla, Macintosh dengan safari, dan handphone dengan opera
mini. Sangat mobile dan flexibel.
- Sangat cocok dan mudah
diterapkan pada komputer berjaringan , program PHP MySQL cukup diinstall
di salah satu komputer pada jaringan yang dalam hal ini adalah komputer
server, pada komputer client, kita tidak usah menginstalasikan program apapun
lagi. Pada komputer client kita cukup mengarahkan web browser ke komputer
server dan program dapat langsung running, apabila program error(walau
kemungkinan sangat kecil sekali) program cukup di maintenance di pihak
komputer server yang terinstalasikan program tanpa harus memaintenance
komputer client juga. sangat mudah dan simple.
- Tidak ada virus yang
menginfeksi program PHP, sampai saat ini program PHP belum dapat diinfeksi
virus, kebanyakan virus menginfeksi file berekstensi *.exe dan *.dll,
sangat awet dan aman.
- Sangat stabil disemua operating
system program PHP walau dipakai dalamwaktu yang sangat lama tidak akan
memberatkan sistem dan tidak akan mempengaruhi komputer untuk berjalan
sangat lambat, sangat cocok diterapkan pada komputer yang selalu nyala 24
jam
- Sangat multi user, program PHP
tidak akan bentrok dengan pengguna lain yang sama-sama menggunakan program
dalam satu jaringan karena MySQL merupakan turunan dari konsep SQLMulti
user
- Merupakan DBMS yang gratis/open
source berlisensi GPL (Generic Public License).
- Cocok untuk perusahaan dengan
skala yang kecil.
- Tidak membutuhkan spesifikasi
hardware yang tinggi untuk bisa menjalankan MySQL ini bahkan dengan
spesifikasi hardware yang minimal sekalipun.
- MySQL dapat melakukan
koneksidengan komputer client menggunakan protokol TCP/IP, Unix Socket
(UNIX), atau Named Pipes(Windows NT).
- MySQL memiliki antar
muka/interface terhadap berbagai aplikasi dan bahasa pemrograman dengan
menggunakan fungsi API (Application progamming interface).
- Command and function MySQL
memiliki fungsi dan operator secara penuh yang mendukung perintah select
dan where dalam query.
Kekurangan :
- Untuk koneksi kebahasa
pemrograman visual seperti VB(Virus Basic), delphi, dan foxpro, MySQL
kurang support, karena koneksi ini menyebabkan field yang dibaca harus
sesuai dengan koneksi dari program visual tersebut, dan ini yang
menyebabkan MySQL jarang dipakai dalam program visual.
- Data yang ditangani belum
begitu besar. Tidak cocok baik menyimpan data maupun untuk memproses data.
- Program hanya dapat running di
windows. Itupun untuk windows lama,untuk windows terbaru seperti
Vista,Visual Basic sangat tidak stabil berjalan di platform
tersebut,banyak kantor yang dapat menghubungkan laptop pegawai mereka
untuk bergabung dalam sistem jaringan kantor.Bagaimana untuk pengguna
Macintosh maupun Linux? Program tidak dapat dijalankan di laptop mereka.
Walaupun bisa, program harus diinstall terlebih dahulu menggunakan
emulator.
- Tidak Praktis apabila
diterapkan pada jaringan komputer. Itu dikarenakan VB program yang berdiri
sendiri yang berarti harus diinstalasikan pada tiap komputer pada jaringan
tersebut. Bayangkan apabila ada puluhan komputer? ada berapa lama waktu
untuk instalasi dan pemeliharaannya?
- Aplikasi yang rentan terkena
virus, program yang dibuat menggunakan Visual Basic adalah berupa
execution program(*.exe) yang dapat terinfeksi virus seperti virus Sality,
program menjadi rusak dan tidak bisa dijalankan. apabila program
terinfeksi tersebut di scan oleh antivirus, program akan dihapus dari
sistem, sangat tidak aman untuk sebuah program yang menjadi tulang
punggung perusahaan.
- Mudah hang dan crash, program
dari VB seringkali menjadi not responding lalu mati tiba-tiba.
- Tidak multi user, apabila dalam
satu jaringan komputer menggunakan program dalam satu waktu, salah satu
user harus mengalah sampai user yang lain selesai menggunakan program.
- Memiliki keterbatasan kemampuan
kinerja dalam server ketika data yang disimpan telah melebihi batas
maksimal kemampuan daya tampung server karena tidak menerapkan konsep
Technology Cluster Server.
Keistimewaan MySQL
MySQL
memiliki beberapa keistimewaan, antara lain :
- Portabilitas. MySQL dapat berjalan stabil
pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X
Server, Solaris, Amiga, dan masih banyak lagi.
- Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai
perangkat lunak sumber terbuka, dibawah lisensi GPL
sehingga dapat digunakan secara gratis.
- Multi-user. MySQL dapat digunakan oleh
beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau
konflik.
- 'Performance tuning',
MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana,
dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
- Ragam tipe data. MySQL memiliki ragam tipe
data yang sangat kaya, seperti signed / unsigned integer, float, double,
char, text, date, timestamp, dan lain-lain.
- Perintah dan Fungsi. MySQL memiliki operator dan
fungsi secara penuh yang mendukung perintah Select dan Where dalam
perintah (query).
- Keamanan. MySQL memiliki beberapa
lapisan keamanan seperti level subnetmask, nama host, dan
izin akses user dengan sistem perizinan yang mendetail serta sandi
terenkripsi.
- 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.
- Konektivitas. MySQL dapat melakukan koneksi
dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
- Lokalisasi. MySQL dapat mendeteksi pesan
kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski
pun demikian, bahasa Indonesia belum termasuk di dalamnya.
- Antar Muka. MySQL memiliki antar muka
(interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan
menggunakan fungsi API (Application Programming
Interface).
- 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.
- Struktur tabel. MySQL memiliki struktur tabel
yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data
lainnya semacam PostgreSQL ataupun Oracle.
Menggunakan MySQL Lewat DOS
Untuk
menggunakan DOS Silahkah masuk dulu ke Command Prompt, caranya tekan kombinasi
Windows+R (RUN) setelah itu ketik perintah cmd
setelah itu
masuk ke folder XAMPP/MYSQL/BIN, misalnya paket xampp terinstall di c:\program files\xampp\
maka masukan perintah :
CD
C:\Program Files\Xampp\Mysql\Bin tekan [enter]
Jika sudah
berhasil maka langkah berikutnya adalah koneksi atau masuk ke dalam
mysql.
Perintah :
Mysql –u nama_user_mysql –h host_database_MYSQL –p
[enter]
Contoh :
Mysql –u
root –h localhost –p [enter]
Password :
[biasanya kosong, kemudian enter]
kemudian
command prompt berubah menjadi MYSQL> seperti tanda gambar di atas.
[ bagaimana
mudah kan ]
ketika sudah terkoneksi dengan mysql maka perintah-perintah yang dapat
dilakukan hanya perintah-perintah cmd mysql saja, bukan lagi perintah cmd
windows seperti cd, dir dan lain-lain.
Setiap perintah dalam cmd harus diakhir dengan tandan titik koma (;) kemudian
tekan enter, adapun perintah-perintah dalam cmd mysql :
Membuat Database
- create
database nama_database; [enter]
Menghapus Database :
- b -
drop database nama_database; [enter]
Melihat database yang ada :
-
- show databases; [enter]
Mengaktifkan
Database :
- - use nama_database ; [enter]
catatan :
ketika
database sudah aktif maka otomatis ketika kita membuat table, menghapus table,
mengisi data table, melihat table SECARA DEFAULT (standar) mengacu pada
database yang telah di aktifkan tadi
Melihat Tabel dalam database yang telah diaktifkan :
- show
tables ; [enter]
Penggunaan MySQL
Ada banyak cara menggunakan mysql, bisa lewat command prompt (DOS), lewat
PHPMyAdmin, Navicat, MySQL FRONT.
Jangan bingung dengan nama-nama program di atas, karena itu hanya nama saja
inti dari keseluruhan program di atas sama yaitu Software untuk Manajemen
Database MySQL.
Sekarang tergantung temen-temen sukanya nanti untuk manajemen database
MYSQL pake yang mana? Lewat DOS, PHP-MY-ADMIN, Navicat, MySQL FRONT atau apa…
Dan masih banyak lagi program-program yang dapat digunakan untuk manajemen
database bisa
(lihat di http://www.mysql.com)
MySQL
sangat populer dalam aplikasi web seperti MediaWiki (perangkat
lunak yang dipakai Wikipedia dan
proyek-proyek sejenis) dan PHP-Nuke dan berfungsi sebagai komponen basis
data dalam LAMP. Popularitas
sebagai aplikasi web dikarenakan kedekatannya dengan popularitas PHP, sehingga seringkali disebut sebagai Dynamic
Duo.
Membuat Trigger di MySQL
Trigger adalah suatu objek
database yang merupakan aksi atau prosedur yang dilakukan jika terjadi
perubahan pada row data suatu table. Trigger tidak dapat menjadi bagian dari
temporary table atau view.
Beberapa
contoh penggunaan trigger yang sangat berguna adalah jika kita ingin
melakukan kalkulasi tertentu yang tidak perlu "diketahui" aplikasi
luar, mencatat aktivitas operasi table misalkan untuk kepentingan change data capture (CDC), dan lain-lain.
Kita dapat
membuat trigger dengan perintah CREATE TRIGGER. Berikut adalah syntax
lengkapnya :
CREATE
[DEFINER = { user | CURRENT_USER }]
TRIGGER trigger_name
trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_body
Keterangan :
- trigger_name : nama trigger.
- trigger_time : kapan kita mengeksekusi trigger, apakah sebelum atau sesudah
perubahan pada row data table. Jadi pilihannya adalah AFTER atau BEFORE.
- trigger_event : merupakan event atau peristiwa yang menyebabkan trigger
dilakukan. Pilihan event tersebut adalah INSERT, UPDATE,
DELETE.
- tbl_name :
nama table.
- trigger_body : statement-statement perintah SQL yang
akan dilakukan. Jika perintahnya lebih dari satu maka gunakan dalam blok
statement BEGIN ... END.
- Jika DEFINER
dispesifikasikan maka kita memutuskan trigger tersebut dijalankan
hanya oleh user tertentu (dalam format penulisan user@host). Jika
tidak dispesifikasikan, maka user yang melakukan perubahan
(CURRENT_USER) adalah pilihan default.
Referensi "OLD" dan "NEW"
Karena
trigger digunakan pada saat terjadi perubahan row data, maka kita perlu
referensi ke row sebelum dan sesudah perubahan. Untuk ini ada dua alias yang
berfungsi untuk hal tersebut yaitu OLD dan NEW.
Sesuai
namanya, OLD digunakan untuk referensi sebelum perubahan dan NEW untuk
referensi sesudah perubahan.
|
Membuat View di MySQL
View adalah
perintah query yang disimpan pada database dengan suatu nama tertentu,
sehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang
query tersebut.
Syntax
dasar perintah untuk membuat view adalah sebagai berikut :
CREATE
[OR REPLACE]
VIEW view_name [(column_list)]
AS select_statement
Kita
menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang
sama dengan perintah tersebut. Jika tidak maka perintah CREATE VIEW akan
menghasilkan error jika nama view yang ingin dibuat sudah
ada sebelumnya.
|
Membuat Index di MySQL
Index
adalah objek pada MySQL yang berisi data yang terurut - dari nilai-nilai pada
satu atau lebih field dalam suatu table.
Sama
seperti daftar isi pada sebuah buku, index terutama digunakan untuk
mempercepat pencarian terhadap suatu set data dengan kondisi tertentu - yang
melibatkan kombinasi field yang sudah didefinisikan dalam suatu index.
Tanpa
index, pencarian data biasanya akan memakan waktu lama, terutama jika data
sudah dalam skala jumlah yang sangat besar.
Syntax
Pembuatan Index
Syntax
pada MySQL untuk membuat suatu index adalah sebagai berikut :
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
[index_type]
ON tbl_name (index_col_name,...)
[index_type]
index_col_name:
col_name [(length)] [ASC | DESC]
index_type:
USING {BTREE | HASH}
|