Saturday 19 November 2011

Merancang Database Menggunakan Normalisasi

Database atau basis data memiliki pengertian sederhana sebagai kumpulan tabel. Satu tabel merepresentasikan suatu objek/entitas tertentu. Suatu entitas terdiri dari beberapa atribut. Beberapa entitas memiliki hubungan/relationship yang saling terkait.

Perancangan basis data diperlukan, agar kita bisa memiliki basis data yang kompak dan efisien dalam penggunaan ruang penyimpanan, cepat dalam pengaksesan dan mudah dalam pemanipulasian (tambah, ubah, hapus) data.

Proses Normalisasi adalah proses merancang database yang menggunakan Metode BOTTOM-UP yaitu proses pen-transformasian Database dari sistem klasik yang hanya menggunakan Flat File menjadi RDBMS yang integrative dan sistematis yang meliputi langkah-langkah dekomposisi dari rekord yang kompleks menjadi rekord yang sederhana atau proses reduksi tabel menjadi tabel yang lebih kecil tanpa menghilangkan informasi, dalam arti lain normalisasi merupakan proses pengelompokan data elemen menjadi table-table yang menunjukkan entity dan relasinya.



Pada proses normalisasi selalu diuji pada beberapa kondisi, apakah ada kesulitan pada saat menambah / insert, menghapus / delete, mengubah / update, dan membaca / retrieve pada suatu Database.Bila ada kesulitan pada pengujian tersebut, maka relasi tersebut dipecahkan menjadi beberapa table lagi, sehingga diperoleh database yang optimal.

Proses perancangan database menggunakan normalisasi dimulai dari dokumen dasar yang dipakai dalam sistem sesuai dengan lingkup sistem yang akan dibuat rancangan databasenya. Sebagai contoh adalah sebuah Kartu Rencana Studi (KRS) sebuah perguruan tinggi swasta di Jakarta







1. Bentuk Unnormalisasi

         Langkah pertama dalam merancang sebuah database adalah dengan membentuk contoh data tersebut di atas dengan membentuk unnormalisasi data, dengan cara mencantumkan semua atribut data yang ada apa adanya seperti terlihat berikut ini :



         Pada relasi diatas adalah dengan menuliskan semua data yang ada yang akan direkam, data yang double tidak perlu ditulis. Terlihat baris / record yang tidak lengkap. Sulit dibayangkan bagaimana bentuk baris yang harus dibentuk untuk merekam data itu.

2. Bentuk Normal Pertama (1 NF)

         Suatu tabel dikatakan dalam bentuk normal pertama apabila:
               a. Tidak ada baris data yang duplikat atau berulang dalam tabel.
               b. Setiap sel memiliki nilai tunggal artinya tidak ada perulangan.
               c. Data dalam kolom memiliki tipe data yang sejenis.

         Bentuklah menjadi bentuk normal pertama dengan memisah-misahkan data pada atribut-atribut yang tepat dan bernilai atomik, juga seluruh record / baris harus lengkap adanya. Bentuk relasi adalah flat file. Dengan normal pertama kita dapat membuat satu tabel yang terdiri dari 11 Atribut yaitu à

         (NPM, Nama_Mahasiswa, Sem, Fakultas, Program_Studi, KaProdi, Kode_MK, Nama_MK, SKS, Kode_Dosen, Nama_Dosen).

         Sehingga hasil daripada pembentukan normal pertama (1 NF) adalah sebagai berikut ini :



         Pada normal pertama tersebut masih terjadi banyak kelemahan, terutama pada proses ANOMALI insert, update dan delete berikut ini

         a.    Inserting / Penyisipan

         Kita tidak dapat memasukkan NPM dan nama mahasiswa saja tanpa adanya Nama matakulian yang dimbil, sehingga mahasiswa baru bisa dimasukkan kalau ada telah mengambil mata kuliah.

         b.   Deleting / Penghapusan

         Bila satu record / baris di atas dihapus, misal Mata Kuliah Matematika Diskrit, maka berakibat pada penghapusan data Nama Dosen (S. Abas M.Eng) padahal data tersebut masih diperlukan.

         c.   Updating / Pengubahan
         NPM dan nama mahasiswa terlihat ditulis berkali-kali, bila nama mahasiswa berubah, maka di setiap baris yang ada harus dirubah, bila tidak menjadi tidak konsisten.

3. Bentuk Normal Kedua (2 NF)

    Tabel dalam keadaan 2NF apabila tabel sudah dalam keadaan 1NF dan semua atribut yang bukan kunci, bergantung pada semua kunci dalam tabel. Dengan kata lain 2NF bertujuan untuk menghilangkan ketergantungan parsial.

     Bentuk normal kedua dengan melakukan dekomposisi relasi di atas menjadi beberapa relasi dan mencari kunci primer dari tiap-tiap relasi tersebut dan atribut kunci haruslah unik.
Melihat permasalahan contoh di atas, maka dapat diambil beberapa kunci kandidat : ( NPM, Kode_MK, dan Kode_Dosen ). Kunci kandidat tersebut nantinya bisa menjadi kunci primer pada relasi hasil dekomposisi.

      Dengan melihat normal pertama, kita dapat mendekomposisi menjadi empat relasi berserta kunci primer yang ada yaitu : relasi Mahasiswa (NPM), relasi Matakuliah(Kode_Matakuliah), relasi KRS (NPM dan Kode_MK) dan Relasi Dosen(Kode_Dosen). Dengan melihat ketergantungan fungsional atribut-atribut lain terhadap atribut kunci, maka didapatkan 4 (empat) relasi/tabel sebagai berikut :



4. Bentuk Normal Ketiga (3 NF)

    Definisi Bentuk Normal Ketiga (3 NF) adalah:
       a. Memenuhi bentuk 2 NF (normal kedua).
       b. Atribut bukan kunci tidak memiliki dependensi transitif terhadap kunci utama / primary key.

    Pada tabel Mahasiswa memenuhi bentuk 2 NF, tetapi tidak memenuhi bentuk 3 NF.


    Atribut NPM merupakan kunci primer, atribut Nama mempunyai dependensi fungsional terhadap kunci primer tersebut.

     Pada relasi di atas, setiap mahasiswa yang mempunyai program studi yang sama (Heca Ruyadi dan Bimbe), seperti contoh dibawah ini :



      maka nilai Program Studi dan Kepala Prodi juga sama, sehingga menunjukkan adanya dependensi dua atribut tersebut, tapi manakah yang menentukan, apakah Program Studi bergantung pada Kepala Prodi, atau sebaliknya? Jadi Kepala Prodi memiliki dependensi fungsional terhadap Program Studi.

       Pada relasi ini menunjukkan bahwa Kepala Prodi tidak memiliki dependensi secara langsung terhadap kunci primer (NPM). Dengan kata lain Kepala Prodi memiliki dependensi transitif terhadap kunci primer.

       Sehingga untuk memenuhi bentuk 3 NF, maka relasi di atas didekomposisi menjadi dua buah relasi sebagai berikut:



Relasi Antar Tabel

No comments:

Post a Comment

TSS vol 2 sub indo