“Rivals can easily copy your improvements in quality and efficiency.
But they shouldn’t be able to copy your strategic positioning –
what distiguishes your company from all the rest.”

Michael A. Porter, 1996.

Kamis, September 17, 2009

TSBD : 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
A B
X 1
X 2
Y 1

Dekomposisi =>
R2
A
X
Y

R3
B
1
2

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
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.

2 komentar:

  1. Antnius Wahyu SudrajatOktober 21, 2009 2:48 AM

    Keren, ini baru ilmu. terus di update pak. numpang belajar saya. hehehehehe

    wahyu

    BalasHapus
  2. kebetulan saya memang mencari bahan ini di internet, tapi mohon maaf sebelumnya, kok isinya sama persis dengan link yang saya temukan ya, apakah pemilik blog sama?

    link: http://blog.cybergl.co.id/2008/03/05/dekomposisi/

    BalasHapus