Selasa, 15 November 2011

Merancang Database Dengan Normalisasi


Merancang Database Menggunakan Normalisasi

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. 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.

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.

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 















Bentuk – bentuk Normalisasi:

1.      Bentuk Unnormalisasi
2.      Bentuk Normal Pertama (1 NF)
3.      Bentuk Normal Kedua (2 NF)
4.      Bentuk Normal Ketiga (3 NF)

1.      Bentuk Unnormalisasi

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



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)

 Contoh Tabel Normal Pertama:
 

 
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.

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).

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.

Dengan melihat normal pertama, kita dapat mendekomposisi menjadi tiga relasi berserta kunci primer yang ada yaitu : relasi Mahasiswa (NPM), relasi Matakuliah(Kode_Matakuliah), dan Relasi Dosen(Kode_Dosen). Dengan melihat ketergantungan fungsional atribut-atribut lain terhadap atribut kunci, maka didapatkan 3 (tiga) 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.

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:






                          


                     

 Sekian Mudah - Mudahan Bermanfaat............

Tidak ada komentar:

Posting Komentar