Anda di halaman 1dari 6

Seminar Nasional Aplikasi Teknologi Informasi 2007 (SNATI 2007) ISSN: 1907-5022

Yogyakarta, 16 Juni 2007

PEMETAAN HUBUNGAN GENERALISASI/SPESIALISASI


PADA MODEL ER KE MODEL RELASIONAL
Ashari Imamuddin
Jurusan Teknik Informatika, Fakultas Ilmu Komputer, Universitas Bina Nusantara
Jl. KH Syahdan 9 Kemanggisan, Jakarta Barat 11480, Jakarta, Indonesia
e-mail: ashari1844@lecturer.binus.ac.id;

ABSTRAKSI
Hubungan kompleks generalisasi/spesialisasi dalam model ER dalam perancangan database dapat
ditemukan pada saat perancangan model konseptual. Turunan model konseptual adalah model logikal. Model
data logikal inilah yang akan diimplementasikan ke dalam RDBMS (relational database management systems).
Oleh karena ini makalah ini akan membahas bagaimana hubungan generalisasi/spesialisasi dipetakan dari
model ER ke model relasional. Di sini juga akan dibahas opsi-opsi pemetaan dan rekomendasi penggunaannya.
Disamping itu juga dikemukakan modifikasi statement dalam bahasa SQL agar dapat mengenali multi
referential untuk menjaga integritas referensial bagian superklas ke bagian subklas.

Kata Kunci: Perancangan database, generalisasi/spesialisasi, entity relationship, model relasional, referensial
key, superkelas, subkelas.

1. PENDAHULUAN satu superkelas. Dengan kata lain data dari subkelas-


Perancangan database dibagi menjadi 3 fase subkelas tersebut mereferensi satu superkelas,
atau tahapan yaitu tahap perancangan konseptual, hubungan seperti ini dalam tulisan ini disebut
tahap perancangan logikal, dan tahap perancangan dengan multi referential. Hubungan superclass/
fisikal. Perancangan database konseptual adalah subclass atau biasa juga disebut generasilsasi/
proses dibangunnya suatu model informasi yang spesialisasi. Model ER yang mengandung
digunakan dalam perusahaan berdasarkan generasilsasi/spesialisasi disebut dengan EER
pandangan penguna sistem informasi (use views), (Enhanced Entity Relationship).
dan tidak bergantung pada pertimbangan fisik. Makalah ini difokuskan pada perancangan
Perancangan database logikal adalah proses database dalam model ER (Entity Relationship),
dibangunnya suatu model dari informasi yang EER (Enhanced Entity Relationship) dan model
digunakan oleh perusahaan yang didasari oleh suatu relasional yang memiliki satu primary key. Juga
data model yang spesifik, tetapi tidak bergantung akan disajikan berbagai masalah dan teknik yang
pada DBMS (Data Base Management System) dan digunakan dalam pemetaan (mapping) model
pertimbangan fisikal lain. Perancangan database konseptual untuk EER ke model relasional, dan juga
fisik adalah proses menghasilkan deskripsi dari keterbatasan RDBMS dalam implementasi model
suatu implementasi dari database pada penyimpanan ini. Hal ini akan dilakukan dengan terlebih dahulu
(secondary storage), dan juga menjelaskan tentang dilakukan analisis terhadap proses mapping
base relations, pengorganisasian file (file generalisasi/spesialisasi dari model ER (Entity
organizatons), dan indeks (indexes) yang digunakan Relationship) ke EER (Enhanced Entiy
untuk mencapai efisiensi dalam mengakses data dan Relationship) yang kemudian dilanjutkan ke model
asosiasi batasan integrasi dan pengukuran keamanan relasional. Selain itu juga akan dibuat dua pilihan
lainnya. (Connolly, 2002) pemecahan masalah dalam implementasi
Pada desain konseptual, digunakan model generalisasi/spesialisasi ke dalam RDBMS
semantik dengan model ER (Entity relationship) (Relational Database Management Systems), yaitu
dimana model digunakan untuk menggambarkan membuat modifikasi statement dalam bahasa SQL
entitas-entitas yang ada dalam organisasi dan agar dapat mengenali multi referential untuk
hubungan antar entitas. Sedangkan pada implementasi model ini.
perancangan logikal berorientasi untuk
menerjemahkan model logikal yang dalam bentuk 2. ANALISIS HUBUNGAN
ER (Entity relationship) tersebut menjadi model GENERALISASI/SPESIALISASI
relasional. Atau dengan kata lain menerapkan model Di bawah ini akan dibahas kasus yang
konseptual ke dalam model relasional. berkaitan dengan generalisasi/spesialisasi yaitu
Dalam tahap konseptual, terdapat berbagai hubungan antara PropertyForRent, dan Owner
hubungan yaitu, one to one, one to many, many to yang memiliki dua subkelas/child yaitu
many, weak entities, strong entities, multivalued PrivateOwner dan BussinessOwner. (lihat gambar
atribute, superkelas/subkelas, agregasi, dan 1).
komposisi. Di antara hubungan di atas terdapat Pada kenyataannya, subkelas dari tabel
hubungan yang paling sulit untuk diterapkan dalam PropertyForRent mungkin saja lebih dari dua.
model relasional yaitu hubungan superkelas dan Untuk melakukan pemetaan ke dalam bentuk model
subkelas atau yang biasa dikenal dengan relasional maka perlu digunakan beberapa opsi yang
generalisasi/spesialisasi. Karena pada hubungan ini telah menjadi panduan pada kasus
akan sangat sulit untuk menjaga integritas data yang superkelas/subkelas. Berikut akan dibahas masing-
dimiliki subkelas yang satu dengan subkelas yang masing opsi yang terjadi pada kasus Owner.
lain, dimana subkelas-subkelas tersebut dimiliki oleh

