Pengertian Normalisasi Database contoh dan penjelasanya


Normalisasi (normalize) merupakan salah satu cara pendekatan atau teknik yang digunakan dalam membangun desain logic database relation dengan menerapakan sejumlah aturan dan kriteria standard.

Tujuan dari normalisasi adalah untuk menghasilakan struktur tabel yang normal atau baik.
Teknik normalisasi adalah upaya agar desain logik tabel-tabel berada dalam bentuk normal(normal form) yang dapat didefinisikan dengan menggunakan ketergantungan fungsi
Aturan-aturan normalisasi dinyatakan dalam istilah bentuk normal.

Bentuk normal adalah suatu aturan yang dikenakan pada relasi-relasi atau tabel-tabel dalam database dan harus dipenuhi oleh relasi atau tabel tersebut pada level-level normalisasi. Suatu relasi dikatakan dalam bentuk normal tertentu jika memenuhi kondisi tertentu juga. Beberapa bentuk normalisasi diantaranya adalah bentuk tidak normal (unnormalize), bentuk normal pertama (1NF), bentuk normal kedua (2NF), normal ketiga (3NF), dan seterusnya. 


Mari saya jelaskan satu-persatu.


#1 Bentuk Tidak Normal (unnormalize)

Bentuk tidak normal (unnormalized) merupakan kumpulan data yang direkam tidak ada keharusan dengan mengikuti suatu format tertentu.

Pada bentuk tidak normal terdapat repeating group (Pengulangan Group), sehingga pada kondisi ini data menjadi permasalahan dalam melakukan manipulasi data (insert, update, dan delete) atau biasa disebut anomali.




#2. Normal Pertama (1 NF)

Dalam relational database tidak diperkenankan adanya repeating group karena dapat berdampak terjadinya anomali.
Oleh karena itu tahap unnormal akan menghasilkan bentuk normal tahap pertama (1 NF) yang dapat di definisikan sebagai berikut:

Normal pertama (1 NF), suatu relasi atau tabel memenuhi normal pertama jika dan hanya jika setiap setiap atribut dari relasi tersebut hanya memiliki nilai tunggal dalam satu baris (record).
Tiap field hanya satu pengertian, bukan merupakan kumpulan kata yang mempunyai arti ganda dan tidak ada set atribut yang berulang-ulang atau atribut bernilai ganda.

Pada data tabel sebelumnya data belum normal sehingga harus diubah kedalam bentuk normal pertama dengan cara membuat baris berisi kolom jumlah yang sama dan setiap kolom hanya mengandung satu nilai.

Berikut perubahannya:




Bentuk normalisasi pertama (1 NF) ini mempunyai ciri yaitu setiap data dibentuk file datar atau rata (flat file), data dibentuk dalam satu record demi satu record dan nilai-nilai dari field-field berupa nilai yang tidak dapat dibagi-bagi lagi.



#3. Normal Kedua (2 NF)

Dalam perancangan database relational tidak diperkenankan adalah partial functional dependency kepada primary key, karena dapat berdampak terjadinya anomali.

Oleh karena itu tahap normalisasi pertama akan menghasilkan bentuk normal kedua (2 NF) yang dapat didefinisikan sebagai berikut:

Normalisasi kedua (2 NF), suatu relasi memenuhi relasi kedua jika dan hanya jika relasi tersebut memenuhi normal pertama dan setiap atribut yang bukan kunci (non key) bergantung secara fungsional terhadap kunci utama (Primary key).

Berikut perubahannya:




Bentuk normal kedua ini mempunyai syarat yaitu bentuk data yang telah memenuhi kriteria bentuk normal pertama.

Atribut bukan kunci haruslah bergantung secara fungsional pada kunci utama (primary key), sehingga untuk membentuk normal kedua haruslah sudah ditentukan kunci-kunci field.


#4. Normal Ketiga (3 NF)

Dalam perancangan database relational tidak diperkenankan adanya transitive dependency karena dapat berdampak terjadinya anomali.

Oleh karena itu harus dilakukan normalisasi tahap ketiga (3 NF) yang dapat didefinisikan sebagai berikut:
Normalisasi ketiga (3 NF), suatu relasi memenuhi normal ketiga jika dan hanya jika relasi tersebut memenuhi normal kedua dan setiap atribut bukan kunci (non key) tidak mempunyai transitive functional dependency kepada kunci utama (primary key).

Berikut perubahannya:



Bentuk normal ketiga (3 NF) ini relasi haruslah dalam bentuk normal kedua dan semua atribut bukan kunci utama tidak punya hubungan transitif.

Artinya setiap atribut bukan kunci harus bergantung hanya pada primary key secara keseluruhan, dan bentuk normalisasi ketiga sudah didapat tabel yang optimal.





Semoga bermanfaat