Dekomposisi adalah teknik memecah sebuah relasi menjadi beberapa
relasi. Kemudian setelah relasi tersebut dipecah bila digabungkan
kembali harus mendapat hasil yang sama, tidak boleh record yang hiulang
maupun record tambahan.
Bila kondisi ini terpenuhi maka ini yang disebut Lessloss-join decomposition.
Contohnya sebuah dekomposisi yang non-Lossless-join:
Bila kedua relasi R2 dan R3 digabung kembali maka akan didapat:
Kondisi ini yang disebut
Lossy join decomposition.
Untuk menghindari dekomposisi
Lossy-join maka pada relasi hasil dekomposisi harus memiliki attribut yang beririsan. Contohnya adalah pada Relasi
StaffBranch diatas didekomposisi menjadi Relasi
Staff dan Relasi
Branch dimana attribut BranchNo sebagai irisannya.
Ada dua properti penting dalam dekomposisi yaitu
Lossless-join Property dan
Dependency Preservation Property. Dalam sebuah dekomposisi apakah memenuhi kaidah
Lossless-join dan apakah memenuhi kaidah
Dependency Preservation.
Masih bingung??? sama saya juga, mari kita lihat lagi.
Untuk mendapatkan dekomposisi yang
Lossless-join harus ada attribut yang beririsan namun harus hati hati supaya dekomposisi harus juga
Dependency Preserving. Untuk bisa mendapatkan
Dependency Preserving syaratnya adalah
constraint yang berlaku direlasi awal harus juga berlaku di relasi hasil dekomposisi. Berikut contohnya:
PhoneAddress |
Mahasiswa |
NoHP |
Operator |
Wawan |
0815 06 |
Matrix |
Wawan |
0817 07 |
Pro XL |
Aan |
0815 08 |
Matrix |
Nuri |
0812 09 |
Simpati |
|
Tanda “→” dibaca “menentukan”
Relasi PhoneAddress kemudian dengan cara pertama didekomposisi menjadi:
PA1 |
Mahasiswa |
NoHP |
Wawan |
0815 06 |
Yoseph |
0817 07 |
Aan |
0815 08 |
Nuri |
0812 09 |
|
|
→ |
PA2 |
NoHP |
Operator |
0815 06 |
Matrix |
0817 07 |
Pro XL |
0815 08 |
Matrix |
0812 09 |
Simpati |
|
|
Constraint awal adalah {Mahasiswa → NoHP, NoHP → Operator},
kemudian dari dua relasi diatas ada irisan yaitu attribut {NoHP}, dengan
demikian ketika kita merujuk salah satu nama Mahasiwa pada relasi PA1
maka kita akan dapat NoHP, berbekal NoHP ketika kita pergi ke PA2 kita
bisa mendapat nama Operator.
Sekarang kita pakai cara dekomposisi kedua:
PA1 |
Mahasiswa |
NoHP |
Wawan |
0815 06 |
Yoseph |
0817 07 |
Aan |
0815 08 |
Nuri |
0812 09 |
|
|
→ |
PA2 |
Mahasiswa |
Operator |
Wawan |
Matrix |
Yoseph |
Pro XL |
Aan |
Matrix |
Nuri |
Simpati |
|
|
Constraint awal adalah {Mahasiswa → NoHP, NoHP → Operator},
kemudian dari dua relasi diatas ada irisan yaitu attribut {Mahasiswa},
ketika kita merujuk salah satu nama Mahasiwa pada relasi PA1 maka kita
akan dapat NoHP, berbekal NoHP kita tidak dapat mendapat nama Operator
pada relasi PA2.
Dekomposisi cara kedua diatas juga
Lossless-join karena memiliki attribut irisan {Mahasiswa} tapi tidak
Dependency Preserving karena
constraint yang berlaku pada awal relasi sebelum didekomposisi tidak berlaku lagi.
Untuk ringkasnya lihatyang beriku tini:
- Ada sebuah Relasi: R = (A, B, C)
Constraint F = {A → B, B → C}
- Dapat didekomposisi dalam dua cara.
- Cara pertama: R1 = (A, B), R2 = (B, C)
- Lossless-join decomposition: R1 → R2 = {B} dan B → BC
- Dependency preserving
- Cara kedua: R1 = (A, B), R2 = (A, C)
- Lossless-join decomposition: R1 → R2 = {A} dan A → AB
- Not dependency preserving
- Apa itu dependency (ketergantungan)? Dependency secara garis geras ada dua macam yaitu Functional Dependency dan Multivalued Denpendency.
0 komentar:
Posting Komentar