Pengertian Functional Dependency dalam DBMS

Pengertian Functional Dependency

Apa itu Functional Dependency

Functional Dependency (FD) adalah kendala yang menentukan hubungan antara satu atribut dengan atribut lainnya dalam DBMS (Database Management Systems). Functional Dependency atau ketergantungan fungsional membantu menjaga kualitas data dalam database. Ini memiliki peran penting dalam menentukan perbedaan antara desain database yang baik dan buruk.

Functional dependency biasanya dilambangkan dengan tanda panah "". Functional dependency X pada Y diartikan sebagai X → Y. Mari kita pahami Functional dependency dalam DBMS dengan Contoh.

Contoh:

NoKaryawanNamaKaryawanGajiAlamat
A001Dena5000Bandung
A002Sodikin7000Surabaya
A003Andre6000Jakarta

Dalam contoh di atas, jika kita tahu Nomor Karyawan, kita akan bisa mendapatkan Nama Karyawan, Gaji, Alamat. Dengan ini, kita dapat mengatakan bahwa nama, gaji, dan alamat secara fungsional tergantung pada nomor karyawan.

Key Terms (Istilah Kunci)

Berikut adalah beberapa istilah key untuk Functional Dependency dalam Database:

Key TermsDeskripsi
AxiomAxiom adalah seperangkat aturan inferensi yang digunakan untuk menyimpulkan semua dependensi fungsional pada database relasional.
DecompositionIni adalah aturan yang menunjukkan jika kita memiliki tabel yang tampaknya berisi dua entitas yang ditentukan oleh kunci utama yang sama maka kita harus mempertimbangkan untuk memecahnya menjadi dua tabel yang berbeda.
DependentDependent biasanya ditampilkan di sisi kanan diagram Functional Dependency.
DeterminantSedangkan Determinant biasanya ditampilkan di sisi kanan diagram Functional Dependency.
UnionUnion menunjukkan bahwa jika dua tabel terpisah, dan Primary Key sama, kita harus mempertimbangkan untuk menempatkannya bersama.

Aturan Functional Dependency

Functional Dependency memiliki tiga aturan yang paling penting dalam Database:
  • Refleksif - Jika X adalah satu set atribut dan Y adalah sub set dari X, maka X → Y,
  • Augmentasi - Ketika X → Y, dan Z adalah atribut set, maka XZ → YZ. 
  • Transitivitas - Aturan ini cukup mirip dengan aturan transitif. Jika X → Y dan Y → Z, maka X → Z.

Jenis Functional Dependency dalam DBMS

Ada empat jenis functional dependency dalam DBMS. Berikut ini adalah jenis-jenis functional dependency dalam DBMS:
  • Multivalued Dependency
  • Trivial Functional Dependency
  • non-Trivial Functional Dependency
  • Transitive Dependency

Multivalued Dependency dalam DBMS

Multivalued dependency terjadi ketika dalam situasi di mana ada beberapa atribut multivalued independen dalam satu tabel. Multivalued dependency adalah kendala antara dua set atribut dalam suatu relasi. Hal ini mengharuskan setiap tabel ada dalam satu relasi. Berikut adalah contoh untuk Multivalued Dependency untuk bisa memahami.

Contoh:

Car_modelTahun_produksiWarna
H0012017Silver
H0012017Hijau
H0052018Silver
H0052018Biru
H0102015Silver
H0332012Merah

Dalam tabel tersebut, Tahun_produksi dan warna independen satu sama lain tetapi masih ketergantungan dengan Car_model. Dalam contoh tersebut. kedua kolom ini dikatakan Multivalued Dependency terhadap Car_model.

Dependency ini dapat direpresentasikan seperti ini:

car_model → tahun_produksi

warna → car_model

Trivial Functional Dependency dalam DBMS

Trivial dependency adalah seperangkat atribut yang disebut trivial jika seperangkat atribut termasuk dalam atribut itu.

Jika, X → Y dikatakan Trivial functional dependency jika Y adalah subset dari X. Mari kita pahami lebih jelas lagi dengan contoh dibawah ini.

emp_idemp_name
AS555Harry
AS811Tanjung
AS999Kelvin

Kita lihat tabel tersebut memiliki dua kolom yaitu emp_id dan emp_name

{emp_id, emp_name} → emp_id adalah trivial functional dependency karena emp_id adalah subset dari {emp_id, emp_name}

non-Trivial Functional Dependency dalam DBMS

non-Trivial Functional Dependency terjadi ketika A → B dimana B bukan merupakan subset dari A. Dalam suatu relasi, jika atribut B bukan subset dari atribut A, maka itu dianggap sebagai non-trivial dependency.

Contohnya adalah seperti dibawah ini.

perusahaanCEOUmur
MicrosoftSatya Nadella51
GoogleSundar Pichai46
AppleTim Cook57

Kita lihat tabel di atas {perusahaan} → {CEO} (Jika kita mengetahui Perusahaan, Maka kita juga tahu nama CEO)

Tetapi CEO bukanlah bagian dari Perusahaan, dan karena itu adalah non-Trivial Functional Dependency.

Transitive Dependency dalam DBMS

Transitive Dependency adalah jenis ketergantungan fungsional yang terjadi ketika secara tidak langsung dibentuk oleh dua dependensi fungsional. Mari kita pahami dengan contoh Transitive Depencency.

perusahaanCEOUmur
MicrosoftSatya Nadella51
GoogleSundar Pichai46
AlibabaJack Ma54

{perusahaan} → {CEO} (Jika tahu sebuah perusahaan, kita juga tahu nama CEO-nya)

{CEO} → {umur} (Jika kita tahu seorang CEO, maka kita juga tahu umurnya)

Oleh karena itu sesuai dengan aturan Transitive Dependency:

{perusahaan} → {umur} Itu masuk akal jika kita tahu nama dari sebuah perusahaan, kita juga bisa tahu umurnya.

Catatan: Kita perlu mengingat bahwa transitive dependency hanya dapat terjadi ketika dalam relasi memiliki tiga atau lebih atribut.

Apa itu Normalisasi?

Normalisasi adalah metode mengatur data dalam database yang membantu kita menghindari redudansi data, penyisipan data, pembaharuan dan penghapusan anomali. Ini adalah proses menganalisis skema hubungan berdasarkan dependensi fungsional dan Primary key yang berbeda.

Normalisasi sangat erat hubungannya dengan teori database relasional. Ini mungkin memiliki efek menduplikasi data yang sama dalam database yang dapat mengakibatkan pembuatan tabel tambahan.

Keuntungan dari Functional Dependency

ada beberapa keuntungan ketika kita menerapkan functional dependency adalah sebagai berikut:
  • Functional Dependency dapat menghindari redudansi data. Oleh karena itu data yang sama tidak akan berulang di beberapa lokasi dalam database tersebut.
  • Ini membantu kita untuk menjaga kualitas data dalam database.
  • Ini dapat membantu kita untuk mengidentifikasi makna dan kendala dalam database.
  • Juga dapat membantu kita untuk mengidentifikasi ketika desain yang telah kita buat terlihat bagus atau buruk.
  • Ini dapat membantu kita menemukan keefektifan desain dalam database tersebut.

Posting Komentar untuk "Pengertian Functional Dependency dalam DBMS"