E-33
Seminar Nasional Aplikasi Teknologi Informasi 2007 (SNATI 2007) ISSN: 1907-5022
Yogyakarta, 16 Juni 2007

Opsi 1 digunakan ketika seluruh


diskriminator yang dikumpulkan diuji, maka salah
satu dari atribut-atribut akan bersifat unik terhadap
suatu subkelas yang non-null, untuk
mendeterminasikan bahwa baris tersebut adalah
anggota dari subkelasnya. Dan perlu dipastikan
bahwa atribut yang diuji adalah atribut yang
dibutuhkan atau non-null.
Maka kesimpulannya jika opsi 1 digunakan
tidak pada kasus yang tepat, seperti pada contoh
kasus Owner yang menggunakan opsi 1, setelah
dianalisis memang tidak akan terjadi kendala pada
integritas referensial, dan integritas data, akan tetapi
kendala akan terjadi pada jumlah waste spacesia,
Gambar 1. Contoh kasus (Connolly, p443) selain itu juga dengan banyaknya null akan
memperlambat waktu query. Oleh karena itu opsi 1
Option 1 (Mandatory Nondisjoint) cocok digunakan untuk kasus dimana anggota
AllOwner(ownerNo, address, telNo, fName, superkelasnya seluruhnya adalah anggota
lName, bName, bType, contactName, subkelasnya.
pOwnerFlag, bOwnerFlag)
Primary Key ownerNo
Option 2 (Optional Nondisjoint)
Opsi 1 (Mandatory Nondisjoint) Owner (ownerNo, address, telNo)
membutuhkan satu relasi (dengan satu atau lebih Primary Key ownerNo
OwnerDetails (ownerNo, fName, lName, bName,
diskriminator untuk membedakan tipe macam- bType, contactName,
macam tuple atau baris). Opsi ini digunakan jika pOwnerFlag,bOwnerFlag)
seluruh anggota entitas superkelas harus menjadi Primary Key ownerNo
anggota dari subkelas-nya, dimana jumlah dari Foreign Key ownerNo references Owner
(ownerNo)
subkelasnya tidak dibatasi.
Pada opsi 1 jika digunakan pada kasus
Owner maka seperti yang digambarkan di atas pada Opsi 2 (Optional Nondisjoint) membutuhkan
Gambar 1, maka seluruh atribut dari superkelas dan dua relasi, dimana satu relasi dibutuhkan untuk
subkelas dimerger ke dalam satu tabel yaitu superkelas dan satu relasi untuk seluruh subkelas
AllOwner. Oleh karena itu jika data yang (dengan satu atau lebih diskriminator yang
dimasukkan dalam tabel tersebut adalah milik tabel membedakan setiap jenis recordnya). Opsi ini
PrivateOwner maka field yang mereferensikan digunakan ketika anggota dari superkelas tidak
tabel BusinessOwner akan terisi null, begitu pula seluruhnya harus menjadi anggota subkelas, dimana
sebaliknya. Akibatnya akan banyak sel yang dibuat jumlah dari subkelas tidak dibatasi.
sia-sia karena terisi null, dan itu artinya akan banyak Seperti halnya penggunaan opsi 1 pada kasus
space memory yang terbuang sia-sia. Dari hubungan Owner, jika diselesaikan menggunakan opsi 2 maka
di atas dapat dilakukan perhitungan untuk melihat akan terjadi pembuangan space memory pula, karena
banyaknya space kosong yang akan terjadi. dalam Tabel OwnerDetail akan ada sel-sel yang
Sebagai notasi jumlah record = n, jumlah berisi null, akibat dari merger atribut yang mewakili
kolom = x, jumlah kolom umum = u, jumlah kolom subkelas yang ada.
C1 = y, dan jumlah kolom C2 = x-( u+y ). Jika
dimasukan sejumlah record C1 = nC1 dan dimasukan
sejumlah record C2 = nC2, maka akan didapatkan
suatu rumus untuk menghitung jumlah space yang
terbuang (W):
W = nC1 * (x - ( u + y)) + nC2 * (y)

