NORMALISASI
Definisi Normalisasi Normalisasi adalah suatu teknik yang menstrukturkan/ memecah/ mendekomposisi data dalam cara-cara tertentu untuk mencegah timbulnya permasalahan pengolahan data dalam basis data Permasalahan yang dimaksud adalah berkaitan dengan penyimpangan² (Anomallies) yang terjadi akibat adanya kerangkapan data dalam relasi dan inefisiensi pengolahan
Normalisasi Basis Data (1) Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan. 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.
Normalisasi Basis Data (2) Mengapa dilakukan normalisasi ? Optimalisasi struktur-struktur tabel Meningkatkan kecepatan Menghilangkan pemasukan data yang sama Lebih efisien dalam penggunaan media penyimpanan Mengurangi redundansi Menghindari anomali (insertion anomalies, deletion anomalies, update anomalies). Integritas data yang ditingkatkan
Normalisasi Basis Data (3) Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb: Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (Lossless-Join Decomposition). Artinya, setelah tabel tersebut diuraikan / didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut bisa menghasilkan tabel semula dengan sama persis. Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation). Tidak melanggar Boyce-Code Normal Form (BCNF) Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form / 3NF).
Normalisasi Proses Normalisasi menghasilkan relasi yang optimal, yaitu: Memiliki struktur record yang konsisten secara logik Memiliki struktur record yang mudah untuk dimengerti Memiliki struktur record yang sederhana dalam pemeliharaan Memiliki struktur record yang mudah untuk ditampilkan kembali untuk memenuhi kebutuhan pemakai Minimalisasi kerangkapan data guna meningkatkan kinerja sistem
Normalisasi Suatu relasi dikatakan berada dalam bentuk normal level tertentu jika memenuhi kondisi-kondisi tertentu. Beberapa level yang biasa digunakan pada normalisasi: - Bentuk normal pertama / First Norm Form (INF) - Bentuk normal kedua / Second Norm Form (2NF) - Bentuk normal ketiga / Third Norm Form(3NF) - Bentuk normal Boyce-Codd (BCNF) - Bentuk normal keempat / Forth Norm Form (4NF) - Bentuk normal kelima / Fifth Norm Form (5NF)
1st Normal Form ( 1NF ) Bentuk normal tahap pertama (1NF) terpenuhi jika: Sebuah tabel tidak memiliki Atribut Bernilai Banyak (Multivalued Attribute) atau lebih dari satu atribut dengan domain nilai yang sama
1st Normal Form ( 1NF ) Kriteria Normalisasi tahap Pertama (1NF): Jika seluruh atribut dalam relasi bernilai atomik Jika seluruh atribut dalam relasu bernilai tunggal Jika relasi tidak memuat set atribut berulang Jika semua record mempunyai sejumlah atribut yang sama
BENTUK NORMAL PERTAMA (First Normal Form - 1NF) Tidak diperboleh adanya : Atribut yang bernilai banyak (Multivalued attribut). Attribut komposit atau kombinasi dari keduanya. Jadi : Harga domain atribut harus merupakan harga atomik
Contoh (1) Misal Data Mahasiswa sbb : Atau Tabel-tabel di atas tidak memenuhi syarat 1NF
Contoh (2)
1st Normal Form ( 1NF ) Permasalahan dalam 1NF : Tidak dapat menyisipkan informasi parsial Terhapusnya informasi ketika menghapus sebuah record Pembaharuan atribut non kunci mengakibatkan sejumlah record harus diperbaharui
2nd Normal Form ( 2NF ) Relasi disebut 2NF bila: Memenuhi kriteria 1 NF Semua atribut non kunci FD pada PK Permasalahan dalam 2 NF: Kerangkapan data Data inconsistency Proses pembaharuan tidak efisien Penyimpangan pada saat penyisipan, penghapusan dan pembaharuan
BENTUK NORMAL KEDUA (Second Normal Form - 2NF) (1) Bentuk normal 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) Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan
Contoh (1) Tabel berikut ini memenuhi 1NF, tetapi tidak termasuk 2NF
Contoh (2) Tidak memenuhi 2NF, karena {NIM, KodeMk} yang dianggap sebagai primary key sedangkan: {NIM, KodeMk} NamaMhs {NIM, KodeMk} Alamat {NIM, KodeMk} Matakuliah {NIM, KodeMk} Sks {NIM, KodeMk} NilaiHuruf Tabel tersebut perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF
Contoh (3) Functional dependencynya sbb: Sehingga : {NIM, KodeMk} NilaiHuruf (fd1) NIM {NamaMhs, Alamat} (fd2) KodeMk {Matakuliah, Sks} (fd3) Sehingga : fd1 (NIM, KodeMk, NilaiHuruf) Tabel Nilai fd2 (NIM, NamaMhs, Alamat) Tabel Mahasiswa fd3 (KodeMk, Matakuliah, Sks) Tabel MataKuliah
3rd Normal Form ( 3NF ) Suatu relasi disebut memenuhi 3NF jika: Memenuhi kriteria 2NF Setiap atribut non kunci tidak TDF (non Transitive Dependency) terhadap PK Permasalahan dalam 3NF adalah keberadaan penentu yang tidak merupakan bagian dari PK menghasilkan duplikasi rinci data pada atribut yang berfungsi sebagai FK
3rd Normal Form ( 3NF ) Cara mengubah 2 NF menjadi 3 NF: Identifikasikan TDF relasi 2NF Dekomposisi relasi 2NF menjadi relasi-relasi baru sesuai TDF. Bila menggunakan diagram, maka simpul-simpul yang berada pada puncak diagram ketergantungan data bertindak sebagai PK pada relasi baru Misal: Relasi R dengan sifat Sbb: a. R = (A,B,C) dengan PK = A b. FD : R.B R.C Maka R perlu di dekomposisi menjadi a. R1 = (B,C) b. R2 = (A,B), FK : B references R1
Contoh (1) Tabel mahasiswa berikut ini memenuhi syarat 2NF, tetapi tidak memenuhi 3NF Karena masih terdapat atribut non primary key (yakni Kota dan Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni KodePos) : KodePos {Kota, Provinsi}
Contoh (2) Sehingga tabel tersebut perlu didekomposisi menjadi : Mahasiswa (NIM, NamaMhs, Jalan, KodePos) KodePos (KodePos, Provinsi, Kota)
Latihan Berikut ini contoh basis data yang belum ternormalisasi : Masalah : Tidak perlu berulang-ulang kali menyimpan data alamat, nama barang, dan harga. Redundancy dapat menimbulkan masalah, yaitu data yang tidak konsisten (pensile)
NIP Nama Jabatan Keahlian Lama Kerja 107 Ilham Analis Senior Cobol 6 Oracle 1 109 Ryan Analis Junior 2 C++ 120 Fika Programmer Dbase 3 Sybase
NIP Keahlian Lama Kerja 107 Cobol 6 Oracle 1 109 2 C++ 120 Dbase 3 Sybase NIP Nama Jabatan 107 Ilham Analis Senior 109 Ryan Analis Junior 120 Fika Programmer