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 <Snum,Class,Term>
<Snum,Class,Term> <Snum>
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 : <SNUM>, , dan . Untuk memulai proses ini, hubungan universal adalah diberi tanda (dibatasi) sebagai : addvisor <SNUM, Class, Term, Sname, RNUM, PNUM, Grade>. 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. <Snum,Class,Term> 2. <Snum>
I
Grade
Term
Candidate Keys 1. 2.
R2 (Pnum, Rnum)
(
Rnum
1. <Snum, Class, Term>
)
-(
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. <Snum, Class, Term>
I
I
R4 (Snum, Sname, Rnum)
Snum
(
,
(
Grade
Sname
Rnum
Determinants 1. <Snum, Class, Term>
Candidate Keys 1. <Snum>
)
Determinants 1. <Snum>
)
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