bab3 ketergantungan fungsional
KETERGANTUNGAN FUNGSIONAL
3.1
BENTUK NORMAL PERTAMA
Dalam bab 2 , yang sudah menjadi ketetapan dari bentuk database rasional
yang meliputi proses pemecahan relasi - relasi yang memperlihatkan sifat-sifat yang
buruk ( dari kelainan pembentukan ) untuk relasi yang baru memperlihatkan
kebaikan dalam pembentukan. Beberapa pertanyaan yang dibutuhkan untuk proses
ini adalah :
1.
2.
3.
4.
Dimana anda memperoleh relasi yang digunakan untuk memulai pemrosesan ?
Bagaimana anda mengetahui relasi yang mana membutuhkan pemecahan ?
Bagaimana anda mengusahakan pemecahan relasi ?
Bagaimana anda mengetahui kapan anda dapat menyelesaikan relasi tersebut ?
Jawaban dari ke empat pertanyaan di atas akan dikembangkan dalam bab ini
dan akan dijelaskan lebih lanjut dalam bab berikutnya.
Untuk database dengan kira - kira terdiri dari 20 atribut, permulaan diproses
dari titik sampai dapat digambarkan dalam bentuk khayalan atas relasi umum. Relasi
yang berisikan semua atribut yang diperhatikan dan juga struktur dari setiap tupel
dalam relasi yang mempunyai satu nilai elemen. Semua pengertian ini dalam relasi
mempunyai bentuk yang diperlihatkan dalam gb. 2.5 daripada sesuatu yang seperti
yang ada dalam gambar 2.3.
23
Relasi sernbarang yang dalarn bentuk sepeni setiap elernen dan selalu akan
satu nilai dengan kata lain yang terdapat dalarn bentuk nOfI!lalpertarna atau INF.
Relasi hams dalam bentuk normal pertarna sebelurn benar - benar dapat dipertirnbangkan dengan tepat untuk reduksi yang terdiri dari 2 atau lebih relasinya.
3.2
KONSEP DARI KETERGANTUNGAN FUNGSIONAL
Proses dari pernecahan relasi dapat dikurangi dengan probabilitas yang berlainan akan teIjadi hubungan dekomposisi. Untuk rnengusahakan kunci dalarn
dekornposisilogikal, rnakajalan rnetodenyaadalahkonsep ketergantungan fungsional
di antara atribut dalarn relasi di bawah penirnbangan. Definisi ketergantungan
fungsional atau FD (Functional Dependencies) adalah :
Diberikan 2 atribut , Adan B. B dikatakan ketergantunganfungsional dari Ajika
setiap nilai A mempunyai
tepa! salU nilai terhadap B ( mempunyaifungsi
salU
-
salU & onto ). A dan B dapat berbentuk gabungan, dapat juga keduanya
merupakan kelompok dari 2 atau lebih atribut dari salUatribUl.
Dari pandangan yang praktis ini, apa definisi yang dikatakan jika b adalah
ketergantungan fungsional dari A dan setiap tupel rnernpunyai nilai yang sarna
dengan A dan dalarn A harns rnernpunyai nilai yang sarna tepat terhadap B dalam
satu tupel yang sarna . Nilai dari A dan B dapat sewaktu - waktu b~rubah jika
diinginkan sepeni perjalanan nilai dari A ke B sangat unik dan hanya mempunyai satu
nilai terhadap B. Ketergantungan fungsional ( FD ) menggarnbarkan penggunaan
dari beberapa rnacarn notasi ketidaksamaan. Dua atau lebih atribut rnemperlihatkan
garnbaran dan keadaan biasa dalarn garnbar 3.1.
Dalarn situasi areal ini ketergantungan fungsional dapat rnenentukandetail dari
pernbentukan semua atribut dalarn relasi dan dapat rnenarik kesimpulan bagairnana
rnenggabungkan atribut yang satu dengan yang lain. Ketergantungan fungsi tidak
dapat rnernbuktikan, hanya dengan rnelihat fakta. Dalarn hal ini relasi dan jika tidak
nilai sarna yang datang dari dua atribut atau lebih dari satu tupel. Ini dapat anda
berikan petunjuk mengenai di mana pemeriksaan ketergantungan fungsi, tetapi tidak
dapat dibuktikan.
A
. B
G
( bentuk matematika )
( bentuk graph a,au diagram)
Garnbar . 3.1 Dua bentuk rnenyatakan atribut B adalah ketergantungan fungsi
atas A
24
Ketergantungan fungsi harus dapat menarik kesimpulan dari bentuk dasar dari
pembentukan atribut.
Dari contoh, melihat atribut dalam relasi ADVISOR dalam gambar 2.5 dan
dalam keterangan fakta yang mendetail dan bagaimana menggantungkan atribut ini
sebagai bagian 2.2 yang mendetail. Setelah peninjauan gambaran atribut ketergantungan diberikan dalam gambar 3.2 dapat ditarik kesimpulan. Alasan petunjuk dari
ketergantungan fungsi akan membicarakan yang mendetail dan lebih mendalam.
1. Nomor pelajar adalah unik. Setiap pelajar mempunyai Snum dan setiap pelajar
mempunyai satu ketidak samaan, kemudian jika anda mengetahui pelajar
mempunyai Snum, anda hanya tahu satu Sname dapat dikelompokkan dengan :
Snum ~ Sname. Kebalikannya salah, Sname ~ Snum adalah tidak benardalam
ketergantungan fungsional, sejak beberapa pelajardapat mempunyai nama yang
sarna tepat.
2. Setiap pelajar diberikan satu ruangan asrama, tapi ruangan asrama hanya dapa(
memuat lebih dari satu pelajar, maka Snum ~ Rnum adalah benar tapi Rnum ~
Snum adalah salah.
.
3. Sejak tiap ruangan hanya mempunyai satu telephone dan setiap telephone hanya
mempunyai keunikan nomor telephone, Rnum ~ Pnum dan Pnum ~ Rnum.
Situasi ini biasanya tidak dapat Snum H Pnum dan Snum , Pnum dikatakan
bergantung satu sarna lain.
Snum
Snum
Rnum
Pnum
Snum
Snum , Class, Term
(a )
Snum
..
..
..
Sname
Rnum
Pnum
Rnum
Pnum
Grade
(
Sname
)
Class
(
Grade
Tenn
Gambar 3. 2
25
Ini ditentukan dengan penemuan minimum dari sifat nilai-nilainya yang telah
diketahui. Akan diketahui nilai-nilai semua sifat-sifat lainnya pada tupel, dengan
menggunakan FD's pada gambar 3.2. Itu akan dapat terlihat bahwa SNUM sendiri
ditentukan oleh SNAME,RNUM,class,tenn harus diketahui semua. Makajika sifatsifat nilai-nilainya untuk kunci kandidat telah diketahui, nilai-nilai untuk seluruh
sifat-sifat pada tuple. Containing ialah kunci kandidat akan menjadi satu kesatuan.
Penentuan pada advisor adalah cara mudah untuk menidentifikasikan itu
adalah bagian kiri dari seluruh FD' s dalam suatu gabungan (hal yang ditentukan) pada
advisor adalah (SNUM,class,term), (SNUM), (RNUM) dan (PNUM), penentuan/
ketentuan yang selalu diletakkan pada temp at 's untuk menegaskan bahwa ada
empat buah perbedaan penentuan. Dengan catatan bahwa mutu tergantung pad a
kelainan dua buah penentuan.
Pada suatu pennualaan dan salah satu yang terpenting, ditentukan pada daerah
relational database. Design E.F CODD yang telah dibuktikan sebagian besar dari
potensial anormalies. Pada database dapat dipindahkan/diganti pada setiap relation
dalam database yang telah dirubah kedalam BOYLE CODD NORMAL FORM
(BCNF) yang didefinisikan pada :
Relation adalah bagian dari BCNF jika, dan hanya jika setiap penentuan pada
relation adalah kunci candidat.
Walaupun ada yang berbentuk tinggi dan yang sedang yang mana telah
digaransi pada relation yang telah dikembangkan dengan cara yang mudah. Kebanyakan pada perancang mencoba menemukan relation mereka kedalam BCNF. Dah
ternyata telah berhasil.
Relasi Advisor sendiri bukan BCNF ini akan terlihat oleh daftar dari semua
determinan (penentuan) dan semua dari kunci kandidat, sebelah menyebelah dan
tidak ada jika setiap hal yang menentukan adalah kunci kandidat :
KUNCI KANDIDA T DARI ADVISOR DETERMINAN DARI ADVISOR
Sejak setiap hal-hal yang menentukan pada advisor bukan kunci kandidat.
Advisor adalah bukan BCNF dan oleh sebab itu diabaikan.
26
3.3
PENDEKATAN UMUM UNTUK DEKOMPOSISI
Pada pasal ini bagan sudah diset untuk presentasi dari pada keluaran dari satu
metoda yang menyatakan bagaimana relasi data base dibentuk melalui decomposisi
yang akan diproses. Dapat dilihat kemudian bahwa metoda ini akan dapat disempurnakan (menyempurnakan) untuk mengatasi kesulitan-kesulitan yang lebih jauh,
dengan :
1. Mengembangkan hubungan universal untuk database.
2. Menentukan keseluruh hubungan FD kepada tanda-tanda dalam hubungan.
3. Menentukan bila hubungan adalah di dalam BCNF, bila ia design habis, jika
tidak hubungan pasti akan terpisah menjadi 2 bagian.
4. Ulangi langkah 2 dan 3, tiap hubungan baru diperoleh melalui pemisahan. Jika
semua hubungan terdapat dalam BCNF, design menjadi komplit. Metoda yang
diajukan di atas tidak mengatakan bagaimana suatu hubungan yang bukan
BCNF (non-BCNF) menjai terpisah kedalam 2 bagian.
Di bawah ini penyelesaian menurut FD dalam cara berikut.
Ambil suatu hubungan, R (A, B, C, D, E ), bukan dalam BCNF. Temukan
sebuah FD, C ~ D, yang mana diketahui menjadi suatu FD yang menyebabkan R
tidak terdapat dalam BCNF (C adalah suatu faktor yang menentukan, tapi bukan
merupakan calon candidat atau kunci). Bentuk hubungan baru: R1 (A, B, C, D,
E ) dan R2 (C, D), di mana bagian dari ketergantungan FD telah dipindahkan
dari R ke Rl dan FD yang penuh telah digunakan untuk bentuk R2. RI dan R2
sekarang harus dikontrol untuk melihat apakah mereka (FD) adadalam BCNF. R2 (C,
D) disebut sebagai proyeksi keluar dari R.
Type dari pemisahan ini disebut sebagai bukan kerugian. Kerugian
pemisahan (non-cos decomposition) di bawah penyambungan natural (lihat appendix b untuk / sebagai perundingan gambaran ini). Metode pemisahan ini dapat
digunakan dalam langkah nomor 3 dari design daftar algoritma di atas.
Sebagai contoh dari bagaimana menggunakan metode ini, advisor hubungan
akan dimasukkan. Lihat kembali pada faktor yang menentukan (C), dan kunci
kandidat untuk advisor, akan dapat dilihat bahwa terdapat 3 faktor yang menentukan
yang bukan merupakan kunci kandidat. Yaitu : , , dan .
Untuk memulai proses ini, hubungan universal adalah diberi tanda (dibatasi)
sebagai : addvisor . FD yang
kandidat untuk proyeksi adalah :
SNUM ~ RNUM : SNUM -7 PNUM : RNUM -7 PNUM and PNUM~ RNUM.
Pada point ini suatu keputusan harus dibuat seperti bagaimana FD harus
digunakan pada proyeksipertama. MungkinDatabaseyangberbeda ini akan dihasilkan
dari proyeksi intitial yang berbeda. JIka ini masalahnya, tiap penghasilan dari database ini harus diperiksa untuk melihat yangmana benda-benda baik yang terbesardari
organisasi. Aturan yang sederhana dari (thumb) untuk digunakan dalam pilihan FD
untuk proyeksi adalah untuk mencari sebuah "rantai" dari FD dari bentuknya.
27
.C
.B
A
Kemudian proyeksi keluar rightmost FD. Dalam hal ini bentuk SNUM >
RNUM ~ seperti sebuah rantai, lalu "akhir dari rantai", RNUM ~ PNUM,
pertama akan diproyeksikan keluar. Hasil dari hubungan-hubungan, R I dan R2,
diperlihatkan (diberikan) dalam gambar 3.3 sejajar (sepanjang) dengan tiap perkumpulan FDnya.
Hubungan R2 (RNUM,PNUM) di dalam BCNF, selama di dalam hubungan
ini, semua faktor pencatat adalah kunci kandidat. R2 tidak membutuhkan reduksi
(potongan) lagi. Bagaimanapun RI (SNUM,Class,TERM,SNAME,RNUM,GRADE)
tidak terdapat dalam BCNF.
RI (Snum, Class, Term, Sname,Rnum,Grade)
C
Class
)
(
Sname
)
Candidate Keys
(
Rnum
)
Determinants
1.
2.
I
Grade
Term
Candidate Keys
1.
2.
R2 (Pnum, Rnum)
(
Rnum
1.
)
-(
Pnum
)
Determinants
I.
2.
Gambar 3.3 Relasi Rl & R2 dari proyeksi Rnum H Pnum dari ADVISOR
Selama faktorpenentu (SNUM)bukan kuncikandidat, R1harus direduksi lebih
lanjut. Faktor penentu yang disebabkan / menyebabkan masalah, (SNUM), mempunyai 2 tanda yang bergantung pada :
SNUM
· SNAME
SNUM
· RNUM
yang harns dipikirkan sebagai single FD dengan susunan di sebelah kanan tangan.
SNUM ~ SNAME,RNUM.
28
R3 (Snum, Class, Term, Grade)
(
Snum
)
(
Class
)
(
Term
)
Candidate Keys
I.
I
I
R4 (Snum, Sname, Rnum)
Snum
(
,
(
Grade
Sname
Rnum
Determinants
1.
Candidate Keys
1.
)
Determinants
1.
)
Gambar 3.4 Relasi R3 & R4 dari proyeksi Snum H Sname, Rnum dari Rl
R2 (Rnum, Pnum)
R3 (Snum, Class, Term, Grade)
R4(Snum,Sname,Rnum)
(a)
R2
Rnum
R3
Snum Class
Term
Grade
Pnum
I
3215
3215
2315
3215
3462
3462
3462
3567
3567
3567
4756
Gambar 3. 5
MTH 122
SCI120
PHY230
MTH 122
MTH 122
MTH123
PSY220
SCI239
EGR17I
PHY141
MUS389
(a)
(b)
F84
F84
W85
W85
W84
W85
W85
W84
F84
F84
F83
1.6
2.4
2. 1
2. 3
2. 3
3.5
3. 7
3.3
3.5
1.8
4.0
I20DH
238VH
345VH
2136
2344
3321
R4
I
Snum Sname
I
3215
3262
3567
4756
r
JonesG
SmithA
HowesJ
AlexK
Rnum .
120DH.
238VH
120DH
345VH
(b)
Basisdata Advisor
Contoh Penggunaan basisdata daTiGambar 2. 5
29
Catatan, yang penting, bahwa proses pemecahan telah / mempunyai pemecah
yang otomatis dari hubungan advisor asal kedalam 3logika unit: R2 yang mempunyai
ruangandan phoneinformasi,R3 yangmempunyaiclass dan gradeinformasi, dan
R4 yang berisi informasi siswa. Penghancuran logis ini adalah hasillangsung dari
kegunaannya, selama proses pemecahan, dari informasi di dalam FD yang terperinci
bagaimana bermacam-macam tanda dalam hubungan asal/pasti dihubungkan dengan
yang lain.
3.4
TINJAUAN DARI KEJANGGALAN YANG ASLI
Pernyataan yang baik untuk masalah ini adalah "Apakah database Adv masih
menimbulkan kejanggalan disajikan oleh relasi ADVISOR atau dekomposisi yang
dilakukan secara otomatis menghilangkan kejanggalan ? ". Untuk memperlihatkan
kejanggalan yang sudah hilang, mula-mula kita lakukan insertion, deletion, dan
update masalah pada bagian 2.2 akan diulangi lagi dengan memakai database Adv
sesuai gambar 3.5
INSERTION:
Pada relasi ADVISOR, seorang murid tidak dapat ditambahkan ke database
hingga murid tersebut sudah terdaftar di kelasnya. Pada databasee Adv hal ini
dilakukan oleh relasi R4 . Jika murid baru dapat diterima oleh sekolah, maka murid
dapat ditambahkan ke database (dengan relasi R4). Seorang murid tidak secara
langsung termasuk dalam kelas untuk menjadi anggota database. Kejanggalan dari
insertion awal ini dihilangkan dengan dekomposisi.
UPDATE:
Relasi ADVISORjika kita gllnakan sebagai database, hasil dari masalah untllk
Ms. G. Jones memiliki penasehat mengganti nomor teleponnya menjadi 7777. Hasil
penggantian dalam 2 nomor telepon yang berbeda muncul dalam database untuk
telepon dalam ruang 120DH. Dalam database Adv, nomor telepon-nomor telepon
adalah dalam relasi R2, dan setiap ruangan dapat memiliki hanya satu nornor telepon
yang diasosiasikan dengan telepon dalam ruangan tersebut. (lngat Rnum adalah
kunci primer untuk R2, dan harga-harga kunci primermenurut definisi menjadi unik.)
Untuk modifikasi nomor telepon Ms. Jones, tupel dalam R2 untuk Rnllm = 120DH
akan dimodifikasimenjadiPnum = 7777. Catatan untuk perubahan nomor telepon
dalam ruangan, maka semua siswa yang tinggal di ruangan akan memiliki nomor
telepon berubah juga. Maka kejanggalan perubahan (update anomali) yang asli
dihilangkan dengan BCNF disain.
Harus ditunjuk pula penghilangan dari kejanggalan rancangan perbaikan
adalah berdasarkan kenyataan DBMS, di atas akan diimplementasikan, tidak akan
diikuti kerangkapan harga-harga kunci primer. Sayang sekali, banyak DBMS berdasarkan mikrokomputer diikuti kerangkapan harga-harga kunci yang terjadi, dan
30
tanggungjawab dari pemakai, sampai dengan metode pemrograman yang tepat, untuk
memastikan kerangkapan tidak terjadi. Ini suatu kasus di mana suatu rancangan
database ya;lg baik dapat menjadi rusak dengan batasan-batasan dari DBMS yang
digunakan suatu emplementasi sepenuhnya DBMS tidak akan diikuti kerangkapan
harga-harga kunci primer.
DELETION:
Relasi ADVISOR digunakan sebagai database, penghilangan dari tuple yang
mengandung Snum =4756 dan Class = MUS389 dihilangkan nomor siswa 4756 dari
database. Ini tidak dapat terjadi dalam database Adv, karena tingkatan infonnasi dan
infonnasi siswa yang umum adalah di dalam dua relasi yang berbeda (R3 dan R4) .
Untuk menghilangkan fakta yaitu siswa dengan nomor 4756 yang tidak memiliki
Class MUS389 di dalam Term F83, tupel < 4756, MUS389, F83,4.0 > akan dihapus
dari R3. Ini tidak akan memberi dampak dari informasi umum siswa ini,' yang
disimpan dalam R4.
Ketiga kejanggalan tersebut akan ditampilkan didalam database relasi tunggal
yang dihilangkan dengan rancangan baru. Biaya dari penghilangan kejangalankejangalan adalah ketiga relasi tersebut, dari pada satu, sekarang dibutuhkan untuk
disimpan. Ini berarti pertanyaan-pertanyaan tersebut akan ditulis untuk mendapatkan informasi dari database yang mungkin diakhir lebih komplek, karena
mereka dapat mengabungkan dua atau tiga relasi untuk mendapatkan data yang
diinginkan.
. USE ADVISOR
. DISPLAY CLASS, GRADE FOR SNUM = 3462 OFF
MTH122 2.3
.
MTH123
PSY220
3.5
3. 7
(a)
. USE R3
. DISPLAY CLASS, GRADE FOR SNUM = 3465 OFF
MTH122 2.3
MTH123
PHY220
3.5
3. 7
(b)
Gambar 3. 6 Permintaan dalam dBase II untuk daftar peringkat dari semua
kelas dengan nomor siswa 3462
(a) Menggunakan relasi ADVISOR;
(b) Menggunakan database Adv.
31
.
.
USE ADVISOR
DISPLAY PNUM FOR SNUM
2136
2136
2136
= 3567 OFF
(a)
SELECT PRIMARY
USE R4
SELECT SECONDARY
USE R2
JOINT TO TEMPI FIELDS S. PNUM FOR P. SNUM
P. RNUM = S. RNUM
USE TEMP 1
LIST OFF
2136
USE
DELETE FILE TEMP 1
FILE HAS BEEN DELETED
·
= 3567
. AND.;
(b)
Garnbar 3.7
Pertanyaan dBASE II untuk rnenyusun nornor telepon dari
siswa nornor 3567 :
(a) rnenggunakan relasi ADVISOR;
(b) rnenggunkan database Adv.
Garnbar 3.6 dan 3.7 adalah contoh-contoh dari tipe pertanyaan rnenggunakan
dBASE II pada kedua relasi ADVISOR tunggal, dan pada database Adv. Pada
garnbar 3.7 kasus pertanyaan menggunakan database Adv lebih kornplek dari pada
kasus relasi tunggal.
3. 5
SUATU DEKOMPOSISI
ADVISOR
YANG LAIN DARI RELASI
Dalarn bagian 3.5 komposisi dari relasi ADVISOR ke dalam tiga relasi dirnulai
dengan suatu proyeksi FD
Rnum
· Pnurn
FD ini dlpilih karena FD terakhir dalam rangkaian FD diternukan dalarn
garnbar
3.2
:
Snurn.
. Rnum
. Pnurn
Mernpelajari dengan teliti FD yang diberikan dalam gambar 3.2 memperlihatkan rangkain lain daTiFD, dengan nomor yang sarna dari FD yang dibutuhkan,
ditampilkan dalarn gambar 3.2.
32
.
___0
0._ _
Rangkaian ini adalah
Snum
- -0-
.. Pnum
.. Rnum
FD paling kanan disini adalah Pnum ~ Rnum. Jika FD ini diproyeksikan dari
ADVISOR pertama, hasil BCNF database akan menjadi :
R2(Pnum,Rnum)
R3(Snum,Class,Term,Grade)
R4(Snum,Sname,Pnum)
Database ini adalah sah seperti yang diberikan dalam gambar 3.5. Perbedaannya hanya Pnum memiliki asumsi suatu peranan utama untuk Rnum. Pnum adalah
kunci primer untuk R2 sekarang (dari pada Rnum), dan atribut yang menghubungkan
R4 dengan R2 adalah juga Pnum (dari pada Rnum). Penyelesaian dua database yang
berbeda untuk masalah yang sarna adalah suatu hasillangsung dari saling ketergantungan (mutual dependency) yang ada di antara Pnum dan Rnum. Mana yang terbaik
dari dua penyelesaian yang secara nyata suatu pilihan perancang, akan tergantung
pada beberapa luas rencana penasehat untuk menggunakan database.
3.6
.
URAIAN-URAIAN PADA ALGORITMA RANCANGAN
DEKOMPOSISI
Dalam bagian 3.4, di antara rancangan proses melalui proyeksi, dekomposisi
harus dihasilkan dengan melihat suatu rangkaian dari FD, contoh,
A
.B
B
.C
dan proyeksi keluar dari FD pada akhir dari rangkaian. Dalam kasus ini, B ~ C
menjadi proyeksi FD pertama. Cara lain untuk menerangkan proses pemilihan ini
adalah untuk menetapkan setiap usaha harus dibuat untuk menghindari proyeksi
keluar suatu FD, bilamana bagian ketergantungan dari FD itu sendiri, baik semua,
atau bagian dari, suatu determinan untuk FD yang lain.
Dalam kasus di atas, jika relasi yang dibicarakan diambil sebagai R(A, B, C),
dan jika FD A ~ B yang dipilih untuk proyeksi pertama, hasil relasinya menjadi
RI(A, C) dan R2(A, B). Walaupun kedua relasi ini adalah dalam BCNF, maka
masalahnya diringkas :
Bukan relasi RI(A, C), maupun R2(A, B), dengan dirinya sendiri, mengandung
atribut-atributdalam FD, B ~ C, yang merupakan FDdalamrelasi yang asli. FD
ini secara efektif hilang dalam proses perancangan. Dari suatu titik perhiltian, ini
berarti jika R1 dan R2 diberikan di sini untuk digunakan untuk database, tidak
ada kepastian hubungan antara B dan C tidak akan dimasukkan dalam database.
Gambar 3.8 menggambarkan masalah tersebut. Dengan menggabungkan RI dan
R2 dalam A, dua harga dari C (3 dan 4) dapat berhubungan dengan B, yang
inelanggar ketentuan FD tersebut hilang dalam proses proyeksi.
33
Masalah di dalam contoh ini timbul karena proyeksi dari suatu FD, di mana
porsi ketergantungan dari FD itu sendiri, suatu determinan untuk FD yang lain.
Masalah ini tidak memiliki hasil jika aturan rantai digunakan.
Kasus lain di mana FD mungkin hilang saat proses perancangan adalah situasi
di mana satu atribut tergantung pada dua determinan yang berbeda. Ambil kasus
R(A, B, C) dengan ketergantungan seperti terlihat pada gambar 3.9. Relasi R(A, B,
Q tidak dalam BCNF, karena hanya kunci kandidat adalah ',determinannya
adalah dan . Aturan rantai di sini tidak dapat diaplikasikan, karena tidak
ada rantai. Secara tambahan, baik FD yang menonjol dalam bentuk normal, FD
yang lain akan hilang. Sebagai contoh, jika A ~ B di proyeksikan dari R(A, B,.,C)
hasil relasinya akan menjadi RI (A,.Q dan R2(A, B), bukan relasi FD C ~ B. Di lain
pihak,jika C ~ B diproyeksikan pertama kali, maka FD A ~ B akan hilang. Dalam
kasus ini perancang harus memikirkan pemisahan R(A, B,J:) ke dalam RI(A, B) dan
R2(C, B) maka bukan FD yang hilang. Ini tidak mengikuti cara standard dari
dekomposisi, tetapi mungkin dihasilkan dalam rancangan yang terbaik. Satu hal
seorang perancang dapat mengerjakan, ketika berhadapan dengan situasi yang
diberikan di sini, adalah untuk memeriksa 3 relasi perancangan yang mungkin dan
melihat bagian yang terbaik yang dibutuhkan dari suatu organisasi. Dalam kenyalaannya, relasi-relasi yang di hasilkan dalam alternatif terakhir harus diperiksa untuk
melihat apakah suatu kerjasama dari 2 hasil relasi akan mengakibatkan banyak
masalah dengan pemanggilan-pemanggilan pada waktu database terakhir digunakan.
Cara lain dari pemecahan/pemisahan suatu relasi, didiskusikan bersama dengan gambar 3.9, berdasarkan pada suatu pendekatan rancangan yang berbeda dari
dekomposisi, tetapi dapat menggunakan banyak perancang. Pendekatan ini, disebut
metoda sintesis, tempat-tempat (dalam bentuk yang sederhana) dimana FD secara
tepat dengan determinan yang sarnahams dipisahkan kedalam kelompok-kelompok,
dan setiap kelompok menempati relasinya sendiri. Hasil relasi-relasi kemudian
diperiksa untuk BCNF. Dalam contoh terakhir ada dua FD, dengan determinan
yang berbeda. Dalam metoda sintesis, setiap FD akan menempati relasinya sendiri,
berikan R1(A, B) dan R2(C, B).
ORIGINAL DATA
Relation: R CA. B, C)
FD's :
(A ~
34
A ~
B ~
B
C
C must also be true)
ONE POSSIBLE DESIGN
Rl
(A,
A
~
R2 CA,
C)
C
A
~
B)
B
Valid Instances of R 1 and R2
R2
Rl
A
C
A
B
9
8
4
3
9
8
2
2
The JOIN of R1 and R2
Gambar 3.8
A
B
C
9
8
2
2
4
3
Contoh-contoh relasi FD dalam R 1 dan R2, tetapi melanggar
suatu FD dalam spesifikasi yang asli.
R (A, B, C)
Gambar 3.9 Dua determinan dengan atribut ketergantungan yang sarna
Metoda rancangan sintesis dapat digunakan baik oleh dirinya sendiri atau
dalam hubungannya dengan metoda dekomposisi. Text ini akan menggunakan
metodadekomposisi (jugadisebut sebagaimetodaproyeksi),dengan sintesisdigunakan
sebagai suatu alterrtatif yang mungkin untuk mendapatkan keadaan yang tidak
diinginkan seperti di atas. Seperti terlihat dalam Bab 5, keadaan Retergantungan,
mirip dengan yang diberikan dalam gambar 3.9, dapat timbul dalam keadaan dunia
yang nyata.
Petunjuk di atas adalah beberapa metoda rancangan, yang mungkin digunakan
sendiri, atau campuran untuk beberapa perluasan, menunjuk fakta tersebut rancangan
database adalah bagian ilmu dan seni. Kenyataan beberapa rancangan yang logis
35
dapat disusun dari titik awal yang sarna adalah suatu kenyataan dari daur hidup
rancangan database. Bagian dari proses rancangan adalah penilaian dari beberapa
altematif rancangan, untuk melihat database terbaik yang dibutuhkan suatu organisasi.
R (A, B, C, D)
R (A, B, C)
(a)
(b)
I
@
I0
R (A, B)
R (K, X, Y, Z)
(c)
(d)
I
I
'--/
I
@
A
C
B
D
R (A, B, C)
R (A, B, C, D, E)
(e)
(f)
Gambar 3. 10 Data untuk masalah 1
36
3. 7
MASALAH-MASALAH UNTUK BAB 3
1. Gambar 3. 10 diberikan diagram-diagram ketergantungan fungsional untuk
beberapa relasi. Untuk setiap relasi, memperkenalkan semua determinan dan
semua kunci kandidat. Tentukan relasi mana yang berada dalam BCNF. Jika
suaturelasi tidakdalamBCNF,reduksikankebentuknormaldengan menggunakan
algoritma dekomposisi.
2. Tentukan ketergantungan fungsional antara atribut-atribut dari relasi PHONE
di diskusikan dalam masalah 4 pada akhir Bab 2.
3. Many Mason Depanement Store ingin membuat suatu database untuk menyimpan informasi pada laporan pembeli. Item-item yang akan disimpan dalam database untuk setiap pembeli mengandung : nomor laporan, nama, alamat, nomor
telepon, penilaian kredit (baik sekali, baik, jelek, jelek sekali), dan Neraca.
Gambarkan suatu diagram ketergantungan fungsional untuk atribut-atribut yang
terlibat, daftar asumsi yang digunakan. Pengembangan relasi BCNF untuk
database.
4. Sekretaris dari kantor pusat mengembangkan suatu database untuk menyimpan
informasi pada semua registrasi yang mobil di daerah tersebut. Item-item yang
akan disimpan dalam database termasuk nomor registrasi, no. stnk, pabrik
pembuatan, pemilik kendaraan, alamat pemilik, nama perusahan asuransi untuk
kendaraan tersebut, nomor polis asuransi, tempat mobil diregistrasi, dan tanggal
terakhir mobil tersebut diregistrasikan. Kembangkan diagram ketergantungan
fungsional untuk atribut-atribut yang ada.
37
3.1
BENTUK NORMAL PERTAMA
Dalam bab 2 , yang sudah menjadi ketetapan dari bentuk database rasional
yang meliputi proses pemecahan relasi - relasi yang memperlihatkan sifat-sifat yang
buruk ( dari kelainan pembentukan ) untuk relasi yang baru memperlihatkan
kebaikan dalam pembentukan. Beberapa pertanyaan yang dibutuhkan untuk proses
ini adalah :
1.
2.
3.
4.
Dimana anda memperoleh relasi yang digunakan untuk memulai pemrosesan ?
Bagaimana anda mengetahui relasi yang mana membutuhkan pemecahan ?
Bagaimana anda mengusahakan pemecahan relasi ?
Bagaimana anda mengetahui kapan anda dapat menyelesaikan relasi tersebut ?
Jawaban dari ke empat pertanyaan di atas akan dikembangkan dalam bab ini
dan akan dijelaskan lebih lanjut dalam bab berikutnya.
Untuk database dengan kira - kira terdiri dari 20 atribut, permulaan diproses
dari titik sampai dapat digambarkan dalam bentuk khayalan atas relasi umum. Relasi
yang berisikan semua atribut yang diperhatikan dan juga struktur dari setiap tupel
dalam relasi yang mempunyai satu nilai elemen. Semua pengertian ini dalam relasi
mempunyai bentuk yang diperlihatkan dalam gb. 2.5 daripada sesuatu yang seperti
yang ada dalam gambar 2.3.
23
Relasi sernbarang yang dalarn bentuk sepeni setiap elernen dan selalu akan
satu nilai dengan kata lain yang terdapat dalarn bentuk nOfI!lalpertarna atau INF.
Relasi hams dalam bentuk normal pertarna sebelurn benar - benar dapat dipertirnbangkan dengan tepat untuk reduksi yang terdiri dari 2 atau lebih relasinya.
3.2
KONSEP DARI KETERGANTUNGAN FUNGSIONAL
Proses dari pernecahan relasi dapat dikurangi dengan probabilitas yang berlainan akan teIjadi hubungan dekomposisi. Untuk rnengusahakan kunci dalarn
dekornposisilogikal, rnakajalan rnetodenyaadalahkonsep ketergantungan fungsional
di antara atribut dalarn relasi di bawah penirnbangan. Definisi ketergantungan
fungsional atau FD (Functional Dependencies) adalah :
Diberikan 2 atribut , Adan B. B dikatakan ketergantunganfungsional dari Ajika
setiap nilai A mempunyai
tepa! salU nilai terhadap B ( mempunyaifungsi
salU
-
salU & onto ). A dan B dapat berbentuk gabungan, dapat juga keduanya
merupakan kelompok dari 2 atau lebih atribut dari salUatribUl.
Dari pandangan yang praktis ini, apa definisi yang dikatakan jika b adalah
ketergantungan fungsional dari A dan setiap tupel rnernpunyai nilai yang sarna
dengan A dan dalarn A harns rnernpunyai nilai yang sarna tepat terhadap B dalam
satu tupel yang sarna . Nilai dari A dan B dapat sewaktu - waktu b~rubah jika
diinginkan sepeni perjalanan nilai dari A ke B sangat unik dan hanya mempunyai satu
nilai terhadap B. Ketergantungan fungsional ( FD ) menggarnbarkan penggunaan
dari beberapa rnacarn notasi ketidaksamaan. Dua atau lebih atribut rnemperlihatkan
garnbaran dan keadaan biasa dalarn garnbar 3.1.
Dalarn situasi areal ini ketergantungan fungsional dapat rnenentukandetail dari
pernbentukan semua atribut dalarn relasi dan dapat rnenarik kesimpulan bagairnana
rnenggabungkan atribut yang satu dengan yang lain. Ketergantungan fungsi tidak
dapat rnernbuktikan, hanya dengan rnelihat fakta. Dalarn hal ini relasi dan jika tidak
nilai sarna yang datang dari dua atribut atau lebih dari satu tupel. Ini dapat anda
berikan petunjuk mengenai di mana pemeriksaan ketergantungan fungsi, tetapi tidak
dapat dibuktikan.
A
. B
G
( bentuk matematika )
( bentuk graph a,au diagram)
Garnbar . 3.1 Dua bentuk rnenyatakan atribut B adalah ketergantungan fungsi
atas A
24
Ketergantungan fungsi harus dapat menarik kesimpulan dari bentuk dasar dari
pembentukan atribut.
Dari contoh, melihat atribut dalam relasi ADVISOR dalam gambar 2.5 dan
dalam keterangan fakta yang mendetail dan bagaimana menggantungkan atribut ini
sebagai bagian 2.2 yang mendetail. Setelah peninjauan gambaran atribut ketergantungan diberikan dalam gambar 3.2 dapat ditarik kesimpulan. Alasan petunjuk dari
ketergantungan fungsi akan membicarakan yang mendetail dan lebih mendalam.
1. Nomor pelajar adalah unik. Setiap pelajar mempunyai Snum dan setiap pelajar
mempunyai satu ketidak samaan, kemudian jika anda mengetahui pelajar
mempunyai Snum, anda hanya tahu satu Sname dapat dikelompokkan dengan :
Snum ~ Sname. Kebalikannya salah, Sname ~ Snum adalah tidak benardalam
ketergantungan fungsional, sejak beberapa pelajardapat mempunyai nama yang
sarna tepat.
2. Setiap pelajar diberikan satu ruangan asrama, tapi ruangan asrama hanya dapa(
memuat lebih dari satu pelajar, maka Snum ~ Rnum adalah benar tapi Rnum ~
Snum adalah salah.
.
3. Sejak tiap ruangan hanya mempunyai satu telephone dan setiap telephone hanya
mempunyai keunikan nomor telephone, Rnum ~ Pnum dan Pnum ~ Rnum.
Situasi ini biasanya tidak dapat Snum H Pnum dan Snum , Pnum dikatakan
bergantung satu sarna lain.
Snum
Snum
Rnum
Pnum
Snum
Snum , Class, Term
(a )
Snum
..
..
..
Sname
Rnum
Pnum
Rnum
Pnum
Grade
(
Sname
)
Class
(
Grade
Tenn
Gambar 3. 2
25
Ini ditentukan dengan penemuan minimum dari sifat nilai-nilainya yang telah
diketahui. Akan diketahui nilai-nilai semua sifat-sifat lainnya pada tupel, dengan
menggunakan FD's pada gambar 3.2. Itu akan dapat terlihat bahwa SNUM sendiri
ditentukan oleh SNAME,RNUM,class,tenn harus diketahui semua. Makajika sifatsifat nilai-nilainya untuk kunci kandidat telah diketahui, nilai-nilai untuk seluruh
sifat-sifat pada tuple. Containing ialah kunci kandidat akan menjadi satu kesatuan.
Penentuan pada advisor adalah cara mudah untuk menidentifikasikan itu
adalah bagian kiri dari seluruh FD' s dalam suatu gabungan (hal yang ditentukan) pada
advisor adalah (SNUM,class,term), (SNUM), (RNUM) dan (PNUM), penentuan/
ketentuan yang selalu diletakkan pada temp at 's untuk menegaskan bahwa ada
empat buah perbedaan penentuan. Dengan catatan bahwa mutu tergantung pad a
kelainan dua buah penentuan.
Pada suatu pennualaan dan salah satu yang terpenting, ditentukan pada daerah
relational database. Design E.F CODD yang telah dibuktikan sebagian besar dari
potensial anormalies. Pada database dapat dipindahkan/diganti pada setiap relation
dalam database yang telah dirubah kedalam BOYLE CODD NORMAL FORM
(BCNF) yang didefinisikan pada :
Relation adalah bagian dari BCNF jika, dan hanya jika setiap penentuan pada
relation adalah kunci candidat.
Walaupun ada yang berbentuk tinggi dan yang sedang yang mana telah
digaransi pada relation yang telah dikembangkan dengan cara yang mudah. Kebanyakan pada perancang mencoba menemukan relation mereka kedalam BCNF. Dah
ternyata telah berhasil.
Relasi Advisor sendiri bukan BCNF ini akan terlihat oleh daftar dari semua
determinan (penentuan) dan semua dari kunci kandidat, sebelah menyebelah dan
tidak ada jika setiap hal yang menentukan adalah kunci kandidat :
KUNCI KANDIDA T DARI ADVISOR DETERMINAN DARI ADVISOR
Sejak setiap hal-hal yang menentukan pada advisor bukan kunci kandidat.
Advisor adalah bukan BCNF dan oleh sebab itu diabaikan.
26
3.3
PENDEKATAN UMUM UNTUK DEKOMPOSISI
Pada pasal ini bagan sudah diset untuk presentasi dari pada keluaran dari satu
metoda yang menyatakan bagaimana relasi data base dibentuk melalui decomposisi
yang akan diproses. Dapat dilihat kemudian bahwa metoda ini akan dapat disempurnakan (menyempurnakan) untuk mengatasi kesulitan-kesulitan yang lebih jauh,
dengan :
1. Mengembangkan hubungan universal untuk database.
2. Menentukan keseluruh hubungan FD kepada tanda-tanda dalam hubungan.
3. Menentukan bila hubungan adalah di dalam BCNF, bila ia design habis, jika
tidak hubungan pasti akan terpisah menjadi 2 bagian.
4. Ulangi langkah 2 dan 3, tiap hubungan baru diperoleh melalui pemisahan. Jika
semua hubungan terdapat dalam BCNF, design menjadi komplit. Metoda yang
diajukan di atas tidak mengatakan bagaimana suatu hubungan yang bukan
BCNF (non-BCNF) menjai terpisah kedalam 2 bagian.
Di bawah ini penyelesaian menurut FD dalam cara berikut.
Ambil suatu hubungan, R (A, B, C, D, E ), bukan dalam BCNF. Temukan
sebuah FD, C ~ D, yang mana diketahui menjadi suatu FD yang menyebabkan R
tidak terdapat dalam BCNF (C adalah suatu faktor yang menentukan, tapi bukan
merupakan calon candidat atau kunci). Bentuk hubungan baru: R1 (A, B, C, D,
E ) dan R2 (C, D), di mana bagian dari ketergantungan FD telah dipindahkan
dari R ke Rl dan FD yang penuh telah digunakan untuk bentuk R2. RI dan R2
sekarang harus dikontrol untuk melihat apakah mereka (FD) adadalam BCNF. R2 (C,
D) disebut sebagai proyeksi keluar dari R.
Type dari pemisahan ini disebut sebagai bukan kerugian. Kerugian
pemisahan (non-cos decomposition) di bawah penyambungan natural (lihat appendix b untuk / sebagai perundingan gambaran ini). Metode pemisahan ini dapat
digunakan dalam langkah nomor 3 dari design daftar algoritma di atas.
Sebagai contoh dari bagaimana menggunakan metode ini, advisor hubungan
akan dimasukkan. Lihat kembali pada faktor yang menentukan (C), dan kunci
kandidat untuk advisor, akan dapat dilihat bahwa terdapat 3 faktor yang menentukan
yang bukan merupakan kunci kandidat. Yaitu : , , dan .
Untuk memulai proses ini, hubungan universal adalah diberi tanda (dibatasi)
sebagai : addvisor . FD yang
kandidat untuk proyeksi adalah :
SNUM ~ RNUM : SNUM -7 PNUM : RNUM -7 PNUM and PNUM~ RNUM.
Pada point ini suatu keputusan harus dibuat seperti bagaimana FD harus
digunakan pada proyeksipertama. MungkinDatabaseyangberbeda ini akan dihasilkan
dari proyeksi intitial yang berbeda. JIka ini masalahnya, tiap penghasilan dari database ini harus diperiksa untuk melihat yangmana benda-benda baik yang terbesardari
organisasi. Aturan yang sederhana dari (thumb) untuk digunakan dalam pilihan FD
untuk proyeksi adalah untuk mencari sebuah "rantai" dari FD dari bentuknya.
27
.C
.B
A
Kemudian proyeksi keluar rightmost FD. Dalam hal ini bentuk SNUM >
RNUM ~ seperti sebuah rantai, lalu "akhir dari rantai", RNUM ~ PNUM,
pertama akan diproyeksikan keluar. Hasil dari hubungan-hubungan, R I dan R2,
diperlihatkan (diberikan) dalam gambar 3.3 sejajar (sepanjang) dengan tiap perkumpulan FDnya.
Hubungan R2 (RNUM,PNUM) di dalam BCNF, selama di dalam hubungan
ini, semua faktor pencatat adalah kunci kandidat. R2 tidak membutuhkan reduksi
(potongan) lagi. Bagaimanapun RI (SNUM,Class,TERM,SNAME,RNUM,GRADE)
tidak terdapat dalam BCNF.
RI (Snum, Class, Term, Sname,Rnum,Grade)
C
Class
)
(
Sname
)
Candidate Keys
(
Rnum
)
Determinants
1.
2.
I
Grade
Term
Candidate Keys
1.
2.
R2 (Pnum, Rnum)
(
Rnum
1.
)
-(
Pnum
)
Determinants
I.
2.
Gambar 3.3 Relasi Rl & R2 dari proyeksi Rnum H Pnum dari ADVISOR
Selama faktorpenentu (SNUM)bukan kuncikandidat, R1harus direduksi lebih
lanjut. Faktor penentu yang disebabkan / menyebabkan masalah, (SNUM), mempunyai 2 tanda yang bergantung pada :
SNUM
· SNAME
SNUM
· RNUM
yang harns dipikirkan sebagai single FD dengan susunan di sebelah kanan tangan.
SNUM ~ SNAME,RNUM.
28
R3 (Snum, Class, Term, Grade)
(
Snum
)
(
Class
)
(
Term
)
Candidate Keys
I.
I
I
R4 (Snum, Sname, Rnum)
Snum
(
,
(
Grade
Sname
Rnum
Determinants
1.
Candidate Keys
1.
)
Determinants
1.
)
Gambar 3.4 Relasi R3 & R4 dari proyeksi Snum H Sname, Rnum dari Rl
R2 (Rnum, Pnum)
R3 (Snum, Class, Term, Grade)
R4(Snum,Sname,Rnum)
(a)
R2
Rnum
R3
Snum Class
Term
Grade
Pnum
I
3215
3215
2315
3215
3462
3462
3462
3567
3567
3567
4756
Gambar 3. 5
MTH 122
SCI120
PHY230
MTH 122
MTH 122
MTH123
PSY220
SCI239
EGR17I
PHY141
MUS389
(a)
(b)
F84
F84
W85
W85
W84
W85
W85
W84
F84
F84
F83
1.6
2.4
2. 1
2. 3
2. 3
3.5
3. 7
3.3
3.5
1.8
4.0
I20DH
238VH
345VH
2136
2344
3321
R4
I
Snum Sname
I
3215
3262
3567
4756
r
JonesG
SmithA
HowesJ
AlexK
Rnum .
120DH.
238VH
120DH
345VH
(b)
Basisdata Advisor
Contoh Penggunaan basisdata daTiGambar 2. 5
29
Catatan, yang penting, bahwa proses pemecahan telah / mempunyai pemecah
yang otomatis dari hubungan advisor asal kedalam 3logika unit: R2 yang mempunyai
ruangandan phoneinformasi,R3 yangmempunyaiclass dan gradeinformasi, dan
R4 yang berisi informasi siswa. Penghancuran logis ini adalah hasillangsung dari
kegunaannya, selama proses pemecahan, dari informasi di dalam FD yang terperinci
bagaimana bermacam-macam tanda dalam hubungan asal/pasti dihubungkan dengan
yang lain.
3.4
TINJAUAN DARI KEJANGGALAN YANG ASLI
Pernyataan yang baik untuk masalah ini adalah "Apakah database Adv masih
menimbulkan kejanggalan disajikan oleh relasi ADVISOR atau dekomposisi yang
dilakukan secara otomatis menghilangkan kejanggalan ? ". Untuk memperlihatkan
kejanggalan yang sudah hilang, mula-mula kita lakukan insertion, deletion, dan
update masalah pada bagian 2.2 akan diulangi lagi dengan memakai database Adv
sesuai gambar 3.5
INSERTION:
Pada relasi ADVISOR, seorang murid tidak dapat ditambahkan ke database
hingga murid tersebut sudah terdaftar di kelasnya. Pada databasee Adv hal ini
dilakukan oleh relasi R4 . Jika murid baru dapat diterima oleh sekolah, maka murid
dapat ditambahkan ke database (dengan relasi R4). Seorang murid tidak secara
langsung termasuk dalam kelas untuk menjadi anggota database. Kejanggalan dari
insertion awal ini dihilangkan dengan dekomposisi.
UPDATE:
Relasi ADVISORjika kita gllnakan sebagai database, hasil dari masalah untllk
Ms. G. Jones memiliki penasehat mengganti nomor teleponnya menjadi 7777. Hasil
penggantian dalam 2 nomor telepon yang berbeda muncul dalam database untuk
telepon dalam ruang 120DH. Dalam database Adv, nomor telepon-nomor telepon
adalah dalam relasi R2, dan setiap ruangan dapat memiliki hanya satu nornor telepon
yang diasosiasikan dengan telepon dalam ruangan tersebut. (lngat Rnum adalah
kunci primer untuk R2, dan harga-harga kunci primermenurut definisi menjadi unik.)
Untuk modifikasi nomor telepon Ms. Jones, tupel dalam R2 untuk Rnllm = 120DH
akan dimodifikasimenjadiPnum = 7777. Catatan untuk perubahan nomor telepon
dalam ruangan, maka semua siswa yang tinggal di ruangan akan memiliki nomor
telepon berubah juga. Maka kejanggalan perubahan (update anomali) yang asli
dihilangkan dengan BCNF disain.
Harus ditunjuk pula penghilangan dari kejanggalan rancangan perbaikan
adalah berdasarkan kenyataan DBMS, di atas akan diimplementasikan, tidak akan
diikuti kerangkapan harga-harga kunci primer. Sayang sekali, banyak DBMS berdasarkan mikrokomputer diikuti kerangkapan harga-harga kunci yang terjadi, dan
30
tanggungjawab dari pemakai, sampai dengan metode pemrograman yang tepat, untuk
memastikan kerangkapan tidak terjadi. Ini suatu kasus di mana suatu rancangan
database ya;lg baik dapat menjadi rusak dengan batasan-batasan dari DBMS yang
digunakan suatu emplementasi sepenuhnya DBMS tidak akan diikuti kerangkapan
harga-harga kunci primer.
DELETION:
Relasi ADVISOR digunakan sebagai database, penghilangan dari tuple yang
mengandung Snum =4756 dan Class = MUS389 dihilangkan nomor siswa 4756 dari
database. Ini tidak dapat terjadi dalam database Adv, karena tingkatan infonnasi dan
infonnasi siswa yang umum adalah di dalam dua relasi yang berbeda (R3 dan R4) .
Untuk menghilangkan fakta yaitu siswa dengan nomor 4756 yang tidak memiliki
Class MUS389 di dalam Term F83, tupel < 4756, MUS389, F83,4.0 > akan dihapus
dari R3. Ini tidak akan memberi dampak dari informasi umum siswa ini,' yang
disimpan dalam R4.
Ketiga kejanggalan tersebut akan ditampilkan didalam database relasi tunggal
yang dihilangkan dengan rancangan baru. Biaya dari penghilangan kejangalankejangalan adalah ketiga relasi tersebut, dari pada satu, sekarang dibutuhkan untuk
disimpan. Ini berarti pertanyaan-pertanyaan tersebut akan ditulis untuk mendapatkan informasi dari database yang mungkin diakhir lebih komplek, karena
mereka dapat mengabungkan dua atau tiga relasi untuk mendapatkan data yang
diinginkan.
. USE ADVISOR
. DISPLAY CLASS, GRADE FOR SNUM = 3462 OFF
MTH122 2.3
.
MTH123
PSY220
3.5
3. 7
(a)
. USE R3
. DISPLAY CLASS, GRADE FOR SNUM = 3465 OFF
MTH122 2.3
MTH123
PHY220
3.5
3. 7
(b)
Gambar 3. 6 Permintaan dalam dBase II untuk daftar peringkat dari semua
kelas dengan nomor siswa 3462
(a) Menggunakan relasi ADVISOR;
(b) Menggunakan database Adv.
31
.
.
USE ADVISOR
DISPLAY PNUM FOR SNUM
2136
2136
2136
= 3567 OFF
(a)
SELECT PRIMARY
USE R4
SELECT SECONDARY
USE R2
JOINT TO TEMPI FIELDS S. PNUM FOR P. SNUM
P. RNUM = S. RNUM
USE TEMP 1
LIST OFF
2136
USE
DELETE FILE TEMP 1
FILE HAS BEEN DELETED
·
= 3567
. AND.;
(b)
Garnbar 3.7
Pertanyaan dBASE II untuk rnenyusun nornor telepon dari
siswa nornor 3567 :
(a) rnenggunakan relasi ADVISOR;
(b) rnenggunkan database Adv.
Garnbar 3.6 dan 3.7 adalah contoh-contoh dari tipe pertanyaan rnenggunakan
dBASE II pada kedua relasi ADVISOR tunggal, dan pada database Adv. Pada
garnbar 3.7 kasus pertanyaan menggunakan database Adv lebih kornplek dari pada
kasus relasi tunggal.
3. 5
SUATU DEKOMPOSISI
ADVISOR
YANG LAIN DARI RELASI
Dalarn bagian 3.5 komposisi dari relasi ADVISOR ke dalam tiga relasi dirnulai
dengan suatu proyeksi FD
Rnum
· Pnurn
FD ini dlpilih karena FD terakhir dalam rangkaian FD diternukan dalarn
garnbar
3.2
:
Snurn.
. Rnum
. Pnurn
Mernpelajari dengan teliti FD yang diberikan dalam gambar 3.2 memperlihatkan rangkain lain daTiFD, dengan nomor yang sarna dari FD yang dibutuhkan,
ditampilkan dalarn gambar 3.2.
32
.
___0
0._ _
Rangkaian ini adalah
Snum
- -0-
.. Pnum
.. Rnum
FD paling kanan disini adalah Pnum ~ Rnum. Jika FD ini diproyeksikan dari
ADVISOR pertama, hasil BCNF database akan menjadi :
R2(Pnum,Rnum)
R3(Snum,Class,Term,Grade)
R4(Snum,Sname,Pnum)
Database ini adalah sah seperti yang diberikan dalam gambar 3.5. Perbedaannya hanya Pnum memiliki asumsi suatu peranan utama untuk Rnum. Pnum adalah
kunci primer untuk R2 sekarang (dari pada Rnum), dan atribut yang menghubungkan
R4 dengan R2 adalah juga Pnum (dari pada Rnum). Penyelesaian dua database yang
berbeda untuk masalah yang sarna adalah suatu hasillangsung dari saling ketergantungan (mutual dependency) yang ada di antara Pnum dan Rnum. Mana yang terbaik
dari dua penyelesaian yang secara nyata suatu pilihan perancang, akan tergantung
pada beberapa luas rencana penasehat untuk menggunakan database.
3.6
.
URAIAN-URAIAN PADA ALGORITMA RANCANGAN
DEKOMPOSISI
Dalam bagian 3.4, di antara rancangan proses melalui proyeksi, dekomposisi
harus dihasilkan dengan melihat suatu rangkaian dari FD, contoh,
A
.B
B
.C
dan proyeksi keluar dari FD pada akhir dari rangkaian. Dalam kasus ini, B ~ C
menjadi proyeksi FD pertama. Cara lain untuk menerangkan proses pemilihan ini
adalah untuk menetapkan setiap usaha harus dibuat untuk menghindari proyeksi
keluar suatu FD, bilamana bagian ketergantungan dari FD itu sendiri, baik semua,
atau bagian dari, suatu determinan untuk FD yang lain.
Dalam kasus di atas, jika relasi yang dibicarakan diambil sebagai R(A, B, C),
dan jika FD A ~ B yang dipilih untuk proyeksi pertama, hasil relasinya menjadi
RI(A, C) dan R2(A, B). Walaupun kedua relasi ini adalah dalam BCNF, maka
masalahnya diringkas :
Bukan relasi RI(A, C), maupun R2(A, B), dengan dirinya sendiri, mengandung
atribut-atributdalam FD, B ~ C, yang merupakan FDdalamrelasi yang asli. FD
ini secara efektif hilang dalam proses perancangan. Dari suatu titik perhiltian, ini
berarti jika R1 dan R2 diberikan di sini untuk digunakan untuk database, tidak
ada kepastian hubungan antara B dan C tidak akan dimasukkan dalam database.
Gambar 3.8 menggambarkan masalah tersebut. Dengan menggabungkan RI dan
R2 dalam A, dua harga dari C (3 dan 4) dapat berhubungan dengan B, yang
inelanggar ketentuan FD tersebut hilang dalam proses proyeksi.
33
Masalah di dalam contoh ini timbul karena proyeksi dari suatu FD, di mana
porsi ketergantungan dari FD itu sendiri, suatu determinan untuk FD yang lain.
Masalah ini tidak memiliki hasil jika aturan rantai digunakan.
Kasus lain di mana FD mungkin hilang saat proses perancangan adalah situasi
di mana satu atribut tergantung pada dua determinan yang berbeda. Ambil kasus
R(A, B, C) dengan ketergantungan seperti terlihat pada gambar 3.9. Relasi R(A, B,
Q tidak dalam BCNF, karena hanya kunci kandidat adalah ',determinannya
adalah dan . Aturan rantai di sini tidak dapat diaplikasikan, karena tidak
ada rantai. Secara tambahan, baik FD yang menonjol dalam bentuk normal, FD
yang lain akan hilang. Sebagai contoh, jika A ~ B di proyeksikan dari R(A, B,.,C)
hasil relasinya akan menjadi RI (A,.Q dan R2(A, B), bukan relasi FD C ~ B. Di lain
pihak,jika C ~ B diproyeksikan pertama kali, maka FD A ~ B akan hilang. Dalam
kasus ini perancang harus memikirkan pemisahan R(A, B,J:) ke dalam RI(A, B) dan
R2(C, B) maka bukan FD yang hilang. Ini tidak mengikuti cara standard dari
dekomposisi, tetapi mungkin dihasilkan dalam rancangan yang terbaik. Satu hal
seorang perancang dapat mengerjakan, ketika berhadapan dengan situasi yang
diberikan di sini, adalah untuk memeriksa 3 relasi perancangan yang mungkin dan
melihat bagian yang terbaik yang dibutuhkan dari suatu organisasi. Dalam kenyalaannya, relasi-relasi yang di hasilkan dalam alternatif terakhir harus diperiksa untuk
melihat apakah suatu kerjasama dari 2 hasil relasi akan mengakibatkan banyak
masalah dengan pemanggilan-pemanggilan pada waktu database terakhir digunakan.
Cara lain dari pemecahan/pemisahan suatu relasi, didiskusikan bersama dengan gambar 3.9, berdasarkan pada suatu pendekatan rancangan yang berbeda dari
dekomposisi, tetapi dapat menggunakan banyak perancang. Pendekatan ini, disebut
metoda sintesis, tempat-tempat (dalam bentuk yang sederhana) dimana FD secara
tepat dengan determinan yang sarnahams dipisahkan kedalam kelompok-kelompok,
dan setiap kelompok menempati relasinya sendiri. Hasil relasi-relasi kemudian
diperiksa untuk BCNF. Dalam contoh terakhir ada dua FD, dengan determinan
yang berbeda. Dalam metoda sintesis, setiap FD akan menempati relasinya sendiri,
berikan R1(A, B) dan R2(C, B).
ORIGINAL DATA
Relation: R CA. B, C)
FD's :
(A ~
34
A ~
B ~
B
C
C must also be true)
ONE POSSIBLE DESIGN
Rl
(A,
A
~
R2 CA,
C)
C
A
~
B)
B
Valid Instances of R 1 and R2
R2
Rl
A
C
A
B
9
8
4
3
9
8
2
2
The JOIN of R1 and R2
Gambar 3.8
A
B
C
9
8
2
2
4
3
Contoh-contoh relasi FD dalam R 1 dan R2, tetapi melanggar
suatu FD dalam spesifikasi yang asli.
R (A, B, C)
Gambar 3.9 Dua determinan dengan atribut ketergantungan yang sarna
Metoda rancangan sintesis dapat digunakan baik oleh dirinya sendiri atau
dalam hubungannya dengan metoda dekomposisi. Text ini akan menggunakan
metodadekomposisi (jugadisebut sebagaimetodaproyeksi),dengan sintesisdigunakan
sebagai suatu alterrtatif yang mungkin untuk mendapatkan keadaan yang tidak
diinginkan seperti di atas. Seperti terlihat dalam Bab 5, keadaan Retergantungan,
mirip dengan yang diberikan dalam gambar 3.9, dapat timbul dalam keadaan dunia
yang nyata.
Petunjuk di atas adalah beberapa metoda rancangan, yang mungkin digunakan
sendiri, atau campuran untuk beberapa perluasan, menunjuk fakta tersebut rancangan
database adalah bagian ilmu dan seni. Kenyataan beberapa rancangan yang logis
35
dapat disusun dari titik awal yang sarna adalah suatu kenyataan dari daur hidup
rancangan database. Bagian dari proses rancangan adalah penilaian dari beberapa
altematif rancangan, untuk melihat database terbaik yang dibutuhkan suatu organisasi.
R (A, B, C, D)
R (A, B, C)
(a)
(b)
I
@
I0
R (A, B)
R (K, X, Y, Z)
(c)
(d)
I
I
'--/
I
@
A
C
B
D
R (A, B, C)
R (A, B, C, D, E)
(e)
(f)
Gambar 3. 10 Data untuk masalah 1
36
3. 7
MASALAH-MASALAH UNTUK BAB 3
1. Gambar 3. 10 diberikan diagram-diagram ketergantungan fungsional untuk
beberapa relasi. Untuk setiap relasi, memperkenalkan semua determinan dan
semua kunci kandidat. Tentukan relasi mana yang berada dalam BCNF. Jika
suaturelasi tidakdalamBCNF,reduksikankebentuknormaldengan menggunakan
algoritma dekomposisi.
2. Tentukan ketergantungan fungsional antara atribut-atribut dari relasi PHONE
di diskusikan dalam masalah 4 pada akhir Bab 2.
3. Many Mason Depanement Store ingin membuat suatu database untuk menyimpan informasi pada laporan pembeli. Item-item yang akan disimpan dalam database untuk setiap pembeli mengandung : nomor laporan, nama, alamat, nomor
telepon, penilaian kredit (baik sekali, baik, jelek, jelek sekali), dan Neraca.
Gambarkan suatu diagram ketergantungan fungsional untuk atribut-atribut yang
terlibat, daftar asumsi yang digunakan. Pengembangan relasi BCNF untuk
database.
4. Sekretaris dari kantor pusat mengembangkan suatu database untuk menyimpan
informasi pada semua registrasi yang mobil di daerah tersebut. Item-item yang
akan disimpan dalam database termasuk nomor registrasi, no. stnk, pabrik
pembuatan, pemilik kendaraan, alamat pemilik, nama perusahan asuransi untuk
kendaraan tersebut, nomor polis asuransi, tempat mobil diregistrasi, dan tanggal
terakhir mobil tersebut diregistrasikan. Kembangkan diagram ketergantungan
fungsional untuk atribut-atribut yang ada.
37