Back to IF5101 Manajemen Data

Decomposition dan Lossy Decomposition

Questions/Cues

  • Apa itu dekomposisi skema relasi dan kenapa dibutuhkan?
  • Mengapa tidak semua dekomposisi itu baik?
  • Apa yang dimaksud lossy decomposition?
  • Bagaimana contoh employee menunjukkan hilangnya informasi?
  • Apa syarat dekomposisi yang lossless?

Reference Points

  • IF5101 — Relational Data Model Part 4 (Slides 7-8)
  • Silberschatz, Korth, Sudarshan — Database System Concepts 7th Ed., Chapter 7.2 (Decomposition)

Dekomposisi: Memecah Skema

Dekomposisi berarti mengganti satu skema relasi dengan beberapa skema yang gabungan atributnya sama dengan . Pada in_dep, satu-satunya cara menghindari pengulangan informasi adalah memecahnya menjadi instructor dan department.

Tetapi tidak semua dekomposisi baik.

Contoh Dekomposisi yang Buruk

Misalkan:

employee  = (ID, name, street, city, salary)

didekomposisi menjadi

employee1 = (ID, name)
employee2 = (name, street, city, salary)

Masalah muncul bila dua karyawan memiliki nama yang sama. Atribut yang dipakai untuk menggabungkan kembali kedua tabel (name) bukan kunci, sehingga natural join menghasilkan tuple palsu (spurious tuples).

IDnamestreetcitysalary
57766KimMainPerryridge75000
98776KimNorthHampton67000

Setelah dipecah lalu di-join lewat name, kita memperoleh 4 baris: (57766, Kim, North, Hampton, 67000) dan (98776, Kim, Main, Perryridge, 75000) ikut muncul, padahal tidak ada di data asli.

Lossy Decomposition

Dekomposisi di atas tidak dapat merekonstruksi relasi employee asli — kita kehilangan informasi tentang siapa tinggal di mana. Karena itu disebut lossy decomposition.

  • Lossy: — join menghasilkan baris tambahan (informasi hilang karena tidak bisa membedakan yang asli dari yang palsu).
  • Lossless: — relasi asli dapat dibangun kembali tepat.
flowchart LR
    E["employee<br/>(ID, name, street, city, salary)"]
    E --> E1["employee1<br/>(ID, name)"]
    E --> E2["employee2<br/>(name, street, city, salary)"]
    E1 -->|"natural join pada name"| J["hasil join<br/>ada tuple palsu"]
    E2 --> J
    J -.->|"&ne; employee asli"| E

Kapan Dekomposisi Lossless?

Dekomposisi menjadi dan adalah lossless bila minimal satu dependensi berikut berlaku di :

Artinya atribut yang dipakai bersama harus menjadi superkey dari paling tidak salah satu hasil dekomposisi. Pada contoh, bukan superkey keduanya, sehingga lossy. Bila dipecah menjadi (ID, name) dan (ID, street, city, salary), irisannya ID adalah kunci sehingga lossless.

Summary

Dekomposisi memecah skema menjadi untuk menghilangkan redundancy, tetapi tidak semua dekomposisi baik. Memecah employee menjadi (ID, name) dan (name, street, city, salary) lossy: bila ada dua karyawan bernama sama, natural join menghasilkan tuple palsu dan relasi asli tidak bisa direkonstruksi. Dekomposisi lossless bila merupakan superkey bagi atau .