normalisasi basis data · normalisasi normalisasiadalah proses pembentukan relasi basis data...

25
Normalisasi Basis Data Normalisasi Basis Data

Upload: others

Post on 18-Jan-2021

22 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

Normalisasi Basis Data Normalisasi Basis Data

Page 2: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

NormalisasiNormalisasi

Normalisasi adalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan.

Bentu normal adalah aturan-aturan yang harus dipenuhi oleh relasi-relasi dalam basis data.

Page 3: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

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.

Page 4: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

NormalisasiNormalisasi

Jika kriteria ketiga (BCNF) tidak dapatterpenuhi, maka paling tidak tabel tersebuttidak melanggar Bentuk Normal tahapketiga (3rd Normal Form / 3NF).

Page 5: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

Tabel UniversalTabel Universal

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

Misalnya:

Page 6: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

Tabel UniversalTabel Universal

Page 7: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

BentukBentuk--bentuk Normalbentuk 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)

Page 8: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

Bentuk Normal Tahap Pertama Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)(1st Normal Form / 1NF)

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)

Page 9: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

Contoh 1Contoh 1Misal data mahasiswa sbb:

AtauAtau::

TabelTabel--tabel di atas tidak memenuhi syarat 1NFtabel di atas tidak memenuhi syarat 1NF

Page 10: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

Contoh 1Contoh 1Didekomposisi menjadi: Tabel MahasiswaTabel Mahasiswa

Tabel HobiTabel Hobi

Page 11: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

Contoh 2 (composite)Contoh 2 (composite)JadwalKuliah

KodekulKodekul NamaKulNamaKul DosenDosen KelasKelas JadwalJadwal

KodekulKodekul NamaKulNamaKul DosenDosen KelasKelas JadwalHariJadwalHari JadwalJamJadwalJam

Dimana nilai pada atribut jadwal berisi gabungan antara Dimana nilai pada atribut jadwal berisi gabungan antara Hari dan Jam.Hari dan Jam.

Jika asumsi hari dan jam memegang peranan penting Jika asumsi hari dan jam memegang peranan penting dalam sistem basis data, maka atribut Jadwal perlu dalam sistem basis data, maka atribut Jadwal perlu dipisah sehingga menjadi JadwalHari dan JadwalJam dipisah sehingga menjadi JadwalHari dan JadwalJam sbb:sbb:

JadwalKuliahJadwalKuliah

Page 12: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

Bentuk Normal Tahap Kedua Bentuk Normal Tahap Kedua (2nd Normal Form)(2nd Normal Form)

Bentuk normal 2NF terpenuhi dalamsebuah tabel jika telah memenuhi bentuk1NF

Sebuah tabel tidak memenuhi 2NF, jikaada atribut yang ketergantungannya(Functional Dependency) hanyatergantung pada sebagian dari primary key

Jika terdapat atribut yang tidak memilikiketergantungan terhadap primary key, maka atribut tersebut harus dipindah ataudihilangkan

Page 13: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

ContohContohTabel berikut memenuhi 1NF tapi tidak termasuk 2NF:

Mhs_nrpMhs_nrp mhs_namamhs_nama mhs_alamatmhs_alamat mk_kodemk_kode mk_namamk_nama mk_sksmk_sks nihurufnihuruf

Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang Tidak 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 Tabel di atas perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF yang memenuhi syarat 2NF

Page 14: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

ContohContoh

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 Nilaifd2 (Mhs_nrp, mhs_nama, mhs_alamat) Tabel Mahasiswafd3 (mk_kode, mk_nama, mk_sks) Tabel MataKuliah

Page 15: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

Bentuk Normal Tahap Ketiga Bentuk Normal Tahap Ketiga (3rd Normal Form /3NF) (3rd Normal Form /3NF)

Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF, dan jika tidak adaatribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya.

Page 16: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

ContohContohTabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:

NrpNrp NamaNama Alm_JalanAlm_Jalan Alm_KotaAlm_Kota Alm_ProvinsiAlm_Provinsi Alm_KodeposAlm_Kodepos

Mahasiswa

karena masih terdapat atribut karena masih terdapat atribut non primary key non primary key (yakni (yakni alm_kota alm_kota dan dan alm_Provinsialm_Provinsi) yang memiliki ketergantungan terhadap atribut ) yang memiliki ketergantungan terhadap atribut non non primary key primary key yang lain (yakni yang 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)

Page 17: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

Normalisasikan tabel Normalisasikan tabel tersebut!!tersebut!!

latihanlatihan

Page 18: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

1. Tabel tersebut tidak memenuhi 1NF, karena 1. Tabel tersebut tidak memenuhi 1NF, karena ada atribut multivalue (hobbi) maka harus ada atribut multivalue (hobbi) maka harus didekomposisi menjadididekomposisi menjadi

Page 19: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

Atau jika kita lihat recordnya Atau jika kita lihat recordnya seperti ini!seperti ini!

Page 20: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

Dari tabel siswa dan hobby yang Dari tabel siswa dan hobby yang di hasilkan apakah tabel tersebut di hasilkan apakah tabel tersebut sudah bisa dikatakan normal?sudah bisa dikatakan normal?Mengapa?Mengapa?

Page 21: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

Pada tabel siswa ketergantungan Pada tabel siswa ketergantungan pada primari key nya bersifat pada primari key nya bersifat sebagian, muncul asumsi bahwa sebagian, muncul asumsi bahwa nis dan kode_mk adalah primary nis dan kode_mk adalah primary key...maka tebel siswa TIDAK key...maka tebel siswa TIDAK memenuhi 2NF, maka tabel siswa memenuhi 2NF, maka tabel siswa di dekomposisi menjadidi dekomposisi menjadi

Page 22: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal
Page 23: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal
Page 24: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

Query diatas untuk Query diatas untuk menampilkan siswa menampilkan siswa yang suka memasakyang suka memasak

Hasil Queri diatasHasil Queri diatas

Page 25: Normalisasi Basis Data · Normalisasi Normalisasiadalah proses pembentukan relasi basis data kedalam bentuk normal, sehingga sebagian besar ambiguity bisa dihilangkan. Bentu normal

Query diatas untuk menampilkan siswa dan nilai nyaQuery diatas untuk menampilkan siswa dan nilai nya