Relasi pada tabel merupakan relasi atau hubungan antara tabel yang satu dengan yang lain pada database. Relasi ini sangat penting karena dapat meminimalisir adanya kesalahan mendesain database. Pembuatan relasi sangat mudah dilakukan yaitu dengan menggunakan 2 kolom pada tabel.
Seperti apa 2 kolom tersebut ?
2 kolom tersebut adalah kolom primary key atau sering disebut dengan kunci utama sedangkan yang satu lagi adalah kolom foreign key atau sering disebut kunci asing yang berada pada tabel lainnya. Kolom inilah yang akan digunakan dalam membangun relasi
Syarat foreign key & primary key :
- Harus unik
- Tabel hanya boleh memiliki 1 primary key
- Tabel boleh memiliki lebih dari 1 foreign key
- foreign key digunakan untuk & membuat relasi antar tabel
Lalu bagaimana cara menentukan primary key & foreign key ?
Untuk lebih jelas mari kita lihat contoh berikut.
Kita membuat 2 tabel yang pertama adalah tabel 'mahasiswa' dan yang kedua adalah tabel 'matkul'. Bentuk tabel bisa dilihat seperti berikut.
Tabel mahasiswa
---------------------------
|nim|nama|alamat|id_matkul|
---------------------------
Tabel matkul
---------------------------------
|id_matkul|nama_matkul|sks|harga|
---------------------------------
primary key pada tabel mahasiswa : nim
primary key pada tabel matkul : id_matkul
foreign key pada tabel mahasiswa & matkul : id_matkul
jadi yang berelasi adalah kolom 'id_matkul' yang disebut dengan foreign key.
Nah contoh diatas menunjukan relasi Many to Many. Tentunya jenis relasi tidak hanya many to many, tapi ada yang lain. Apa saja jenisnya ? Ini dia
1. One to One
One to One |
Seperti yang saya jelaskan diatas mengenai tabel mahasiswa dan tabel matkul, itu adalah contoh relasi one to one. Dengan kata lain relasi one to one terjadi jika ada data pada tabel A yang juga ada di tabel B sehingga mereka akan membentuk relasi.
Contoh :
Tabel mahasiswa
------------------------------
|nim|nama|alamat|id_orangtua |
------------------------------
|01 |A |JKT |1 |
------------------------------
|02 |B |JKT |2 |
------------------------------
|03 |C |JGJ |3 |
------------------------------
Tabel orangtua
-------------------------
|id_orangtua |nama|umur|
-------------------------
|1 |X |50 |
-------------------------
|2 |Y |60 |
-------------------------
|3 |Z |60 |
-------------------------
Bisa dilihat bahwa 1 mahasiswa selalu memiliki id orang tua yang hanya satu juga. Jadi, 1 mahasiswa ya 1 orang tua. Tidak mungkin ada 2 atau lebih mahasiswa yang memiliki 1 orang tua (KECUALI JIKA SAUDARA, TAPI DALAM KASUS INI TIDAK ADA SAUDARA SAMA SEKALI).
2. One to Many
One to Many |
Relasi one to many adalah relasi yang terjadi dimana data pada tabel A mempunyai lebih dari 1 data yang sama pada tabel B.
Contoh :
Tabel mahasiswa
--------------------------------
|nim|nama|alamat|id_dosenwali|
--------------------------------
|01 |A |JKT |1 |
--------------------------------
|02 |B |JKT |2 |
--------------------------------
|03 |C |JGJ |1 |
--------------------------------
Tabel dosenwali
--------------------------
|id_dosenwali|nama|umur|
--------------------------
|1 |X |50 |
--------------------------
|2 |Y |60 |
--------------------------
Dari tabel diatas bisa dilihat bahwa satu dosenwali bisa menampung lebih dari 1 mahasiswa. seperti kita lihat mahasiswa dengan NIM 01 dan 03 memiliki dosen wali dengan id_dosenwali 1. Nah itulah yang disebut dengan relasi one to many atau many to one.
3. Many to Many
Many to Many |
Relasi many to many adalah relasi dimana lebih dari 1 data pada tabel A bisa berelasi dengan lebih dari 1 data pada tabel B.
Contoh :
Tabel mahasiswa
----------------------------
|nim|nama|alamat|id_matkul|
----------------------------
|01 |A |JKT |1 |
----------------------------
|01 |A |JKT |2 |
----------------------------
|02 |B |JKT |2 |
----------------------------
|02 |B |JKT |1 |
----------------------------
Tabel matkul
-----------------------------------
|id_matkul|nama_matkul|sks|harga|
-----------------------------------
|1 |basdat |3 |3 |
-----------------------------------
|2 |keamanan |3 |3 |
-----------------------------------
Dari 2 tabel tersebut bisa kita lihat bahwa 1 mahasiswa bisa mengambil lebih dari 1 matkul. Sedangkan 1 matkul bisa diambil oleh lebih dari 1 mahasiswa. Jadi itulah yang disebut dengan many to many.
Contoh Nyata Penggunaan Relasi Dalam Database Rumah Makan
Memang dalam membuat database kita harus benar-benar memikirkan apa yang dibutuhkan dalam perusahaan tersebut. Tidak ada patokan yang pasti dalam membuat desain database kita. Tapi yang jelas kita harus menempatkan setiap data pada tabel yang tepat !
Pernahkah Anda berpikir, mengapa kita tidak membuat database dalam 1 tabel saja ? Mau tau alasannya ?
Yuk baca ini
Semoga bermanfaat bagi kita.. Dan jangan lupa share ya... :D
Posting Komentar