Relasi pada MySQL 4 : Designer Menu pada PhpMyAdmin


Sejak upgrade ke XAMPP 1.6.8 (kalau gak salah), gw ngeliat menu keren ini. Menu designer di PhpMyAdmin berguna untuk mendefinisikan relasi manual seperti ini, atau seperti ini. Dengan menu designer, setelah pembuatan tabel (tentunya dengan membuat index pada field yang menjadi foreign key), anda bisa membuat relasi dengan cara klik seperti halnya pada Microsoft Access. Berikut langkahnya.

Buka phpMyAdmin, pilih database yang diinginkan, misalnya universitas, kemudian piilih menu “Designer”

Kemudian akan muncul tampilan seperti ini:

untuk menampilkan field pada tabel, double klik tanda panah pada tabel

Klik tombol untuk membuat relasi, kemudian klik field yang menjadi referenced key (jurusan->id_jurusan), dan foreign key (mahasiswa-> id_jurusan), sehingga muncul tampilan sebagai berikut.

Jika relasi berhasil dibuat, akan muncul tampilan sebagai berikut.

Selamat mencoba :)


Relasi pada MySQL 3 : Membuat tabel InnoDB dengan phpmyadmin.


Pada tulisan ini, kita telah membuat tabel dengan engine innodb dengan menggunakan Query. Sekarang kita akan mencoba membuat tabel berelasi dengan menggunakan phpmyadmin, tanpa sintaks sama sekali. Langkah-langkahnya adalah:

Pada halaman home phpmyadmin, cari tulisan ‘Create Database’ atau ‘Ciptakan database baru’, kemudian isi dengan nama universitas (nama database)

Kemudian buat tabel pada database universitas.

1. Buat tabel jurusan dengan 2 field, seperti tampilan dibawah, kemudian klik go

2.  Buat tabel dengan mengisi kolom-kolom seperti dibawah:

Jangan lupa ubah storage enginenya menjadi InnoDB

Ulangi untuk tabel mahasiswa

1. Buat tabel mahasiswa dengan 4 field, seperti tampilan dibawah, kemudian klik go

Field Jenis Ukuran Primary Key Index
nim VARCHAR 8 Yes -
nama VARCHAR 30 - -
tgl_lahir DATE - -
id_jurusan VARCHAR 6 - Yes

Perlu diketahui, field yang akan dihubungkan harus dijadikan index. agar gampang dalam pendefenisian relasi.

Jangan lupa mendefiniskan storage engine= InnoDB. kemudian klik Simpan.

Untuk merelasikan tabel mahasiswa dan jurusan, klik link mahasiswa, kemudian klik tampilan relasi/relation view

Kemudian akan muncul tampilan seperti dibawah. Pilih field mana yang akan direlasikan (menjadi foreign key), pilih referenced fieldnya (dalam kasus ini adalah jurusan->id_jurusan), pilih perlakuan ON UPDATE dan ON DELETE (CASCADE, NULL, NO ACTION dan RESTRICT).

Klik tombol simpan.

Database sudah terelasi. Bagaimana cara membuktikannya?

Untuk membuktikannya anda dapat memasukkan data pada tabel mahasiswa (tabel child) (dengan asumsi tabel jurusan(tabel parents) belum diisi).

Jika terdapat tampilan error seperti diatas :

#1452 - Cannot add or update a child row: a foreign key constraint fails (`universitas/mahasiswa`, CONSTRAINT `mahasiswa_ibfk_1` FOREIGN KEY (`id_jurusan`) REFERENCES `jurusan` (`id_jurusan`) ON DELETE CASCADE ON UPDATE CASCADE)

artinya: Selamat, kedua tabel telah berelasi, tapi kalau gak ada tampilan error, berarti tabel anda belum berelasi. Mungkin saja anda lupa mengatur storage engine.

Selamat mencoba :)


