Anda di halaman 1dari 39

Normalisasi Basis Data

Karena adanya struktur database yang


kurang bagus
 Data yang sama tersimpan di beberapa tempat
(file atau record)
 Ketidakmampuan untuk menghasilkan informasi
tertentu
 Terjadi kehilangan informasi
 Terjadi adanya redundansi (pengulangan) atau
duplikasi data sehingga memboroskan ruang
penyimpanan dan menyulitkan saat proses
updating data
 Adanya NULL VALUE

Pentingnya Normalisasi
Tujuan normalisasi adalah
menyempurnakan struktur table menjadi
lebih baik
Bentuk normalisasi yang sering digunakan
adalah 1st NF, 2nd NF, 3rd NF, dan BCNF

Tujuan Normalisasi
Untuk melakukan normalisasi, harus bisa
menentukan terlebih dahulu Functional
Dependency (FD) atau Ketergantungan
Fungsional, khususnya dalam melakukan
dekomposisi rancangan database.
Functional Dependency (FD) dapat disimbolkan
dengan:
A  B : artinya B memiliki ketergantungan dengan
A
Berarti A secara fungsional menentukan B atau B
secara fungsional tergantung pada A.

FUNCTIONAL DEPENDENCY (FD)


Contoh:

Functional Dependency:
 NRP  Nama
 Mata_Kuliah, NRP  Nilai
Non Functional Dependency:
 Mata_Kuliah  NRP
 NRP  Nilai

FUNCTIONAL DEPENDENCY (FD)


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.
Jika kriteria ketiga (BCNF) tidak dapat
terpenuhi, maka paling tidak tabel tersebut
tidak melanggar Bentuk Normal tahap
ketiga (3rd Normal Form / 3NF).

Normalisasi
Tabel Universal (Universal / Star Table) 
sebuah tabel yang merangkum semua
kelompok data yang saling berhubungan,
bukan merupakan tabel yang baik.

Misalnya:

Tabel Universal
Tabel Universal
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)

Bentuk-bentuk Normal
Bentuk normal 1NF terpenuhi jika sebuah
tabel tidak memiliki atribut bernilai banyak
(multivalued attribute), atribut composite.
Setiap atribut dalam tabel tersebut harus
bernilai atomic (tidak dapat dibagi-bagi
lagi)

Bentuk Normal Tahap Pertama


(1st Normal Form / 1NF)
Aturan :
 Tidak adanya atribut multi-value,
atribut komposit atau kombinasinya.
 Mendefinisikan atribut kunci.
 Setiap atribut dalam tabel tersebut harus
bernilai atomic (tidak dapat dibagi-bagi
lagi)

Normal Pertama (1st Normal


Form)
Contoh 1
Misal data mahasiswa sbb:

Atau:

Tabel-tabel di atas tidak memenuhi syarat 1NF


Contoh 1
Didekomposisi menjadi:
 Tabel Mahasiswa

 Tabel Hobi
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
Bentuk normal 2NF terpenuhi dalam
sebuah tabel jika telah memenuhi bentuk
1NF
Sebuah tabel tidak memenuhi 2NF, jika
ada atribut yang ketergantungannya
(Functional Dependency) hanya
tergantung pada sebagian dari primary
key
Jika terdapat atribut yang tidak memiliki
ketergantungan terhadap primary key,
maka atribut tersebut harus dipindah atau
dihilangkan

Bentuk Normal Tahap Kedua


(2nd Normal Form)
Normalisasi Kedua (2nd Normal
Form)
 Aturan :
 Sudah memenuhi dalam bentuk normal
kesatu (1NF)
 Semua atribut bukan kunci hanya boleh tergantung
(functional dependency) pada atribut kunci
 Jika ada ketergantungan parsial maka atribut
tersebut harus dipisah pada tabel yang lain
 Perlu ada tabel penghubung ataupun kehadiran
