Relasi Database MySQL

18 Sep 2019 13:38 668 Hits 0 Comments Approved by Plimbi
Beberapa istilah lain ketika kita mendengar kata relasi database

Pada artikel sebelumnya kita sudah membahas tentang pengertian database secara umum, maka pada artikel kali ini kita akan membahas tentang relational database, mencakup beberapa istilah lainnya seperti primary key, candidate key, foreign key, referential integrity dan index.

Oke langsung aja, yang pertama kita akan bahas terlebih dahulu tentang pengertian database dalam relational database.

Dalam relational database model, sebuah database adalah kumpulan relasi yang saling berhubungan satu sama lainnya. Relasi adalah sebuah istilah dalam relational database, tapi kita lebih familiar menyebutnya dengan “tabel”. Selayaknya tabel yang memiliki kolom dan baris, dalam relational database kolom (colomn) disebut juga dengan “attribute”, sedangkan baris (row) disebut dengan “tuple”. Hal ini hanyalah sekedar penamaan supaya lebih gampang, kita hanya akan menggunakan istilah tabel, kolom dan baris hanya dalam artikel kali ini, namun jika  kalian menemui istilah relationa, atribut dan tuple, itu hanya nama lain dari tabel, kolom dan baris saja.

Candidate Key (Kunci Kandidat)

Candidate key adalah satu atau beberapa kolom dalam tabel yang bisa mengidentifikasi tiap baris dari tabel tersebut.

Database dalam relational database dapat disederhanakan sebagai sekumpulan tabel yang saling terhubung. Setiap baris dari dalam tabel setidaknya harus memiliki sebuah kolom yang unik. Unik disini maksudnya tidak boleh sama.

Contoh tabel_siswa:

NIS Nama Alamat Tempat, Tanggal Lahir Kode Jurusan
18192009 Sahwa Bandung Bandung, 1 Januari 2001 Rekayasa Perangkat Lunak
18192010 Selfi Bogor Bogor, 2 februari 2002 Multimedia
18192011 Siska Bekasi Bekasi, 03 Maret 2003 Teknik Komputer Jaringan
18192012 Sinta Bengkulu Bengkulu, 04 April 2004 Teknik Sepeda Motor
18192013 Shella Blitar Blitar, 05 Mei 2005 Akuntansi

Perhatikan tabel diatas, kolom NIS (Nomor Induk Siswa) akan menjadi candidate key yang bagus, karena tidak mungkin ada 2 siswa yang memiliki NIS yang sama. NIS disini disebut juga dengan candidate key.

 

Primary Key (Kunci Utama)

Primary key adalah salah satu candidate key yang kita nobatkan sebagai kolom unik untuk identifikasi baris dalam tabel.

Dalam sebuah tabel, akan terdapat beberapa candidate key, namun hanya akan ada 1 primary key saja. Kolom primary key ini tidak boleh berulang dan tidak boleh kosong (null). Dari tabel_siswa diatas, NIS dapat kita terapkan sebagai primary key.

 

Foreign Key (Kunci Tamu)

Foreign key adalah primary key dari tabel yang lainnya yang terdapat di tabel saat ini.

Dalam sebuah database, biasanya akan terdapat beberapa tabel. Tabel-tabel ini dapat dihubungkan satu dengan yang lainnya dengan kolom yang merupakan bagian dari tabel lain.

Dalam tabel_siswa diatas dapat kita lihat bahwa NIS adalah primary key dari tabel_siswa, dan kode_jurusan adalah primary key pada tabel_jurusan. Kedua tabel tersebut dihubungkan oleh kolom “kode jurusan”.

 

Tabel_siswa

NIS Nama Alamat Tempat, Tanggal Lahir Kode Jurusan
18192009 Sahwa Bandung Bandung, 1 Januari 2001 02
18192010 Selfi Bogor Bogor, 2 Februari 2002 05
18192011 Siska Bekasi Bekasi, 3 Maret 2003 03
18192012 Sinta Bengkulu Bengkulu, 4 April 2004 06
18192013 Shella Blitar Blitar, 5 mei 2005 04

 

Tabel kode_jurusan

