Selamat Tahun Baru 2018 Masehi. Dengan bertambahnya tahun, semoga kita menjadi insan yang lebih baik.

Sunday, 18 January 2015

Setelah kita membuat tabel-tabel untuk database kita, langkah selanjutnya adalah memberikan relasi / hubungan antar tabel. Kenapa harus ada relasi ? 

Perlu diketahui, tabel dalam konsep database merupakan sebuah entitas. Entitas adalah model yang mewakili obyek di dunia nyata, baik obyek itu bersifat ri’il (benda) seperti buku, pegawai, dan siswa  atau bersifat konsep seperti rekening dan transaksi. Dalam kehidupan nyata, tiap entitas pasti saling berhubungan satu sama lain untuk menjalankan satu proses. Misal, di lingkungan sekolah, murid pasti memiliki hubungan dengan mata pelajaran. Ada interaksi proses di antara keduanya. Begitu juga dengan guru, staff,  sarana, ekskul atau entitas lainnya.

Nah, karena di dunia nyata entitas-entitas itu memiliki hubungan dan proses, maka ketika dimodelkan dalam bentuk tabel di database, tabel-tabel itu pun harus bisa menggambarkan dengan jelas hubungan dan alur proses informasi yang terjadi.  Karena itulah, perlu adanya relasi antar tabel.

Kita masih di MySQL Workbench. Pada kasus ini, sebagai contoh kita menggunakan dua tabel saja, misal tabel barang dan pembeli (biasanya desain Database untuk pertokoan atau minimarket).


Ada beberapa model pilihan relasi yang tersedia, yakni :
a. One to one (satu ke satu)
Relasi ini jarang digunakan dan memang hanya terjadi pada dua tabel yang memiliki hubungan sangat spesifik. Misalnya, jika ada tabel KTP dan tabel penduduk, hubungan keduanya lebih tepat “satu ke satu” karena tiap penduduk hanya satu jatah KTP atau sebaliknya. Penjelasan ini mungkin agak berbeda dengan teori akademisnya, namun agar mudah untuk mengingat, konsep kasar inilah yang biasanya saya gunakan.
Relasi one to one akan mengakibatkan primary key tiap tabel akan menjadi foreign key dari tabel yang lain. Jika A dan B adalah one to one, maka primary key B masuk ke A menjadi foreign key dan begitu juga sebaliknya.

b. One to many (satu ke banyak)
Hubungan one to many akan mengakibatkan primary key dari dari salah satu tabel masuk ke tabel yang lain menjadi foreign key. Contoh kasusnya, antara tabel Dokter dan Pasien. Idealnya,manakah yang lebih tepat ? apakah “satu dokter menangani banyak pasien” atau kah “satu pasien ditangani banyak dokter” ? Tentu pernyataan pertama adalah yang lebih tepat dan relasi Dokter dan Pasien adalah one to many. Dalam hal ini, primary key dari dokter akan masuk di tabel pasien. Dengan begitu akan jelas, pasien A ditangani oleh dokter siapa ? tinggal melihat pada primary dokter yang masuk pada tabel pasien.

c. Many to many (banyak ke banyak)
Model relasi ini akan menghasilkan tabel baru yang merupakan “penggabungan” dari dua tabel yang direlasikan. Sebisa mungkin relasi ini dihindari karena pada desain data base yang kompleks akan membuat jumlah tabel beranak pinak.

Kembali ke dua tabel kita, dari tiga pilihan relasi di atas, tentu kita dapat menyimpulkan, relasi yang paling tepat antara barang dan pembeli adalah one to many. Cara untuk memberi relasinya :

a. Klik icon
  
b. Klik satu kali pada tabel yang menjadi many, dalam hal ini adalah barang (karena satu pembeli bisa membeli banyak barang)
c. Selanjutnya klik satu kali juga pada pembeli.



Sampai di sini, dua tabel kita telah terhubung.

Categories: ,

2 comments:

  1. Maaf mau tanya,kan ada 2 jenis tools ya,ada yang identifying(relasi yang garisnya nyambung) dan non identifying(relasi yang garisnya putus"), gimana cara penggunaannya ya, memilih garis relasi yang tepat untuk menghubungkan tabel"nya?

    ReplyDelete