2. NormalisasiNormalisasi
NormalisasiNormalisasi adalah proses pembentukanadalah proses pembentukan
struktur basis data sehingga sebagian besarstruktur basis data sehingga sebagian besar
ambiguityambiguity bisa dihilangkan.bisa dihilangkan.
Tahap Normalisasi dimulai dari tahap palingTahap Normalisasi dimulai dari tahap paling
ringan (1NF) hingga paling ketat (5NF)ringan (1NF) hingga paling ketat (5NF)
Biasanya hanya sampai pada tingkat 3NF atauBiasanya hanya sampai pada tingkat 3NF atau
BCNF karena sudah cukup memadai untukBCNF karena sudah cukup memadai untuk
menghasilkan tabel-tabel yang berkualitas baik.menghasilkan tabel-tabel yang berkualitas baik.
3. NormalisasiNormalisasi
Alasan utama dari normalisasi databaseAlasan utama dari normalisasi database
minimal sampai dengan bentuk normalminimal sampai dengan bentuk normal
ketiga adalah :ketiga adalah :
Insertion anomaliesInsertion anomalies
Deletion anomaliesDeletion anomalies
Update anomaliesUpdate anomalies
4. Normalisasi Basis DataNormalisasi Basis Data
Sebuah tabel dikatakan baik (efisien) atauSebuah tabel dikatakan baik (efisien) atau
normal jika memenuhi 3 kriteria sbb:normal jika memenuhi 3 kriteria sbb:
1.1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinyaJika ada dekomposisi (penguraian) tabel, maka dekomposisinya
harus dijamin aman (harus dijamin aman (Lossless-Join DecompositionLossless-Join Decomposition). Artinya, setelah). Artinya, setelah
tabel tersebut diuraikan / didekomposisi menjadi tabel-tabel baru,tabel tersebut diuraikan / didekomposisi menjadi tabel-tabel baru,
tabel-tabel baru tersebut bisa menghasilkan tabel semula dengantabel-tabel baru tersebut bisa menghasilkan tabel semula dengan
sama persis.sama persis.
2.2. Terpeliharanya ketergantungan fungsional pada saat perubahanTerpeliharanya ketergantungan fungsional pada saat perubahan
data (Dependency Preservation).data (Dependency Preservation).
3.3. Tidak melanggar Boyce-Code Normal Form (BCNF)Tidak melanggar Boyce-Code Normal Form (BCNF)
Jika kriteria ketiga (BCNF) tidak dapatJika kriteria ketiga (BCNF) tidak dapat
terpenuhi, maka paling tidak tabel tersebut tidakterpenuhi, maka paling tidak tabel tersebut tidak
melanggar Bentuk Normal tahap ketiga (3rdmelanggar Bentuk Normal tahap ketiga (3rd
Normal Form / 3NF).Normal Form / 3NF).
5. Functional Dependency (1)Functional Dependency (1)
Functional DependencyFunctional Dependency menggambarkanmenggambarkan
hubunganhubungan attributesattributes dalam sebuah relasidalam sebuah relasi
Suatu attribute dikatakanSuatu attribute dikatakan functionallyfunctionally
dependantdependant pada yang lain jika kitapada yang lain jika kita
menggunakan harga atribut tersebut untukmenggunakan harga atribut tersebut untuk
menentukan harga atribut yang lain.menentukan harga atribut yang lain.
Simbol yang digunakan adalahSimbol yang digunakan adalah untukuntuk
mewakili functional dependency.mewakili functional dependency.
dibaca secara fungsional menentukandibaca secara fungsional menentukan
6. Functional Dependency (2)Functional Dependency (2)
Notasi: ANotasi: A BB
A dan B adalah atribut dari sebuah tabel.A dan B adalah atribut dari sebuah tabel.
Berarti secara fungsional A menentukan BBerarti secara fungsional A menentukan B
atau B tergantung pada A, jika dan hanyaatau B tergantung pada A, jika dan hanya
jika ada 2 baris data dengan nilai A yangjika ada 2 baris data dengan nilai A yang
sama, maka nilai B juga samasama, maka nilai B juga sama
Notasi: ANotasi: A BB atau A xatau A x BB
Adalah kebalikan dari notasi sebelumnya.Adalah kebalikan dari notasi sebelumnya.
8. Functional Dependency (4)Functional Dependency (4)
Functional Dependency dari tabel nilaiFunctional Dependency dari tabel nilai
NIMNIM NamaMhsNamaMhs
Karena untuk setiap nilai nim yang sama, maka nilaiKarena untuk setiap nilai nim yang sama, maka nilai
NamaMhs juga samaNamaMhs juga sama
{Matakuliah, NIM}{Matakuliah, NIM} NilaiHurufNilaiHuruf
Karena attribut NilaiHuruf tergantung pada MatakuliahKarena attribut NilaiHuruf tergantung pada Matakuliah
dan NIM secara bersama-sama. Dalam arti lain untukdan NIM secara bersama-sama. Dalam arti lain untuk
Matakuliah dan NIM yang sama, maka NilaiHuruf jugaMatakuliah dan NIM yang sama, maka NilaiHuruf juga
sama, karena Matakuliah dan NIM merupakan keysama, karena Matakuliah dan NIM merupakan key
(bersifat unik).(bersifat unik).
MatakuliahMatakuliah NIMNIM
NIMNIM NilaiHurufNilaiHuruf
10. Kelemahan tabel universal :Kelemahan tabel universal :
Pengulangan informasiPengulangan informasi
Potensi inkonsistensi data pada operasiPotensi inkonsistensi data pada operasi
pengubahanpengubahan
Tersembunyinya informasi tertentuTersembunyinya informasi tertentu
Tidak normalTidak normal
12. LOSSLESS-JOINLOSSLESS-JOIN
DECOMPOSITIONDECOMPOSITION
Tabel hasilTabel hasil
dekomposisi /dekomposisi /
penguraian haruspenguraian harus
dijamin amandijamin aman
Artinya jika tabel-tabelArtinya jika tabel-tabel
hasil dekomposisihasil dekomposisi
digabung kembali makadigabung kembali maka
dapat menghasilkandapat menghasilkan
tabel awal sebelumtabel awal sebelum
didekomposisididekomposisi
Contoh Lossy-JoinContoh Lossy-Join
AA BB CC
A1A1 100100 C1C1
A2A2 200200 C2C2
A3A3 300300 C3C3
A4A4 200200 C4C4
13. LOSSLESS JOINLOSSLESS JOIN
DECOMPOSITIONDECOMPOSITION
Asumsi 2 KF :Asumsi 2 KF :
AABB
BBCC
KF 2 kurang tepat 2 KF tsbKF 2 kurang tepat 2 KF tsb
mengakibatkan adanya dekomposisi tabelmengakibatkan adanya dekomposisi tabel
ABC menjadi 2 ????ABC menjadi 2 ????
14. DEPENDENCY PRESERVATIONDEPENDENCY PRESERVATION
Ketika kita melakukan perubahan data,Ketika kita melakukan perubahan data,
maka harus bisa dijamin agar perubahanmaka harus bisa dijamin agar perubahan
tersebut tidak menghasilkan inkonsistensitersebut tidak menghasilkan inkonsistensi
data yang mengakibatkan KF yang telahdata yang mengakibatkan KF yang telah
benar menjadi tidak terpenuhibenar menjadi tidak terpenuhi
15. Bagaimana dengan tabel universal ???Bagaimana dengan tabel universal ???
List KF nya :List KF nya :
16. Misal tabel MHS dan tabel nilaiMisal tabel MHS dan tabel nilai
merupakan tabel hasil dekomposisimerupakan tabel hasil dekomposisi
NILAINILAI
(NM_KUL,NIM,NM_MHS,INDEKS_NIL)(NM_KUL,NIM,NM_MHS,INDEKS_NIL)
MHS(NIM,NM_MHS,ALMT_MHS)MHS(NIM,NM_MHS,ALMT_MHS)
17. BCNFBCNF
Suatu tabel dikatakan berada dalamSuatu tabel dikatakan berada dalam
BCNF jika untuk semua KF dengan notasiBCNF jika untuk semua KF dengan notasi
xx y, mk x harus mrp superkey paday, mk x harus mrp superkey pada
tabel tsb, jika tidak mk tabel harustabel tsb, jika tidak mk tabel harus
didekomposisi bdskn KF yg ada shg X mjddidekomposisi bdskn KF yg ada shg X mjd
superkeysuperkey
18. Bagaimana dengan tabel universal ???Bagaimana dengan tabel universal ???
Cek KFnya? Apakah x mrp superkey???Cek KFnya? Apakah x mrp superkey???
19. Bentuk-bentuk NormalBentuk-bentuk Normal
1.1. Bentuk Normal Tahap Pertama (1st NormalBentuk Normal Tahap Pertama (1st Normal
Form / 1NF)Form / 1NF)
2.2. Bentuk Normal Tahap Kedua (2nd NormalBentuk Normal Tahap Kedua (2nd Normal
Form / 2NF)Form / 2NF)
3.3. Bentuk Normal Tahap (3rd Normal Form /Bentuk Normal Tahap (3rd Normal Form /
3NF)3NF)
4.4. Boyce-Code Normal Form (BCNF)Boyce-Code Normal Form (BCNF)
5.5. Bentuk Normal Tahap (4th Normal Form / 4NF)Bentuk Normal Tahap (4th Normal Form / 4NF)
6.6. Bentuk Normal Tahap (5th Normal Form / 5NF)Bentuk Normal Tahap (5th Normal Form / 5NF)
20. Bentuk Normal Tahap PertamaBentuk Normal Tahap Pertama
(1st Normal Form / 1NF)(1st Normal Form / 1NF)
Bentuk normal 1NF terpenuhi jika sebuahBentuk normal 1NF terpenuhi jika sebuah
tabel tidak memiliki atribut bernilai banyaktabel tidak memiliki atribut bernilai banyak
((multivalued attributemultivalued attribute), atribut composite), atribut composite
atau kombinasinya dalam domain dataatau kombinasinya dalam domain data
yang sama.yang sama.
Setiap atribut dalam tabel tersebut harusSetiap atribut dalam tabel tersebut harus
bernilaibernilai atomicatomic (tidak dapat dibagi-bagi(tidak dapat dibagi-bagi
lagi)lagi)
21. Contoh 1Contoh 1
Misal data mahasiswa sbb:Misal data mahasiswa sbb:
Atau:Atau:
Tabel-tabel di atas tidak memenuhi syarat 1NFTabel-tabel di atas tidak memenuhi syarat 1NF
23. Contoh 2 (composite)Contoh 2 (composite)
JadwalKuliahJadwalKuliah
KodekulKodekul NamaKulNamaKul DosenDosen KelasKelas JadwalJadwal
Dimana nilai pada atribut jadwal berisi gabungan antara HariDimana nilai pada atribut jadwal berisi gabungan antara Hari
dan Jam.dan Jam.
Jika asumsi hari dan jam memegang peranan penting dalamJika asumsi hari dan jam memegang peranan penting dalam
sistem basis data, maka atribut Jadwal perlu dipisahsistem basis data, maka atribut Jadwal perlu dipisah
sehingga menjadi JadwalHari dan JadwalJam sbb:sehingga menjadi JadwalHari dan JadwalJam sbb:
JadwalKuliahJadwalKuliah
KodekulKodekul NamaKulNamaKul DoseDose
nn
KelasKelas JadwalHarJadwalHar
ii
JadwalJamJadwalJam
24. Bentuk Normal Tahap KeduaBentuk Normal Tahap Kedua
(2nd Normal Form)(2nd Normal Form)
Bentuk normal 2NF terpenuhi dalam sebuahBentuk normal 2NF terpenuhi dalam sebuah
tabel jika telah memenuhi bentuk 1NF, dantabel jika telah memenuhi bentuk 1NF, dan
semua atribut selain primary key, secara utuhsemua atribut selain primary key, secara utuh
memiliki Functional Dependency pada primarymemiliki Functional Dependency pada primary
keykey
Sebuah tabel tidak memenuhi 2NF, jika adaSebuah tabel tidak memenuhi 2NF, jika ada
atribut yang ketergantungannya (Functionalatribut yang ketergantungannya (Functional
Dependency) hanya bersifat parsial saja (hanyaDependency) hanya bersifat parsial saja (hanya
tergantung pada sebagian dari primary key)tergantung pada sebagian dari primary key)
Jika terdapat atribut yang tidak memilikiJika terdapat atribut yang tidak memiliki
ketergantungan terhadap primary key, makaketergantungan terhadap primary key, maka
atribut tersebut harus dipindah atau dihilangkanatribut tersebut harus dipindah atau dihilangkan
25. ContohContoh
Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:
Mhs_nrMhs_nr
pp
mhs_nammhs_nam
aa
mhs_alammhs_alam
atat
mk_kodemk_kode mk_nammk_nam
aa
mk_skmk_sk
ss
nihurufnihuruf
Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yangTidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang
dianggap sebagai primary key sedangkan:dianggap sebagai primary key sedangkan:
{Mhs_nrp, mk_kode}{Mhs_nrp, mk_kode} mhs_namamhs_nama
{Mhs_nrp, mk_kode}{Mhs_nrp, mk_kode} mhs_alamatmhs_alamat
{Mhs_nrp, mk_kode}{Mhs_nrp, mk_kode} mk_namamk_nama
{Mhs_nrp, mk_kode}{Mhs_nrp, mk_kode} mk_sksmk_sks
{Mhs_nrp, mk_kode}{Mhs_nrp, mk_kode} nihurufnihuruf
Tabel di atas perlu didekomposisi menjadi beberapa tabel yangTabel di atas perlu didekomposisi menjadi beberapa tabel yang
memenuhi syarat 2NFmemenuhi syarat 2NF
27. Bentuk Normal Tahap Ketiga (3rdBentuk Normal Tahap Ketiga (3rd
Normal Form /3NF)Normal Form /3NF)
Bentuk normal 3NF terpenuhi jika telahBentuk normal 3NF terpenuhi jika telah
memenuhi bentuk 2NF, dan jikamemenuhi bentuk 2NF, dan jika tidak adatidak ada
atributatribut non primary keynon primary key yang memilikiyang memiliki
ketergantungan terhadap atributketergantungan terhadap atribut non primary keynon primary key
yang lainnya.yang lainnya.
Untuk setiap Functional Dependency denganUntuk setiap Functional Dependency dengan
notasi Xnotasi X A, maka:A, maka:
• X harus menjadi superkey pada tabel tsb.X harus menjadi superkey pada tabel tsb.
• Atau A merupakan bagian dari primary key pada tabelAtau A merupakan bagian dari primary key pada tabel
tsb.tsb.
28. ContohContoh
Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:
Mahasiswa
NrpNrp NamaNama Alm_JalaAlm_Jala
nn
Alm_KotAlm_Kot
aa
Alm_ProvinAlm_Provin
sisi
Alm_KodepoAlm_Kodepo
ss
karena masih terdapat atributkarena masih terdapat atribut non primary keynon primary key (yakni(yakni alm_kotaalm_kota
dandan alm_Provinsialm_Provinsi) yang memiliki ketergantungan terhadap atribut) yang memiliki ketergantungan terhadap atribut
non primary keynon primary key yang lain (yakniyang lain (yakni alm_kodeposalm_kodepos):):
alm_kodepos {alm_Provinsi, alm_kota}
Sehingga tabel tersebut perlu didekomposisi menjadi:Sehingga tabel tersebut perlu didekomposisi menjadi:Mahasiswa (Nrp, nama, alm_jalan,
alm_kodepos)
Kodepos (alm_kodepos, alm_provinsi,
alm_kota)
29. Boyce-Code Normal FormBoyce-Code Normal Form
(BCNF)(BCNF)
Bentuk BCNF terpenuhi dalam sebuah tabel, jika untukBentuk BCNF terpenuhi dalam sebuah tabel, jika untuk
setiapsetiap functional dependencyfunctional dependency terhadap setiap atributterhadap setiap atribut
atau gabungan atribut dalam bentuk:atau gabungan atribut dalam bentuk: XX Y makaY maka XX
adalahadalah super keysuper key
tabel tersebut harus di-dekomposisi berdasarkantabel tersebut harus di-dekomposisi berdasarkan
functional dependencyfunctional dependency yang ada, sehingga X menjadiyang ada, sehingga X menjadi
super keysuper key dari tabel-tabel hasil dekomposisidari tabel-tabel hasil dekomposisi
Setiap tabel dalam BCNF merupakan 3NF. Akan tetapiSetiap tabel dalam BCNF merupakan 3NF. Akan tetapi
setiap 3NF belum tentu termasuk BCNF .setiap 3NF belum tentu termasuk BCNF .
Perbedaannya, untuk functional dependency XPerbedaannya, untuk functional dependency X A,A,
BCNF tidak membolehkan A sebagai bagian dari primaryBCNF tidak membolehkan A sebagai bagian dari primary
key.key.
30. Bentuk Normal Tahap KeempatBentuk Normal Tahap Keempat
(4th Normal Form /4NF)(4th Normal Form /4NF)
Bentuk normal 4NF terpenuhi dalamBentuk normal 4NF terpenuhi dalam
sebuah tabel jika telah memenuhi bentuksebuah tabel jika telah memenuhi bentuk
BCNF, dan tabel tersebut tidak bolehBCNF, dan tabel tersebut tidak boleh
memiliki lebih dari sebuahmemiliki lebih dari sebuah multivaluedmultivalued
atributeatribute
Untuk setiapUntuk setiap multivalued dependenciesmultivalued dependencies
(MVD) juga harus merupakan(MVD) juga harus merupakan functionalfunctional
dependenciesdependencies
31. ContohContoh
Misal, tabel berikut tidak memenuhi 4NF:Misal, tabel berikut tidak memenuhi 4NF:
Setiap employee dapat bekerja di lebih dari project dan dapatSetiap employee dapat bekerja di lebih dari project dan dapat
memiliki lebih dari satu skill. Untuk kasus seperti ini tabelmemiliki lebih dari satu skill. Untuk kasus seperti ini tabel
tersebut harus di-dekomposisi menjadi:tersebut harus di-dekomposisi menjadi:
(Employee, Project)
(Employee, Skill)
32. Bentuk Normal Tahap KeempatBentuk Normal Tahap Keempat
(5th Normal Form /5NF)(5th Normal Form /5NF)
Bentuk normal 5NF terpenuhi jika tidak dapatBentuk normal 5NF terpenuhi jika tidak dapat
memiliki sebuahmemiliki sebuah lossless decompositionlossless decomposition menjadimenjadi
tabel-tabel yg lebih kecil.tabel-tabel yg lebih kecil.
Jika 4 bentuk normal sebelumnya dibentukJika 4 bentuk normal sebelumnya dibentuk
berdasarkanberdasarkan functional dependencyfunctional dependency, 5NF, 5NF
dibentuk berdasarkan konsepdibentuk berdasarkan konsep join dependencejoin dependence..
Yakni apabila sebuah tabel telah di-dekomposisiYakni apabila sebuah tabel telah di-dekomposisi
menjadi tabel-tabel lebih kecil, harus bisamenjadi tabel-tabel lebih kecil, harus bisa
digabungkan lagi (join) untuk membentuk tabeldigabungkan lagi (join) untuk membentuk tabel
semulasemula