Archive for February, 2008

One-To-One Relationship : Kiat Hubungan Interpersonal

Wednesday, February 27th, 2008

Ada yang menarik dalam konsep relationship pada basis data, khususnya mengenai one-to-one relationship. Konsep ini mengenai bagaimana mentransformasikan ER model yang mengandung one-to-one relationship ke dalam model relational. Apakah dua buah entitas yang memiliki one-to-one relationship ini akan ditransformasikan menjadi satu tabel atau dua tabel ? Kalau dua tabel, primary key dari tabel yang mana yang harus ditempatkan pada tabel yang lain menjadi foreign key ?

Saya akan mulai dengan contoh. Andaikan ada dua entitas : mahasiswa dan komputer. Jika asumsinya setiap mahasiswa mendapat fasilitas satu komputer dan setiap mahasiswa selalu menggunakan computer yang sama untuk melakukan praktikum dari semester awal sampai dia lulus, maka relationship antara entitas mahasiswa dan computer ini adalah one-to-one relationship. Jika ternyata masing-masing mahasiswa mendapat satu computer dan tidak ada computer yang tersisa (semua telah dialokasikan kepada mahasiswa), maka kedua entitas ini dinamakan memiliki mandatory one cardinality (total participation). Untuk kasus yang demikian, maka transformasi model ER ke model relational menjadi satu tabel. Kita satukan kedua entitas dengan atribut-atributnya ke dalam satu tabel.

Sebagai contoh: entitas mahasiswa memiliki atribut NRP, dan entitas computer memiliki atribut kode_komp dan tipe. Misal entity instance dari entitas mahasiswa adalah M={M1, M2, M3} dan entity instance dari entitas computer adalah K={(K1, T1), (K2, T2), (K3, T3)}, maka model relasionalnya menjadi tabel baru yang mengandung tiga field NRP, Kode_komp, dan Tipe dengan entity instancenya  misal M_K = {(M1, K1, T1), (M2, K2, T2), (M3, K3, T3)}.

Dalam konteks hubungan interpersonal (hubungan pribadi antara dua orang manusia), ini adalah hubungan interpersonal yang ideal. Jika analoginya, diri kita adalah representasi dari suatu entitas, dengan atribut berupa keinginan, harapan, dll. Dan orang lain adalah entitas yang lain. Maka jika setiap entity instance kita (keinginan/harapan) bertemu tepat dengan entity instance (keinginan/harapan) dari orang lain…. Maka sesungguhnya hati kita dengan hati orang itu seperti telah menyatu. Kita dapat merasakan apa yang orang lain rasakan begitu pula sebaliknya. Ini mungkin seperti yang diisyaratkan Nabi : tidak beriman seseorang sebelum dia mencintai suadaranya seperti kecintaannya  pada dirinya sendiri.    

Tapi memang sulit mewujudkan relationship yang ideal seperti di atas. Kenyataannya, kita sering berusaha memahami orang lain tetapi merasa bahwa orang lain tersebut belum memahami kita penuhnya. Konsep one-to-one relationship berikut akan memperjelas bagaimana kita harus bersikap.

Kembali ke contoh entitas mahasiswa dan computer. Jika asumsinya departemen tersebut memiliki computer yang berlebih. Maka setiap mahasiswa mendapatkan tepat satu computer yang berarti entity instance dari entitas mahasiswa berpartisipasi penuh pada relationship (mandatory one cardinality). Sementara itu, karena jumlah computer berlebih, maka ada computer yang menganggur (alias tidak dialokasikan kepada mahasiswa) sehingga entity instance pada entitas computer hanya berpartisipasi sebagian (optional one cardinality). Untuk kasus yang demikian, ketika ditransformasikan ke model relational, akan  menghasilkan dua tabel, yaitu : tabel mahasiswa dan tabel computer. Dan yang terpenting adalah primary key dari tabel yang memiliki optional one cardinality (dalam hal ini tabel komputer harus ditempatkan ke  tabel yang mandatory one cardinality (dalam hal ini tabel mahasiswa) sebagai foreign key. Tidak boleh terbalik. Jika terbalik, akan banyak nilai Null pada tabel komputer.

Lebih jelasnya : jika misalnya M = {(M1, M2, M3} dan K = {(K1, T1), (K2, T2), (K3, T3), (K4, T4), (K5, T5)} maka setelah ditransformasikan ke dalam model relasional menjadi dua tabel M dan K, yaitu:  M = {(M1,K1), (M2,K2), (M3, K3)}, di mana K1, K2, dan K3 sebagai foreign key dan K = {(K1, T1), (K2, T2), (K3, T3), (K4, T4), (K5, T5)}.

Jika penempatan primary key terbalik. Maka akan menghasilkan :

M = {M1, M2, M3}  dan K = {(K1, T1, M1), (K2,T2, M2), (K3, T3, M3), (K4, T4, Null), (K5, T5, Null)}.

Dalam konteks hubungan interpersonal. Jika kita merasa tidak semua keinginan/harapan dipenuhi oleh orang lain tersebut maka analoginya kita seperti entitas computer pada contoh di atas (yaitu memiliki optional one cardinality)  sedangkan orang lain  tersebut yang mungkin telah merasa cukup puas dengan relationship yang kita bangun analoginya seperti entitas mahasiswa (yang memiliki mandatory one cardinality). Sesuai dengan contoh di atas. Kalau kita menemui kasus yang demikian, maka seharusnyalah kita tetap bersabar/berusaha memahami orang lain tersebut. Kita berusaha dengan ikhlas untuk terus menanamkan identitas kita (primary key) ke dalam lubuk hati orang lain tersebut. Berusaha untuk selalu memulai memahami, memaafkan, menyapa, dll. Karena jika kita berbuat sebaliknya, menuntut orang lain tersebut untuk selalu memulai memahami kita, di dalam hati kita akan ada ruang ruang kosong. Jiwa kita akan diliputi kehampaan-kehampaan. Ini mungkin yang diisyaratkan oleh Nabi Muhammad saw, manusia yang paling sempurna akhlaknya, agar kita “menyebarkan salam”, “menyebarkan senyum”, “dan selalu menjadi yang lebih dulu memaafkan”.

Wallahu ‘alam