Relasi pada MySQL 2 : Membuat Tabel dengan Engine InnoDB


Pada tulisan ini, kita telah membahas mengenai cara penambahan fitur relasi di MySQL. Nah untuk membuat tabel yang berelasi dan mendukung transaksi, kita harus mengaktifkan storage engine InnoDB. Sekarang kita akan membahas contoh pembuatan tabelnya. Misalkan ada database bernama universitas, dengan 2 tabel, jurusan dan mahasiswa.

Engine InnoDB didaftarkan pada saat membuat tabel. Berikut adalah perintahnya:

CREATE TABLE jurusan (
    id_jurusan VARCHAR(6) PRIMARY KEY,
    jurusan VARCHAR(30)
) ENGINE INNODB;

CREATE TABLE mahasiswa (
    nim VARCHAR(8) PRIMARY KEY,
    nama VARCHAR(30) NOT NULL,
    tgl_lahir DATE NOT NULL,
    id_jurusan VARCHAR(6),
    CONSTRAINT fk_jurusan FOREIGN KEY (id_jurusan)
    REFERENCES jurusan (id_jurusan)
) ENGINE INNODB

Selamat mencoba :)


Relasi pada MySQL


Pada MySQL, default storage enginenya adalah MyIsam, dimana pada MyIsam tidak mendukung adanya relasi database dan transaksi. Untuk membuat sebuah sistem informasi, pastinya diperlukan relasi antar tabel. Solusinya anda harus mengubah storage engine pada mysql menjadi InnoDB, karena script foreign key pada MyISAM tidak ada gunanya, hanya akan terconvert sebagai key biasa (index). Pada database/web server versi baru, InnoDB sudah otomatis diaktifkan, tapi pada database/web server versi lama, InnoDB tidak otomatis aktif.

Cara mengecek apakah innodb aktif pada web server anda:

- Buka phpmyadmin, klik menu Storage Engine/Mesin Penyimpan, sehingga muncul tampilan sebagai berikut:

Apabila InnoDB aktif, link akan berwarna biru, tapi jika nonaktif berwarna abu-abu. Untuk mengaktifkan InnoDB (jika belum aktif, lakukan langkah berikut):

- Buka notepad, kemudian klik menu File-Open (Ctrl+O), pilih All Files pada jenis dokumen

- Cari path web server anda, dan folder mysql, cari file bernama my.cnf / my.ini

- Buka file tersebut

- Cari tulisan skip-innodb, , kemudian beri komentar (tanda #), sehingga menjadi #skip-innodb
– hilangkan komentar pada tulisan berikut:

#innodb_data_home_dir = C:/xampp/xampp/mysql/data/
#innodb_log_group_home_dir = C:/xampp/xampp/mysql/data/
#innodb_log_arch_dir = C:/xampp/xampp/mysql/data/

- hilangkan komentar pada tulisan berikut:

#set-variable = innodb_buffer_pool_size=16M
#set-variable = innodb_additional_mem_pool_size=2M

- hilangkan komentar pada tulisan berikut:

#set-variable = innodb_log_file_size=5M
#set-variable = innodb_log_buffer_size=8M
#innodb_flush_log_at_trx_commit=1
#set-variable = innodb_lock_wait_timeout=50

Setelah modifikasi, script akan menjadi seperti berikut.

# skip-innodb
innodb_data_home_dir = C:/xampp/xampp/mysql/data/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = C:/xampp/xampp/mysql/data/
innodb_log_arch_dir = C:/xampp/xampp/mysql/data/
set-variable = innodb_buffer_pool_size=16M
set-variable = innodb_additional_mem_pool_size=2M
set-variable = innodb_log_file_size=5M
set-variable = innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
set-variable = innodb_lock_wait_timeout=50

.

Selanjutnya anda dapat menggunakan kembali MySQL anda dengan tambahan fitur relasi tabel :)


Ikuti

Get every new post delivered to your Inbox.