translate

English French German Spain Italian Dutch
Russian Brazil Japanese Korean Arabic Chinese Simplified

05/06/11

MYSQL

MYSQL merupakan salah satu software databases (basis data) open source yang dikembangkan sebuah komunitas bernama MySQL AB dengan tujuan membantu user untuk menyimpan data dalam tabel-tabel. Tabel terdiri atas field (kolom) yang mengelompokan data-data berdasarkan kategori tertentu, misalnya nama, alamat, nomor telepon, dan sebagainya. Bagian lain dari tabeladalah record (baris) yang mencantumkan isi data yang sebenarnya. Sebagai contoh, suatu baris data mencantumkan identitas seorang siswa bernama Tri yang beralamat di Bandung memiliki nomor telepon (022)32342xxx dan seterusnya.

Tabel-tabel ini 'dibungkus' dalam suatu wadah yang biasa kita kenal dengan sebutan databases. Sayangnya, sebutan ini  acapkali menimbulkan salah pengertian bagi orang-orang yang masih awam, yaitu pemahaman antara database yang memuat data (berisi tabel-tabel) dengan software yang memuat database itu sendiri. Sebagai contoh, pada satu saat kita mendengar istilah 'database siswa' dan 'database karyawan' sementara pada saat lain kita mendengar istilah 'database access', 'database SQL Server', 'database MYQL' dan sebagainya. Pertama-tama kita harus bisa membedakan antara databasae yang memuat tabel-tabel data dengan software database yang membantu user menyimpan data-datanya. MYSQL menggunakan istilah 'schema' atau 'schemata' untuk menunjuk pada 'wadah' penampung tabel seperti istilah schemata siswa sebagai ganti istilah database siswa.
MYSQL sebagaimana software database lainnya, dapat menampung banyak schemata, dimana masing-masing schemata ini dapat digunakan oleh aplikasi –aplikasi yang berbeda, baik dari sisi tujuan maupun dari sisi bahasa pemograman yang digunakan oleh masing-masing aplikasi yang bersangkutan.
Terdapat empat instruksi dasar yang digunakan dalam sql (structured query language), yaitu select, insert, update, dan delete. Masing-masing digunakan untuk menampilkan data, menginput atau menambah data, merubah data, dan menghapus data dalam database.