Dengan menggunakan rumus di atas dapat


diketahui jika terdapat 100 record (n) dengan:
Jumlah kolom (x) = 10,
Kolom umumnya (u) = 3, Gambar 2. Contoh mapping Option 2
Kolom C1 (y) =3 maka kolom C2 (x-(u+y)) = 4.
Untuk menghitung jumlah space yang kosong
Jika jumlah record C1 (nC1) yang dimasukan dapat digunakan permisalan untuk Tabel
sebanyak 60 dari 100 record dan jumlah record C2 OwnerDetail yaitu:
(nC2) sebanyak 40 dari 100 record, maka jumlah Jumlah record = n,
space memory yang akan berisi null dan sia–sia Jumlah kolom = x,
sebanyak 360 sel, dengan perhitungan di bawah ini: Jumlah kolom umum = u (digunakan hanya
W = nC1 * (x - ( u + y)) + nC2 * (y) untuk primary key yang referensial dengan
= 60 * (4) + 40 * (3) tabel P),
= 240 + 120 Jumlah kolom C1 = y,
= 360 Jumlah kolom C2 = x- ( u+y ),

E-34
Seminar Nasional Aplikasi Teknologi Informasi 2007 (SNATI 2007) ISSN: 1907-5022
Yogyakarta, 16 Juni 2007

