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

Post on 18-Jan-2021

22 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Normalisasi Basis Data Normalisasi Basis Data

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.

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.

NormalisasiNormalisasi

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

Tabel UniversalTabel Universal

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

Misalnya:

Tabel UniversalTabel Universal

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)

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)

Contoh 1Contoh 1Misal data mahasiswa sbb:

AtauAtau::

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

Contoh 1Contoh 1Didekomposisi menjadi: Tabel MahasiswaTabel Mahasiswa

Tabel HobiTabel Hobi

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

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

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

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

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.

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)

Normalisasikan tabel Normalisasikan tabel tersebut!!tersebut!!

latihanlatihan

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

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

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?

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

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

Hasil Queri diatasHasil Queri diatas

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

top related