foreign key bagi atribut-atribut yang telah dipisah
tadi
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
Functional
{Mhs_nrp,dependencynya sbb:
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

Contoh
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.

Bentuk Normal Tahap Ketiga


(3rd Normal Form /3NF)
 Aturan :
 Sudah berada dalam bentuk normal
kedua (2NF)
 Tidak ada ketergantungan transitif
(dimana atribut bukan kunci
tergantung
pada atribut bukan kunci lainnya).

Normalisasi Ketiga (3rd Normal


Form)
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
Mahasiswa perlu
(Nrp, didekomposisi
nama, alm_jalan,menjadi:
alm_kodepos)
Kodepos (alm_kodepos, alm_provinsi,
alm_kota)
 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.

Boyce-Codd Normal Form


(BCNF)
Bentuk normal 4NF terpenuhi dalam
sebuah tabel jika telah memenuhi bentuk
BCNF, dan tabel tersebut tidak boleh
memiliki lebih dari sebuah multivalued
atribute
Untuk setiap multivalued dependencies
(MVD) juga harus merupakan functional
dependencies

Bentuk Normal Tahap


Keempat (4th Normal Form
/4NF)
Contoh
Misal, tabel berikut tidak memenuhi 4NF:

Setiap employee dapat bekerja di lebih dari project dan dapat


memiliki lebih dari satu skill. Untuk kasus seperti ini tabel
tersebut harus di-dekomposisi menjadi:
(Employee, Project)
(Employee, Skill)
Bentuk normal 5NF terpenuhi jika tidak dapat
memiliki sebuah lossless decomposition
menjadi tabel-tabel yg 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
Bentuk Normal Tahap
Keempat (5th Normal Form
/5NF)
latihan

Normalisasikan tabel
tersebut!!
1. Tabel tersebut tidak memenuhi 1NF, karena
ada atribut multivalue (hobbi) maka harus
didekomposisi menjadi
Atau jika kita lihat recordnya
seperti ini!
Dari tabel siswa dan hobby yang
di hasilkan apakah tabel tersebut
sudah bisa dikatakan normal?
Mengapa?
Pada tabel siswa ketergantungan
pada primari key nya bersifat
sebagian, muncul asumsi bahwa
nis dan kode_mk adalah primary
key...maka tebel siswa TIDAK
memenuhi 2NF, maka tabel siswa
di dekomposisi menjadi
Query diatas untuk
menampilkan siswa
yang suka memasak

Hasil Queri diatas


Query diatas untuk menampilkan siswa dan nilai nya
Latihan Normalisasi
Soal Latihan(2)
NIM 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 normal pertama


• Bagaimana bentuk normalisasi tabel tersebut?
Pembahasan (2)
• Tabel soal latihan 2 sudah memenuhi normalisasi pertama
• Bentuk normalisasi kedua dari tabel tersebut adalah
Relasi: Mahasiswa1 Relasi: Mahasiswa2
NIM Nama NIM MataKuliah
5103100101 Ali 5103100101 Basis data
5103100102 Sita
5103100101 Basis data
5103100103 Adi
5103100101 RPL
Relasi: Mahasiswa3 5103100102 AI
NIM NIP Dosen
510310010 320001123 Ir. X
1
510310010 320001123 Ir. Y
2
510310010 320011133 Ir. Y
Pembahasan (2)
• Bentuk normalisasi ketiga dari tabel tersebut adalah

Relasi: Mahasiswa1 Relasi: Mahasiswa2

NIM Nama KodeMatkul KodeMatkul MataKuliah


5103100101 Ali MT01 MT01 Basis data
5103100102 Sita MT02 MT02 RPL
5103100102 Sita MT02 AI
Mt03
5103100103 Adi MT03

NIP Dosen
320001123 Ir. X
Relasi: Mahasiswa3
320011133 Ir. Y

320021010 Ir. Z

Anda mungkin juga menyukai