Jika dimasukan sejumlah record C1 = nC1 Pada opsi ini, hanya akan menyelesaikan
dan dimasukan sejumlah record C2 = nC2, maka masalah hubungan antar entitas subkelas itu sendiri,
akan didapatkan suatu rumus untuk menghitung karena pada opsi ini mengkombinasikan entitas
jumlah space yang terbuang (W): superkelas dan subkelas (menambahkan primary key
superkelas pada setiap tabel subkelas), dan sekan-
akan menghilangkan entitas superkelas sehingga
W = nC1 * (x - ( u + y)) + nC2 * (y) entitas subkelas-subkelasnya seakan-akan berdiri
sendiri, oleh sebab itu tidak ada integritas referensial
yang dimiliki oleh kedua entitas tersebut. Namun
Jadi jika ada 100 record (n), dengan kedua entitas tersebut memiliki primary key yang
Jumlah record C1 (nC1) = 60, dan sama. Hal ini menimbulkan masalah kerancuan pada
Jumlah record C2 (nC2) = 40, dimasukkan entitas yang berhubungan dengan kedua entitas
dalam tabel P_Detail yang memliki tersebut.
jumlah kolom (x) = 8, Sebagai penjelasan lebih lanjutnya, pada
jumlah kolom umum yang merupakan foreign kasus Owner yang memiliki dua subkelas yaitu
key ke tabel P (u) = 1, PrivateOwner dan BusinessOwner, dengan
jumlah kolom C1 (y) = 3, dan menggunakan opsi ini maka seluruh anggota dari
jumlah kolom C2 (x - ( u+y )) = 4, entitas superkelas yaitu Owner harus menjadi
anggota dari salah satu subkelasnya dan setelah itu
maka dapat dihitung jumlah sel yang akan terbuang primary key entitas tersebut itu ditambahkan pada
atau berisi null adalah sebanyak 360 sel, dengan tabel subkelasnya sebagai primary key lalu entitas
rumus: Owner dihilangkan. Dengan demikian entitas
W = nC1 * (x - ( u + y)) + nC2 * (y) PrivateOwner mewakili hubungannya dengan
= 60 * 4 + 40 * 3 superkelas dan BusinessOwner juga mewakili
= 240 + 120 hubungannya dengan superkelas seolah-olah berdiri
= 360. sendiri dengan primary key yang sama yaitu
OwnerNo. Dengan demikian, dapat dilihat terdapat
Dari contoh di atas dapat disimpulkan bahwa masalah pada hubungan kedua entitas tersebut
jika opsi 2 tidak digunakan pada kasus yang tepat dengan entitas yang berada di level diatasnya yaitu
maka akan terjadi pembuangan space memory yang PropertyForRent yang pada awalnya berhubungan
sia-sia. Meskipun pada opsi 2 dibuat satu tabel dengan Owner. Penyelesaian pada opsi ini tidak
tambahan yang memuat merger seluruh atribut akan menyebabkan adanya space memory yang akan
subkelas dan di tambah satu atribut yang digunakan terbuang karena tidak ada atribut yang berisi null.
atribut referensi (foreign key). Berdasarkan
penggunaan opsi 1 dan 2 pada kasus Owner maka
dihasilkan rumus untuk menghitung jumlah cell
yang terbuang sia-sia yaitu:

dimana k adalah jumlah subkelas yang ada, dan y


adalah perumpamaan kolom subkelas.
Gambar 3. Contoh mapping option 3
Option 3 (Mandatory Disjoint)
PrivateOwner(ownerNo, fName, lName, address, Dapat dilihat dari pemetaan di atas, terdapat
telNo) masalah referensial antara ketiga tabel, karena tabel
Primary Key ownerNo
BusinessOwner(ownerNo, bName, bType, PropertyForRent menggunakan foreign key yang
contactName, address, telNo) sama untuk mereferensial ke tabel PrivateOwner
Primary Key ownerNo dan tabel BusinessOwner, namun datanya hanya
mereferensial ke salah satu di antara kedua table
Opsi 3 (Mandatory Disjoint) membutuhkan tersebut. Hal ini menyebabkan adanya keilegalan
banyak relasi dimana setiap relasi adalah kombinasi dalam standar statement RDBMS (Relational Data
superkelas atau subkelas. Oleh karena itu, pada Base Management Systems). Secara singkatnya, jika
kasus Owner hubungan antara superkelas Owner data dalam tabel PropertyForRent bereferensial
dengan PrivateOwner hanya dibentuk satu entitas dengan tabel PrivateOwner maka data dengan
PrivateOwner saja, begitu pula yang terjadi dengan primary key yang sama tersebut tidak boleh berada
BusinessOwner. Opsi ini digunakan ketika seluruh dalam tabel BusinessOwner, begitu pula sebaliknya
anggota dari entitas superkelas harus menjadi Karena pada opsi 3 ini melakukan pelanggaran pada
anggota dari hanya satu subkelas. Dan opsi ini standar statement RDBMS (Relational Data Base
berlaku jika superkelas memiliki lebih dari satu Management Systems) maka opsi ini sulit diterapkan
subkelas. dalam RDBMS (Relational Data Base Management
Systems).

