Normalisasi Basis Data Normalisasi adalah proses pembentukan relasi
Normalisasi Basis Data
�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. Normalisasi
�Tahap Normalisasi dimulai dari tahap paling ringan (1 NF) hingga paling ketat (5 NF) �Biasanya hanya sampai pada tingkat 3 NF atau BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik.
Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar Bentuk Normal tahap ketiga (3 rd Normal Form / 3 NF). 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. 2. 3. 4. 5. 6. Bentuk Normal Tahap Pertama (1 st Normal Form / 1 NF) Bentuk Normal Tahap Kedua (2 nd Normal Form / 2 NF) Bentuk Normal Tahap (3 rd Normal Form / 3 NF) Boyce-Code Normal Form (BCNF) Bentuk Normal Tahap (4 th Normal Form / 4 NF) Bentuk Normal Tahap (5 th Normal Form / 5 NF) Bentuk-bentuk Normal
�Bentuk normal 1 NF terpenuhi jika sebuah tabel tidak memiliki atribut bernilai banyak (multivalued attribute), atribut composite atau kombinasinya dalam domain data yang sama. �Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi) Bentuk Normal Tahap Pertama (1 st Normal Form / 1 NF)
Contoh 1 Misal data mahasiswa sbb: Atau: Tabel-tabel di atas tidak memenuhi syarat 1 NF
Contoh 1 Didekomposisi menjadi: Ø Tabel Mahasiswa Ø Tabel Hobi
Contoh 2 (composite) Jadwal. Kuliah Kodekul Nama. Kul Dosen Kelas Jadwal Dimana nilai pada atribut jadwal berisi gabungan antara Hari dan Jam. Ø Jika asumsi hari dan jam memegang peranan penting dalam sistem basis data, maka atribut Jadwal perlu dipisah sehingga menjadi Jadwal. Hari dan Jadwal. Jam sbb: Ø Jadwal. Kuliah Kodekul Nama. Kul Dosen Kelas Jadwal. Hari Jadwal. Jam
�Bentuk normal 2 NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1 NF �Sebuah tabel tidak memenuhi 2 NF, jika ada atribut yang ketergantungannya (Functional Dependency) hanya tergantung pada sebagian dari primary key �Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan Bentuk Normal Tahap Kedua (2 nd Normal Form)
Contoh Tabel berikut memenuhi 1 NF tapi tidak termasuk 2 NF: Mhs_nrp Ø mhs_nama mhs_alamat mk_nama mk_sks nihuruf Tidak memenuhi 2 NF, karena {Mhs_nrp, mk_kode} yang dianggap sebagai primary key sedangkan: {Mhs_nrp, mk_kode} {Mhs_nrp, mk_kode} Ø mk_kode mhs_nama mhs_alamat mk_nama mk_sks nihuruf Tabel di atas perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2 NF
Functional dependencynya sbb: {Mhs_nrp, mk_kode} nihuruf Mhs_nrp {mhs_nama, mhs_alamat} Mk_kode {mk_nama, mk_sks} fd 1 fd 2 fd 3 (fd 1) (fd 2) (fd 3) (mhs_nrp, mk_kode, nihuruf) Tabel Nilai (Mhs_nrp, mhs_nama, mhs_alamat) Tabel Mahasiswa (mk_kode, mk_nama, mk_sks) Tabel Mata. Kuliah Contoh
�Bentuk normal 3 NF terpenuhi jika telah memenuhi bentuk 2 NF, dan jika tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya. Bentuk Normal Tahap Ketiga (3 rd Normal Form /3 NF)
Contoh Tabel berikut memenuhi 2 NF, tapi tidak memenuhi 3 NF: Mahasiswa Nrp Nama Alm_Jalan Alm_Kota Alm_Provinsi Alm_Kodepos Ø karena masih terdapat atribut non primary key (yakni alm_kota dan alm_Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni alm_kodepos): alm_kodepos {alm_Provinsi, alm_kota} Ø Sehingga tabel tersebut perlu didekomposisi menjadi: Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos) Kodepos (alm_kodepos, alm_provinsi, alm_kota)
latihan Normalisasikan tabel tersebut!!
- Slides: 17