Jumat, 26 Desember 2008

Normalisasi dengan Ketergantungan Fungsional

Normalisasi dengan Ketergantungan Fungsional


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 dikategorian baik (efisien) atau normal, jika telah memenuhi 3 (tiga) kriteria berikut:

  1. jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (Lossless-Join Decomposition).

  2. terpeliharanya ketergantungan fungisional pada saat perubahan data (Dependency Presevation).

  3. tidak melanggar Boyce-Code Normal Form (BCNF).


Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak, tabel tersebut tidak melanggar Bentuk Normal tahap Ketiga (3NF).


Criteria di atas merupakan criteria minimal untuk mendapatkan predikat efisien/normal bagi sebuah tabel. Akan tetapi, kita juga dapat menerapkan criteria-kriteria lain yang juga tercakup dalam kerangka Normalisasi, yaitu:

  • Bentuk Normal tahap Pertama (1NF)

  • Bentuk Normal tahap Kedua (2NF)

  • Bentuk Normal tahap Keempat (4NF)

  • Bentuk Normal tahap Kelima (5NF)


Dekomposisi merupakan langkah yang paling sering ditempuh dalam proses normalisasi, jika sebuah tabel tidak memenuhi Bentuk Normal tertentu.

Sebuah tabel yang merangkum semua kelompok data yang saling berhubungan biasa disebut sebagai tabel Universal (Universal/Star Table).



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 Lossles-Join Decomposition atau Lossless Decomposition (dapat diIndonesiakan dengan istilah Dekomposisi Aman).

Berikut kita ambil sebuah contoh abstrak yang menghasilkan dekomposisi yang tidak aman (Lossy-Join Decomposition). Kita asumsikan ada tabel ABC yang disefinisikan dengan dua buah KF yaitu: A → B dan B → C. kedua KF tersebut kita peroleh dari pengamatan terhadap data yang kurang memadai atau karena asumsi yang kurang tepat.

Katakanlah isi tabel ABC tersebut adalah sebagai berikut:


A

B

C

a1

100

c1

a2

200

c2

a3

300

c3

a4

200

c4


Memang dengan seperti itu, pernyataan KF yang kedua : B → C tidak sepenuhnya tepat, karena pada row 2 dan row 4 dengan nilai untuk atribut B yang sama, nilai untuk atribut C-nya berbeda. Tetapi yang ingin ditekankan disini adalah, adanya dua buah KF itu mendorong kita untuk mendekomposisi tabel ABC tersebut menjadi dua buah tabel, yaitu: tabel AB dan tabel BC sebagai berikut:


A

B

a1

100

a2

200

a3

300

a4

200


B

C

100

c1

200

c2

300

c3

200

c4


Jika kedua tabel ini digabungkan kembali, maka hasilnya adalah:

A

B

C

a1

100

c1

a2

200

c2

a2

200

c4

a3

200

c3

a4

200

c2

a4

300

c4


Hasil ini tentu saja berbeda dengan tabel awal (sebelum dekomposisi). Maka dekomposisi semacam ini disebut Lossy-Join Decomposition atau Lossy-Decomposition, sebuah dekomposisi yang sedapat mungkin kita hindari.

Akan tetapi, jika data pada row 4 yang ada di tabel ABC awal, kita ganti dengan data berikut:


a4

200

c2


Sehingga, isi tabel ABC menjadi:


A

B

C

a1

100

c1

a2

200

c2

a3

300

c3

a4

200

c2


Dengan data di tabel ABC demikian, maka kedua KF dapat dibenarkan. Tabel ABC tersebut didekomposisi menjadi tabel AB dan BC sebagai berikut:



A

B

a1

100

a2

200

a3

300

a4

200


B

C

100

c1

200

c2

300

c3




Kalau kedua isi tabel diatas digabung kembali, maka tabel awal ABC-nya akan diperoleh kembali. Kita bisa katakana, bahwa pemilahan tersebut merupakan Dekomposisi Aman (Lossless Dekomposition). Karena itulah, KF pada suatu tabel harus kita tetapkan berdasarkan pengamatan yang teliti dan asumsi yang dapat dipertanggungjawabkan, agar kelak hasil dekomposisinya dapat dibenarkan.

Tidak ada komentar:

Posting Komentar