E-35
Seminar Nasional Aplikasi Teknologi Informasi 2007 (SNATI 2007) ISSN: 1907-5022
Yogyakarta, 16 Juni 2007

Option 4 (Optional Disjoint)


Owner (ownerNo, address, telNo) 3. REKOMENDASI PENGUNAAN OPSI-
Primary Key ownerNo OPSI
PrivateOwner (ownerNo, fName, lName)
Primary Key ownerNo
Foreign Key ownerNo references Owner Option 1 - Mandatory Nondisjoint
(ownerNo) Digunakan ketika seluruh anggota superkelas
BusinessOwner (ownerNo, bName, bType, seluruhnya harus menjadi anggota dari
contactName)
Primary Key ownerNo subkelasnya, dimana jumlah subkelasnya boleh
Foreign Key ownerNo references Owner lebih dari satu.
(ownerNo)
Option 2 - Optional Nondisjoint
Opsi 4 (Optional Disjoint) membutuhkan Digunakan ketika seluruh anggota superkelas
banyak relasi, dimana satu relasi dibutuhkan tidak seluruhnya menjadi anggota dari
superkelas dan satu lagi untuk setiap subkelasnya. subkelasnya, dimana jumlah subkelasnya boleh
Pada opsi ini anggota dari entitas superkelas tidak lebih dari satu.
harus seluruhnya menjadi anggota dari satu
subkelas. Selain itu opsi ini berlaku jika superkelas Option 3 - Mandatory disjoint
memiliki lebih dari satu subkelas. Berlaku jika superkelas memiliki lebih dari satu
Pada opsi 4, dimisalkan hubungan antara subkelas. Digunakan ketika seluruh anggota
entitas superkelas Owner dan entitas subkelasnya superkelas seluruhnya harus menjadi anggota
PrivateOwner, BusinessOwner yang dijadikan 3 dari salah satu subkelasnya,
tabel atau entitas terpisah, seperti yang terlihat pada
Gambar 3.4. Sesuai dengan batasan partisipasinya, Option 4 - Optional disjoint
anggota dari Owner tidak perlu seluruhnya menjadi Berlaku jika superkelas memiliki lebih dari satu
anggota PrivateOwner atau BusinessOwner, tetapi subkelas. Digunakan ketika tidak seluruh
anggota Owner yang sudah menjadi anggota anggota superkelas seluruhnya menjadi anggota
PrivateOwner tidak boleh menjadi anggota dari dari salah satu subkelasnya.
BusinessOwner. Seperti halnya penggunaan opsi 3,
jika opsi 4 diterapkan untuk menyelesaikan kasus ini Dari rekomendasi di atas dapat dilihat
maka tidak akan terjadi pembuangan space memory pemilihan penggunaan opsi tergantung pada
yang sia-sia, akan tetapi menurut dari sifat datanya, partisipasi data atau anggota superkelas terhadap
kasus ini tidak cocok batasan partisipasinya jika subkelasnya serta batasan kepemilikan data antar
diselesaikan dengan opsi 4, sebab akan subkelas-subkelas (Batasan Disjoint). Untuk
menimbulkan kendala ketika melakukan manipulasi memperjelas penggunaan dan kesimpulan pada
data. rekomendasi berikut diberikan beberapa contoh
kasus yang membutuhkan pertimbangan pemilihan
opsi untuk menyelesaikan masalah
generalisasi/spesialisasi.

