Anda di halaman 1dari 31

Bab 6

Normalisasi Data
Kelas TI 2A
STMIK WIDYA DHARMA PONTIANAK

OLEH : HENDRO S.KOM., M.M., M.TI


Pendahuluan
Dalam merancang basis data, kita dapat melakukank dengan:
1. Langsung membuat model entity-relationship
2. Menerapkan normalisasi terhadap struktur tabel yang telah
diketahui

Dalam pendekatan Normalisasi, perancang basis data (database


designer) bertitik tolak dari situasi yang nyata. Ia telah memiliki
item-item data yang siap ditempatkan dalam baris dan kolom pada
tabel-tabel relasional.
Normalisasi
Normalisasi adalah proses pembentukan struktur basis data
sehingga sebagian besar ambiguity bisa dihilangkan.
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.
Tabel Universal (Universal / Star Table)
“Sebuah tabel yang merangkum semua kelompok data yang saling
berhubungan, bukan merupakan tabel yang baik”

Contoh: table faktur saat melakukan suatu peninjauan langsung ke


lapangan
Contoh Tabel Universal
Tabel Universal (Star Table)
Nim Nama_mhs Alamat_mhs Tgl_lahir Kode_k Nama_kul Sks Semes Indeks Waktu Tempat Nama_dos Alamat_dos
ul ter _nilai
100001 Ali Akbar Jln. Tanpur … 1 Jan 1992 IF-110 Struktur Data 3 1 A Senin, 08:00 – 09:40 dan Ruang A Dr. Umar Hakim Cibaduyut Kidul No
Kamis, 11:00 – 11.50 57, Bandung 40239
100001 Ali Akbar Jln. Tanpur … 1 Jan 1992 IF-310 Basis Data 4 3 Selasa, 10:00 – 11:40 dan Ruang B Dr. Umar Hakim Cibaduyut Kidul No
Jumat, 08:00 – 09.40 57, Bandung 40239
100001 Ali Akbar Jln. Tanpur … 1 Jan 1992 KU-234 Bahasa 2 2 B Rabu, 09:00 – 10:40 Ruang A Dewi Sundari, MA Jl. Antapani NO 14,
Indonesia Bandung 40291
100002 Budi Jln. Gama… 6 Okt 1992 IF-310 Basis Data 4 3 Selasa, 10:00 – 11:40 dan Ruang B Dr. Umar Hakim Cibaduyut Kidul No
Haryanto Jumat, 08:00 – 09.40 57, Bandung 40239
100002 Budi Jln. Gama… 6 Okt 1992 MA-115 Matematika I 3 1 C Rabu, 13:00-14:40 dan Ruang C Ir. Taufik Ismail Kanayakan Baru No
Haryanto Jumat, 14:00 – 14:50 135, Bandung 40135
100004 Hasanudin Jln. Merdeka… 2 Jun 1992 IF-310 Basis Data 4 3 Selasa, 10:00 – 11:40 dan Ruang B Dr. Umar Hakim Cibaduyut Kidul No
Jumat, 08:00 – 09.40 57, Bandung 40239
100004 Hasanudin Jln. Merdeka… 2 Jun 1992 IF-110 Struktur Data 3 1 B Senin, 08:00 – 09:40 dan Ruang A Dr. Umar Hakim Cibaduyut Kidul No
Kamis, 11:00 – 11.50 57, Bandung 40239
Ketergantungan Fungsional
Sebuah tabel T berisi paling sedikit 2 buah atribut, yaitu A dan B.
Kita menyatakan notasi berikut ini:

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

Dengan adanya dua buah KF itu mendorong kita untuk


mendekomposisi tabel ABC tersebut menjadi dua buah tabel, yaitu:
Tabel AB dan tabel 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 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

Dengan data tabel ABC demikian, maka kedua KF dapat dibenarkan.


