Membuat Relasi Tabel Di MySQL
Malam semua kali ini saya akan memposting tentang bagaimana cara Membuat Relasi Table Di MySQL mungkin sebelum melanjutkan membaca tutorial ada baiknya anda membaca tutorial yang saya tulis sebelumnya Syntak Dasar SQL

Apa itu Relasi Tabel ?
Relasi tabel adalah hubungan antara beberapa tabel. Relasi antar tabel dihubungkan oleh primary key dan foreign key

Apa itu primary key dan foreign key ?
primary key adalah suatu atribut yang tidak hanya mengindentifikasi secara unik suatu kejadian tetapi juga mewakili setiap kejadian dari suatu entitas
foregin key adalah atribut yang melengkapi relationship dan menunjukan hubungan antara tabel induk dengan tabel anak. foreign key ditempatkan pada tabel anak

untuk membuat relationship maka masing-masing tabel harus memiliki primary key dan foreign key untuk dapat menghubungkan antara tabel induk dengan tabel anak. Sehingga diperlukan teknik normalisasi terlebih dahulu sebelum membuat relationship antar tabel.
Normalisasi merupakan proses pengelompokan data elemen menjadi tabel yang menunjukan entitas dan relasinya


Oke langsung saja

1. Buat sebuah database dengan nama dblatihan

2. Buat tabel buku dengan script seperti dibawah ini
create table buku (
kd_buku varchar(10) not null primary key,
judul varchar(30),
id_penerbit varchar(10));
kd_buku sebagai primary key tabel penerbit
id_penerbit sebagai foregein key untuk merelasikan tabel buku dengan tabel penerbit
3. Buat tabel penerbit dengan script seperti dibawah ini
create table penerbit (
id_penerbit varchar(10) not null primary key,
nm_penerbit varchar(30),
alamat varchar(50));
id_penerbit sebagai primary key tabel penerbit
4. Untuk merelasikan tabel buku dengan tabel penerbit gunakan script dibawah ini
 alter table buku add foreign key (id_penerbit)
 references penerbit(id_penerbit)
 on delete cascade on update cascade;

kita harus menambahkan perintah on delete[opsi] dan on update[opsi] pada tabel yang mereferensikan foreign key. Opsi pada perintah tersebut antara lain ialah

1. RESTRICT, Jika tabel anak berisi nilai dalam kolom yang mengkait yang nilainya sama dengan di kolom terkait pada tabel induk, baris dalam tabel induk tidak bisa dihapus, dan nilai di kolom terkait tidak dapat diupdate.
ini adalah opsi default jika klausa on delete atau on update tidak dispesifikasikan.

2. CASCADE, Baris-baris dalam tabel anak yang berisi nilai-nilai yang juga terdapat dalam kolom terkait dari tabel induk dihapus ketika barisbaris yang berkaitan dihapus dari tabel induk. Baris-baris dalam tabel anak yang berisi nilai-nilai yang juga terdapat dalam kolom terkait dari tabel induk diupdate ketika nilai-nilai yang berkaitan diupdate dalam tabel induk.

3. SET NULL, Nilai-nilai dalam kolom yang mengkait dari tabel anak diset ke NULL saat baris-baris dengan data terkait dalam tabel induk dihapus dari tabel induk atau ketika data terkait dalam tabel induk diupdate. Untuk menggunakan opsi ini, semua kolom-kolom yang mengkait dalam tabel anak harus mengijinkan nilai NULL.

4. NO ACTION Tidak ada aksi yang diambil dalam tabel anak ketika baris-baris dihapus dari tabel induk atau nilai-nilai dalam kolom terkait dalam tabel induk diupdate.

5. SET DEFAULT Nilai-nilai dalam kolom-kolom yang mengkait dari tabel anak diset ke nilai default mereka ketika baris-baris dihapus dari tabel induk atau kolom terkait dari tabel induk diupdate.

jika sudah kita input data ke tabel pengarang dengan script dibawah ini
INSERT INTO penerbit (id_penerbit, nm_penerbit, alamat)
values
('PR0001','Penerbit1','Bandar Lampung'),
('PR0002','Penerbit2','Bandar Lampung');

dan input data ke tabel buku dengan script dibawah ini
INSERT INTO buku (kd_buku, judul, id_penerbit) 
VALUES 
('BK0001', 'Tutorial Pemrograman C#', 'PR0001'), 
('BK0002', 'Tutorial Pemrograman VB.NET', 'PR0001'),
('BK0003', 'Tutorial Pemrograman PHP','PR0002');

untuk mengecek apakah tabel buku dan tabel pengarang sudah saling berelasi
kita coba untuk menghapus data pada tabel penerbit dengan id_penerbit PR0001
DELETE FROM penerbit 
where id_penerbit='PR0001';

karna kita memilih opsi CASCADE pada perintah on delete dan on update maka jika data penerbit dengan id_penerbit PR0001 terhapus maka data buku yang memiliki id_penerbit PR0001 juga akan ikut terhapus


Author image

About the Author :

Nama Saya Dwi Randy Herdinanto. Saya Tinggal Di Bandar Lampung, Saat Ini SayaKuliah di Salah Satu Perguruan Tinggi di Lampung dan Juga Bekerja di Software House Lampung

Connect with me on :

1 Comments
Comments
 
Top