Contoh Normalisasi Data (AbNormal, NF1, NF2, NF3)


Contoh soal :
Sebuah Universitas XYZ mempunyai mahasiswa yang bisa bebas mengambil mata kuliahnya sendiri. Setiap mahasiswa mempunyai dosen pembimbing dimana setiap dosen berhak untuk membimbing lebih dari satu mahasiswa. Peranan Dosen didalam kasus ini hanya sebatas pembimbing dari setiap Mahasiswa. Kemudian setiap matakuliah mempunyai kode matakuliah dimana kode itu merepresentasikan nama dari matakuliah yang diambil oleh mahasiswa. Dibawah ini telah disertakan data mentah yang didapat dari bagian Akademik Universitas XYZ. Analisa lah kasus soal ini, dan transformasikan ke dalam bentuk normalisasi yang memungkinkan.




Unnormalized Form :                                                                                                  
Tabel Raw/Mentah yang disediakan di soal memerlukan suatu analisa dikarenakan tabel yang ada di soal mempunyai suatu keanehan. Perhatikan pada kolom Database (D331), Alogaritma (A431), Office (O323), Struktur Data (S345), dan Manajemen Bisnis (MB71). Setiap nama kolom yang sudah disebutkan memiliki kode tersendiri yang bisa merepresentasikan nama dari mata kuliah. Dengan begitu kita bisa mengumpulkan kode mata kuliah menjadi satu kolom baru yang bisa diberi nama Kode_Matkul. Kemudian nama dari mata kuliah juga bisa dibuat menjadi satu kolom baru yang diberi nama Nama_Matkul. Hasil dari penambahan kolom-kolom baru bisa dilihat di bawah ini:





1 Normal Form (NF) :                                                                                                        
Sebuah tabel bisa dikategorikan sebagai tabel 1NF jika di setiap baris record hanya memiliki 1 value. Hasil transformasi dari Unnormalized Form ke 1NF bisa di lihat dibawah ini :
      




2 Normal Form (2NF) :                                                                                                         
Sebuah tabel bisa dikategorikan sebagai tabel 2NF jika tabel sudah dalam keadaan 1NF dan setiap kolom didalam tabel itu functional dependency kepada semua key (Full Dependency), bukan hanya kepada salah satu key (Partial Dependency). Berarti kita harus menentukan terlebih dahulu key yang ada di dalam tabel. Dari tabel diatas kita bisa menentukan bahwa ada dua candidat key yang tersedia dalam tabel diatas, yaitu ID_Mahasiswa + Kode_Matkul, dan ID_Mahasiswa + Nama_Matkul. Setelah dipilih dari kedua candidate key, maka yang paling efisien untuk menjadi Primary Key adalah ID_Mahasiswa + Kode_Matkul. 
                                                                                 
Kemudian tentukan Functional Dependency yang ada didalam tabel.                     

Full Dependency

ID_Mahasiswa + Kode_Matkul  

Nama_Matkul


Nilai_Matkul




Partial Dependency
ID_Mahasiswa
Nama_Mahasiswa


Alamat_Mahasiswa


ID_Dosen


Nama_Dosen


Status_Dosen




Partial Dependency

Kode_Matkul

Nama_Matkul




Transitive Dependency

ID_Dosen

Nama_Dosen


Status_Dosen




                                                                                                                                                                                                                                                                                                                                                                       

setelah mendapatkan semua Functional Dependency di dalam tabel, maka untuk mengubah tabel 1NF menjadi 2NF kita harus memindahkan kolom yang bergantung hanya kepada salah satu dari key (Partial Dependency) ke dalam tabel baru.


3 Normal Form (3NF) :                                                                                                        
Sebuah tabel bisa dikategorikan sebagai tabel 3NF jika tabel sudah dalam 2NF dan setiap kolom yang bukan key harus functional dependency dengan primary key nya. Kita bisa melihat didalam Tabel Nilai dan Tabel Matkul sudah memenuhi persyaratan 3NF. Tetapi didalam Tabel Mahasiswa terdapat kolom yang bergantung bukan kepada key nya (Transitive Dependency) yaitu Nama_Dosen dan Status_Dosen. Ini menunjukan bahwa Tabel Mahasiswa belum memenuhi persyaratan menjadi 3NF. Nama_Dosen dan Status_Dosen itu functional dependency kepada ID_Dosen yang kita ketahui bahwa ID_Dosen itu bukanlah sebuah primary key. Maka untuk membuat Tabel Nilai kedalam bentuk 3NF, kita harus menempatkan kolom yang functional dependency bukan kepada key nya (Transitive Dependency) kedalam tabel yang baru. Berikut tabel yang sudah menjadi 3NF.




Komentar

  1. kita juga punya nih jurnal mengenai normalisasi data, silahkan dikunjungi dan dibaca , berikut linknya
    http://repository.gunadarma.ac.id/bitstream/123456789/5392/1/PPT%20WEW.pdf
    semoga bermanfaat yaa :)

    BalasHapus
  2. Di terngkan lebih luas lagi bisa???

    BalasHapus

Posting Komentar

Postingan Populer