4. DASAR PEMILIHAN OPSI


Berdasarkan tabel rekomendasi, maka jika
terdapat kasus generalisasi/spesialisasi, hal yang
harus dilakukan sebelum menentukan opsi yang
akan digunakan, akan dijelaskan berikut ini beserta
contoh-contoh kasusnya.

Kasus 1
Gambar 1. Contoh mapping option 4 Sebuah perusaahaan memiliki dua jenis staff
yang dapat dibedakan menjadi staff full-time yang
Sebagai penjelasan lebih lanjut, pada kasus artinya bekerja sepanjang hari dan staff part-time
Owner, primary key yang terdapat pada tabel atau staff yang bekerja setengah hari. Dari kasus di
PrivateOwner dan BusinessOwner bereferensial atas dapat dilihat bahwa:
dengan tabel Owner, oleh karena itu data yang ada - terdapat entitas Staff, stafPartTime dan
di dalam tabel PrivateOwner dan BusinessOwner stafFullTime
tergantung pada data dari tabel Owner. - entitas Staff adalah superkelas yang memilki
Perbedaaan antara opsi 3 dan 4 adalah pada subkelas stafPartTime dan stafFullTime
opsi 3 entitas subkelas berhubungan dengan entitas - batasan partisipasi data superkelas dalam
lain yang bukan merupakan superkelasnya, subkelas adalah mandatory yang artinya seluruh
sementara pada opsi 4 entitas subkelas berhubungan staff harus seluruhnya menjadi anggota dari salah
dengan entitas superkelasnya langsung. Selain itu satu subkelanya
pada opsi 3, data dari tabel yang berada di level atas - dengan melihat jumlah subkelasnya maka jenis
PropertyforRent sangat bergantung pada data batasan disjoint-nya adalah disjoint.
subkelasnya (PrivateOwner dan BusinessOwner), - staff yang terdaftar sebagai staff full time tidak
sedangkan pada opsi 4, data subkelas-subkelasnya dapat menjadi staff part time, dan begitu pula
(PrivateOwner dan BusinessOwner) sangat sebaliknya
bergantung dari data superkelasnya (Owner).

E-36
Seminar Nasional Aplikasi Teknologi Informasi 2007 (SNATI 2007) ISSN: 1907-5022
Yogyakarta, 16 Juni 2007

