10 MySQL - Refrential Integrity Constraint

logo mysql


Salah satu jenis Integrity Constraint dalam yang  ada dalam relational database adalah Refrential Integrity Constraint 


Refrential Integrity Constraint merupakan aturan yang digunakan untuk menjaga kualitas dari informasi yang disimpan di database. Refrential  Integrity Constraint akan membantu kita untuk memastikan untuk tidak terjadinya kerusakan atau hilangnya integritas data saat proses Insert, Update dan Delete


Baca Juga:  Tipe-tipe Tabel yang Ada di MySQL


Misalnya Misalnya ketika suatu tabel berelasi dengan tabel data lain dan kita menghapus salah satu filed datanya namun itu tidak bisa dilakukan karena statusnya restrict (nanti akan dijelaskan dibawah). Tujuannya agar data yang ada di kedua tabel tersebut terjaga integritasnya jadi datanya tidak rusak di kemudian hari karen kesalahan relasi


Untuk menggunakan fitur Referential Integrity tipe dari store engine tabel yang digunakan adalah yang support transaksional, salah satu contoh di MySQL yang support transaksional adalah store engine InnoDB.



Refrential Integrity Constraint

1)    Restrict 

Restrict dalam bahasa indonesia adalah membatasi, maksudnya adalah data pada tabel induk tidak bisa di-delete atau di-update bila data tersebut memiliki relasi pada tabel lainnya.

CREATE TABLE prestasi(
kode char(6) NOT NULL,
kode_karyawan char(6) NOT NULL,
prestasi varchar(255) NOT NULL,
keterangan text,
PRIMARY KEY (kode),
FOREIGN KEY (kode_karyawan) REFERENCES karyawan (kode) 
ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE=InnoDB;


Kode Program Sintak Restrict adalah sintak yang digunkaan untuk menambahkan refrential integrity constraint dengan tipe restrict. Setelah dijalankan sintak pada Kode Program sintak restrict maka tampilannya akan seperti pada Gambar sintak restrict setelah dijalankan.


Gambar  Sintak Restrict Setelah Dijalankan
Gambar  Sintak Restrict Setelah Dijalankan


Gambar Sintak Restrict Setelah Dijalankan merupakan tampilan kode program 3.1 Sintak Restrict yang sudah berhasil dijalankan.

 

2)    Cascade

Cascade dalam bahasa Indonesia adalah bertingkat, maksudya adalah bila data pada tabel induk di-delete atau di-update maka secara otomatis data pada tabel lain yang memiliki relasi akan di-delete atau di-update juga.

CREATE TABLE prestasi(
kode char(6) NOT NULL,
kode_karyawan char(6) NOT NULL,
prestasi varchar(255) NOT NULL,
keterangan text,
PRIMARY KEY (kode),
FOREIGN KEY (kode_karyawan) REFERENCES karyawan (kode) 
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;

 

Kode Program Sintak Cascade adalah sintak yang dapat digunakan untuk menambahkan refrential integrity constraint cascade. 

 

Gambar Sintak Cascade
Tambahkan teksGambar Sintak Cascade


Gambar Sintak Cascade merupakan tampilan dari Kode Program Sintak Cascade yang sudah berhasil dijalankan pada CMD.


3)    No Action

No Action berarti mengabaikan referensi, artinya diperbolehkan untuk memperbarui, menghapus ataupun menambahkan data pada tabel, tetapi tidak akan berpengaruh pada data yang berelasi dengan tabel tersebut.
 

CREATE TABLE prestasi(
kode CHAR(6) NOT NULL,
id_p INT NOT NULL,
prestasi VARCHAR(255) NOT NULL,
keterangan TEXT,
PRIMARY KEY (kode),
FOREIGN KEY (id_p) REFERENCES pegawai(id_p) 
ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=INNODB;


Kode Program No Action merupakan sintak yang digunakan untuk menambahkan refrential integrity constraint cascade.

 

Gambar No Action
Gambar No Action


Gambar No Action merupakan tampilan dari Kode Program No Action yang telah berhasil dijalankan.
 

 

4)    Set Null

