MySQL

Di dalam perkembangan web sekarang ini, banyak web yang menyediakan fitur “database”. Jenis database pun sekarang ada banyak, salah satunya adalah MySQL. Pada kesempatan kali ini saya akan membahas tentang Sejarah MySQL & perkembangannya.

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.

Elemen SQL

Elemen dari SQL yang paling dasar antara lain pernyataan, nama, tipe data, ekspresi, konstanta dan fungsi bawaan.

Pernyataan
Perintah dari SQL yang digunakan untuk meminta sebuah tindakan kepada DBMS.

Pernyataan dasar SQL antara lain :

ALTER : Merubah struktur tabel
COMMIT : Mengakhiri eksekusi transaksi
CREATE : Membuat tabel, indeks
DELETE : Menghapus baris pada sebuah tabel
DROP : Menghapus tabel, indeks
GRANT : Menugaskan hak terhadap basis data kepada user
INSERT : Menambah baris pada tabel
REVOKE : Membatalkan hak kepada basis data
ROLLBACK : Mengembalikan pada keadaan semula apabila transaksi gagal dilaksanakan
SELECT : Memilih baris dan kolom pada sebuah tabel
UPDATE : Mengubah value pada baris sebuah tabel
Nama
Nama digunakan sebagai identitas, yaitu identitas bagi objek pada DBMS. Misal : tabel, kolom dan pengguna.

Tipe data
Tipe data yang ada dalam MYSQL :

1. Tipe data numerik antara lain :

TINYINT : Nilai integer yang sangat kecil
SMALLINT : Nilai integer yang kecil
MEDIUMINT : Nilai integer yang sedang
INT : Nilai integer dengan nilai standar
BEGINT : Nilai integer dengan nilai besar
FLOAT :Bilangan decimal dengan single-precission
DOUBLE :Bilangan decimal dengan double-precission
DECIMAL(M,D) : Bilangan float yang dinyatakan sebagai string. M : jumlah digit yang disimpan, D : jumlah angka dibelakang koma
2. Tipe data String antara lain :

CHAR : Karakter yang memiliki panjang tetap yaitu sebanyak n
VARCHAR : Karakter yang memiliki panjang tidak tetap yaitu maksimum n
TINYBLOB : BLOB dengan ukuran sangat kecil
BLOB : BLOB yang memiliki ukuran kecil
MEDIUMBLOB : BLOB yang memiliki ukuran sedang
LONGBLOB : BLOB yang memiliki ukuran besar
TINYTEXT : teks dengan ukuran sangat kecil
TEXT : teks yang memiliki ukuran kecil
MEDIUMTEXT : teks yang memiliki ukuran sedang
LONGTEXT : teks yang memiliki ukuran besar
ENUM : kolom diisi dengan satu member enumerasi
SET : Kolom dapat diisi dengan beberapa nilai anggota himpunan
3. Tipe data tunggal dan jam :

DATE : date memiliki format tahun-bulan-tanggal
TIME : time memiliki format jam-menit-detik
DATETIME : gabungan dari format date dan time
Ekspresi
Ekspresi digunakan untuk menghasilkan/menghitung nilai.

Misalnya : jumlah=harga-diskon

Ekspresi aritmatika antara lain :

+ : tambah
– : kurang
/ : bagi
* : kali
Konstanta
Nilai yang tetap

Fungsi bawaan
Fungsi adalah subprogram yang dapat menghasilkan suatu nilai apabila fungsi tersebut dipanggil. Fungsi Agregat adalah fungsi yang digunakan untuk melakukan summary, statistik yang dilakukan pada suatu tabel/query.

AVG(ekspresi) : digunakan untuk mencari nilai rata-rata dalam kolom dari tabel.
COUNT(x) : digunakan untuk menghitung jumlah baris dari sebuah kolom dari tabel
MAX(ekspresi) : digunakan untuk mencari nilai yang paling besar dari suatu kolom dari tabel
MIN(ekspresi) : digunakan untuk mencari nilai yang paling kecil dari suatu kolom dari tabel
SUM(ekspresi) : digunakan untuk mengitung jumlah keseluruhan dari suatu kolom dari tabel
2. Kelompok Penyataan SQL

Pernyataan SQL dapat dikelompokan menjadi 3 kelompok, yaitu : DDL, DML dan DCL.

1.Pernyataan SQL kelompok DDL (Data Defination Language)

DDL berfungsi untuk mendefinisikan atribut basis data, table, atribut(kolom), batasan-batasan terhadap suatu atribut, serta hubungan antar tabel. Perintah yang digunakan biasanya : CREATE, ALTER, dan DROP

Membuat Database
Syntax yang digunakan : CREATE DATABASE namadatabase;

Menghapus Database
Syntax yang digunakan : DROP DATABASE namadatabase;

Membuat Tabel
Syntax yang digunakan : CREATE TABLE namatabel;

Menghapus Database
Syntax yang digunakan : DROP DATABASE namadatabase;

Menghapus Tabel
Syntax yang digunakan : DROP TABEL namatabel;

Mendefinisikan null/not null
Syntax yang digunakan : CREATE TABLE namatabel

(Field1 TipeData1 NOT NULL,

Field2 TipeData2);

Mendefinisikan Nilai Default
Syntax yang digunakan : CREATE TABLE namatabel

(Field1 TipeData1,

Field2 TipeData2 DEFAULT nilai);

Mendefinisikan Primary Key pada Tabel
Dapat dilakukan dengan 3 Syntax :

