Nomalisasi Database Relasi
NORMALISASI DATABASE RELASI
Ketika kita merancang suatu basis data untuk suatu sistem relational, prioritas utama dalam mengembangkan model data logical adalah dengan merancang suatu representasi data yang tepat bagi relationship dan constrainnya (batasannya). Kita harus mengidentifikasi suatu set relasi yang cocok, demi mencapai tujuan di atas. Tehnik yang dapat kita gunakan untuk membantu mengidetifikasi relasi-relasi tersebut dianamakan Normalisasi.
Normalisasi merupakan kondisi dimana relasi antar tabel telah terbentuk dengan baik sesuai kaidah dalam sebuah database bertujuan untuk menciptakan struktur-struktur entity yang dapat mengurangi redundansi data dan meningkatkan stabilitas database. Ada dua fungsi normalisasi, yaitu :
1. Dapat digunakan sebagai metodologi dalam menciptakan desain database dengan menghasilkan rancangan tabel-tabel yang nantinya sesuai dengan masalah dan kebutuhan yang dihadapi.
2. Dapat digunakan sebagai verifikasi terhadap hasil desain database yang telah dibuat, baik menggunakan E-R Model atau menggunakan model relasi.
Normalisasi yang umum digunakan sampai tahap Third Normal Form (3 NF) atau lebih sesuai keadaan waktu nyata yang nantinya langsung dapat diimplementasikan kedalam database. Normalisasi diperlukan agar dapat Menghasilkan himpunan skema relasi antar tabel yang mengizinkan pengguna untuk menyimpan informasi tanpa adanya redudansi data serta mengizinkan pengguna untuk mencari informasi yang dikehendaki dengan cepat dan mudah.
Tahap - Tahap Normalisasi :
Tingkatan proses normalisasi dengan Third Normal Form (3NF):
- Bentuk Tahap UnNormalized
- Bentuk Normal Pertama (1NF)
- Bentuk Normal Kedua (2NF)
- Bentuk Normal Ketiga (3NF)
Tingkatan proses normalisasi dengan Five Normal Form (5NF):
- Bentuk Normal Pertama (1NF)
- Bentuk Normal Kedua (2NF)
- Bentuk Normal Ketiga (3NF)
- Bentuk Normal Boyce-Codd (BCNF)
- Bentuk Normal Keempat (4NF)
- Bentuk Normal Kelima (5NF)
1. Bentuk Normal Pertama (1NF)
Bentuk normal pertama dikenakan pada entity yang belum normal (Unnormalized Form). Bentuk tidak normal merupakan kumpulan data yang akan di rekam, tidak ada keharusan mengikuti suatu format tertentu, dapat saja tersebut tidak lengkap atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan kedatangannya.
Ada dua kelemahan utama pada bentuk tidak normal diatas :
1. Terdapat attribut yang berulang (duplikat), yaitu attribut matakulia. Mahasiswa dengan nama Elzar mengambil 2 matakuliah, sementara Si Fikri mengambil 3 matakuliah dimana matakuliah yang mereka ambil ada yang sama.
2. Terdapat informasi yang meragukan, dimana ada dua baris memiliki matakuliah yang sama, tapi berbeda nilainya. Sebenernya kedua baris tersebut menunjukkan dua orang yang sama namanya tapi berbeda nilai.
Bentuk entity diatas harus di rubah menjadi bentuk normal pertama.Aturan Bentuk Normal Pertama (1NF) :
Suatu entity dikatakan dalam bentuk normal pertama jika setiap attributnya bernilai tunggal untuk setip barisnya.
2.Bentuk Normal Kedua (2NF)
Aturan Bentuk Normal Kedua (2NF) : Suatu entity dikatakan dalam bentuk normal pertama jika : 1. Berada pada bentuk normal pertama. 2. Semua attribut bukan kunci memiliki ketergantungan fungsional (Depedensi Fungsional) dengan kunci utama (primary key)
Ketergantungan fungsional adalah suatu attribut X mempunyai ketergantungan fungsional terhadap attribut Y apabila setiap nilai X berhubungan dengan sebuah nilai Y. Misalnya Attribut Nama pada entity Mahasiswa, mempunyai ketergantungan fungsional terhadap attribut NoBP, karena setiap nama mahasiswa harus mempunyai NoBP.
Pada tahap ini anda harus memilah-memilah dan membagi entity tersebut menjadi beberapa entity lainnya yang mempunyai kunci utama. Sehingga masingmasing attribut yang bukan kunci mempunyai ketergantungan fungsional dengan kunci utama tersebut.
3.Bentuk Normal Ketiga(3NF)
Aturan Bentuk Normal Ketiga (3NF) : Suatu entity dikatakan dalam bentuk normal pertama jika : 1. Berada pada bentuk normal kedua. 2. Semua attribut bukan kunci tidak memiliki ketergantungan transitif (Depedensi transitif) dengan kunci utama (primary key). Ketergantungan Transitif terjadi pada entity yang menggunakan attribut gabungan sebagai kunci utama. Seperti pada entity nilai pada bentuk normal kedua diatas, yang menjadi kunci utama adalah NoBP dan Kode Matakuliah. Ketergantungan transitif terjadi bila :
a. Attribut X memiliki ketergantungan fungsional dengan attribut Y.
b. Attribut Z memiliki ketergantungan fungsional dengan attribut X.
Misalnya attribut Kode Matakuliah pada entiti nilai diatas, mempunyai ketergantungan fungsional dengan attribut NoBP, Attribut Nama Matakuliah mempunyai ketergantungan fungsional dengan attribut Kode Matakuliah.4.Bentuk Normal Boyce-Codd (BCNF). Aturan Bentuk Normal Boyce-Codd (BCNF) : Suatu entity dikatakan dalam bentuk BCNF jika : Semua kunci utama adalah kunci kandidat yang bersifat unik
5.Bentuk Normal Keempat (4NF)
Bentuk normal keempat berhubungan dengan sifat ketergantungan banyak nilai (Multivalued Dependency) pada suatu tabel yang merupakan pengembangan dari ketergantungan fungsional.
6.Bentuk Normal Kelima (5NF)
Bentuk normal kelima berkenaan dengan ketergantungan relasi antar tabel (Join Depedency).
Melakukan normalisasi data dilakukan berdasarkan analisa dan kebutuhan, implementasi kedalam database tidak hanya dilakukan 3 tahap saja untuk mendapatkan nilai normalisasi tapi tergantung permasalahan yang dihadapi dari relasi umum yang terjadi.Ketika kita sudah terjun ke lapangan (dunia kerja), ada kalannya terjadi ketidaksesuaian antara hasil analisa/perencanaan dengan hasil implementasi. Yang terpenting adalah “aplikasi sesuai dengan keinginan pengguna” dengan tidak peduli akan proses yang ada > atau dengan kata lain kita gunakan “Management By Objective”.
SOURCE :
https://docs.google.com/viewer?a=v&q=cache:tLKkkSLNgBcJ:mufari.files.wordpress.com/2009/10/normalisasi-database.pdf+normalisasi+database+relasi&hl=id&gl=id&pid=bl&srcid=ADGEEShAn9VvJQinUSnV5OkSuyqkYk8EV8ZdxNy2Yov1UZNBbERBRzbFFHb2Mwsf5LJ_a6xD4PouyIJsY9cUAFzPI5bR4qfH7OPh4IqszPoM9S0OOo5rxCir-HFW9_Yval5qG5-oQ-wN&sig=AHIEtbTAt9zlYeZLAvepWerxWZQR_u0QbA