10 MySQL - Refrential Integrity Constraint
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 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 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 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 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 merupakan tampilan Kode Program Sintak Set Default Setelah Dijalanakan.
Baca Juga: Data Definition Language (DDL)
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.
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 Setelah Dijalankan mrupakan tampilan sintak setelah dijalankan, dan membentuk foreign key baru di tabel transaksi.
Komentar
Posting Komentar