1)CREATE TABLE namatabel

( Field1 TipeData1 NOT NULL PRIMARY KEY,

Field2 TipeData2);

2)CREATE TABLE namatabel

( Field1 TipeData1,

Field2 TipeData2,

PRIMARY KEY(Field1));

3)ALTER TABEL namatabel ADD CONSTRAINT namaconstraint PRIMARY KEY (NAMAKOLOM)

Menghapus Primary Key pada Tabel
Syntax yang digunakan ada 2 :

1) ALTER TABLE namatabel DROP CONSTRAINT NAMACONSTRAINT;

2) ALTER TABLE NAMATABEL DROP PRIMARY KEY;

Menambah Kolom Baru pada Tabel
Syntax yang digunakan : ALTER TABEL NAMATABEL ADD newfield tipe;

Mengubah Tipe Data atau Lebar Kolom pada Tabel
Syntax yang digunakan : ALTER TABEL namatabel MODIFY COLUMN field tipe;

Mengubah Nama Kolom
Syntax yang digunakan : ALTER TABEL namatabel CHANGE COLUMN namakolomlama namakolombaru tipe;

Menghapus Kolom pada Tabel
Syntax yang digunakan : ALTER TABEL namatabel DROP COLUMN namakolom;

Mendefinisikan Foreign Key pada Tabel
Dapat dilakukan dengan 2 Syntax :

1) CREATE TABLE namatabel

( Field1 TipeData1,

Field2 TipeData2,

FOREIGN KEY (Field2) REFERENCES namatabelinduk

(namakolominduk) ON UPDATE CASCADE ON DELETE NO ACTION)

2)ALTER TABEL namatabel ADD CONSTRAINT namaconstraint FOREIGN KEY (namakolom) REFERENCES namatabelinduk (namakolominduk) ON UPDATE CASCADE ON DELETE NO ACTION;

Menghapus Foreign Key
Syntak yang digunakan : ALTER TABEL namatabel DROP FOREIGN KEY namaconstraint;

2. DML (Data Manipulation Language)

DML berfungsi untuk memanipuladi data yang ada di dalam basis data, contohnya untuk pengambilan data, penyisipan data, pengubahan data dan penghapusan data.

Perintah yang digunakan biasanya adalah : INSERT, DELETE, UPDATE, dan SELECT.

INSERT
menambah baris pada tabel. Syntax yang paling sering digunakan : INSERT INTO namatabel VALUES (nilai1, nilai2, nilai-n);

DELETE
Menghapus baris pada tabel. Syntax : DELETE FROM namatabel [where kondisi];

UPDATE
Mengubah isi beberapa kolom pada tabel. Syntax : UPDATE namatabel SET kolom1=nilai1, kolom2=nilai2 [where kondisi];

SELECT
Menampilkan isi dari suatu tabel yang bisa dihubungkan dengan tabel yang lainnya.

Keistimewaan SQL

a. Portability
MySQL dapat berjalan stabil pada berbagai OS seperti Windows, Linux, Unix, Mac OS, Solaris, Unix, Amiga, HP-UX, Symbian.

b. Open Source “limited”
Dahulu MySQL didistribusikan secara open source (gratis), dibawah lisensi GPL sehingga kita dapat menggunakannya secara cuma-cuma tanpa dipungut biaya. Namun, saat ini karena MySQL telah dibeli oleh SUN, maka kita tidak dapat lagi menikmati fitur-fitur baru yang ada di MySQL, karena SUN akan membatasi fitur-fitur baru ini hanya untuk user yang membeli lisensinya. Sehingga MySQL tidak lagi sebuah opensource yang benar-benar gratis lagi. MySQL sekarang hanya menyediakan fitur-fitur “dasar” saja yang saat ini sudah menggunakan versi 5.1. Untuk mendownloadnya silahkan download di sini dan dicari versi MySQL dengan OS kita.

c. Multiuser
MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami konflik. Hal ini memungkinkan sebuah database server MySQL dapat diakses klien secara bersamaan.

d. Performance Tuning
MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.

e. Column Types
MySQL memiliki tipe kolom yang sangat kompleks, seperti signed/unsigned integer, float, double, char, varchar, text, blob, date, time, datetime, timestamp, year, set serta enum.

f. Command dan Functions
MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah SELECT dan WHERE dalam query.

g. Security
MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta password terenkripsi.

h. Scalability dan Limits
MySQL ammpu menangani database dalam skala besar dengan jumlah records lebih dari 50 juta dan 60 ribu tabel serta 5 miliar baris. Selain itu, batas index yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.

i. Connectivity
MySQL dapat melakukan koneksi dengan klien menggunakan TCP/IP, Unix soket (Unix), atau Named Pipes (NT).

j. Localisation
MySQL dapat mendeteksi pesan kesalahan (error code) pada klien dengan menggunakan lebih dari dua puluh bahasa.

k. Interface
MySQL memiliki interface terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).

l. Clients dan Tools
MySQL dilengkapi dengan berbagai tool yang dapat digunakan untuk administrasi database, dan pada setiap tool yang ada disertakan petunjuk online.

m. Struktur Tabel
MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE dibandingkan database lainnya.

Sumber & referensi :
http://upyes.wordpress.com/2013/02/06/pengertian-dan-sejarah-mysql/
http://komputerdasar.blogspot.com/2009/09/sejarah-mysql.html
http://rian-share4u.blogspot.com/2012/09/sejarah-dan-perkembangan-mysql.html

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s