NORMALISASI
Normalisasi adalah suatu proses untuk mengubah suatu tabel yang memiliki masalah tertentu ke dalam dua buah tabel atau lebih, yang tidak lagi memiliki masalah tersebut (Abdul Kadir, 2002: 52). Masalah tersebut biasanya merupakan suatu ketidakkonsistenan (tidak normal) apabila dilakukan penghapusan (delete), pengubahan (update) dan pembacaan (retrieve) pada suatu basis data.
Bentuk normalisasi adalah suatu aturan yang dikenakan pada tabel-tabel dalam basis data dan harus dipenuhi oleh tabel-tabel tersebut pada level-level normalisasi. Ada macam-macam bentuk normalisasi, diantaranya adalah bentuk tidak normal, bentuk normal pertama, bentuk normal kedua dan bentuk normal ketiga.
Aturan-aturan dalam masing-masing bentuk normalisasi tersebut adalah sebagai berikut (Abdul Kadir, 2002: 54) :
- a. Bentuk tidak normal
Bentuk ini merupakan kumpulan data yang akan disimpan, tidak ada keharusan mengikuti suatu format tertentu, dapat saja data tidak lengkap atau terduplikasi dan data dikumpulkan apa adanya.
- b. Bentuk normal pertama
Suatu tabel dikatakan dalam bentuk normal pertama (1NF) bila setiap kolom bernilai tunggal untuk setiap baris. Ini berarti bahwa nama kolom yang berulang cukup diwakili oleh sebuah nama kolom (tidak perlu ada indeks dalam memberi nama kolom).
- c. Bentuk normal kedua
Suatu tabel berada dalam bentuk normal kedua (2NF) jika tabel berada dalam bentuk normal pertama, semua kolom bukan kunci primer tergantung sepenuhnya terhadap kunci primer. Suatu kolom disebut tergantung sepenuhnya terhadap kunci primer jika nilai pada suatu kolom selalu bernilai sama untuk suatu nilai kunci primer yang sama.
- d. Bentuk normal ketiga
Suatu tabel berada dalam bentuk normal ketiga (3NF) jika tabel berada dalam bentuk normal kedua, setiap kolom bukan kunci primer tidak memiliki ketergantungan secara transitif terhadap kunci primer.
Normalisasi : Teknik/pendekatan yang digunakan dalam membangun disain lojik database relasional melalui organisasi himpunan data dengan tingkat ketergantungan fungsional dan keterkaitan yang tinggi sedemikian sehingga menghasilkan struktur tabel yang normal.
Tujuan :
- Minimalisasi redundansi (pengulangan data)
- Memudahkan identifikasi entitas
- Mencegah terjadinya anomali
Beberapa bentuk normal (normal forms, NF) :
- 1NF, 2NF, 3NF, BCNF
based on keys and functional dependencies
- 4NF, 5NF
based on keys and multi-valued dependencies)
First Normal Form (1NF)
- Suatu relasi disebut memenuhi bentuk normal pertama (1NF)
jika dan hanya jika setiap atribut dari relasi tersebut hanya memiliki
nilai tunggal dan tidak ada pengulangan grup atribut dalam baris.
- Bentuk 1NF tidak boleh mengandung grup atribut yang berulang.
- Tujuan membentuk 1NF :
::. semantik tabel menjadi lebih eksplisit (say anything once).
::. semua operator aljabar relasional dapat diaplikasikan pada tabel.
contoh 1
normalkan
contoh 2
normalkan
Suatu relasi disebut memenuhi bentuk normal kedua (2NF)jika
1. memenuhi 1NF
2. setiap atribut yang bukan kunci utama tergantung secara fungsional terhadap semua atribut kunci dan bukan hanya sebagian atribut kunci (fully functionally dependent).
-Untuk normalisasi ke bentuk 2NF, maka tabel 1NF didekomposisi
-menjadi beberapa tabel yang masing-masing memenuhi 2NF.
-Bila terdapat ketergantungan parsial maka : eliminate.
Tujuan membentuk 2NF :
1. semantik tabel 2NF menjadi lebih eksplisit (fully FD)
2. mengurangi update anomali yang masih mungkin terjadi pada 1NF
Contoh :
Diketahui tabel R=(A,B,C,D,E) ; A,B kunci utama (primary key)
dengan FD : A,B & C,D,E maka tabel R memenuhi 2NF sebab :
A,B & C,D,E berarti :
A,B &C,
A,B & D dan
A,B & E
Jadi semua atribut bukan kunci utama tergantung penuh pada (A,B).
Bagaimana bila R = (A,B,C,D,E) tetapi dengan FD :
(A,B) & (C,D) dan B & E. Apakah memenuhhi 2NF ?
Jelas bahwa R bukan 2NF karena ada atribut E yang bergantung
hanya pada atribut B saja dan bukan terhadap (A,B).
Dari FD : (A,B) à (C,D) juga mencerminkan bahwa hanya C dan D saja yang bergantung secara fungsional terhadap (A,B), tidak untuk E.
Jadi bukan 2NF.
Untuk mengubah menjadi 2NF, lakukan dekomposisi menjadi :
R1 = (A,B,C,D) dan R2 = (B,E). Tampak R1 dan R2 memenuhi 2NF.