Anda di halaman 1dari 6

langsung aja yc di sini saya ingin membuat relationship di MYSQL, mungkiin untuk di MS.

ACCESS itu hal yang mudah tinggal drag sana drag sini trus checlist jadi dech, tapi beda halnya dengan di mysql. udah ah kita langsung aja yc , pertama kita buat 2 buat table 1 create table siswa( 2NIS varchar(7) not null primary key, 3NAMA varchar(30) not null, 4KELAS varchar(4))ENGINE=INNODB; 5 6create table absen( 7NIS varchar(7)not null, JAM_MASUK datetime, 8JAM_KELUAR datetime)ENGINE=INNODB; 9 ya table nya emang itu itu saja yang namanya create table, nah di sini baru kita buat relasinya 1alter table `absen` add CONSTRAINT `siswa_fk` 2FOREIGN KEY (`NIS`) REFERENCES `siswa`(`NIS`) 3ON DELETE CASCADE ON UPDATE CASCADE masih bingung ? ni saya jelasin ununtuk yg `siswa_fk` itu nama dari foreign nya bebas ko di isi apa aja tapi jangan samapi ada yang sama jadi kita alter table absen, artinya jika kita update atau delete record yang ada di table siswa maka table absen pun ikut terganti atau terdelete. untuk menghapus FOREIGN KEY itu juga mudah, hanya dengan 1ALTER TABLE `siswa` DROP FOREIGN KEY `siswa_fk`; untuk melihat sebuah nama FOREIGN KEy dari table ini, mestinya ini dulu yc baru untk menghapus tapi biarin deh biar di baca semuanya, hhe. 1SHOW CREATE TABLE `absen` eh ada yang kelupaan, jika table yang dibuat itu sudah lama liat dulu type table yang di pakai apakah MyIsam atau InnoDB atau yang lainya, eh ternyata punya aku MyIsam, aduh gimana yac enggak bisa donk, tidak perlu panik gunakan saja 1ALTER TABLE `siswa` ENGINE = InnoDB

Foreign Key, Relationship dan Referential Integrity di MySQL


October 27th, 2008 | by rosihanari | Cetak Artikel

Print Ada beberapa mahasiswa saya yang bertanya, Pak bisa tidak di MySQL diterapkan konsep Foreign Key dan Referential Integrity seperti halnya di MS. Access?. Memang dalam MS. Access kita bisa melakukan setting relasi antar tabel, yang menggambarkan hubungan PRIMARY KEY dan FOREIGN KEY antar tabel. Sebagai contoh, misalkan dalam kasus pengambilan matakuliah mahasiswa. Dalam kasus ini misalkan terdapat tabel induk bernama MHS yang di dalamnya terdapat field NIM, NAMAMHS. Tabel induk yang lain adalah MK untuk menyimpan data matakuliah dengan field-fieldnya KODEMK, NAMAMK. Dalam hal ini field NIM dan KODEMK masing-masing adalah primary key pada tabel MHS dan MK. Selanjutnya ada tabel lain bernama AMBILMK dengan field NIM, KODEMK, NILAI yang digunakan untuk menyimpan data pengambilan matakuliah mahasiswa. Nah dalam hal ini, field NIM dan KODEMK keduanya adalah bertindak sebagai FOREIGN KEY. Selanjutnya dalam MS. Access terdapat pula fasilitas untuk mengimplementasikan referensial integrity. Misalkan, kita ubah data salah satu kode NIM mahasiswa dalam tabel induk MHS. Nah secara otomatis proses update ini juga terjadi di tabel AMBILMK yaitu pada data yang terkait NIM tersebut. Begitu pula pada proses penghapusan. Sebagai contoh misalkan kita hapus salah satu kode matakuliah di tabel MK, maka secara otomatis data yang terkait dengan kode matakuliah tersebut pada tabel AMBILMK akan terhapus. Nah.. bagaimana dengan MySQL? Kira-kira bisa tidak diterapkan kedua hal di atas seperti halnya MS. Access? Saya jawab TENTU SAJA BISA. Yang menjadi pertanyaan adalah, Bagaimana cara melakukannya?. Ya untuk menerapkan konsep FOREIGN KEY dan REFERENTIAL INTEGRITY ini, kita harus mensetting MySQL nya bisa support untuk tabel bertipe INNODB. Biasanya ketika proses instalasi MySQL akan ditanyakan apakah databasenya support dengan INNODB? Untuk hal ini, Anda harus jawab YA. Namun.. bila proses instalasi Anda terlanjur tidak memilih support INNODB, maka cara mengaktifkan INNODB adalah buka file my.ini lalu cari baris perintah skip-innodb. Hapuslah perintah ini, lalu hentikan MySQL dan hidupkan kembali MySQL (restart MySQL). OK sekarang kita coba untuk studi kasus. Kita akan membuat database untuk keperluan pengambilan matakuliah mahasiswa seperti pada kasus di atas. Berikut ini, adalah perintah SQL untuk membuat tabel-tabelnya.

Perintah SQL untuk membuat tabel MHS view sourceprint?


1.CREATE TABLE mhs 2.( 3.nim varchar(8), 4.namaMhs varchar(20), 5.PRIMARY KEY (nim) 6.) TYPE = INNODB;

Perintah SQL untuk membuat tabel MK view sourceprint?


1.CREATE TABLE mk 2.( 3.kodeMK varchar(3), 4.namaMK varchar(20), 5.PRIMARY KEY (kodeMK) 6.) TYPE = INNODB;

