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 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.
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 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 |
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 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 |
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 Setelah Dijalankan mrupakan tampilan sintak setelah dijalankan, dan membentuk foreign key baru di tabel transaksi.
komentar dengan bijak ya :)
please write comments wisely :)
EmoticonEmoticon