Materi Kuliah Basis Data Normalisasi Oleh: Harnan Malik Abdullah, ST., MSc. Program Pendidikan Vokasi Universitas Brawijaya April 2017
Tabel Unnormalized
Normalisasi Teknik/pendekatan yang digunakan dalam membangun disain lojik database relasional melalui organisasi himpunan data dengan tingkat ketergantungan fungsional dan keterkaitan yang tinggi sedemikian sehingga menghasilkan struktur tabel yang normal. Tujuan : Minimalisasi redundansi (pengulangan data) Memudahkan identifikasi entitas Mencegah terjadinya anomali
Anomali Proses pada basis data yangg memberikan efek samping yang tidak diharapkan. Jenis anomali Update anomali Insert anomali Delete anomali
Update anomali PEMASOK KOTA BARANG JUMLAH Kartika Jakarta Monitor GGG Error yang terjadi sebagai akibat inkonsistensi data yang terjadi sebagai akibat dari operasi update record/tuple dari sebuah relation PEMASOK KOTA BARANG JUMLAH Kartika Jakarta Monitor GGG 10 Citra Bandung Zip-drive 4 Candra Keyboard 5 Mouse CCP 25 Pemasok Citra Pindah ke kota Bogor, maka setelah dilakukan perubahan data : PEMASOK KOTA BARANG JUMLAH Kartika Jakarta Monitor GGG 10 Citra Bogor Zip-drive 4 Candra Keyboard 5 Bandung Mouse CCP 25
Insert Anomali NO_SISWA NAMA_KURSUS BIAYA 10 b. Inggris 60.000 Error yang terjadi sebagai akibat operasi insert record/tuple pada sebuah relation NO_SISWA NAMA_KURSUS BIAYA 10 b. Inggris 60.000 b. Prancis 80.000 b. Mandarin 15 20 b. Jepang 65.000 Jika akan dibuka kursus baru, misalnya bahasa Arab dengan biaya 70.000, tetapi Belum ada seorangpun yang mengambil kursus ini. Akibatnya data kursus baru ini tidak Dapat dicatat.
Contoh Anomali Contoh delete anomali ketika ingin menghapus kursus Bahasa Inggris NO_SISWA NAMA_KURSUS BIAYA 10 b. Inggris 60.000 b. Prancis 80.000 b. Mandarin 15 20 b. Jepang 65.000
Beberapa konsep terkait normalisasi Multivalued Atributes (ataupun Repeating Multigroup) Functional Dependency (FD) / Ketergantungan Fungsional (KF) Partial Dependency / Ketergantungan Sebagian Transitive Dependency / Ketergantungan Transitif
Multivalued Atribute Tabel : Sales Tabel : HobiMahasiswa
Repeating MultiGroup repeated Tabel : Buku Tabel : HobiMahasiswa
Functional Dependency (FD) atau Ketergantungan Fungsional (KF) Suatu atribut Y mempunyai ketergantungan fungsional terhadap atribut X jika dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y X → Y Yang berarti X secara fungsional menentukan Y atau Y secara fungsional tergantung pada X
Contoh Ketergantungan Fungsional (KF) NIM namaMhs {Namakul, NIM} NiHuruf Namakul namaMhs
Partial Dependency / Ketergantungan Parsial (sebagian) Partial Dependency – Atribut selain atribut kunci (key) tergantung dari sebagian namun bukan keseluruhan dari atribut composite primary key. Mhs_NIM mhs_nama mk_kode mk_nama mk_sks nihuruf Mhs_NIM mhs_nama {Mhs_NIM, mk_kode} niHuruf mk_kode mk_nama
Transitive Dependency / Ketergantungan Bertingkat (Transitif) Transitive Dependency – Ketika atribut bukan kunci (non-key attribute) menentukan atribut lain yang juga bukan kunci Transitive Dependency
Normal Form (NF) / Bentuk Normal Unnormalized – Terdapat multivalued attributes ataupun repeating groups 1 NF – Tidak terdapat multivalued attributes ataupun repeating groups. 2 NF – memenuhi 1 NF dan tidak ada ketergantungan parsial (partial dependency) 3 NF – memenuhi 2 NF dan juga tidak ada ketergantungan transitif (transitive dependency)
First Normal Form (1NF) Tabel : Sales non-atomic Unnormalized Not 1NF
Contoh First Normal Form (1NF) Unnormalized Not 1NF repeated Tabel : Buku 1NF
Contoh Second Normal Form (2NF) Workshop Works1 Memenuhi 1NF Terdapat ketergantungan parsial Works2
Contoh Third Normal Form (3NF) – bag 1 Transitive Dependency Memenuhi 2NF Terdapat ketergantungan transitif
Contoh Third Normal Form (3NF) – bag 2