Minggu, 16 April 2023

Pengantar Teknik Normalisasi Data (Basis Data) 2

                                Persyaratan teknik normalisasi data

Dalam perspektif normalisasi, sebuah basis data dapat dikatakan baik, jika setiap tabel yang menjadi unsur pembentuk basis data tersebut juga telah berada dalam keadaan baik atau normal. Selanjutnya, sebuah tabel dapat dikategorikan baik (efisien) atau normal, jika telah memenuhi 3 (tiga) kriteria berikut :
  1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus
    dijamin aman (
    dijamin aman (Lossless–Join Decomposition).
  2. Terpeliharanya ketergantungan fungsional pada saat perubahan data (DependencyPreservation).
  3. Tidak melanggar Boyce–Code Normal Form (BCNF)
Lossless-Join Decomposition

Dekomposisi memang merupakan upaya untuk mendapatkan tabel yang baik. Tetapi jika tidak hati–hati, upaya ini justru dapat menghasilkan kesalahan. Dekomposisi yang benar terjadi jika tabel–tabel hasil dekomposisi kita gabungkan kembali dapat menghasilkan tabel awal sebelum didekomposisi.
Dekomposisi yang benar semacam ini disebut
Lossless–Join Decomposition atau Lossless Decomposition (dekomposisi aman).
    Di bawah ini contoh abstrak yang menghasilkan dekomposisi tidak aman (
Lossy-Join Decomposition) :

Diasumsikan tabel XYZ yang didefinisikan oleh dua buah ketergantungan fungsional X
 Y dan Y  Z. Kedua ketergantungan fungsional tersebut diperoleh dari pengamatan terhadap data yang kurang memadai atau karena asumsi yang kurang tepat. Katakan isi tabel XYZ tersebut adalah sebagai berikut:


pernyataan ketergantungan fungsional yang kedua Y -
 Z tidak sepenuhnya tepat, karena pada row 2 dan row 4, dengan nilai untuk atribut Z–nya berbeda. Tetapi yang ingin ditekankan di sini adalah adanya dua buah ketergantunagn fungsional itu mendorong kita untuk mendekomposisi tabel XYZ tersebut menjadi dua buah tabel yaitu tabel XY dan YZ sebagai berikut :

Jika kedua tabel diatas kita gabungkan kembali, maka hasilnya adalah :


Maka ini tentu saja berbeda dengan tabel awal (sebelum didekomposisi). Maka dekomposisi semacam ini disebut
Lossy–Join Decomposition (dekomposisi tidakaman), yaitu sebuah dekomposisi yang sedapat mungkin kita hindari.Akan tetapi jika data pada row 4 yang ada di tabel XYZ awal, kita ganti dengan data berikut :

Sehingga tabel XYZ menjadi:




Dengan data tabel XYZ demikian maka kedua ketergantungan fungsional dapat di benarkan. Tabel XYZ tersebut di dekomposisikan menjaadi tabel XY dan YZ sebagai berikut:



Kalau kedua tabel diatas diagabungkan kembali maka, tabel awal XYZnya akan diperoleh ke,bali sehingga dekomposisi tersebut aman. Karena itulah ketergantungan fungsional pada suatu tabel harus kita tetapkan berdasarkan pengamatan yang teliti dan asumsi yang dapat dipertanggung jawabkan agar
kelak hasil dekomposisi dapat dibenarkan.

Dependency Prasevation 

Dependecy Preservation (pemiliharaan ketergantungan merupakan) kriteria kedua yang harus dapat
dicapai untuk mendapatkan tabel dan basis data yang baik. Ketika kita melakukan perubahan data, maka harus bisa dijamin agar perubahan tersebut tidak menghasilkan inkonsistensi data  yang mengakibatkan ketergantungan fungsional yang sudah benar menjadi tidak terpenuhi. Akan tetapi, dalam upaya untuk memelihara ketergantungan fungsional yang ada untuk tetap terpenuhi tersebut, prosesnya harus dapat dilakukan dengan efisien.
Contoh :
Tabel mahasiswa : (nim, nama_mhs, alamat_mhs, tgl_lahir) dengan
ketergantungan fungsional–nya yaitu :
nim
 nama_mhs, alamat_mhs, tgl_lahir
Tabel nilai : (nama_kul, nim, nama_mhs, indeks_nilai) dengan ketergantungan
fungsional–nya yaitu :
nama_kul, nim
 indeks_nilai dan
nim
 nama_mhs

   Jika ada perubahan nama_mhs di tabel mahasiswa maka perubahan tersebut harus juga dilakukan di tabel nilai dan juga berlaku sebaliknya yaitu jika ada perubahan nama_mhs di tabel nilai maka perubahan tersebut harus juga dilakukan di tabel mahasiswa.

   Jika hal tersebut tidak dilakukan maka data menjadi tidak konsiste dan ketergantunan fungsional menjadi tidak terpenuhi. Misalnya nilai yang nim-nya sama tetapi nama_mhs berbeda. Jika begitu, maka perubahan harus dilakukan diseluruh basis data, tetapi masalahnya perubahan itu tidak efisien dan seharusnya dihindari.Karena itu sebaiknya agar kriteria
dependency preservation dapat  terpenuhi dengan meniadakan/melepaskan atribut nama_mhs dari tabel nilai (sehingga tabel nilai berisi 3 atribut, yaitu nama-kul, nim dan indeks_nilai)

Boyce Code Normal Form (BCNF)

Kriteria berikutnya untuk mendapatkan tabel yang baik adalah dengan menerapkan BCNF. Sebuah tabel dikatakan memenuhi BCNF jika untuk semua ketergantungan fungsional dengan notasi X  Y, maka X harus merupakan candidate key pada tabel tersebut. Jika tidak demikian, maka tabel tersebut harus didekomposisi berdasarkan ketergantungan fungsional yang ada, sedemikian hingga X menjadi candidat key dari tabel–tabel hasil dekomposisi.

Contoh tabel yang tidak memenuhi BCNF :
Ditentukan tabel A = (E, F, G, H, I) dan berlaku ketergantungan fungsional, yaitu :
E, F  
 G, H, I
F, G  
 H, I
Disini tabel A tidak memenuhi BCNF karena ada X yang bukan
candiday key,
yaitu F, G sehingga F, G
 H, I. Sedangkan E, F adalah candidat key karena E, F   G, H, I Karena terdapat 2 ketergantungan fungsional maka agar tabel A tidak memenuhi BCNF maka tabel tersebut harus didekomposisikan menjadi :
A
1 = (E, F, G) dengan ketergantungan fungsional E, F   G
A
2 = (F, G, H, I) dengan ketergantungan fungsional F, G   H, I




    Demikian penjelasan tentang Pengantar teknik Normalisasi  Data, Sampai jumpa di artikel berikutnya.

Tidak ada komentar:

Posting Komentar