BAB IV Perancangan BD Relasional
BAB IV Perancangan BD Relasional
1.1 1.1.1
KETERGANTUNGAN FUNGSIONAL & MULTI NILAI Ketergantungan Fungsional (Functional Dependency (FD))
Adalah ketergantungan nilai-nilai dari satu atau beberapa atribut terhadap satu atribut atau himpunan atribut lainnya. Notasi : Y X Biasa digunakan untuk menunjukkan bahwa X tergantung secara fungsional terhadap Y. Atribut Y dikenal sebagai determinant dari FD Y X Contoh : Person_ID, Project Time_Spent_By, Person_On_Project
Person-ID Project
Time_spent_By_ person_on_project
1.1.2
Atau Full Functional Dependency, biasa digunakan untuk mengindikasikan himpunan atribut minimum dalam sebuah determinant dari satu FD. Himpunan atribut x akan bergantung secara fungsional penuh (fully functionally dependent) pada himpunan atribut y jika : 1. 2. x bergantung secara fungsional pada y x tidak bergantung secara fungsional pada suatu sub-himpunan dari y.
contoh :
Person_ID, Project Time_spent_by_Person_on_Project suatu FD penuh karena : Person_ID Time_spent_By_Person_on_Project maupun Project Time_spent_By_Person_on_Project, Tidak memenuhi syarat sebagai FD penuh.
Manager_Name
Warehouse_address
warehouse_name
part_no
supplier_name
delivery_number
QTY_in_store_on_date
inventory_date
QTY_delivered
Sifat-sifat FD : 1. Redundan FD Sebuah FD dalam himpunan FD dikatakan redundan jika FD tersebut dapat diturunkan dari FD lainnya dalam himpunan FD. Cara untuk mendeteksi sebuah FD redundan dengan langkah-langkah sebagai berikut : 1. 2. 3. tentukan S sebagai himpunan dari FD. hapus satu FD misal f dan susun himpunan FD S = S f test apakah f dapat diturunkan dari DS-FD dalam S dengan menggunakan himpunan rule
4.
jika f dapat diturunkan, berarti f redundan, S = S. Jika tidak, masukkan f ke dalam himpunan S sedemikian sehingga S = S + f.
5.
Himpunan rule-rule (set of rule) (Amstrong,1974 & Beeri at.al 1978) terdiri dari : jika Y X, maka X Y (refleksi) jika Z W, dan X Y, maka XW YZ ( augmentasi) jika X Y dan Y Z, maka X Z (transitive)
Dalam prakteknya, terdapat aturan-aturan tambahan yaitu : jika X Y dan YW Z, maka XW Z (pseudotransitive) jika X Z dan X YZ (union) jika X YZ, maka X Y dan Y Z ( dekomposisi)
contoh : Himpunan FD : { Z A, B X, AX Y, ZB Y} Akan ditunjukkan bahwa ZB Y adalah redundan. 1. 2. 3. Z A dengan augmentasi menghasilkan ZB AB B X dan AX Y dengan pseudotransitive menghasilkan AB Y ZB AB dengan transitive menghasilkan ZB Y
1.1.3
Algoritma Keanggotaan
Digunakan untuk menentukan apakah suatu FD, f(A B), dapat diturunkan dari satu himpunan FD, sbb : 1. T = A, T adalah variable yang mengandung satu himpunan atribut-atribut A adalah determinant dari f. 2. lihat FD yang lain untuk melihat apakah sebuah FD X Y ditemukan, tambahkan atribut-atribut dalam pada himpuanan atribut-atribut dalam T ( aturan union & transitive)
3. Ulangi langkah-langkah setiap kali T dirubah hingga tidak ada lagi atribut-atribut yang dapat ditambahkan pada T. 4. Jika pada akhir algoritma B berada dalam T, maka A B dapat diturunkan dari FD lain dalam S ( aturan dekomposisi).
Contoh : Himpunan FD : { Z A, B X, AX Y, ZB Y} 1. 2. T = ZB T = ZB + A = ZBA, karena Z A berada dalam sisa himpunan FD dan ZT. T = ZBA + X = ZBAX, karena B X berada dalam sisa himpunan FD dan BT. T = ZBAX + Y = ZBAXY karena AX Y berada dalam sisa himpuanan FD dan AX T.
4.1.4 Closure Sebuah closure mendefinisikan semua fungsional dependency yang dapat diturunkan dari satu himpunan FD yang diberikan. Notasi F+ digunakan untuk menunjukkan closure dari himpuanan dependensi. Contoh F = { X Y, Y Z, YZ W, WX Y} Dari himpunan FD di atas diturunkan FD yang lain, seperti : X Z dengan transitive dari X Y dan Y Z Atau XZ W dengan pseudotransitive dari X W dan YZ W :
Untuk memastikan /menentukan apakah semua FD yang mungkin diturunkan dari satu himpunan FD dapat digunakan algoritma sebagai berikut :
Contoh : 1. T = x 2. kemudian tambahkan Y ke T karena X Y berada dalam himpunan FD. 3. tambahkan Z ke T, karena Y Z berada dalam himpunan FD dan sekarang T = XYZ. 4. tambahkan W ke T, karena YZ W jadi F+ untuk X : X X, X Y, X Z, X W, X YZ, X YW, X ZW, X YWZ Untuk melihat F+ dan Y, algoritma dapat diulang dengan memulai T =Y demikian seterusnya.
1.2
NORMALISASI (1..3)
Untuk menentukan apakah suatu relasi tertentu sudah dalam bentuk normal, harus diuji FD antara atribut-atribut dalam relasi. Dalam definisi relasi yang diusulkan oleh C. Beeri dan Cowokers (1978), bahwa relasi terdiri dari dua komponen yaitu : atribut-atribut dan FD antara atribut-atribut tersebut.
R1 = ({X,Y,Z}, {X Y, X Z}) Atribut Contoh : Relasi ASSIGN { Person_ID, PROJECT, PROJECT_BUDGET, Time_Spent_By_Person_On_Project} atribut-atribut {Person_ID, Project Time_Spent_By_Person_On_Project, Project Project_Budget} FD FD
Functional Dependencies dapat digunakan dalam mendesain suatu basis data relasional untuk menghilangkan property-properti yang tidak diinginkan sehingga didapatkan desain yang baik yang disebut dalam bentuk normal. Terdapat sejumlah bentuk normal dimana yang dikenal (sangat popular) sebanyak 3 macam bentuk normal, yaitu : bentuk normal pertama, kedua dan ketiga.
Bentuk Normal Pertama Sebuah relasi berada dalam bentuk normal pertama jika semua domaun adalah simple Contoh : Relasi : LIVED_IN
Person
Residence City Date_Move_In New York 030371 Boston 070780 Washington 080889 City Date_Moved_In Boston 040573 Philadelphia 070675 Chicago 080877
Gambar Relasi yang tidak normal
Jack
Martha
Relasi-relasi yang tidak/belum mempunyai domain yang simple (tidak berada dalam bentuk normal pertama) disebut relasi tidak normal (unnormalized relations). Bentuk normal dari relasi LIVED_IN sebagai berikut : Relasi : LIVED_IN Person Jack Jack Jack Martha Martha Martha City New York Boston Washington Boston Philadelphia Chicago Date_Moved_In 030381 070780 080881 040583 070685 080887
Bentuk Normal Kedua : Sebuah relasi R berada dalam bentuk normal kedua jika setiap atribut dari R Functional Depencies (FD) penuh pada setiap kunci (key) relasi. Dengan kata lain ada atribut yang bergantung pada subset kunci. Contoh relasi ASSIGN.
Bentuk Normal Ketiga Suatu relasi berada dalam bentuk normal ketiga jika : 1. 2. relasi tersebut berada dalam bentuk normal kedua. tidak terdapat atribut-atribut bukan kunci yang saling tergantung.
Contoh : Relasi : Project P1 P2 P3 P4 PROJECT Project-Budget 32 40 27 17 Department Construct Construct Construct Build Department Address 20 Main 20 Main 20 Main 8 Fifth
FD
Project_Budget
Project
Department
Department_Address
Relasi project masih belum berada dalam bentuk normal ketiga karena ada atribut bukan kunci (Department _Address) bergantung pada atribut
Department. Relasi PROJECT dapat menjadi bentuk normal ke-3 dengan memecah relasi Project dalam dua relasi yaitu : PROJECT Projects P1 P2 P3 P4 Project_Budget 32 40 27 17 Department Construct Construct Construct Build
1.3
METODOLOGI PERANCANGAN DIAGRAM E-R Definisi basis data relasional adalah kumpulan relasi-relasi yang mengandung
semua informasi yang akan disimpan dalam basis data. Tiap relasi dalam basis data disimpan dalam sebuah file tersendiri. Struktur file yang digunakan untuk menyimpan relasi cukup sederhana, karena tiap record dalam file memiliki format yang sama. Perancangan basis data merupakan salah satu bagian terpenting dalam proses pengembangan sistem. Perancangan basis data mempunyai beberapa tujuan yaitu : 1. menghilangkan redundansi data
2. 3.
meminimumkan jumlah relasi di dalam basis data membuat relasi berada dalam bentuk normal, sehingga dapat meminimumkan permasalahan berkenaan dengan penambahan,
pembaharuan dan penghapusan. Teknik perancangan yang dilakukan dapat dilihat pada gambar berikut :