Kode Jurusan Nama Jurusan
01 Akuntansi (AK)
02 Rekayasa Perangkat Lunak (RPL)
03 Teknik Komputer Jaringan (TKJ)
04 Teknik Kendaraan Ringan (TKR)
05 Multimedia (MM)
06 Teknik Sepeda Motor (TSM)

Dalam tabel_siswa, kolom NIS adalah primary key, dan kolom kode_jurusan adalah foreign key. Lalu kenapa tabel tersebut harus dipisah? Jawabannya karena supaya tidak ada data yang redundan (ganda).

Redundans data adalah salah satu kelemahan dari desain database yang kita buat. Sehingga jika seandainya dari contoh diatas, nama jurusan akuntansi berubah menjadi akuntan, maka kita tinggal merubahnya dari 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 asalkan kolom tersebut.

Dalam tabel_siswa dan tabel kode_jurusan diatas, setiap kode_jurusan dalam tabel_siswa harus ada nilainya dalam tabel kode_jurusan.

Didalam tabel_siswa kita tidak bisa memasukan kode_jurusan 10, karena ditabel kode_jurusan, kode_jurusan 20 tidak ada. Dan jika kita ingin menghapus suatu jurusan dari tabel_jurusan, maka semua siswa harus sudah tidak ada yang memiliki kode_jurusan tersebut.

 

Index

Index dalam database adalah sebuah strukutur data yang diimplementasikan oelh RDBMS untuk mempercepat proses pembacaan data. Index ini lebih kepada penerapan algoritma dari masing-masing aplikasi database, dan diterapkan kedalam kolom dari tabel yang kita inginkan. Index ini mirip dengan index yang ada dibelakang buku, index seolah-olah daftar cepat untuk mencari sesuatu oleh RDBMS. Kita dapat mendeklarasikan kolom mana saja yang akan diindex.

Untuk MySQL sendiri, kolom yang diterapkan sebagai primary key akan otomatis diindex. Tetapi dalam satu tabel, bisa saja terdapat beberapa kolom yang ada diindex. 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 memperlambat proses penambahan data. Namun untuk tabel yang jarang bertambah, index menawarkan performa yang cepat untuk pembacaan data.

 

Normalisasi Database

Normalisasi database 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 berhubungan. Hal ini dilakukan agar mempermudah dalam mengatur dan mengorganisasikan data yang ada.

Contohnya, untuk tabel_siswa, jika terjadi perubahan nama jurusan, misalnya dari akuntansi menjadi akuntan, maka kita harus merubah satu-satu tiap mahasiswa. Namun jika dibagi menjadi 2 tabel, kita hanya tinggal merubah baris nomor 01 dari tabel kode_jurusan menjadi AK. Dan otomatis setiap siswa yang memiliki kode_jurusan 01 adalah siswa akuntan.

Normalisasi database memiliki beberapa tahapan. Dari wikipedia, normalisasi database setidaknya memiliki 9 tahapan. Pada setiap tahapan, ada syarat yang harus dipenuhi, sampai sebuah tabel tidak lagi memiliki kolom yang redundant. Kita tidak harus mengikuti semua tahap, biasanya hanya dibutuhkan 3 tahapan normalisasi untuk membuat sebuah desain database sederhana. Proses normalisasi database tidak akan kita bahas disini, namun setidaknya kita mengetahui bahwa normalisasi database adalah proses untuk mendesain database agar terorganisir.

 

Entity Relationship Diagram (ERD)

Entity relationship diagram adalah diagram untuk menggambarkan desain database yang akan dibuat. Di dalam ERD akan terlihat semua tabel yang akan dirancang, primary key masing-masing tabel, serta foreign key, dan kolom-kolom apa saja yang nantinya tersedia. ERD memiliki berbagai versi, baik yang berbentuk balon, maupun tabel. ERD inilah sebagai blueprint dari database yang akan dirancang.

Nah itulah beberapa istilah yang sering ditemui untuk pembahasan mengenai relational database, yang dapat digunakan sebagai dasar untuk mempelajari MySQL dan memaksimalkan penggunaannya.

 

Tags

About The Author

Tineu Nursyifa 27
Novice

Comments

You need to be logged in to be able to post a comment. Click here to login
Plimbi adalah tempat menulis untuk semua orang.
Yuk kirim juga tulisanmu sekarang
Submit Artikel