Normasasi adalah suatu proses
pembentukan struktur basis data untuk mendapatkan struktur tabel atau relasi
yang efisien dan bebas dari anomali, dan mengacu pada cara data item
dikelompokkan ke dalam struktur record.
Ada beberapa bentuk normalisasi
yang biasa digunakan :
1NF - First Normal Form
Adalah suatu keadaan yang membuat
setiap perpotongan baris dan kolom dalam relasi hanya berisi satu nilai saja.
Tidak diperbolehkan adanya :
-
Atribut bernilai banyak
-
Atribut komposit atau kombinasi keduanya
Contoh :
NIM
|
Nama
|
Hobi
|
5302411111
|
Adrian
|
Sepak bola, membaca komik, Berenang
|
5302411150
|
Fara
|
Memasak, Membaca novel
|
5302411175
|
Beni
|
Bermain PS, catur
|
Tabel diatas tidak memenuhi
syarat 1NF
Bentuk 1NF ??
NIM
|
Nama
|
Hobi
|
5302411111
|
Adrian
|
Sepak bola
|
5302411111
|
Adrian
|
Membaca komik
|
5302411111
|
Adrian
|
Berenang
|
5302411150
|
Fara
|
Memasak
|
5302411150
|
Fara
|
Membaca novel
|
5302411175
|
Beni
|
Bermain PS
|
5302411175
|
Beni
|
Catur
|
2NF – Second Normal Form
Bentuk normal 2NF terpenuhi jika
sudah memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh
memiliki functional Dependency pada primary key. Jika terdapat atribut yang
tidak memiliki ketergantungn terhadap primary key, maka atribut tersebut harus
dipindah atau dihilangkan.
NIM
|
Nama_Mhs
|
NIP
|
Nama_Dosen
|
5302411111
|
Adrian
|
10.001.1
|
Ade
|
5302411125
|
Beni
|
11.098.2
|
Lia
|
5302411134
|
Hiena
|
11.032.1
|
Fara
|
5302411150
|
Fara
|
12.043.2
|
Dina
|
5302411176
|
Setiawan
|
10.023.1
|
Indra
|
{NIM, NIP} à {Nama_Mhs, Nama_Dosen}
NIM
|
NIP
|
5302411111
|
10.001.1
|
5302411125
|
11.098.2
|
5302411134
|
11.032.1
|
5302411150
|
12.043.2
|
5302411176
|
10.023.1
|
NIM
|
Nama_Mhs
|
5302411111
|
Adrian
|
5302411125
|
Beni
|
5302411134
|
Hiena
|
5302411150
|
Fara
|
5302411176
|
Setiawan
|
NIP
|
Nama_Dosen
|
10.001.1
|
Ade
|
11.098.2
|
Lia
|
11.032.1
|
Fara
|
12.043.2
|
Dina
|
10.023.1
|
Indra
|
3NF – Third Normal Form
Bentuk normal 3NF terpenuhi jika
bentuk 2NF telah terpenuhi, dan tidak ada atribut non primary key yang memiliki
ketergantungan terhadap atribut non primary key yang lainnnya (ketergantungan
transitif)
NIM
|
Nama
|
Jalan
|
Kota
|
Provinsi
|
Kode_Pos
|
5302411111
|
Adrian
|
Jl. Ahmad Yani
|
Purwokerto
|
Jawa Tengah
|
53165
|
5302411125
|
Beni
|
Jl. Pramuka
|
Pekalongan
|
Jawa Tengah
|
73224
|
5302411134
|
Hiena
|
Jl.Pahlawan
|
Semarang
|
Jawa Tengah
|
62125
|
5302411150
|
Fara
|
Jl.Panurukan
|
Semarang
|
Jawa Tengah
|
62312
|
NIM à {Nama, Jalan, Kota, Provinsi,
Kode_Pos}
Kode_Pos à {Kota, Provinsi}
NIM à {Nama, Jalan, Kode_Pos} Sebagai Tabel
Mahasiswa
Kode_Pos à {Provinsi, Kota} Sebagai
Tabel Kode Pos
Tabel Mahasiswa
NIM
|
Nama
|
Jalan
|
Kode_Pos
|
5302411111
|
Adrian
|
Jl. Ahmad Yani
|
53165
|
5302411125
|
Beni
|
Jl. Pramuka
|
73224
|
5302411134
|
Hiena
|
Jl.Pahlawan
|
62125
|
5302411150
|
Fara
|
Jl.Panurukan
|
62312
|
Tabel Kode Pos
Kode_Pos
|
Kota
|
Provinsi
|
53165
|
Purwokerto
|
Jawa Tengah
|
73224
|
Pekalongan
|
Jawa Tengah
|
62125
|
Semarang
|
Jawa Tengah
|
62312
|
Semarang
|
Jawa Tengah
|