3. Normalisasi
• Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data
yang mengelompokkan atribut dari suatu relasi sehingga membentuk struktur
relasi yang baik (tanpa redudansi).
• Normalisasi adalah proses pembentukan struktur basis data sehingga
sebagian besar ambiguity bisa dihilangkan.
4. Tujuan Normalisasi
• Untuk menghilang kerangkapan data
• Untuk mengurangi kompleksitas
• Untuk mempermudah pemodifikasian data
5. Proses Normalisasi
• Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan
persyaratan tertentu ke beberapa tingkat.
• Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel
tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai
memenuhi bentuk yang optimal.
6. Tahapan Normalisasi
• Tahap Normalisasi dimulai dari tahap paling ringan (1NF) hingga paling ketat
(5NF)
• Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup
memadai untuk menghasilkan tabel-tabel yang berkualitas baik.
• Urutan: 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
7.
8. Normalisasi
Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb:
1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin
aman (Lossless-Join Decomposition). Artinya, setelah tabel tersebut diuraikan /
didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut bisa
menghasilkan tabel semula dengan sama persis.
2. Terpeliharanya ketergantungan fungsional pada saat perubahan data
(Dependency Preservation).
3. Tidak melanggar Boyce-Codd Normal Form (BCNF). Jika kriteria ketiga (BCNF)
tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar
Bentuk Normal tahap ketiga (3rd Normal Form / 3NF).
9. Tabel Universal
Tabel Universal (Universal / Star Table) sebuah tabel yang merangkum
semua kelompok data yang saling berhubungan, bukan merupakan tabel yang
baik.
9
Misalnya:
11. Bentuk-bentuk Normal
1. Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)
2. Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF)
3. Bentuk Normal Tahap (3rd Normal Form / 3NF)
4. Boyce-Code Normal Form (BCNF)
5. Bentuk Normal Tahap (4th Normal Form / 4NF)
6. Bentuk Normal Tahap (5th Normal Form / 5NF)
12. Normal Pertama (1st Normal Form / 1NF)
• Bentuk normal 1NF terpenuhi jika sebuah tabel tidak memiliki atribut bernilai
banyak (multivalued attribute), atribut composite atau kombinasinya dalam
domain data yang sama.
• Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-
bagi lagi)
13. Contoh 1 (atribut multi-value)
Misal data mahasiswa sbb:
Atau:
Tabel-tabel di atas tidak memenuhi syarat 1NF
NRP Nama Hobi
12020001 Heri Susanto Sepakbola, Membaca Komik, Berenang
12020013 Siti Zulaiha Memasak, membuat program komputer
12020018 Heri Susanto Membuat program Komputer
15. Contoh 2 (composite)
JadwalKuliah
Kodekul NamaKul Dosen Kelas Jadwal
Dimana nilai pada atribut jadwal berisi gabungan antara Hari dan Jam.
Jika asumsi hari dan jam memegang peranan penting dalam sistem basis
data, maka atribut Jadwal perlu dipisah sehingga menjadi JadwalHari dan
JadwalJam sbb:
JadwalKuliah
Kodekul NamaKul Dosen Kelas JadwalHari JadwalJam
16. Normalisasi Kedua (2nd Normal Form / 2NF)
Aturan :
• Bentuk normal 2NF terpenuhi dalam sebuah tabel jika telah
memenuhi bentuk 1NF, dan semua atribut selain primary key,
secara utuh memiliki Functional Dependency pada primary key
• Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang
ketergantungannya (Functional Dependency) hanya bersifat
parsial saja (hanya tergantung pada sebagian dari primary key)
• Jika terdapat atribut yang tidak memiliki ketergantungan terhadap
primary key, maka atribut tersebut harus dipindah atau dihilangkan
17. Contoh
Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:
Mhs_nrp mhs_nama mhs_alamat mk_kode mk_nama mk_sks nihuruf
Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang dianggap sebagai
primary key sedangkan:
{Mhs_nrp, mk_kode} mhs_nama
{Mhs_nrp, mk_kode} mhs_alamat
{Mhs_nrp, mk_kode} mk_nama
{Mhs_nrp, mk_kode} mk_sks
{Mhs_nrp, mk_kode} nihuruf
Tabel di atas perlu didekomposisi menjadi beberapa tabel yang memenuhi
syarat 2NF
19. Normalisasi Ketiga (3rd Normal Form/ 3NF)
• Bentuk normal 3NF terpenuhi
• jika telah memenuhi bentuk 2NF, dan
• jika tidak ada atribut yang bukan kunci memiliki ketergantungan transitif
(tidak secara langsung) pada primary key.
20. Contoh
Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:
Mahasiswa
Nrp Nama Alm_Jalan Alm_Kota Alm_Provinsi Alm_Kodepos
karena masih terdapat atribut non primary key (yakni alm_kota dan alm_Provinsi) yang
memiliki ketergantungan terhadap atribut non primary key yang lain (yakni alm_kodepos):
alm_kodepos {alm_Provinsi, alm_kota}
Sehingga tabel tersebut perlu didekomposisi menjadi:
Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos)
Kodepos (alm_kodepos, alm_provinsi, alm_kota)
22. Soal Latihan (1)
NoOrder TglOrder Item1 Item2 Item3 Total
TR001 10/01/2006 P1 P2 P3 500.000
TR002 15/02/2006 P3 P5 300.000
TR003 18/03/2006 P1 P2 200.000
Bagaimana bentuk normalisasinya?
23. Pembahasan(1)
Bentuk Normal Pertama
NoOrder TglOrder Item Total
TR001 10/01/2006 P1 500.000
TR001 10/01/2006 P2 500.000
TR001 10/01/2006 P3 500.000
TR002 15/02/2006 P3 300.000
TR002 15/02/2006 P5 300.000
TR003 18/03/2006 P1 200.000
TR003 18/03/2006 P2 200.000
23
24. Soal Latihan(2)
KodeProyek NamaPegawai Bagian
P001 Adi EDP
P002 Bima HRD
P002 Adi EDP
P003 Bima HRD
P003 Candra Produksi
• Apakah sudah memenuhi bentuk normal ?
• Jika sudah, bentuk normal level berapa?
• Apakah tabel masih bisa dinormalisasi ke level atasnya?
25. Pembahasan(2)
KodeProyek NamaPegawai
P001 Adi
P002 Bima
P002 Adi
P003 Bima
P003 Candra
NamaPegawai Bagian
Adi EDP
Bima HRD
Candra Produksi
25
• Tabel soal latihan 2 sudah memenuhi normalisasi pertama dan kedua tetapi
melanggar normalisasi tahap 3
• Bentuk normalisasi kedua dari tabel tersebut adalah
Relasi: Proyek Relasi: Pegawai
26. Soal Latihan(3)
NRP Nama MataKuliah NIP Dosen
5103100101 Ali Basis Data 320001123 Ir.X
5103100102 Sita Basis Data 320001123 Ir.X
5103100102 Sita RPL 320011133 Ir.Y
5103100103 Adi AI 320021010 Ir.Z
• Apakah sudah memenuhi bentuk normalisasi?
• Bagaimana bentuk normalisasi tabel tersebut?
27. Pembahasan (3)
NRP Nama
5103100101 Ali
5103100102 Sita
5103100103 Adi
NRP Mata Kuliah
5103100101 Basis data
5103100102 Basis data
5103100102 RPL
5103100103 AI
Mata Kuliah NIP Dosen
Basis Data 320001123 Ir. X
RPL 320001133 Ir. Y
AI 320021010 Ir. Z
• Tabel soal latihan 3 sudah memenuhi normalisasi pertama
• Bentuk normalisasi kedua dari tabel tersebut adalah
Relasi: Mahasiswa1 Relasi: Mahasiswa2
Relasi: Mahasiswa3
28. Pembahasan (3)
Mata Kuliah NIP
Basis Data 320001123
RPL 320001133
AI 320021010
NIP Dosen
320001123 Ir. X
320011133 Ir. Y
320021010 Ir. Z
• Relasi Mahasiswa1 dan mahasiswa2 telah memenuhi normalisasi tahap 2
• Relasi mahasiswa3 melanggar normalisasi tahap 3 yaitu Nama dosen bergantung pada NIP
Relasi: Mata Kuliah
Relasi: Mahasiswa3
Mata Kuliah NIP Dosen
Basis Data 320001123 Ir. X
RPL 320001133 Ir. Y
AI 320021010 Ir. Z
Relasi: Dosen
29. Studi Kasus Normalisasi
No-Mhs Nm-Mhs Jurusan Kd-MK Nama-MK Kd-Dosen Nm_Dosen Nilai
2683 Welli MI MI350 Manajemen Basis Data B104 Ati A
MI465 Analisis Prc. Sistem B317 Dita B
5432 Bakri AK MI350 Manajemen Basis Data B104 Ati C
AKN201 Akuntansi Keuangan D310 Lia B
MKT300 Dasar Pemasaran B212 Lola A
30. 1NF
No-Mhs Nm-Mhs Jurusan Kd-MK Nama-MK Kd-Dosen Nm_Dosen Nilai
2683 Welli MI MI350 Manajemen Basis Data B104 Ati A
2683 Welli MI MI465 Analisis Prc. Sistem B317 Dita B
5432 Bakri AK MI350 Manajemen Basis Data B104 Ati C
5432 Bakri AK AKN201 Akuntansi Keuangan D310 Lia B
5432 Bakri AK MKT300 Dasar Pemasaran B212 Lola A
31. 2NF
No-Mhs Nama-Mhs Jurusan
2683 Welli MI
5432 Bakri AK
Kode-MK Nama-MK Kode-Dosen Nama-Dosen
MI350 Manajemen Basis Data B104 Ati
MI465 Analisis Prc. Sistem B317 Dita
AKN201 Akuntansi Keuangan D310 Lia
MKT300 Dasar Pemasaran B212 Lola
No-Mhs Kode MK Nilai
2683 MI350 A
2683 MI465 B
5432 MI350 C
5432 AKN201 B
5432 MKT300 A
Tabel Mahasiswa
Tabel Kuliah
Tabel Nilai
32. 3NF
Kode-MK Nama-MK Kode-Dosen
MI350 Manajemen Basis Data B104
MI465 Analisis Prc. Sistem B317
AKN201 Akuntansi Keuangan D310
MKT300 Dasar Pemasaran B212
Kode-Dosen Nama-Dosen
B104 Ati
B317 Dita
D310 Lia
B212 Lola
Tabel Mata Kuliah
Tabel Dosen