Normalisasi
Normalisasi adalah proses pembentukan struktur
basis data sehingga sebagian besar ambiguity bisa
dihilangkan.
Digunakan untuk memastikan bahwa basis data
yang dibuat berkualitas baik
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.
2
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-Code Normal Form (BCNF) (-akan
dijelaskan kemudian-)
3
Normalisasi
4
Tabel Universal
Tabel Universal (Universal / Star Table) sebuah tabel
yang merangkum semua kelompok data yang saling
berhubungan, bukan merupakan tabel yang baik.
Misalnya:
5
Tabel Universal
6
Functional Dependency
Notasi: A B
A dan B adalah atribut dari sebuah tabel. Berarti
secara fungsional A menentukan B atau B tergantung
pada A, jika dan hanya jika ada 2 baris data dengan
nilai A yang sama, maka nilai B juga sama
Notasi: A B atau A x B
Adalah kebalikan dari notasi sebelumnya.
7
Functional Dependency
Contoh tabel nilai
8
Functional Dependency
Functional Dependency dari tabel nilai
Nrp namaMhs
Karena untuk setiap nilai nrp yang sama, maka nilai namaMhs
juga sama.
{Namakul, nrp} NiHuruf
Karena attribut Nihuruf tergantung pada Namakul dan nrp secara
bersama-sama. Dalam arti lain untuk Namakul dan nrp yang
sama, maka NiHuruf juga sama, karena Namakul dan nrp
merupakan key (bersifat unik).
NRP NamaKul
Nrp NiHuruf
9
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)
10
Bentuk Normal Tahap Pertama (1st
Normal Form / 1NF)
11
Contoh 1 (multi value atribut*) Misal data mahasiswa sbb:
NRP Nama Hobi
13
Contoh 2 (composite)
JadwalKuliah
Kodekul NamaKul Dosen Kelas Jadwal
14
Bentuk Normal Tahap Kedua (2nd
Normal Form)
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
15
Contoh
Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:
Mhs_nrp mhs_nama mhs_alamat mk_kode mk_nama mk_sks nihuruf
17
Bentuk Normal Tahap Ketiga (3rd
Normal Form /3NF)
18
Contoh Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:
No Pesanan No Urut Kode item Nama item
5002 001 P1
5003 001 P2
21
Contoh BCNF
Siswa Kursus Tutor Nilai
Anwar Bahasa Perancis Pierre A
Anwar Bahasa Inggris Richard B
Budi Bahasa Perancis Pierre B
Cecep Bahasa Inggris Suzanne A
Tabel tersebut tidak melanggar 3NF
Seorang siswa dapat mengambil sejumlah kursus
Tutor hanya mengajar pada sebuah kursus, satu kursus bisa
diajar oleh banyak tutor
Functional Dependencies:
{Siswa,Kursus}Tutor,Nilai
TutorKursus (kondisi anomali)
22
Solusi BCNF
1. Tutor dijadikan sebagai super key, dan kursus
menjadi atribut biasa
{Siswa, Tutor} Kursus, Nilai
Akan tetapi kondisi ini melangga 2NF karena atribut
Kursus hanya bergantung pada Tutor (partial dependency)
2. Hasil tahap 1 perlu di-dekomposisi sehingga
memenuhi kondisi 2NF
{Siswa, Tutor} Nilai
Tutor Kursus
23
Memenuhi BCNF
Siswa Tutor Nilai
Anwar Pierre A
Anwar Richard B
Budi Pierre B
Cecep Suzanne A
Tutor Kursus
Pierre Bahasa Perancis
Richard Bahasa Inggris
Pierre Bahasa Perancis
Suzanne Bahasa Inggris
24
Bentuk Normal Tahap Keempat (4th
Normal Form /4NF)
4NF terpenuhi jika
telah memenuhi bentuk BCNF,
Tidak mengandung multivalued dependency
25
Multivalued Dependency (MVD)
MVD terjadi saat:
Ada setidaknya tiga atribut X, Y dan Z pada sebuah
relasi,
Setiap nilai X menentukan sejumlah nilai Y (XY)
dan menentukan sejumlah nilai Z (XZ),
Tetapi nilai Y independent dari nilai Z
Setiap kombinasi yang mungkin pada tabel dengan
MVD harus disimpan dalam basis data sehingga akan
menyebabkan redundansi dan menjadi anomali
26
Contoh (4NF)
ID_Pegawai Bahasa Keahlian
P001 English Mengajar
P001 Mandarin Memasak
P001 English Memasak
P002 English Memasak
P002 Bahasa Mengajar
Dari tabel di atas, jika Bahasa dan Keahlian dependent, maka tabel
tersebut memenuhi 4NF karena tidak ada MVD.
Artinya untuk suatu keahlian, pegawai menggunakan bahasa tertentu
(misal saat mengajar P001 menggunakan English, sedangkan saat
memasak, ia menggunakan Mandarin
27
Contoh (bukan 4NF)
ID_Pegawai Bahasa Keahlian
P001 English Mengajar
P001 Mandarin Memasak
P001 English Memasak
P002 English Memasak
P002 Bahasa Mengajar
Dari tabel di atas, jika Bahasa dan Keahlian independent, maka tabel
tersebut tidak memenuhi 4NF karena ada MVD.
Artinya untuk suatu keahlian, tidak membutuhkan bahasa tertentu
28
Solusi untuk MVD
Tabel Peg-Bahasa Lakukan
dekomposisi untuk
ID_Pegawai Bahasa menghasilkan 4NF
P001 English
P001 Mandarin
P002 English
P002 Bahasa
Tabel Peg-Skill
ID_Pegawai Keahlian
P001 Mengajar
P001 Memasak
P002 Memasak
P002 Mengajar
29
Bentuk Normal Tahap Keempat (5th
Normal Form /5NF)
Suatu tabel dikatakan tidak memenuhi 5NF jika ia
atributnya saling bergantung dengan atribut lain
Bentuk normal 5NF terpenuhi jika data yang ada
padanya tidak dapat didekomposisi lagi menjadi tabel
yang lebih kecil
Jika 4 bentuk normal sebelumnya dibentuk berdasarkan
functional dependency, 5NF dibentuk berdasarkan
konsep join dependence. Yakni apabila sebuah tabel
telah di-dekomposisi menjadi tabel-tabel lebih kecil,
harus bisa digabungkan lagi (join) untuk membentuk
tabel semula
30
Contoh
Dealer Distributor Kendaraan
PT Sumber Jaya Nissan Truk Nissan
PT Sumber Jaya Toyota Toyota Kijang Tidak memenuhi 5NF
PT Sumber Jaya Toyota Truk Dyna
PT Asterindo Nissan Sedan Nissan
31
Latihan Normalisasi
Soal Latihan (1)
NoOrder TglOrder Item1 Item2 Item3 Total
TR001 10/01/200 P1 P2 P3 500.000
6
33
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
34
Soal Latihan(2)
KodeProyek NamaPegawai Bagian
P001 Adi EDP
P002 Bima HRD
P002 Adi EDP
P003 Bima HRD
P003 Candra Produksi
35
Pembahasan(2)
• 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
KodeProyek NamaPegawai NamaPegawai Bagian
P001 Adi Adi EDP
P002 Bima Bima HRD
P002 Adi Candra Produksi
P003 Bima
P003 Candra
36
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
37
Pembahasan (3)
• Tabel soal latihan 3 sudah memenuhi normalisasi pertama
• Bentuk normalisasi kedua dari tabel tersebut adalah
Relasi: Mahasiswa1 Relasi: Mahasiswa2
NRP Nama NRP Mata Kuliah
5103100101 Ali 5103100101 Basis data
5103100102 Sita 5103100102 Basis data
5103100103 Adi
5103100102 RPL
Relasi: Mahasiswa3 5103100103 AI
Mata Kuliah NIP Dosen
Basis Data 320001123 Ir. X
RPL 320001133 Ir. Y
AI 320021010 Ir. Z
38
Pembahasan (3)
• 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
Mata Kuliah NIP Dosen Basis Data 320001123
Basis Data 320001123 Ir. X RPL 320001133
RPL 320001133 Ir. Y AI 320021010
AI 320021010 Ir. Z
Relasi: Dosen
NIP Dosen
320001123 Ir. X
320011133 Ir. Y
320021010 Ir. Z 39
Latihan Normalisasi Data (Dikerjakan di
kelas)