Sabtu, 30 Maret 2013

Normalisasi dan Denormalisasi Data


1. Normalisasi

Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atribut data dengan cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan fleksible. Hal yang dapat dilakukan dalam normalisasi data adalah insert,update,delete, dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut.


2. Tahapan dalam normalisasi data


Bentuk normal ke satu ( 1NF)

Bentuk ini terpenuhi jika sebuah tabel tidak memiliki atribut bernilai banyak (multivalue attribute) atau lebih dari satu atribut domain nilai yang sama.

Aturan :
o Tidak adanya atribut multi-value, atribut komposit atau kombinasinya.
o Mendefinisikan atribut kunci.
o Setiap atribut dalam tabel tersebut harusbernilai atomic (tidak dapat dibagi-bagi lagi)


Bentuk normal kedua (2NF)

Bentuk ini terpenuhi jika pada sebuah tabel, semua atribut yang tidak termasuk dalam key primer memiliki ketergantungan fungsional (KF) pada key primer secara utuh. Jika kf hanya bersifat parsial (hanya sebagian dari key primer) maka belum 2NF. Sudah merupakan 1NF

Aturan :
o Sudah memenuhi dalam bentuk normal kesatu (1NF)
o Semua atribut bukan kunci hanya boleh tergantung (functional dependency) pada atribut kuncJika ada ketergantungan parsial maka atribut tersebutharus dipisah pada tabel yang lain Perlu ada tabel penghubung ataupun kehadiran foreign key bagi atribut-atribut yang telah dipisah tadi


Bentuk normal ke tiga ( 3NF)

Untuk menjadi bentuk normal ketiga maka relasi haruslah dalam bentuk normal kedua dan semua atribut bukan primer tidak punya hubungan yang transitif. Dengan kata lain, setiap atribut bukan kunci haruslah bergantung hanya pada primary key dan pada primer key secara menyeluruh


Aturan :
o Sudah berada dalam bentuk normal kedua (2NF)
o Tidak ada ketergantungan transitif (dimana atribut bukan kunci tergantung pada atribut bukan kunci lainnya).


Boyce-Codd Normal Form (BCNF)

Untuk menjadi bentuk ini, relasi harus dalam bentuk normal ke satu dan setiap atribut harus bergantung fungsi pada atribut superkey.


Bentuk 4NF

Jika dan hanya jika relasi tersebut juga termasuk BCNF dan semua ketergantungan multivalue juga ketergantungan fungsional.

Bentuk 5NF/ PJNF (Projection Join NF)

Menghilangkan ketergantungan join yang bukan merupakan kunci kandidat.

3. Contoh Normalisasi Data

Studi Kasus Normalisasi Data



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

Solusinya hilangkan 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

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 proyekpegawai
Normalisasi Ketiga

Pada tabel diatas masih terdapat masalah, bahwa BesarGaji disini Golongan bukan merupakan field kunci. Tergantung kepada Golongan nya. Padahal 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 proyekpegawai

4. Denormalisasi Data

Pelanggaran Normalisasi basis data disebut dengan Denormalisasi. 
Satu-satunya alasan mengapa kita boleh melakukan denormalisasi adalah pertimbangan performansi. 
Jika performansi yang kita peroleh bisa menjadi jauh lebih baik, maka normalisasi yang telah dilakukan cukup beralasan untuk dilanggar.

Denormalisasi database adalah pelanggaran aturan normalisasi atau menjabarkan suatu tataan database yang telah normal untuk meningkatkan performa pengaksesan data pada database. Database yang telah normal disini dimaksudkan database yang redundansi datanya minim sehingga data yang disimpan tidak mengalami kerancuan dalam proses pengaksesan. Perbedaan normalisasi dan denormalisasi adalah terletak pada redundansi data dan kompleksitas query.

Pada redundansi data normalisasi lebih strik atau harus dihilangkan sebisa mungkin sehingga mengakibatkan apabila kita akan mengakses data dalam suatu database membutuhkan query yang kompleks. Berbeda dengan denormalisasi, denormalisasi disini tidak terlalu memikirkan tentang data yang redundan sehingga dalam mengakses data lebih cepat.

