Back to IF5101 Manajemen Data
Functional Dependency dan Keys
Questions/Cues
- Apa tujuan teori normalisasi dan apa tiga syarat dekomposisi yang baik?
- Apa itu functional dependency (FD) dan bagaimana definisi formalnya?
- Apa itu legal instance dari sebuah relasi?
- Bagaimana FD berhubungan dengan superkey dan candidate key?
- FD apa yang kita harapkan (dan tidak harapkan) berlaku pada
in_dep?Reference Points
- IF5101 — Relational Data Model Part 4 (Slides 9-13)
- Silberschatz, Korth, Sudarshan — Database System Concepts 7th Ed., Chapter 7.4 (Functional Dependency Theory)
Tujuan Teori Normalisasi
Teori normalisasi bertugas:
- Memutuskan apakah suatu relasi berada dalam bentuk yang baik (good form).
- Bila tidak, mendekomposisi menjadi sehingga:
- setiap relasi berada dalam good form,
- dekomposisi lossless,
- sebaiknya dependency preserving.
Landasan teorinya: functional dependencies dan multivalued dependencies.
Constraint di Dunia Nyata
Di basis data universitas, kita mengharapkan aturan seperti:
- Mahasiswa dan dosen dikenali secara unik oleh ID.
- Setiap mahasiswa/dosen hanya punya satu nama.
- Setiap mahasiswa/dosen (utamanya) terkait dengan satu departemen.
- Setiap departemen punya satu budget dan satu gedung.
Sebuah instance relasi yang memenuhi semua aturan ini disebut legal instance; basis data legal bila semua relasinya legal. Constraint semacam ini menyatakan bahwa nilai sekumpulan atribut menentukan secara unik nilai himpunan atribut lain. FD adalah generalisasi dari konsep key.
Definisi Formal
Misalkan skema relasi, dan . FD
berlaku pada jika dan hanya jika untuk setiap relasi legal , bila dua tuple dan sama pada , maka keduanya juga sama pada :
Contoh dengan tuple :
- berlaku (tiap nilai B hanya muncul sekali).
- tidak berlaku (A = 1 punya B = 4 dan 5).
FD dan Keys
- adalah superkey dari jika dan hanya jika .
- adalah candidate key dari jika dan hanya jika dan tidak ada dengan (minimal).
FD mampu menyatakan constraint yang tidak bisa dinyatakan dengan superkey saja. Untuk
in_dep = (ID, name, salary, dept_name, building, budget)kita mengharapkan:
dept_name → building,ID → building; tetapi tidakdept_name → salary(banyak dosen berbeda gaji di departemen yang sama).flowchart LR ID["ID"] --> N["name"] ID --> S["salary"] ID --> D["dept_name"] D --> B["building"] D --> BU["budget"]Diagram menunjukkan dan — sehingga secara transitif.
dept_namebukan superkeyin_dep, itulah sumber redundancy.
Normalisasi memeriksa apakah relasi dalam good form; bila tidak, dekomposisi harus lossless dan sebaiknya dependency preserving. FD berlaku bila dua tuple yang sama di pasti sama di — generalisasi dari key. adalah superkey iff , dan candidate key bila minimal. Pada
in_dep,dept_name → buildingberlaku tetapidept_namebukan superkey, sehingga muncul redundancy.
Additional Information
Armstrong’s axioms
(closure) diturunkan dengan aksioma reflexivity (), augmentation (), dan transitivity. Aturan turunan: union, decomposition, pseudotransitivity.
Attribute closure
Untuk mengecek apakah superkey, hitung : mulai dari , tambahkan sisi kanan FD yang sisi kirinya sudah termuat, ulangi hingga stabil. superkey bila . Ini cara tercepat menemukan candidate key di soal ujian.
Proyek Eksplorasi Mandiri
- Tulis fungsi Python
closure(attrs, fds)dan pakai untuk mencari seluruh candidate key dariin_dep.- Cek dengan data nyata: tulis query
GROUP BY dept_name HAVING count(DISTINCT building) > 1untuk membuktikan FDdept_name → buildingberlaku di instance Anda.Bacaan Lanjutan
- Silberschatz, Korth, Sudarshan. Database System Concepts, 7th Ed. — Chapter 7.4.
- Armstrong, W. W. (1974). “Dependency Structures of Data Base Relationships”.