2. Normalisasi
• Normalisasi merupakan sebuah teknik
dalam logical desain sebuah basis data
yang mengelompokkan atribut dari suatu
relasi sehingga membentuk struktur relasirelasi sehingga membentuk struktur relasi
yang baik (tanpa redudansi).
• Normalisasi adalah proses pembentukan
struktur basis data untuk mendapatkan
tabel normal.
3. Tujuan Normalisasi
• Untuk menghilang kerangkapan data• Untuk menghilang kerangkapan data
• Untuk mengurangi kompleksitas
• Untuk mempermudah pemodifikasian data
4. Proses Normalisasi
• Data diuraikan dalam bentuk tabel,
selanjutnya dianalisis berdasarkan
persyaratan tertentu ke beberapa tingkat.
• Apabila tabel yang diuji belum memenuhi• Apabila tabel yang diuji belum memenuhi
persyaratan tertentu, maka tabel tersebut
perlu dipecah menjadi beberapa tabel
yang lebih sederhana sampai memenuhi
bentuk yang optimal.
5. Tahapan Normalisasi
• Tahap Normalisasi dimulai dari tahap
paling ringan (1NF) hingga paling ketat
(5NF)
• Biasanya hanya sampai pada tingkat 3NF• Biasanya hanya sampai pada tingkat 3NF
atau BCNF karena sudah cukup memadai
untuk menghasilkan tabel-tabel yang
berkualitas baik.
• Urutan: 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
6.
7. Kriteria 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,diuraikan / didekomposisi menjadi tabel-tabel baru,
maka tabel-tabel baru tersebut bisa menghasilkan
tabel semula dengan sama persis.
2. Terpeliharanya ketergantungan fungsional pada saat
perubahan data (Dependency Preservation).
3. Tidak melanggar aturan BCNF (Boyce-Codd Normal
Form ) (-akan dijelaskan kemudian-)
8. Jika kriteria ketiga (BCNF) tidak dapat
terpenuhi, maka paling tidak tabel tersebut
tidak melanggar Bentuk Normal tahap
ketiga (3rd Normal Form / 3NF).
9.
10. Tabel Universal
Tabel Universal merupakan tabel yang tidak
normal karena terdiri dari semua kelompok
data yang saling berhubungan
Misalnya:Misalnya:
No-Mhs Nm-Mhs Jurusan Kd-MK Nama-MK Kd-Dosen Nm_Dosen Nilai
2683 Welli MI MI350 Manajemen Basis Data B104 Ati A
MI465 Analisis Prc. Sistem B317 Dita B
5432 Bakri AK MI350 Manajemen Basis Data B104 Ati C
AKN201 Akuntansi Keuangan D310 Lia B
MKT300 Dasar Pemasaran B212 Lola A
11. Functional Dependency
(Ketergantungan Fungsi)
• Notasi: A B
A dan B adalah atribut/kolom dari sebuah tabel.
Berarti secara fungsional A menentukan B atau
B tergantung pada A, jika dan hanya jika ada 2B 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.
12. Contoh Ketergantungan Fungsi
Nrp namaMhs
Untuk setiap NRP yg sama, NamaMhs harus
sama. Artinya NRP menentukan namaMhs dan
NamaMhs tergantung kepada NRP.
13. {Namakul, nrp} NiHuruf
Kolom Nihuruf tergantung pada
Namakul dan NRP secara bersama-Namakul dan NRP secara bersama-
sama. Artinya untuk Namakul dan NRP
yang sama, maka NiHuruf juga sama,
karena Namakul dan NRP merupakan
key (bersifat unik).
14. Jika tabel Nilai terdiri dari kolom sbb:
NILAI (NIM, Nm-mk, Semester, Nilai)
Maka Primary key adalah :
NIM, Nm-mk, Semester
dan
Ketergantungan Fungsinya adalah :
NIM, Nm-mk, Semester -> Nilai
artinya atribut Nilai tergantung kepada
NIM,MN_mk,Semester.
15. 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 /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)
16. Normalisasi Pertama (1st NF)
Aturan :
Tidak adanya atribut multi-value, atribut
komposit atau kombinasinya.komposit atau kombinasinya.
Mendefinisikan atribut kunci.
Setiap atribut dalam tabel tersebut harus
bernilai atomic (tidak dapat dibagi-bagi
lagi)
17. Contoh Tabel Dgn Atribut Multi-Value
Contoh: Data mahasiswa sbb:
Atau:
Tabel-tabel di atas tidak memenuhi syarat 1NF
18. Uraikan Tabel Dgn Aturan 1NF
Atribut hoby adalah multi value dan tidak
atomic.
Tabel Mahasiswa
Tabel Hobi
19. Contoh Tabel Dgn Atribut Komposit
Jadwal Kuliah
Kodekul NamaKul Dosen Kelas Jadwal
Jadwal adalah atribut komposit karena terdiri
dari atribut Hari dan Jam.dari atribut Hari dan Jam.
Agar menjadi Tabel Normal maka atribut Jadwal
harus diuraikan menjadi JadwalHari dan
JadwalJam sbb:
Jadwal Kuliah
Kodekul NamaKul Dosen Kelas JadwalHari JadwalJam
20. Normalisasi Kedua (2nd NF)
Aturan :
Sudah memenuhi bentuk normal pertama (1NF)
Tidak boleh memiliki lebih dari satu kunci (PK)
Hanya boleh tergantung pada atribut kunci (PK)
Jika ada ketergantungan parsial maka atributJika ada ketergantungan parsial maka atribut
tersebut harus dipisah pada tabel yang lain
Perlu ada tabel penghubung atau foreign key
bagi atribut-atribut yang telah dipisah tadi
21. Contoh Tabel memenuhi 1NF tapi tidak termasuk
2NF:
Tidak memenuhi 2NF, karena :
Terdiri dari 2 kunci PK yaitu atributTerdiri dari 2 kunci PK yaitu atribut
Mhs_nrp dan mk_kode adalah primary
key.
Ketergantungan parsial : mk_kode dan
Mhs_nrp dengan Nihuruf
22. Ketergantungan Fungsi dalam Tabel sbb:
{Mhs_nrp, mk_kode} nihuruf (fd1)
Mhs_nrp {mhs_nama, mhs_alamat} (fd2)
Mk_kode {mk_nama, mk_sks} (fd3)
Tabel yang terbentuk adalah :Tabel yang terbentuk adalah :
1. Tabel Nilai (mhs_nrp, mk_kode, nihuruf)
2. Tabel Mahasiswa (Mhs_nrp, mhs_nama,
mhs_alamat)
3. Tabel Mata Kuliah (mk_kode, mk_nama,
mk_sks)
23. Normalisasi Ketiga (3rd NF)
Aturan :
Tabel Sudah dalam bentuk normal
kedua (2NF)kedua (2NF)
Tidak ada ketergantungan transitif
(dimana atribut bukan kunci tergantung
pada atribut bukan kunci lainnya).
24. Contoh Tabel memenuhi 2NF, tapi tidak
memenuhi 3NF:
Mahasiswa
Atribut bukan kunci PK yakni alm_kota dan
alm_Provinsi) memiliki ketergantungan terhadap
atribut bukan kunci PK yang lain yakni
alm_kodepos.
alm_kodepos {alm_Provinsi, alm_kota}
25. Tabel-tabel yang memenuhi kriteria normalisasi
HasilHasil dekomposisidekomposisi TabelTabel adalahadalah::
Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos)
Kodepos (alm_kodepos, alm_provinsi, alm_kota)
Tabel-tabel yang memenuhi kriteria normalisasi
ketiga, sudah siap diimplementasikan.
Sebenarnya masih ada lagi bentuk normalisasi
yang lain; Normalisasi Boyce-Codd, 4NF, 5NF,
hanya saja jarang dipakai. Pada kebanyakan
kasus, normalisasi hanya sampai ketiga.
26. Boyce-Codd 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 menjadifunctional 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.
27. Bentuk Normal Keempat (4NF)
• Bentuk normal 4NF terpenuhi dalam
sebuah tabel jika telah memenuhi bentuk
BCNF, dan tabel tersebut tidak boleh
memiliki lebih dari sebuah multivaluedmemiliki lebih dari sebuah multivalued
atribute
• Untuk setiap multivalued dependencies
juga harus merupakan functional
dependencies
28. Contoh tabel tidak memenuhi 4NF:
Setiap employee dapat bekerja di lebih dari projectSetiap 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)
29. Bentuk Normal Ke-5 (5NF)
• Bentuk normal 5NF terpenuhi jika tidak
kehilangan sebuah tabel (lossless
decomposition) dari tabel-tabel yang telah
didekomposisi menjadi tabel yang lebih kecil.
• Jika 4 bentuk normal (1NF – 4NF) dibentuk
berdasarkan functional dependency, maka 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. Studi Kasus Normalisasi Data
Untuk mendapatkan hasil yang paling normal, maka
proses normalisasi dimulai dari normal pertama.
Kolom tabel di atas yang merupakan group berulang
: NoPegawai,NamaPegawai,Golongan,BesarGaji.
31. Normalisasi pertama
• Cari apakah ada atribut multi value dan
komposit. Tidak ada.
• Apakah setiap atribut/kolom dalam tabel• Apakah setiap atribut/kolom dalam tabel
bernilai atomic (tidak dapat dibagi-bagi
lagi). Ya.
• Kesimpulan. Tabel memenuhi aturan 1NF
32. Normalisasi Kedua
• Ada lebih dari satu kunci yaitu NoProyek dan
NoPegawai.
• Ada ketergantungan parsial yang dinyatakan
oleh relasi antata NoProyek dengan NoPegawai.
• Kesimpulan : Tabel belum normal
34. Setiap pegawai bekerja pada proyek maka ada
hubungan antara tabel proyek dan Tabel Pegawai.
Hubugan atau relasi membentuk sebuah tabel
yang berisi atribut kunci dari kedua tabel. Atribut
tambahan bisa ada mis : Jabatan, Bonus, dll
TABEL PROYEKPEGAWAI
35. Normalisasi Ketiga
Pada Tabel Pegawai masih ada atribut bukan kunci
tetapi tergantung kepada atribut lain yang bukan
kunci yaitu : BesarGaji tergantung kepada Golongan.
Solusi :Solusi :
Uraikan tabel Pegawai menjadi tabel Pegawai dan
Tabel Golongan sbb:
1. Tabel Pegawai (NoPegawai, NamaPegawai,
Golongan)
2. Tabel Gologan (Golongan, BesarGaji)
38. Bentuk 1st NF
• Tidak ada atribut multi value dan atribut
komposit.
• Setiap atribut merupakan atribut atomic
• Kesimpulan : Tabel Normal
39. Bentuk 2rd NF
• Ada 3 buah kunci PK yaitu No_Mhs,
Kd_mk, dan Kd_Dosen.
• Ada atribut Ketergantungan pasial yaitu
Nilai tergantung secara pasila kepada
No_mhs dan Kd_mkNo_mhs dan Kd_mk
• Kesimpulan : Tabel belum Normal
Solusi :
• Uraikan Tabel dimana tiap tabel memiliki
satu kunci PK
41. • Tabel Dosen dan Tabel Mata Kuliah
memiliki hubungan dimana satu dosen
dapat mengajar satu atau lebih mata
kuliah. Tabel relasi ini disebut Tabel Kuliah
yang terdiri dari atribut kunci dari kedua
tabel dan atribut tambah mis: Jam, Ruang,
dlldll
42. Bentuk 3rd NF
• Dari tabel yang diuraikan pada tahap
2rd NF tidak ada lagi atribut yang
bukan kunci tergantung kepada atribut
yang bukan kunci.yang bukan kunci.
• Kesimpulan : Tabel sudah normal