Sabtu, 06 April 2013

NORMALISASI DAN DENORMALISASI DATA


A.    Normalisasi Data
Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atribut data dengan cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan fleksible
Normalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah baik, yaitu dapat dilakukan proses insert,update,delete, dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut.
Pada proses normalisasi terhadap tabel pada database dapat dilakukan dengan tiga tahap normalisasi antara lain :


1. Bentuk Normal ke Satu(1NF)
Syarat :
   a. Tidak ada set atribut yang berulang atau bernilai ganda.
   b. Telah ditentukannya primary key untuk tabel atau relasi.
   c. Tiap atribut hanya memiliki satu pengertian.
   d. Tiap atribut yang dapat memiiki banyak nilai sebenarnya menggambarkan entitas atau relasi yang terpisah.
Namun pada tahap ini masih ada kelemahan yaitu :
   a.Pengulangan informasi
   b.Potensi inkonsistensi pada operasi update
   c.Tersembunyinya informasi tertentu





2. Bentuk Normal ke Dua(2NF)
Syarat :
a. Bentuk data telah memenuhi kriteria bentuk normal ke satu.
b. Atribut bukan kunci(non-key attribute) haruslah memiliki ketergantungan fungsional sepenuhnya pada primary key

3. Bentuk Normal ke Tiga(3NF)
Syarat :
a. Bentuk data telah memenuhi kriteria bentuk normal ke dua.
b. Atribut bukan kunci(non-key attribute) tidak boleh memiliki ketergantungan fungsional terhadap atribut bukan kunci lainnya. Seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap primary key di relasi itu saja.

B.     Penerapan normalisasi data

Penerapan Normalisasi dan Implementasi ke Database SQL Server

Kali ini saya akan menerangkan tahap-tahap penerapan normalisasi hingga menjadi sebuah ERD pada SQL server. Sering kali mahasiswa bertanya "bagaimana awal mulanya pembuatan sistem informasi" salah satu cara terbaik awal pembuatan sistem informasi adalah menanyakan kebutuhan user / pengguna terhadap sebuah sistem yang akan dibangun, biasanya kebutuhan ini awalnya dari sebuah "MASALAH" yang harus dicarikan solusi.

Bermodalkan interview kepada pengguna kebutuhan apa yang harus dibuat, biasanya kita mencari informasi proses bisnis dari perusahaan tersebut, sehingga akhirnya kita mengetahui format manual sistem yang berjalan   contohnya disini BON PEMBELIAN.




1. Bentuk Normal Pertama (1NF)
dari manual bon pembelian diatas kita dapat menjadi bentuk normal pertama dengan memisah-misahkan data pada atribut-atribut yang tepat dan bernilai atomik, juga seluruh record / baris harus lengkap adanya.

2. Bentuk Normal Kedua (2NF).
Bentuk normal kedua dengan melakukan dekomposisi tabel diatas menjadi beberapa tabel dan mencari kunci primer dari tiap-tiap tabel tersebut dan atribut kunci haruslah unik.










3.BentukNormalKetiga(3NF)
Bentuk normal ketiga mempunyai syarat, setiap relasi tidak mempunyai atribut yang bergantung transitif, harus bergantung penuh pada kunci utama dan harus memenuhi bentuk normal kedua (2 NF).

Implementasi ERD (entity relationship diagram) pada contoh diatas, bisa dituangkan kedalam database MS SQL Server 2005, seperti terlihat pada gambar beikut ini :



C.    Denormalisasi data
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.
Apakah perbedaan normalisasi dan denormalisasi.
Apa sih pentingnya denormalisasi dalam database? Apabila kita menilik lebih lanjut tentang proses pengaksesan yang dilakukan database sewaktu data yang berada dalam suatu tabel ada 1000 baris dengan 100 juta baris. Hal itu akan terasa sangat beda proses kita menunggu untuk dapat melihat data. Itupun apabila kita mengaksesnya dari beberapa tabel yang setiap tabel berisikan jutaan data dan kita hanya menginginkan sebagian saja.Dari situ denormalisasi diperlukan, untuk menjaga kestabilan performa suatu sistem.

Kita dapat melakukan denormalisasi dalam 2 jenis :

·         melalui pembuatan kolom baru pada tabel / mengabungkan kolom pada tabel satu dengan yang lain.
·         melalui pembuatan tabel baru.

cara yang pertama dilakukan apabila data yang didenormalisasi hanya kecil dan digunakan untuk mempermudah pengaksesan data apabila diakses dalam satu tabel. Sedangkan yang kedua dilakukan apabila data yang terdapat dalam tabel tersebut merupakan rangkuman / rekapitulasi dari satu atau beberapa tabel yang pengaksesannya terpisah dari tabel yang ada.



contoh :

denormalisasi pertama : total sks yang telah diambil seorang mahasiswa. ini dibentuk dari jumlah sks matakuliah yang pernah diambil.

denormalisasi kedua : pembuatan tabel jumlah kehadiran mahasiswa dalam satu semester. data ini dibentuk dari penjumlahan data harian mahasiswa.


D.    Perbedaan normalisasi dan denormalisasi
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

E.     Boyce-Codde method
            Definisi Bentuk BCNF adalah :
1). Memenuhi bentuk 3 NF (normal ketiga).
2). Semua penentu (determinan) adalah kunci kandidat (atribut yang bersifat unik).
Setiap atribut harus bergantung fungsi pada atribut superkey.

BCNF merupakan bentuk normal sebagai perbaikan terhadap 3 NF. Suatu relasi
yang memenuhi BCNF selalu memenuhi 3 NF, tetapi tidak untuk sebaliknya. Suatu relasi yang memenuhi 3 NF belum tentu memenuhi BCNF. Karena bentuk 3 NF
masih memungkinkan terjadi anomali.
Pada contoh berikut ini terdapat tabel SEMINAR, kunci primer adalah no_siswa +
seminar, dengan pengertian bahwa :
·          Siswa dapat mengambil satu atau dua seminar.
·          Setiap seminar membutuhkan 2 instruktur.
·          Setiap siswa dibimbing oleh salah satu dari 2 instruktur seminar.
·          Setiap instruktur boleh hanya mengambil satu seminar saja.

Suatu relasi disebut memenuhi bentuk normal Boyce-Codd (BCNF) jika dan hanya jika semua (determinan) adalah kunci kandidat (atribut yang bersifat unik). BCNF merupakan bentuk normal sebagian perbaikan terhadap 3NF,suatu relasi yang memenuhi BCNF selalu memenuhi 3NF, tetapi tidak untuk sebaliknya. Suatu relasi yang memenuhi 3NF belum tentu memenuhi BCNF .Dalam banyak literature disebutkan bahwa BCNF adalah perbaikan dari 3NF ,karena bentuk normal ketigapun mungkin masih mengandung anomaly sehingga masih perlu dinormalisasikan lebih lanjut.


Pada contoh ini, no_siswa dan seminar menunjukkan seorang instruktur.
Relasi seminar



















Bentuk tabel SEMINAR adalah memenuhi bentuk normal ketiga (3 NF), tetapi tidak
BCNF karena nomor seminar masih bergantung fungsi pada instruktur, jika setiap
instruktur dapat mengajar hanya pada satu seminar. Seminar bergantung fungsi
pada satu atribute bukan superkey seperti yang disyaratkan oleh BCNF.

Maka relasi SEMINAR harus didekomposisi menjadi dua relasi, yaitu relasi pengajar
dan seminar_instruktur, seperti berikut ini :



Relasi pengajar
Relasi seminar struktur

2 komentar: