Normalisasi
Pengertian “Proses pengelompokkan elemen data menjadi tabel-tabel yang menunjukkan entity dan relasinya” “proses pengelompokkan atribut-atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (jumlah kerangkapan datanya sedikit, memberikan kemungkinan user melakukan INSERT, DELETE dan MODIFY terhadap baris-baris data dan tidak terjadi inkonsisitensi data)”
Contoh: Tabel Kursus : Kodemurid kodePelajaran Biaya 12013 NP-200 100 12007 NP-400 150 12045 200 12077 12044 NP-500 300 12011 250 Ketentuan: 1. Setiap siswa hanya boleh mengambil satu pelajaran. 2. Setiap pelajaran mempunyai uang kursus yang standar tidak tergantung pada siswa yang mengambil pelajaran tersebut.
Dari tabel kursus diperoleh: Akan ditemukan redudansi pada datanya, dimana biaya kursus selalu berulang pada setiap siswa. Besar terjadi error atau inkonsistensi data, bila dilakukan update pada data tersebut akan terjadi anomali.
Anomali Merupakan penyimpangan-penyimpangan atau error atau inkonsistensi data yang terjadi pada saat tabel dilakukan insert, delete atau update. Anomali ada 3 macam: Insertion Anomali: error terjadi akubat operasi insert record/tupel pada tabel. Contoh: ada pelajaran baru misal NP-700 yang diajarkan. Mata pelajaran tersebut tidak dapat di insert ke tabel sampai ada siswa mengambil pelajaran tersebut.
Hasil Insertion Tabel Kodemurid kodePelajaran Biaya 12013 NP-200 100 12007 NP-400 150 12045 200 12077 12044 NP-500 300 12011 250 12080 NP-700
2. Delettion Anomali: error akibat operasi delete record/tupel pada tabel. Contoh: siswa 12-044 memutuskan batal ikut kursus NP-500 karena murid satu-satunya pada pelajaran itu. Bila record dihapus maka akan berakibat hilangnya informasi bahwa NP-500 biayanya 300.
Hasil Delete Tabel Kodemurid kodePelajaran Biaya 12013 NP-200 100 12007 NP-400 150 12045 200 12077 12011 250 12080 NP-700
3. Update anomali: error akibat operasi update record/tupel pada tabel kursus. Contoh: biaya kursus untuk pelajaran NP-200 dinaikkan menjadi 175 maka harus beberapa kali dilakukan update terhadap record-record/tupel-tupel yang mengambil mata pelajaran tersebut agar tetap konsisten. Bagaimana jika recordnya ratusan ?
Hasil Update Tabel Kodemurid kodePelajaran Biaya 12013 NP-200 175 12007 NP-400 150 12045 200 12077 100 12011 250
Tahap dalam Normalisasi Normal Pertama (1 Normal Form) Aturan: -Mendefinisikan atribut kunci -Tidak ada atribut mempunyai nilai berulang -Tidak mempunyai baris rangkap/sertiap kolom hanya mempunyai nilai tunggal -Semua atribut bukan kunci tergantung pada atribut kunci
Hasil Update Tabel 1. Tabel Siswa : 2. Tabel Pelajaran: Kodemurid Nama 12013 Samsul 12007 Momok 12045 Gangnam 12077 Tejo 12011 Suwani 12080 Nunung kodePelajaran Biaya NP-200 175 NP-400 150 250 2. Tabel Detail Kursus: Kodemurid kodePelajaran Biaya 12013 NP-200 175 12007 NP-400 150 12045 12077 12011
Tabel-tabel di atas sudah dalam bentuk Normal, tidak usah dilanjutkan ke bentuk normal kedua.
2. Normal Kedua (2 Normal Form) Aturan: Sudah memenuhi bentuk normal pertama Tidak ada ketergantungan parsial (dimana seluruh field hanya tergantung pada sebagian field kunci)
Contoh: Nama Awal Nama Akhir Progdi Jenjang Totok Lemabang SI S1 Wawan Atribut jenjang dikatakan tergantung fungsional terhadap atribut Progdi dengan konsekuensi bahwa Progdi SI da TI hanya untuk mahasiswa S1 dan MI untuk mahasiswa D3 Nama Awal Nama Akhir Progdi Jenjang Totok Lemabang SI S1 Wawan TI Yuyuk Sekip Joko Pakjo MI D3 Plaju
Penjelasan Tabel di atas memiliki composite key yaitu nama_awal dan nama_akhir dan atribut jenjang tergantung fungsional pada composite key tersebut. Jika jenjang tergantung pada nama_awal atau nama_akhir akan ada nilai sama. Tetapi jika tergantung keduanya (nama_awal dan nama_akhir) maka nilainya unik. Untuk itu ditambahkan atribut NPM pada tabel sehingga tabel hanya mempunyai atribut tunggal(non-composite key).
Hasil Normal ke Dua NPM Nama Awal Nama Akhir Progdi Jenjang 12024002 Totok Lemabang SI S1 12015013 Wawan TI 12024038 Yuyuk Sekip 12014019 Joko Pakjo MI D3 12024065 Plaju