5. Bentuk Denormalisasi Data

Atribut yang terderivasi (atribut turunan)
Atribut yang nilainya bisa diperoleh dari nilai-nilai yang sudah ada pada atribut lain

Tabel rekapitulasi (summary table)
Laporan hasil rekapitulasi akan selalu merupakan hasi pengolahan dari semua tabel yang ada. Pengolahan tersebut melibatkan banyak tabel sehingga akan membutuhkan waktu yang lama. Jika hal tersebut sering diakses dan diperlukan, maka perlu dibuat tabel khusus untuk menyimpan data hasil rekapitulasi tersebut.


6. Penerapan Denormalisasi Data









Tampilkan berapa banyak matakuliah yang sudah diambil oleh mahasiswa tertentu ! bagaimana jika data mahasiswa sangat banyak sedangkan proses untuk menampilkan jumlah matakuliah, jumlah sks ataupun IPK sering dilakukan?

  membutuhkan waktu yang lama !

Untuk itu perlu ditambahkan atribut baru pada tabel mahasiswa (total_sks, total_matkul,ipk)

Pada contoh kasus ini, akan dibutuhkan waktu yang lama jika harus menghitung jumlah matakuliah, jumlah sks dan ipk mahasiswa yang pengolahannya berasal dari beberapa tabel. Untuk itu bisa dibuat tabel khusus, misal : rekap_mahasiswa yang berisi data tentang jumlah matakuliah, jumlah sks, ipk.






Hal ini tentu saja akan menimbulkan redundansi, tapi dengan mempertimbangkan performansi, Denormalisasi pada kasus ini perlu dilakukan.

7. Boyce-Codde method

Definisi Bentuk BCNF adalah :
1. Memenuhi bentuk 3 NF (normal ketiga).
2. Semua penentu (determinan) adalah kuncikandidat (atribut yang bersifat unik). Setiap atribut harus bergantung fungsi pada atribut superkey.

Ketentuan BCNF
1. Masing-mading atribut utama bergantung fungsional penuh pada masing-masing kunci dimana kunci tersebut bukan bagiannya
2. Atau dengan kalimat lain. Relasi adalah BCNF(yaitu optimal) jika setiap determinan atribut-atribut relasi adalah kunci relasi.

Atau dengan kata lain:
Relasi adalah optimal (BCNF) jika kapanpun fakta-fakta disimpan mengenai beberapa atribut maka atribut-atribut ini merupakan satu kunci relasi.

Skema relasi yang didefinisikan dengan program SQL script 5.2 adalah BCNF karena hanya satu-satunya kebergantungan fungsional NRP  nama, alamat , sementara NRP adalah kunci relasi

BCNF dapat memiliki lebih dari satu kunci. Properti penting BCNF adalah relasi tidak memiliki informasi yang redudan.


Contoh :

Sebuah Mobil memiliki attribute seperti license number, engine number, color, make, type (2-door, 4-door), dan description (minivan, pickup, 4×4, sedan). BaikLicense Number dan Engine Number cukup unik untuk menjadikan candidate key.



Relasi ini dapat dinyatakan sebagai Boyce-Codd Normal Form dengan memecahkan menjadi 2 (dua) kelompok. Kelompok pertama terdapat kedua kunci candidate, yaitu: License Number dan Engine Number. Sedangkan kelompok kedua terdapat Engine Number dan semua attribute lainnya.




 Sumber : 


Bentuk-bentuk Normalisasi, 2010 http://id.scribd.com/doc/48077780/Bentuk-bentuk-Normalisasi diakses. pada 12 februari 2013

Fathansyah.1999. Basis Data. Informatika Bandung, Bandung.
Room, Riyadi., 2011, Boyce-Codd Normal Form (BCNF, )http://desktop-labsore.blogspot.com/2011/05/boyce-codd-normal-form-bcnf.html diakeses pada 12 Februari 2013

 






0 komentar:

Poskan Komentar

 

Sean Manalagi © 2008. Design By: SkinCorner