Melihat dari deskripsi di atas maka solusi yang baik e. Tentukan batasan partisipasi keanggotaan
adalah opsi 3 yang cocok untuk mandatory disjoint. superkelas terhadap subkelas-nya
f. Tentukan batasan disjoint dari superkelas dan
Kasus 2 subkelas-nya dari jumlah subkelas-nya
Hubungan antara staff dan manager. Manager g. Identifikasi opsi dengan pertimbangan tabel
adalah staff, dan ada staff yang bekerja di bawah rekomendasi.
manager. Dari hubungan di atas dapat ditarik suatu h. Lakukan pemetaan sesuai dengan opsi yang
kesimpulan: dipilih.
- Staff dan Manager adalah sebuah entitas dari
suatu hubungan relasional Oleh karena melihat kendala integritas
- Staff adalah superkelas yang memiliki subkelas referensial dan integritas data yang akan dihadapi
yaitu Manager. dalam penggunaan opsi 3 dan 4, dimana keduanya
- dari hubungan ini dapat dilihat bahwa seorang merupakan solusi terbaik untuk memecahkan
staff mungkin adalah seorang manager, namun masalah generalisasi/spesialisasi yang bersifat
tidak semua staff adalah seorang manager. mandatory disjoint dan optional disjoint, maka
- Batasan partisipasi dari kasus di atas adalah kedua opsi tersebut dikembangkan dan dianalisis
optional, karena tidak seluruh staff adalah lebih lanjut
manager tetapi manager adalah seorang staff
- Melihat dari jumlah subkelas-nya yang hanya satu 5. PENANGANAN OPSI 3 DAN OPSI 4
maka dapat disimpulkan batasan disjoint-nya OLEH RDBMS
adalah non-disjoint. Pada opsi 1 tidak perlu pembatasan
referensial integritas karena superkelas dan
Melihat dari deskripsi di atas maka opsi yang subkelasnya dimerger menjadi satu tabel, begitu pula
cocok untuk kasus di atas adalah opsi 2 yang cocok pada opsi 2 tidak perlu di lakukan pembatasan
untuk optional non-disjoint. referential integritas sebab tabel subkelasnya
Dari contoh pertimbangan pemililihan opsi dimerger menjadi satu tabel yang mereferensi ke
untuk menyelesaikan kasus-kasus di atas maka dapat tabel superkelas. Sementara untuk opsi 3 dan 4 perlu
disimpulkan langkah-langkah yang harus dilakukan dilakukan pembatasan referensial, karena pada opsi
sebelum melakukan generalisasi dan spesialisasi 3 dan 4 superkelas dan subkelas masing-masing
adalah: berdiri sendiri.
a. Identifikasi entitas awal Untuk itu maka pada tabel di bawah ini
b. Identifikasi hubungan superkelas dan subkelas dilakukan analisis terhadap opsi 3 dan 4 pada
c. Identifikasi entitas superkelas, dan entitas RDBMS (Relational Data Base Management
subkelas System).
d. Identifikasi jenis hubungan datanya

Tabel 1. Analisis Opsi 3 dan 4