VARCHAR
Adalah salah satu tipe data yang dapat menyimpan karakter berupa huruf, angka atau kombinasi keduanya. Jika field nama memiliki tipe data varchar(30), maka jika anda memasukan nama seseorang ke dalam field tersebut yang panjangnya melebihi 30 huruf, maka nama orang tersebut akan terputus dan yang tersimpan hanya 30 huruf pertama dari nama orang tersebut. Dan perlu anda ingat, spasi antar kata juga akan dihitung sebagai karakter. Gunakan tipe data ini untuk menyimpan informasi nomor induk, nomor peserta suatu kegiatan dan semacamnya. Untuk angka-angka kalkulas, anda dapat menggunakan tipe data integer.
Null atau Not Null adalah semacam kondisi yang terkait dengan field yang bersangkutan pada saat pengolahan data, terutama saat memasukan (input) data. Deklarasi Null akan mengizinkan field yang bersangkutan diabaikan atau tidak diisi oleh karakter apa pun (Null / kosong), sedangkan deklarasi Not Null akan meminta penginput data untuk memasukan data meskipun berupa karakter kosong (''). Sebagai contoh, jika anda ingin agar field alamat tidak terabaikan, berikan deklarasi Not Null. MySQL hanya akan menyimpan data yang field alamatnya terisi. Sebaliknya, jika anda mendeklarasikan Null pada field alamat, maka MySQL tetap menyimpan data yang anda masukkan dalam tabel meskipun field alamat tidak terisi.
Primary Key (kunci primer) adalahsemacam kunci identitas suatu record dimana tidak boleh ada record lain yang memiliki kunci identitas yang sama. Sebagai contoh, sebuah tabel yang memuat biodata siswa akan menggunakan nomor induk siswa sebagai kunci primer, demikian juga sebuah tabel yang memuat biodata siswa akan menggunakan nomor induk karyawan sebagai kunci primer. Sebaliknya, field desa, field kota ataupun field Negara tidak dapat dijadikan sebagai kunci primer karena orang-orang yang berbeda dapat tinggal di tempat yang sama. Itulah sebabnya kunci primer bersifat unik, artinya tidak memiliki kembaran,
Foreign Key
Selain primary key, dikenal juga istilah foreign key. Foreign key atau kunci tamu adalah kunci primer pada suatu tabel yang dimasukan ke dalam tabel lain. Contoh, Misalkan didalam Database kelas, terdapat dua buah tabel , tabel pertama adalah tabel siswa yang memiliki field nomor induk nomor induk siswa (primary key), nama siswa dan alamat siswa. Tabel kedua adalah tabel wali kelas yang memiliki field  nomor induk pegawai (primary key), nama guru dan alamat guru.
Bagaimana cara untuk mengetahui  wali kelas dari siswa (contoh) yang bernama Ade? Tanpa menghapus field nomor induk pegawai dari tabel wali kelas, tambahkan  field baru nomor induk pegawai ke dalam tabel siswa sebagai foreign key, sehingga tabel siswa sekarang  mempunyai empat field: field nomor induk siswa (primary key, field nama siswa, field alamat siswa dan field nomor induk pegawai (foreign key). Dengan demikian akan diketahui nomor induk pegawai dari wali kelas Ade. Untuk mengetahui siapa nama wali kelas tersebut, maka tinggal cocokan nomor induk pegawai yang ada di tabel siswa dengan yang ada di tabel wali kelas.
Kenapa tabel siswa dan tabel wali kelas tidak disatukan saja supaya lebih praktis sehingga tidak ada istilah foreign key. Ok dalam kasus ini misal, anggaplah wali kelas Ade bernama Asep s.Kom dimutasikan ke sekolah lain sehingga biodatanya tidak digunakan lagi oleh pihak sekolah asal. Petugas arsip memutuskan menghapus biodata wali kelas tersebut. Jika hanya ada satu tabel dan petugas melakukan penghapusan, maka tidak hanya biodata Asep s.Kom saja yang terhapus, tetapi juga semua bekas siswa-siswinya. Jika ada dua buah tabel terpisah, maka petugas arsip hanya perlu menghapus biodata Asep s.Kom tanpa mempengaruhi biodata bekas siswa-siswinya. Apabila 01001 adalah nomor induk pegawai Asep s.Kom, perhatikan tabel dan perintah sql:
Update tabel_siswa set nip = '' where nip = '01001';

Gambar
Perintah sql diatas akan mengosongkan field nip yang berisi 01001. Pada contoh di atas field nip pada nis 101 (Rudi) dan 103 (Tini) akan dikosongkan. Sekarang perhatikan perintah sql yang diterapakan pada tabel wali kelas:
Delete from tabel_walikelas where nip = '01001';
Gambar

Perintah sql diatas akan menghapus record Asep s.Kom.
Bandingkan dengan perintah berikut pada tabel tunggal:
Update tabel_tunggal set nip = '', nama_walikelas= '' where nip = '01001';
Atau:
Delete from tabel_tunggal where nip = '01001';
Gambar

Perintah update di atas akan mengosongkan semua field nip dan nama wali_kelas yang mengandung nilai 01001 sedangkan perintah delete akan menghapus data Asep s.Kom berikut data siswa-siswinya, dalam hal ini pemakaian perintah delete akan menyebabkan data siswa ikut terhapus.
Menggabungkan table siswa dan tabel wali kelas dalam satu tabel tunggal mungkin terlihat praktis dan mudah, namun sebenarnya hal semacam ini harus dihindari. Secara teoritis, tabel-tabel gabungan semacam ini bisa menimbulkan kekacauan, tidak sistematis dan tidak spesipik.
Apakah mungkin sebuah tabel tidak memiliki primary key ataupun foreign key? Hal ini bisa saja terjadi, akan tetapi akan lebih baik jika tabel-tabel yang anda buat memiliki primary key. Primary key menjadi kunci pengenal setiap baris data dan bersifat unik.


MySQL  menggunakan dua tipe storage engine. Tipe pertama adalah MyISAM yang merupakan tipe yang biasa digunakan MySQL sebelum  versi 5.0 dan tipe kedua adalah InnoDB yang dirancang untuk peningkatan performa dan kecepatan pengolahan data. Pernyataan ENGINE = InnoDB berarti tabel yang terkait dibuat menggunakan InnoDB storage engine.

Tidak ada komentar:

Posting Komentar