Set null adalah menghapus atau meng-update baris data dalam tabel induk dan men-set kolom atau beberapa kolom dalam tabel anak menjadi null. hal ini akan valid jika kolom foreign key tidak not null. jika akan menggunakan set null  bisa digunakan sintak On Delete Set Null dan On Update Set Null.

CREATE TABLE prestasi(
kode char(6) NOT NULL,
kode_karyawan char(6),
prestasi varchar(255) NOT NULL,
keterangan text,
PRIMARY KEY (kode),
FOREIGN KEY (kode_karyawan) REFERENCES karyawan (kode) 
ON DELETE SET NULL
) ENGINE=InnoDB;

 

Kode Program Sintak Set Null merupakan sintak yang digunakan untuk menambahkan refrential integrity constraint cascade dengan tipe set null.


Gambar Sintak Set Null Setelah Dijalankan
Gambar Sintak Set Null



Gambar Sintak Set Null Setelah Dijalankan merupakan tampilan Kode Program Sintak Set Null yang berhasil dijalankan dalam CMD.


 

5)    Set Default

Perintah Set Default ini dibutuhkan oleh parser, tapi InnoDB tidak menerima definisi tabel berupa On Delete Set Default atau On Delete Set Default.
 

CREATE TABLE prestasi( kode char(6) NOT NULL,
kode_karyawan char(6),
prestasi varchar(255) NOT NULL,
keterangan text,
PRIMARY KEY (kode), FOREIGN KEY (kode_karyawan) REFERENCES karyawan (kode) ON DELETE SET DEFAULT
) ENGINE=MyISAM;


Kode Program Sintak Set Default merupakan sintak yang digunakan untuk menambahkan refrential integrity constraint cascade dengan tipe Set Default.

 

Gambar Sintak Set Default
Gambar Sintak Set Default


Gambar Sintak Set Default merupakan tampilan Kode Program Sintak Set Default Setelah Dijalanakan.


Baca Juga: Data Definition Language (DDL) | Contoh dan Gambar



Cara Mengubah Tipe Tabel dan Refrential Integrity Constraint Didalam MySQL

Untuk mengubah Mengubah Tipe Tabel dan Refrential Integrity Constraint dalam MYSQL dapa digunakn sintak alter.

1)    Mengganti Tipe Tabel

Untuk merubah tipe tabel yang sudah digunakan dalam database MYSQL dapat menggunakan sintak Alter.

ALTER TABLE karyawan ENGINE=MyISAM;


Kode Program Sintak Alter Tipe Tabel merupakan sintak Alter yang dpaat digunakan untuk merubah tipe tabel yang sedang aktif atau digunakan dalam tabel. 


Gambar Sintak Alter Tipe Tabel
Gambar Sintak Alter Tipe Tabel
 
Sintak tersebut jikan dijalankan maka tipe tabel yang digunakan dalam tabel karyawan akan berganti menjadi MyISAM dari tipe tabel default InnoDB seperti Gambar Sintak Alter Tipe Tabel.



2)    Refrential Integrity Constraint

Refrential Integrity Constraint dapat diganti dengan sintak Alter yaitu dengan menghapus foreign key yang sudah ada lalu menambahkan denganyang baru.

ALTER TABLE transaksi
DROP FOREIGN KEY transaksi_ibfk_1;


Kode program Sintak Alter Foreign Key digunkan untuk menghapus foreign key yang sudah terbentuk sebelumnya.


ALTER TABLE transaksi ADD FOREIGN KEY(id_penumpang) 
REFERENCES penumpang(id_penumpang)
ON UPDATE RESTRICT ON DELETE RESTRICT;


Kode program Alter Table Transaksi Add Foreign Key merupakan sintak yang digunkan untuk menambahkan foreign key baru pad tabel transaksi dengan tipe Refrential Integrity Constraint Restrict.

 

Gambar Sintak Refrential Integrity Constraint
Gambar Sintak Refrential Integrity Constraint


Gambar Sintak Setelah Dijalankan mrupakan tampilan sintak setelah dijalankan, dan membentuk foreign key baru di tabel transaksi.

 

 

komentar dengan bijak ya :)
please write comments wisely :)
EmoticonEmoticon