Anda di halaman 1dari 3

Dekomposisi

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:

R1 R2 R3
A B A B
X 1 Dekomposisi => X 1
X 2 Y 2
Y 1

Bila kedua relasi R2 dan R3 digabung kembali maka akan didapat:

R4
A B
X 1
X 2
Y 1
Y 2

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 PA2
Mahasiswa NoHP NoHP Operator
Wawan 0815 06 0815 06 Matrix

Yoseph 0817 07 0817 07 Pro XL
Aan 0815 08 0815 08 Matrix
Nuri 0812 09 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 PA2
Mahasiswa NoHP Mahasiswa Operator
Wawan 0815 06 Wawan Matrix

Yoseph 0817 07 Yoseph Pro XL
Aan 0815 08 Aan Matrix
Nuri 0812 09 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}
o Dapat didekomposisi dalam dua cara.
 Cara pertama: R1 = (A, B), R2 = (B, C)
o Lossless-join decomposition: R1 → R2 = {B} dan B → BC
o Dependency preserving
 Cara kedua: R1 = (A, B), R2 = (A, C)
o Lossless-join decomposition: R1 → R2 = {A} dan A → AB
o Not dependency preserving