Tabel ABC tersebut didekomposisikan menjadi tabel AB dan BC
sebagai berikut:
Dependency Preservation
• Dependency Preservation (Pemeliharaan Ketergantungan)
merupakan kriteria kedua yang harus dicapai untuk
mendapatkan table dan basis data yang baik.
• Ketika kita melakukan perubahan data, maka harus bisa dijamin
agar perubahan tersebut tidak menghasilkan inkonsisten data
yang mengakibatkan KF yang sudah benar menjadi tidak
terpenuhi.
Normalisasi Tahap Pertama
• 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)
Contoh Tabel memiliki Atribut Bernilai
Merupakan attribut
Banyak bernilai banyak

nim nama_mhs alamat_mhs tgl_Lahir hobbi


100001 Agustinus Jl. Setia Budi 91, Bandung 40135 2 Januari 1992 Sepak bola
Melukis
Berenang
100002 Budiono Jl. Gajahmada 32, Cimahi 40533 5 Oktober 1991 Membaca
100003 Indah Jl. Tanpur 55, Pontianak 71123 15 Mei 1992
100004 Hansen Jl. Diponegoro 21, Solo 32123 21 Juli 1992 Musik
Menari

Tabel di atas tidak memenuhi syarat 1NF


Normalisasi Tahap Pertama
Dekomposisi Menjadi
Tabel Mahasiswa
nim nama_mhs alamat_mhs tgl_Lahir
100001 Agustinus Jl. Setia Budi 91, Bandung 40135 2 Januari 1992
100002 Budiono Jl. Gajahmada 32, Cimahi 40533 5 Oktober 1991
100003 Indah Jl. Tanpur 55, Pontianak 71123 15 Mei 1992
100004 Hansen Jl. Diponegoro 21, Solo 32123 21 Juli 1992

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)

•fd1 (nim, kode_kul, indeks_nilai)  Tabel Nilai


•fd2 (nim, nama_mhs, alamat_mhs)  Tabel Mahasiswa
•fd3 (kode_kul, nama_kul, sks)  Tabel MataKuliah
Normalisasi Tahap Ketiga
• Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF,
dan jika tidak ada atribut non primary key yang memiliki
ketergantungan terhadap atribut non primary key yang lainnya.
• Untuk setiap Functional Dependency dengan notasi X  A,
maka:
• X harus menjadi superkey pada tabel tsb.
• Atau A merupakan bagian dari primary key pada tabel tsb.
Contoh
Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:
Mahasiswa
nim Nama_mhs Alamat_jalan Nama_kota Kode_pos

• karena masih terdapat atribut non primary key (yakni alamat_jalan


dan nama_kota) yang menentukan atribut non primary key yang lain
(yakni kodepos):
alamat_jalan nama_kota  kode_pos
Sehingga table tersebut perlu didekomposisi menjadi:
Mahasiswa (nim, nama_mhs, alamat_jalan,nama_kota)
Alamat (alamat_jalan, nama_kota, kode_pos)
Boyce-Code Normal Form (BCNF)
• Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap
functional dependency terhadap setiap atribut atau gabungan
atribut dalam bentuk: X  Y maka X adalah super key
• tabel tersebut harus di-dekomposisi berdasarkan functional
dependency yang ada, sehingga X menjadi super key dari tabel-
tabel hasil dekomposisi
• Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF
belum tentu termasuk BCNF. Perbedaannya, untuk functional
dependency X  A, BCNF tidak membolehkan A sebagai bagian
dari primary key.
Bentuk Normal Tahap Keempat (4th Normal Form)
dan Bentuk Normal Tahap Kelima (5th Normal
Form)
Penerapan aturan normalisasi sampai dengan tahap ketiga
sesungguhnya sudah sangat memadai untuk menghasilkan table-
table yang berkualitas baik.
• Bentuk Normal tahap keempat berkaitan dengan sifat
Ketergantungan Banyak Nilai (Multivalued Dependency) pada
suatu table yang merupakan pengembangan dari ketergantungan
fungsional.
• Bentuk Normal tahap kelima berkenaan dengan ketergantungan
relasi antartabel (Join Dependency)

Anda mungkin juga menyukai