Perhatikan kedua perintah SQL di atas. Karena kita akan membuat tabel bertipe INNODB, maka masing-masing perintah SQL diberikan perintah TYPE = INNODB; Sekarang, kita lanjutkan untuk membuat tabel untuk ambilMK. view sourceprint?
01.CREATE TABLE ambilMK 02.( 03.nim varchar(8), 04.kodeMK varchar(3), 05.nilai float(3,2), 06.PRIMARY KEY (nim, kodeMK), 07.FOREIGN KEY (nim) REFERENCES mhs (nim) ON DELETE CASCADE ON UPDATE CASCADE, 08.FOREIGN KEY (kodeMK) REFERENCES mk (kodeMK) ON DELETE CASCADE ON UPDATE CASCADE 09.) TYPE = INNODB;

Tabel di atas terdapat dua primary key yaitu NIM dan KODEMK. Sedangkan field NIM ini juga merupakan foreign key yang direferensikan dari field NIM yang ada dalam tabel MHS. Oleh karena itu tambahkan perintah FOREIGN KEY (nim) REFERENCES mhs (nim). Selanjutnya apa maksud dari ON DELETE CASCADE? Perintah ini maksudnya bila ada data NIM yang dihapus pada tabel MHS, maka secara otomatis data NIM yang ada dalam tabel AMBILMK ini juga akan terhapus. Sedangkan ON UPDATE CASCADE digunakan untuk proses update otomatis pada NIM dalam tabel AMBILMK, apabila NIM yang ada di tabel MHS ini diupdate. Hal yang sama juga kita terapkan untuk tabel AMBILMK. Dalam hal ini, KODEMK adalah sebagai foreign key yang direfensikan dari KODEMK yang ada dalam tabel MK. Sekarang coba Anda masukkan data-data berikut ini pada tabel MHS view sourceprint?

1.NIM 2.M0197001 3.M0197002 4.M0197003 5.M0197004 6.M0197005

NAMAMHS Rosihan Ari Yuana Dwi Amalia Fitriani Faza Fauzan Nada Hasanah Muh. Ahsani Taqwim

Masukkan pula data pada tabel MK view sourceprint?


1.KODEMK 2.M01 3.M02 NAMAMK Database OOP

Nah untuk mengecek referensial integrity, sekarang kita coba masukkan data pada tabel AMBILMK. view sourceprint?
1.INSERT INTO ambilmk VALUES ('M0197001', 'M01', 3.0);

Ketika perintah SQL di atas dijalankan, data dapat dimasukkan ke tabel AMBILMK dengan sukses. Kita lihat bahwa NIM M0197001 terdapat dalam tabel MHS, begitu pula pada kode matakuliah M01 yang ada pada tabel MK. Sehingga isi tabel AMBILMK menjadi view sourceprint?
1.NIM 2.M0197001 KODEMK M01 NILAI 3.0

Sekarang kita coba masukkan data berikut ini view sourceprint?


1.INSERT INTO ambilmk VALUES ('M0197006', 'M01', 3.0);

Nah perintah di atas akan menghasilkan error. Hal ini disebabkan NIM M0197006 tidak ada dalam tabel MHS. Sekarang kita coba melakukan proses update. Kita akan mengupdate NIM M0197001 menjadi M0197010 yang ada dalam tabel MHS. view sourceprint?
1.UPDATE mhs SET nim = 'M0197010' WHERE nim = 'M0197001';

Hasil query di atas pada tabel MHS menjadi view sourceprint?


1.NIM 2.M0197010 NAMAMHS Rosihan Ari Yuana

3.M0197002 4.M0197003 5.M0197004 6.M0197005

Dwi Amalia Fitriani Faza Fauzan Nada Hasanah Muh. Ahsani Taqwim

Sekarang Anda coba lihat isi tabel AMBILMK. Pastilah isinya menjadi berikut ini view sourceprint?
1.NIM 2.M0197010 KODEMK M01 NILAI 3.0

Selanjutnya kita coba update untuk KODEMK yang ada dalam tabel MK. Misalnya akan diubah kode mk M01 menjadi M09. view sourceprint?
1.UPDATE mk SET kodeMK = 'M09' WHERE kodeMK = 'M01';

Hasil query di atas pada tabel MK adalah view sourceprint?


1.KODEMK 2.M09 3.M02 NAMAMK Database OOP

Nah bila kita lihat data di tabel AMBILMK, pastilah isinya menjadi view sourceprint?
1.NIM 2.M0197010 KODEMK M09 NILAI 3.0

Bagaimana dengan proses penghapusan? Kita cek aja sekarang kita coba hapus data mahasiswa berNIM M0197010 dalam tabel MHS. view sourceprint?
1.DELETE FROM mhs WHERE nim = 'M0197010';

Hasil dari query SQL di atas pada tabel MHS adalah view sourceprint?
1.NIM 2.M0197002 3.M0197003 4.M0197004 5.M0197005 NAMAMHS Dwi Amalia Fitriani Faza Fauzan Nada Hasanah Muh. Ahsani Taqwim

Sekarang bila kita lihat isi tabel AMBILMK, pastilah menjadi kosong karena data pengambilan matakuliah terkait dengan mahasiswa NIM M0197010 ini ikut terhapus.

OK begitulah penjelasan ini saya tulis. Moga-moga bermanfaat bagi mahasiswaku semua terus semangat belajar dan pantang menyerah. Indonesia sangat membutuhkanmu

Anda mungkin juga menyukai