Download - Normalisasi
NORMALISASISherly Christina, S.Kom., M.Kom
Pendahuluan
Perancangan basis data diperlukan agar:a. Basis data kompak dan efisien dalam penggunaan
ruang penyimpananb. Akses Cepat dan mudah dimanipulasi
Caranya:1. Normalisasi terhadap struktur tabel-tabel2. Membuat model Entity-Relationship
Definisi Normalisasi
1. Proses memperbaiki / membangun dengan model data relasional.
2. Proses pengelompokan data ke dalam bentuk tabel atau relasi untuk menyatakan entitas dan hubungan mereka sehingga terbentuk database yang mudah untuk dimodifikasi.
Definisi Normalisasi
3. Proses untuk mengidentifikasi kelompok atribut “tabel” yang memiliki ketergantungan yang sangat tinggi antara satu atribut dengan atribut lainnya.
4. Proses pengelompokan atribut-atribut dari suatu relasi sehingga membentukWELL STRUCTURED RELATION.
Istilah-Istilah
Atribut TabelKeyDomainKetergantungan Fungsional
Atribut Tabel
Identik dengan istilah kolom data. Contoh atribut pada Basis Data Akademik:
Tabel Mahasiswa : nim, nama_mhs, alamat_mhs, tgl_lahir
Tabel Dosen: nama_dos, alamat_dos Tabel Kuliah: nama_kul, nama_kul, sks, semester Tabel Nilai: nama_kul, nim, nama_mhs, indeks_nilai Tabel Jadual: nama_kul, tempat, waktu, nama_dos
Atribut Tabel
Penamaannya unik, berdasarkan fungsinya pada setiap tabel.
Pengelompokkan atribut: Key & Atribut Deskritif Atribut Sederhana & Atribut Komposit Atribut Bernilai tunggal & Atribut bernilai banyak Atribut Harus Bernilai/Mandatory & Null Atribut Turunan
Key & Atribut Deskriptif
Key : satu atau gabungan dari beberapa atribut yang dapat membedakan semua baris data (row) dalam tabel secara unik.
3 macam key: Superkey Candidate Key Key Primer (Primary Key)
Key & Atribut Deskriptif
Superkey: satu atau lebih atribut (kumpulan atribut) yang dapat membedakan setiap baris data dalam sebuah tabel secara unik.
Mungkin terdapat lebih dari 1 kumpulan atribut yang dapat menjadi superkey.
Key & Atribut Deskriptif
Contoh Superkey tabel mahasiswa: (nim, nama_mhs, alamat_mhs, tgl_lahir) (nim, nama_mhs, alamat_mhs) (nim,nama_mhs) (nama_mhs) jika bisa dijamin tidak ada nama
mahasiswa yang mirip (nim)
Key & Atribut Deskriptif
Candidate-Key : kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah tabel secara unik.
Pada satu tabel mungkin ada lebih dari 1 candidate key.
Contoh candidate key tabel mahasiswa: (nim) (nama_mhs) jika dijamin tidak ada nilai yang sama utk
kolom nama_mhs
Key & Atribut Deskriptif
Salah satu candidate-key dapat menjadi key primer (primary key).
Dengan syarat:Key tersebut sering dijadikan acuanKey tersebut ringkasJaminan keunikan lebih baik
Primary key dari tabel Mahasiswa:(nim)
Key & Atribut Deskriptif
Atribut Deskriptif: atribut-atribut yang tidak menjadi anggota primary key
Atribut deskriptif tabel mahasiswa:nama_mhs, alamat_mhs, tgl_lahir
Domain
Domain: menekankan pada batas-batas nilai yang diperbolehkan bagi suatu atribut dengan mempertimbangkan kenyataan yang ada
Contoh: pada tabel kuliah:Atribut sks tipe datanya integersks = 0; sks=-1; sks=100 invalid
KETERGANTUNGAN FUNGSIONAL(FUNCTIONAL DEPENDENCY)
Menggambarkan relationship/hubungan antara atribut-atribut dengan relasi.
Sebagai contoh: Jika A dan B adalah atribut-atribut dari relasi R. B dikatakan functionally dependent (bergantung fungsional) terhadap A.
Contoh (FUNCTIONAL DEPENDENCY)
Tabel Nilai
Functional Dependency dari tabel nilai
Nrp namaMhsKarena untuk setiap nilai nrp yang sama, nilai namaMhs juga sama.
{Namakul, nrp} NiHurufKarena atribut Nihuruf tergantung pada Namakul dan nrp secara bersama-sama. Dalam arti lain untuk Namakul dan nrp yang sama, maka NiHuruf juga sama, karena Namakul dan nrp merupakan key (bersifat unik).
NamaKul nrp Nrp NiHuruf
Kriteria Normalisasi
Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria berikut:
1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (Lossless-Join Decomposition). setelah tabel tersebut didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut tetap dapat menghasilkan tabel semula dengan sama persis.
Kriteria Normalisasi
2. Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation).
3. Tidak melanggar Boyce-Code Normal Form (BCNF)
Kriteria Normalisasi
Jika kriteria BCNF tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form/3NF).
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 / 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 (1st Normal Form / 1NF)
1NF terpenuhi jika sebuah tabel tidak memilikiatribut bernilai banyak (multivalued attribute), atribut composite atau kombinasinya dalamdomain data yang sama.
Setiap atribut dalam tabel tersebut harus bernilai atomic(tidak dapat dibagi-bagi lagi)
Contoh untuk 1NF
Tabel mahasiswa berikut.
Atau
Tidak memenuhi syarat 1NF
Contoh untuk 1NF
Di-dekomposisi menjadi Tabel Mahasiswa
Tabel Hobi
Contoh 2 (composite) 1NF
JadwalKuliah
Bila nilai data 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 JadwalHari dan JadwalJam sbb:
Bentuk Normal Tahap Kedua(2nd Normal Form)
2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh memiliki Functional Dependency pada primary key
Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya (Functional Dependency) hanya bersifat parsial saja (hanya tergantung pada sebagian dari primary key)
Bentuk Normal Tahap Kedua(2nd Normal Form)
Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan
Contoh 2NF
Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:
Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang dianggap sebagai primary key sedangkan: {Mhs_nrp, mk_kode} mhs_nama {Mhs_nrp, mk_kode} mhs_alamat {Mhs_nrp, mk_kode} mk_nama {Mhs_nrp, mk_kode} mk_sks {Mhs_nrp, mk_kode} nihuruf
Tabel di atas perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF
Contoh 2NF
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 Nilai fd2 (Mhs_nrp, mhs_nama, mhs_alamat) Tabel
Mahasiswa Fd3 (mk_kode, mk_nama, mk_sks) Tabel
MataKuliah
Bentuk Normal Tahap Ketiga (3rd Normal Form /3NF)
Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF, dan jika tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya.
Bentuk Normal Tahap Ketiga (3rd Normal Form /3NF)
Untuk setiap Functional Dependency dengan notasi X A, maka: X harus menjadi superkey pada tabel tersebut. Atau A merupakan bagian dari primary key pada
tabel tersebut.
Contoh untuk 3NF
Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF: Mahasiswa
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)
Boyce-Code Normal Form (BCNF)
BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional dependency terhadap setiap atribut atau gabungan atribut dalam bentuk:X Y maka X adalah superkey
Tabel tersebut harus di-dekomposisi berdasarkan functional dependency yang ada, sehingga X menjadi superkey dari tabel-tabel hasil dekomposisi
Boyce-Code Normal Form (BCNF)
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.
Bentuk Normal Tahap Keempat (4th Normal Form /4NF)
Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued atribute
Untuk setiap multivalued dependencies (MVD) juga harus merupakan functional dependencies
Contoh untuk 4NF
Misal, tabel berikut tidak memenuhi 4NF:
Setiap employee dapat bekerja dilebih dari project dan dapat memiliki lebih dari satu skill.Untuk kasus seperti ini tabel tersebut harus di-dekomposisi menjadi: (Employee, Project)(Employee, Skill)
Bentuk Normal Tahap Keempat (5th Normal Form /5NF)
Jika 4 bentuk normal sebelumnya dibentuk berdasarkan functional dependency, 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
Terima Kasih