Anda di halaman 1dari 40

Normalisasi

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

Jika kriteria ketiga (BCNF) tidak dapat


terpenuhi, maka paling tidak tabel tersebut tidak
melanggar Bentuk Normal tahap ketiga (3rd
Normal Form / 3NF).

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)

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)

11
Contoh 1 (multi value atribut*) Misal data mahasiswa sbb:
NRP Nama Hobi

12020001 Heri Susanto Sepakbola, Membaca Komik, Berenang

12020013 Siti Zulaiha Memasak, membuat program komputer

12020018 Heri Susanto Membuat program Komputer

12020015 Dini Susanti Menjahit, Membuat Roti

NRP Nama Hobi1 Hobi2 Hobi3


12020001 Heri Sepakbola Membaca Komik Berenang
Susanto
Atau:
12020013 Siti Zulaiha Memasak Membuat Program
Komputer
12020018 Heri Membuat Program
Susanto Komputer
12020015 Dini Menjahit Membuat Roti
Susanti
Tabel-tabel di atas tidak memenuhi syarat 1NF
12
Tabel yang memenuhi 1NF
NRP Nama Hobi
12020001 Heri Susanto Sepakbola
12020001 Heri Susanto Membaca Komik
12020001 Heri Susanto Berenang
12020013 Siti Zulaiha Memasak
12020013 Siti Zulaiha Membuat program Komputer
12020018 Heri Susanto Membuat Program Komputer
12020015 Dini Susanti Menjahit
12020015 Dini Susanti Membuat Roti

13
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

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

 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
16
Contoh
Functional dependencynya sbb:
{Mhs_nrp, mk_kode}  nihuruf
(fd1)
Mhs_nrp  {mhs_nama, mhs_alamat}
(fd2)
Mk_kode  {mk_nama, mk_sks}
(fd3)
fd1 (mhs_nrp, mk_kode, nihuruf)  Tabel Nilai
fd2 (Mhs_nrp, mhs_nama, mhs_alamat)  Tabel
Mahasiswa
fd3 (mk_kode, mk_nama, mk_sks)  Tabel
MataKuliah

17
Bentuk Normal Tahap 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.

18
Contoh Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:
No Pesanan No Urut Kode item Nama item

5001 001 P1 Pensil

5001 002 P2 Buku Tulis

5002 001 P1 Pensil

5003 001 P2 Buku Tulis

{No Pesanan, No Urut}  Kode Item


{No Pesanan, No Urut}  Nama item
Kode Item  Nama item (Nama item tergantung pada kode item,
Kode item bukan primary key dari tabel ini)
Nama item bergantung pada No
Dengan kata lain ada atribut bukan
pesanan dan no urut secara tidak
primary key yang bergantung pada
langsung, karena ia bergantung
atribut yang bukan primary key
pada kode item

Solusi: nama item dihilangkan dari tabel di atas dan 19


dibuat tabel sendiri bersamaan dengan kode item
Tabel berikut telah memenuhi 3NF

Tabel Pesanan No Pesanan No Urut Kode item

Primary Key: 5001 001 P1


No Pesanan + No Urut 5001 002 P2

5002 001 P1

5003 001 P2

Kode item Nama item


Tabel Barang
P1 Pensil
Primary Key: Kode item
P2 Buku Tulis

Solusi: nama dihilangkan dari tabel di atas dan dibuat 20


tabel sendiri bersamaan dengan kode item
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 . BCNF merupakan
perbaikan bagi 3NF yang anomali.

Contoh bisa dilihat di:


https://www.dlsweb.rmit.edu.au/toolbox/knowmang/content/normalisation/bcnf.htm

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
TutorKursus (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 (XY)
dan menentukan sejumlah nilai Z (XZ),
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

•Pecah menjadi 3 tabel:


•Deal_dist(Dealer, Distributor)
•Dist_kend(Distributor,Kendaraan) memenuhi 5NF
•Deal_kend(Dealer, kendaraan)
•Jika digabung menjadi satu akan
kembali menjadi tabel diatas

31
Latihan Normalisasi
Soal Latihan (1)
NoOrder TglOrder Item1 Item2 Item3 Total
TR001 10/01/200 P1 P2 P3 500.000
6

TR002 15/02/200 P3 P5 300.000


6

TR003 18/03/200 P1 P2 200.000


6

Bagaimana bentuk normalisasinya?

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

• Apakah sudah memenuhi bentuk normal ?


• Jika sudah, bentuk normal level berapa?
• Apakah tabel masih bisa dinormalisasi ke level atasnya?

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

• Apakah sudah memenuhi bentuk normalisasi?


• Bagaimana bentuk normalisasi tabel tersebut?

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)

Untuk mendapatkan hasil yang paling normal, maka


proses normalisasi dimulai dari normal pertama.
Field-field tabel di atas yang merupakan group berulang :
NoPegawai, NamaPegawai, Golongan, BesarGaji.
40

Anda mungkin juga menyukai