Skema Relasional Penjelasan Masalah
OPTION 3 Data dari PropertyForRent Data dari tabel PropertyForRent
PropertyForRent (propertNo, street, city, bergantung manipulasi data dari hanya bergantung pada salah satu
postcode, type, rooms, rent, ownerNo, PrivateOwner dan BussinessOwner dari kedua tabel tersebut.
staffNo, branchNo
Primary Key propertyNo (keduanya).
Foreign key staffNo references Staff (staffNo) Data di PrivateOwner dan
Foreign key branchNo references Branch Data di PrivateOwner dan BusinessOwner TIDAK BOLEH
(staffNo) BusinessOwner HARUS sama sama (memiliki data yang
Foreign key ownerNo references BussinessOwner (memiliki data yang primary key- primary key-nya yang sama)
(OwnerfNo) nya yang sama)
Foreign key OwnerNo references PrivateOwner
(OwnerNo) Artinya jika salah satu dari
Artinya jika data dari kedua tabel PrivateOwner atau
PrivateOwner (ownerNo, fName, lName, address, belum mengalami manipulasi, maka BussinessOwner mengalami
telNo) data di tabel PropertyForRent juga manipulasi data maka data yang
Primary Key ownerNo TIDAK DAPAT mengalami ada di PropertyForRent DAPAT
manipulasi mengalami manipulasi data
BusinessOwner (ownerNo, bName, bType,
contactName, address, telNo)
Primary Key ownerNo
OPTION 4 Data dari kedua tabel Data dari kedua tabel
Owner (ownerNo, address, telNo) (PrivateOwner dan (PrivateOwner dan
Primary Key ownerNo
BusinessOwner) bergantung pada BusinessOwner) bergantung pada
PrivateOwner(ownerNo, fName, lName) data di Owner data di Owner
Primary Key ownerNo
Foreign Key ownerNo references Owner(ownerNo) Data di PrivateOwner dan Data di PrivateOwner dan
BusinessOwner DAPAT memiliki BusinessOwner TIDAK DAPAT
BusinessOwner (ownerNo, bName, bType, data yang sama (memiliki data yang memiliki data yang sama
contactName) primary key-nya yang sama) (memiliki data yang primary key-
Primary Key ownerNo
Foreign Key ownerNo references Owner(ownerNo) nya yang sama)
Manipulasi data di PrivateOwner
dan BusinessOwner tergantung pada Manipulasi data di PrivateOwner
manipulasi data yang ada di Owner dan BusinessOwner tergantung
pada manipulasi data yang ada di
Owner

E-37
Seminar Nasional Aplikasi Teknologi Informasi 2007 (SNATI 2007) ISSN: 1907-5022
Yogyakarta, 16 Juni 2007

Berdasarkan Tabel 1, opsi 3 dapat PUSTAKA


diimplementasikan di RDBMS (Relational Data [1] Connolly, Thomas M. Begg, Carolyn E. (2002).
Base Management System) jika nilai field ownerNo Database Systems: A Practical Approach to
pada tabel propertyforRent ada di kedua tabel Design, Implementation, and Management.
PrivateOwner dan tabel BusinessOwner. Hal ini edisi ke-3. Pearson Education. Inc, USA.
melanggar ketentuan batasan opsi 3 yang [2] Date, C.J. (1983). An Introduction to Database
mengharuskan field ownerNo dalam Systems. edisi ke-1. Addison-Wesley Publishing
PropertyForRent hanya ada pada salah satu dari Company. Inc, USA.
tabel PrivateOwner dan tabel BusinessOwner. [3] Hoffer, Jeffrey A., Prescott, Mary B.,
Sedangkan untuk opsi 4 dapat McFadden, Fred R. (2005). Modern Database.
diimplementasikan di RDBMS (Relational Data edisi ke-7. Pearson Education. Inc, USA.
Base Management System) jika nilai field ownerNo [4] Mannino, Michael V. (2001). Database
yang pada kedua tabel PrivateOwner dan tabel Application Development & Design. McGraw-
BusinessOwner ada di tabel Owner, namun dalam Hill, USA.
implementasi ini memungkinkan ownerNo yanng [5] Silberschatz, Abraham, Korth, Henry F.,
sama ada di PrivateOwner ada di BusinessOwner. Sudarshan, S. (2002). Database System
Akan tetapi hal ini melanggar batasan yang ada di Concepts. edisi ke-4. McGraw-Hill, USA.
opsi 4 yang tidak memperbolehkan ownerNo yang
sama berada di PrivateOwner dan BusinessOwner.
Oleh karena itu hal ini harus diselesaikan. Dalam
penelitian ini dirancang/dikembangkan dengan 2
cara yaitu memodifikasi konvensi foreign key dalam
DDL (Data Definition Language) untuk create table.

Modifikasi DDL
Sintaks standar SQL untuk membuat suatu
foreign key dalam data definition language (DDL)
sebagaimana di bawah ini.

FOREIGN KEY (foreign key) REFERENCES


[tabelname](primary key refered table)
NULLS [NOT] ALLOWED

Untuk mengimplementasikan opsi3 maka


sintaks SQL di atas harus diubah menjadi
sebagaimana di bawah ini.

FOREIGN KEY (nama foreign key) REFERENCES


[tabelname](primary key refered table)
NULLS NOT ALLOWED [OR|AND]
REFERENCES [tabelname](primary key refered
table) NULLS NOT ALLOWED
[ [OR|AND]
REFERENCES [tabelname](primary key refered
table)]

6. SIMPULAN
Penanganan hubungan generalisasi/
spesialisasi sangat tergantung pada kebutuhan dan
keadaan data yang dimiliki. Dengan mengetahui
kondisi data dan karakteristik dari data maka kita
dapat menentukan opsi mana yang paling tepat
untuk kondisi tersebut.
Di samping itu adalah penting dilakukan
perubahan atas sintaks SQL agar dapat
mengakomodasi kebutuhan adanya data yang harus
memenuhi opsi ketiga. Dengan demikian maka
database designer dapat melakukan pekerjaan
mereka sesuai dengan kebutuhan yang ada.

E-38

Anda mungkin juga menyukai