NORMALISASI DATABASE



Pengertian Normalisasi

  • Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data yang mengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi).
  • Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.

Tujuan Normalisasi Database

  • Untuk menghilangkan kerangkapan data sehingga meminimalkan pemakaian storage yang dipakai oleh base relations (file).
  • Untuk mengurangi kompleksitas.
  • Untuk mempermudah pemodifikasian data.

Proses Normalisasi Database

  • Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat.
  • Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.

Tahapan Normalisasi Database

Tahap Normalisasi dimulai dari tahap paling ringan (1NF) hingga paling ketat (5NF). Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik.




Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sebagai berikut:
  1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya  harus dijamin aman (Lossless-Join Decomposition). Artinya, setelah tabel tersebut diuraikan / didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut bisa menghasilkan tabel semula dengan sama persis.
  2. Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation).
  3. Tidak melanggar Boyce-Codd Normal Form (BCNF) (-akan dijelaskan kemudian-)

Bentuk-Bentuk Normalisasi

Normal Pertama (1st Normal Form)
Suatu tabel dikatakan 1NF jika dan hanya jika setiap atribut dari data tersebut hanya memiliki nilai tunggal dalam satu baris.
Aturan :
  • Tidak adanya atribut multi-value, atribut komposit atau kombinasinya.
  • Mendefinisikan atribut kunci.
  • Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi).

Normalisasi Kedua (2nd Normal Form)
Syarat 2NF adalah tidak diperkenankan adanya partial “functional dependency“ kepada primary key dalam sebuah tabel.
Aturan :
  • Sudah memenuhi dalam bentuk normal kesatu (1NF)
  • Semua atribut bukan kunci hanya boleh tergantung (functional dependency) pada atribut kunci
  • Jika ada ketergantungan parsial maka atribut tersebut harus dipisah pada tabel yang lain
  • Perlu ada tabel penghubung ataupun kehadiran foreign key bagi atribut-atribut yang telah dipisah tadi

Normalisasi Ketiga (3rd Normal Form)
Pada 3NF tidak diperkenankan adanya partial “transitive dependency“ dalam sebuah tabel.
Aturan : 
  • Sudah berada dalam bentuk normal kedua (2NF)
  • Tidak ada ketergantungan transitif (dimana atribut bukan kunci tergantung pada atribut bukan kunci lainnya). 

CONTOH STUDI KASUS NORMALISASI DATABASE








Untuk mendapatkan hasil yang paling normal, maka proses normalisasi dimulai dari normal pertama. Field-field tabel di atas yang merupakan group berulang : NoPegawai, NamaPegawai, Golongan, BesarGaji.

Normalisasi pertama (1NF)
Langkah pertama menghilangkan duplikasi dengan mencari ketergantungan parsial. menjadikan field-field menjadi tergantung pada satu atau beberapa field. Karena yang dapat dijadikan kunci adalah NoProyek dan NoPegawai, maka langkah kemudian dicari field-field mana yang tergantung pada NoProyek dan mana yang tergantung pada NoPegawai.

Normalisasi Kedua (2NF)
Field-field yang tergantung pada satu field haruslah dipisah dengan tepat, misalnya NoProyek menjelaskan NamaProyek dan NoPegawai menjelaskan NamaPegawai, Golongan dan BesarGaji.

TABEL PROYEK

TABEL PEGAWAI

Untuk membuat hubungan antara dua tabel, dibuat suatu tabel yang berisi key-key dari tabel yang lain

TABEL DETAIL_PROYEK
Normalisasi Ketiga (3NF)
Pada tabel diatas masih terdapat masalah, bahwa BesarGaji  tergantung kepada Golongan nya. Padahal Golongan bukan merupakan field kunci. Artinya kita harus memisahkan field non-kunci Golongan dan BesarGaji yang tadinya tergantung secara parsial kepada field kunci NoPegawai, untuk menghilangkan ketergantungan transitif.

TABEL PROYEK


TABEL PEGAWAI
TABEL GOLONGAN
TABEL DETAIL_PROYEK




Tidak ada komentar:

Diberdayakan oleh Blogger.