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:
NRP Nama
Mata_Kuliah, NRP Nilai
Non Functional Dependency:
Mata_Kuliah NRP
NRP Nilai
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)
Atau:
Tabel Hobi
Contoh 2 (composite)
JadwalKuliah
Kodekul NamaKul Dosen Kelas Jadwal
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.
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
NIP Dosen
320001123 Ir. X
Relasi: Mahasiswa3
320011133 Ir. Y
320021010 Ir. Z