basis
data, yaitu RDBMS ( Relational Data Base Management System )
1. Pengertian RDBMS
Sebuah sistem manajemen basisdata relasional atau dalam bahasa Inggrisnya dikenal sebagai
relational database management system (RDBMS) adalah sebuah program komputer (atau secara
lebih tipikal adalah seperangkat program komputer) yang didesain untuk mengatur/ memanajemen
sebuah basisdata sebagai sekumpulan data yang disimpan secara terstruktur, dan melakukan operasi-
operasi atas data atas permintaan penggunanya. Contoh penggunaan DBMS ada banyak sekali dan
dalam berbagai bidang kerja, misalnya akuntansi, manajemen sumber daya manusia, dan lain
sebagainya. Meskipun pada awalnya DBMS hanya dimiliki oleh perusahaan-perusahaan berskala
besar yang memiliki perangkat komputer yang sesuai dengan spesifikasi standar yang dibutuhkan
(pada saat itu standar yang diminta dapat dikatakan sangat tinggi) untuk mendukung jumlah data
yang besar, saat ini implementasinya sudah sangat banyak dan adaptatif dengan kebutuhan
spesifikasi data yang rasional sehinggal dapat dimiliki dan diimplementasikan oleh segala kalangan
sebagai bagian dari investasi perusahaan.
2. Sejarah RDBMS
Edgar F. Codd memperkenalkan istilah ini pada makalah seminarnya yang berjudul “A Relational
Model of Data for Large Shared Data Banks”. Salah satu definisi yang cukup dikenal secara luas atas
sebuah sistem basisdata relasional adalah 12 hukum Codd. Namun demikian, pada awal-awal
implementasinya banyak model relasional yang tidak mengikuti seluruh elemen-elemen yang
terdapat dalam hukum-hukum Codd tersebut yang menjadikan terminologinya berkembang untuk
mendeskripsikan sebuah tipikal sistem basisdata yang lebih luas. Dalam cakupan yang minimum
sistem tersebut memenuhi kriteria berikut: * menyajikan data pada pengguna dalam bentuk
relasional (ditampilkan dalam bentuk tabular, sebagai koleksi dari tabel dimana setiap tabel beriisi
sekumpulan baris dan kolom) * menyediakan operator relasioanl untuk memanipulasi data dalam
bentuk tabular Sistem yang pertama kalinya yang secara relatif memenuhi implementasi atas sebuah
model relasional adalah Pusat Studi Ilmiah IB, Inggris, di Peterlee; IS1 (1970-1972) dan implementasi
lain yang mengikutinya PRTV (1973-1979). Sistem yang pertama kalinya dijual secara komersil
sebagai RDBMS adalah Multics Relational Data Srore pada tahun 1978. Yang lainnya adalah Berkeley
Ingres QUEL dan IBM BS12.
3. Arsitektur RDBMS
Arsitektur RDBMS memiliki banyak karakteristik yang membedakan dari model penyimpanan data
lainnya. Perbedaan yang paling penting adalah pemisahan segi fisik dari segi logika suatu data. Dalam
RDBMS, seluruh data secara logika tersimpan di dalam tabel-tabel, yang merupakan kumpulan dari
baris dan kolom. Sistem pencarian data di dalam RDBMS menggunakan index yang merupakan
struktur data yang terpisah dari tabel dan menyimpan hanya nilai terstruktur dari kolom-kolom dan
alamat fisiknya. Disamping itu dengan didukung oleh penggunaan index dapat mempercepat proses
pencarian data di dalam database.
Faktor penting lainnya dari arsitektur RDBMS adalah integrity constraints. Dengan Integrity
Constraints tabel-tabel dihubungkan dengan key. Key adalah beberapa kolom atau kombinasi kolom
kolom yang secara unique mengidentifikasi setiap tabel. Sebuah key yang secara unique bagi suatu
tabel dapat berdiri sebagai kolom yang tidak unique bagi tabel lainnya. Integrity Constraints adalah
aturan "build in" yang secara otomatis berpengaruh dalam mempertahankan integritas database.
Aturan-aturan integritas ini biasa dibuat atau dirancang oleh seorang perancang database.
Karakteristik penting lainnya dari arsitektur RDBMS adalah adanya "Optimizer". Optimizer adalah
sebuah sistem pakar yang bertugas untuk menentukan cara pemrosesan yang paling efesien bagi
suatu database.
4. Elemen-elemen RDBMS
Database:
Sekelompok tabel data berisi informasi yang berhubungan. Perhatikan bahwa suatu database dapat
terdiri dari satu tabel saja.
Table:
Sekelompok record data, masing-masing informasi yang sejenis. Dalam contoh catalog perpustakaan,
catalog itu sendiri merupakan tabel data.
Record :
Entri tunggal dalam tabel; entri tersebut terdiri dari sejumlah field data. Dalam catalog perpustakaan,
record adalah salah satu baris entri tunggal.
Field :
Item (kolom) tertentu dari data dalam record. Dalam satu buku telepon, sekurang-kurangnya dapat
dikenali empat field : nama keluarga, nama depan, alamat, dan nomor telepon.
Index :
Tipe tabel tertentu yang berisi nilai-nilai field kunci atau field (yang ditetapkan oleh pemakai) dan
pinter ke lokasi record yang sebenarnya. Nilai-nilai dan pointer ini disimpan dalam urutan tertentu
(sekali lagi ditetapkan oleh pemakai) dan mungkin digunakan untuk menyajikan data dalam urutan
database.
Query :
Perintah SQL yang dirancang untuk memanggil kelompok record tertentu dari satu tabel atau lebih
untuk melakukan operasi pada tabel. Meskipun perintah SQL dapat dijalankan langsung dari
program, query sebagai enjin perintah dan menyimpannya dalam database itu sendiri - ini berguna,
jika perintah-perintah SQL sering kita gunakan, sebagaimana perintah yang memanggil record untuk
laporan bulanan tertentu. Bila query disimpan dalam database, biasanya kompilasi. Kompilasi query
memperbaiki kinerja program kita kerana mesin database tidak harus menerjemahkan (atau
menguraikan) perintah SQL.
View :
View data terdiri atas jumlah record yang tampak (atau diproses) dan urutan penampilannya (atau
pemrosesannya). View khususnya dikendalikan oleh filter dan indeks.
5. Variasi Dinamis
Keluhan yang muncul dan dikenal secara umum terhadap keberadaan RDBMS adalah kenyataan
bahwa implementasi yang ada saat ini dipandang sebagai terlalu “statis”. Spekulasipun bermunculan
terhadap kemungkinan untuk membuat sebuah sistem basisdata generasi baru yang menggunakan
model “relasional secara dinamis” dengan kolom yang bisa dibuat secara dinamis, ukuran yang
berkembang secara dinamis, didefinisikan secara dinamis. Setiap baris dapat diimplementasikan
sebagai map (kamus ataupun larik asosiatif) dan kolom-kolom yang tidak dikenal secara sederhana
disajikan sebagai field kosong. Beberapa kalangan menganggap hal ini menyalahi model relasioal
murni, namun kalangan lain menyanggah bahwa sebuah penggunaan map hanyalah sebagai detil
implementasi saja. Sehingga dalam pandangan ini, sebuah “kolom yang tidak ditemukan/tidak ada”
secara sederhana hanyalah dipandang sebagai perihal interpretasi dan dianggap sebagai pilihan cara
penyajian saja.
Suatu database terdiri dari banyak tabel. Tabel ini terdiri dari banyak field yang
merupakan kolomnya. Isi tiap baris dari tabel inilah merupakan data.
Untuk membuat sistem basis data yang terintegrasi maka antara satu tabel dengan
tabel lain mempunyai hubungan yang harus selalu diperlihara. Setiap tabel
mempunyai sebuah primary key, primary key ini kemudian dihubungkan dengan
tabel kedua dan menjadi foreign key untuk tabel kedua ini.
Dengan relational database ini maka data akan secara konsisten disimpan di suatu
tabel, kemudian tabel lain yang membutuhkan data lainnya tinggal menghubungkan
melalui foreign key.
1. one-to-one
2. one-to-many
3. many-to-many
RDBMS akan menjaga agar data-data yang menjadi kunci relasi yang foreign_key
dan primary_key ini merupakan data-data yang benar-benar berkaitan satu dengan
yang lain. Jika ada data yang salah relasinya, maka RDMBS akan menolak data
tersebut. Ini akan memudahkan pembuat program (software developer) dalam
melakukan coding karena dibantu pengecekan secara otomatis oleh RDBMS.
Dr.Codd mengajukan ide tentang relational model ini dalam sebuah paper berjudul “A
Relational Model of Data for Large Shared Databanks” pada Juni 1970. Relational Database
model berasal dari 2 cabang ilmu matematika : set theory dan first-order predicate logic.
Sebuah relational database menyimpan data dalam ‘relasi’, atau yang disebut juga tabel.
Setiap tabel terdiri dari tuple atau record dan atribut atau field. Urutan penyusunan dalam
media penyimpanan fisik tidak berpengaruh dalam model ini, dan setiap record di dalam tabel
diidentifikasi dengan sebuah field unik.
Relational Database Model inilah yang paling populer dan banyak diimplementasi dalam
berbagai aplikasi database saat ini, termasuk Oracle dan MySQL. Aplikasi database untuk
relational model, dikenal juga dengan Relational Database Management Systems (RDBMS).
Jika pada tahun 1980an RDBMS hanya dapat digunakan dalam sistem mainframe perusahaan
besar, namun saat ini dengan semakin majunya perkembangan teknologi di sisi hardware,
PC-based RDBMS sudah banyak tersedia. MySQL RDBMS dapat diinstall di
komputer/laptop biasa.
Demikian pembahasan singkat kita tentang pengertian database, database model dan
perkembangan RDBMS. Dalam tutorial selanjutnya, kita akan bahas lebih mendalam
konsep Teori Relational Database, sebelum mempraktekkannya dengan MySQL.
Sumber :
1. http://en.wikipedia.org/wiki/Database
2. http://en.wikipedia.org/wiki/Database_model
3. Michael J. Hernandez : Database Design for Mere Mortals, Addison Wesley, 2003
Nomor KTP juga merupakan candidate key yang bagus, setidaknya setiap
orang akan memiliki Nomor KTP yang berbeda-beda. Namun dalam
beberapa kasus, nomor KTP tidak selalu ada, karena bisa saja seseorang
belum memiliki KTP karena sesuatu dan lain hal. Beberapa karakteristik
Candidate key : unik (tidak boleh berulang), tidak boleh memiliki nilai null
(kosong), nilai dari candidate key akan sangat jarang berubah.
Dalam tabel_mahasiswa, kolom NIM adalah primary key, dan kolom kode
jurusan adalah foreign key. Kenapa tabel tersebut harus dipisah?
Jawabannya adalah agar tidak ada data yang redundan(ganda). Redundansi
data adalah salah satu kelemahan dari desain database yang kita buat.
Seandainya dari contoh tabel, nama Jurusan Ilmu Komputer berubah
menjadi Teknik Informatika, kita hanya tinggal merubah tabel_jurusan.
Referential Integrity
Referential Integrity berkaitan erat dengan foreign key. Pada
dasarnya Referential Integrity adalah penerapan aturan bahwa untuk
setiap foreign key yang terdapat pada suatu tabel, harus ada nilainya di
tabel asal kolom tersebut. Dalam contoh kita, pada tabel 4.2 dan 4.3 setiap
kode_jurusan dalam tabel data_mahasiswa harus ada nilainya dalam tabel
kode_jurusan. Di dalam tabel data_mahasiswa kita tidak bisa memasukkan
nilai 20, karena di tabel kode_jurusan, kode jurusan 20 belum diinput. Dan
jika kita ingin menghapus suatu jurusan dari tabel_jurusan, semua
mahasiswa harus terlebih dahulu sudah tidak ada yang memiliki kode
jurusan tersebut.
Index
Index dalam database adalah sebuah struktur data yang
diimplementasikan oleh RDBMS untuk mempercepat proses pembacaan
data. Index lebih kepada penerapan algoritma dari masing-masing aplikasi
database, dan diterapkan ke dalam kolom dari tabel yang kita inginkan.
Mirip Index yang ada di belakang buku, index seolah-olah daftar cepat
untuk mencari sesuatu oleh RDBMS. Kita dapat mendeklarasikan kolom
mana saja yang akan di index.
Untuk MySQL, kolom yang ditetapkan sebagai primary key akan otomatis
di-index. Tetapi dalam satu tabel, bisa saja terdapat beberapa kolom yang
di index. Pertanyaannya, jika index digunakan untuk mempercepat proses
pembacaan, kenapa tidak semua kolom saja kita index? Jawabannya,
karena index sendiri juga memiliki kelemahan.
Ketika data baru ditambahkan atau terdapat data yang akan dirubah, index
yang tersimpan untuk tabel tersebut harus dibuat ulang, sehingga
memperlama proses penambahan data. Namun untuk tabel yang jarang
bertambah, index menawarkan perfoma yang cepat untuk pembacaan data.
Normalisasi Database
Normalisasi database (Database normalization) adalah proses
penyusunan kolom dan tabel untuk meminimalkan redundansi data (data
yang berulang). Normalisasi biasanya akan membagi tabel besar menjadi
beberapa tabel kecil yang saling terhubung. Hal ini dilakukan agar mudah
dalam mengatur, dan mengorganisasi data yang ada.
Contohnya, untuk tabel data_mahasiswa, jika terjadi perubahan nama
jurusan, misalnya dari Ilmu Komputer menjadi Teknik Informatika, maka
kita harus merubah satu-satu tiap mahasiswa. Namun jika di bagi menjadi
2 tabel, kita hanya tinggal merubah baris no urut 14 dari tabel
kode_jurusan menjadi Teknik Informatika. Dan otomatis setiap mahasiswa
yang memiliki kode_jurusan 14, adalah mahasiswa Teknik Informatika.
tulah beberapa istilah yang sering di temui untuk pembahasan mengenai relational database,
yang dapat digunakan sebagai dasar untuk mempelajari MySQL dan memaksimalkan
penggunaannya. Selanjutnya kita akan membahas tentang SQL (Structured Query Language),
bahasa wajib yang diketahui untuk mempelajari MySQL.
Sumber:
1. http://en.wikipedia.org/wiki/Relational_database
2. http://en.wikipedia.org/wiki/Database_normalization
3. Michael J. Hernandez : Database Design for Mere Mortals, Addison Wesley, 2003
4. Clare Churcher: Beginning Database Design From Novice to Professional, Apress,
2007