Normalisasi Data
Kelas TI 2A
STMIK WIDYA DHARMA PONTIANAK
A B
Yang berarti A secara fungsional menentukan B atau B secara
fungsional tergantung pada A, jika dan hanya jika ada 2 baris data
dengan nilai A yang sama, maka nilai B juga sama.
Ketergantungan Fungsional
Selanjut terdapat notasi berikut ini:
A B
Yang berarti B tidak tergantung pada atribut A atau A tidak
menentukan B
Ketergantungan Fungsional
Nama_kul Nim Nama_mhs Indeks_nilai
Struktur data 100001 Ali Akbar A
Struktur data 100004 Indah Susanti B
Basis Data 100001 Ali Akbar
Basis Data 110002 Budi Haryanto
Basis Data 110004 Indah Susanti
Bahasa Indonesia 100001 Ali Akbar B
Matematika I 100002 Budi Haryanto C
Ketergantungan Fungsional
Dengan melihat data di atas dan pertimbangan intuisi kita, maka
KF yang dapat kita ajukan adalah:
• nim nama_mhs
berarti atribut nama_mhs hanya tergantung pada atribut nim
• nama_kul nim indeks_nilai
berarti atribut indeks_nilai tergantung pada atribut nama_kul
dan nim secara bersama-sama.
• nama_kul nim
• nim indeks_nilai
Normalisasi dengan Ketergantungan
Fungsional
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-)
Normalisasi dengan Ketergantungan
Fungsional
Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak
tabel tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd
Normal Form / 3NF).
Bentuk-bentuk Normal
Kriteria lain yang juga tercakup dalam kerangka normalisasi
adalah:
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)
Lossless-Join Decomposition
Dekomposisi yang benar terjadi jika tabel-tabel hasil dekomposisi
kita gabungkan kembali dapat menghasilkan tabel awal sebelum
didekomposisi. Dekomposisi ini disebut Lossless-Join
Decomposition atau Lossless Decomposition (Dekomposisi Aman)
Contoh Dekomposisi Tidak Aman
Kita asumsikan ada tabel ABC yang didefinisikan dengan dua buah
KF yaitu : A B dan B C. Kedua KF tersebut kita peroleh dari
pengamatan terhadap data yang kurang memadai atau karena
asumsi yang kurang tepat.
A B C
A1 100 C1
A2 200 C2
A3 300 C3
A4 200 C4
Contoh Dekomposisi Tidak Aman
Tabel AB Tabel BC
A B B C
A1 100 100 C1
A2 200 200 C2
A3 300 300 C3
A4 200 200 C4
Contoh Dekomposisi Tidak Aman
Jika kedua tabel tersebut digabungkan kembali, maka hasilnya
adalah:
A B C
A1 100 C1
A2 200 C2
A2 200 C4
A3 300 C3
A4 200 C2
A4 200 C4
Hasil ini tentu berbeda dengan tabel awal sehingga disebut Lossy-
Join Decomposition atau Lossy-Decomposition.
Contoh Dekomposisi Aman
Akan tetapi, jika data pada row 4 yang ada di tabel ABC awal, kita
ganti menjadi:
A B C A B C
A1 100 C1 A1 100 C1
A2 200 C2 A2 200 C2
A3 300 C3 A3 300 C3
A4 200 C4 A4 200 C2
Contoh Dekomposisi Aman
Dengan data tabel ABC demikian, maka kedua KF dapat dibenarkan.
Tabel ABC tersebut didekomposisikan menjadi tabel AB dan BC
sebagai berikut:
Tabel AB Tabel BC
A B B C
A1 100 100 C1
A2 200 200 C2
A3 300 300 C3
A4 200
Tabel Hobbi
nim hobbi
100001 Sepak bola
100001 Melukis
100001 Berenang
100002 Membaca
100004 Musik
100004 menari
Contoh Tabel memiliki Atribut
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:
Jadwal Kuliah
Kodekul NamaKul Dosen Kelas JadwalHari JadwalJam
Normalisasi Tahap Kedua
• 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
Normalisasi Tahap Kedua
• Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:
nim Nama_mhs Alamat_mhs Kode_kul Nama_kul Sks Indeks_nilai
• Tidak memenuhi 2NF, karena {nim, kode_kul} yang dianggap sebagai primary key
sedangkan:
{nim, kode_kul} nama_mhs
{nim, kode_kul} alamat_mhs
{nim, kode_kul} nama_kul
{nim, kode_kul} sks
{nim, kode_kul} indeks_nilai
Tabel di atas perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF
Normalisasi Tahap Kedua
Functional dependencynya sbb:
•{nim, kode_kul} indeks_nilai (fd1)
•nim {nama_mhs, alamat_mhs} (fd2)
•kode_kul {nama_kul, sks} (fd3)