Rabu, 25 Mei 2016

Normalisasi Dalam Sistem Basis Data Lanjut


Oke
dalam artikel pertama dalam blog ini akan membahas normalisasi
apa itu normalisasi?
normalisasi adalah salah satu bagian penting dari mata kuliah sistem basis data
nah untuk lebih jelasnya langsung saja kita ulas dalam penjelasan dibawah ini
SELAMAT MEMBACA :D

Normalisasi

adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.
Tahap Normalisasi dimulai dari tahap paling ringan 1NF (First Normal Form) hingga paling ketat (5NF)
Biasanya hanya sampai pada tingkat 3NF atau BCNF karena ketika proses normalisasi pada tahap 3NF telah menghasilkan
tabel-tabel yang berkualitas sehingga tidak perlu lagi dilakukan proses normalisasi ke 4NF/5NF.

Normalisasi dilakukan untuk memperoleh :
- Optimalisasi struktur-struktur tabel
- Meningkatkan kecepatan
- Menghilangkan pemasukan data yang sama
- Lebih efisien dalam penggunaan media penyimpanan
- Mengurangi redundansi
- Menghindari anomali (insertion anomalies, deletion anomalies, update anomalies).
- Integritas data yang ditingkatkan

Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb:
Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya  harus dijamin aman. Artinya,
setelah tabel tersebut diuraikan / didekomposisi menjadi tabel-tabel baru,
tabel-tabel baru tersebut bisa menghasilkan tabel semula dengan sama persis.
Terpeliharanya ketergantungan fungsional pada saat perubahan data
Tidak melanggar Boyce-Code Normal Form (BCNF)

Jika syarat" diatas tidak terpenuhi, paling tidak tabel tersebut tidak melanggar bentuk normal ketiga (3NF).

Dalam melakukan normalisasi, mengetahui ketergantungan fungsional (Fungsional Dependent) sangat penting
seperti contoh kasus dibawah ini

MatakuliahNIMNamaMhsNilaiHuruf
SBDL2014420152Niko HasdaA
SBDL2014420123
RPL2014420152Niko HasdaA
RPL2014420111
RPL2014420112
Design web2014420152Niko HasdaA
Algo Lanjut2014420152Niko HasdaA
Algo Lanjut2014420114
Jarkom2014420152Niko HasdaA

Functional Dependency dari tabel nilai
- NIM bergantung pada NamaMhs
  Karena untuk setiap nilai nim yang sama, maka nilai NamaMhs juga sama

- {Matakuliah, NIM} bergantung pada NilaiHuruf
  Karena attribut NilaiHuruf tergantung pada Matakuliah dan NIM secara bersama-sama. Dalam arti lain untuk Matakuliah dan NIM yang sama, maka NilaiHuruf juga sama, karena Matakuliah dan NIM merupakan key (bersifat unik).

- Matakuliah tidak bergantung NIM
NIM tidak bergantung NilaiHuruf
*
Ketika kita sudah mengetahui ketergantungan fungsional dari sebuah tabel maka akan mempermudah
untuk melakukan normalisasi dalam sebuah tabel.

LANGKAH - LANGKAH NORMALISASI

1NF :
dalam tahap ini tidak diperbolehkan adanya :
-Atribut yang bernilai banyak (Multivalued attribut).
-Attribut komposit atau kombinasi dari keduanya.
Contoh :

maka tabel di atas akan di dekomposisikan menjadi dua tabel :
-tabel mahasiswa
- tabel hobi
2NF :
Bentuk normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF,
dan semua atribut selain primary key, secara utuh memiliki Functional Dependency pada primary key
Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya (Functional Dependency)
hanya bersifat parsial saja (hanya tergantung pada sebagian dari primary key)
Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key,
maka atribut tersebut harus dipindah atau dihilangkan
Contoh :









tabel di atas
Tidak memenuhi 2NF, karena {NIM, KodeMk} yang dianggap sebagai primary key sedangkan:
  {NIM, KodeMk} à NamaMhs
  {NIM, KodeMk} à Alamat
  {NIM, KodeMk} à Matakuliah
  {NIM, KodeMk} à Sks
  {NIM, KodeMk} à NilaiHuruf

Tabel tersebut perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF seperti berikut:
*Functional dependencynya sbb:
n{NIM, KodeMk} à NilaiHuruf   (fd1)
nNIM à {NamaMhs, Alamat}      (fd2)
nKodeMk à {Matakuliah, Sks}    (fd3)
*Sehingga :
nfd1 (NIM, KodeMk, NilaiHuruf) à Tabel Nilai
nfd2 (NIM, NamaMhs, Alamat) à Tabel Mahasiswa

nfd3 (KodeMk, Matakuliah, Sks) à Tabel MataKuliah

3NF :
Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF,
dan jika tidak ada atribut non primary key yang memiliki ketergantungan
terhadap atribut non primary key yang lainnya (ketergantungan transitif).
Contoh :
*Tabel mahasis berikut ini memenuhi syarat 2NF, tetapi tidak memenuhi 3NF

*Karena masih terdapat atribut non primary key (yakni Kota dan Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni KodePos) :

  KodePos à {Kota, Provinsi}
*Sehingga tabel tersebut perlu didekomposisi menjadi :
nMahasiswa (NIM, NamaMhs, Jalan, KodePos)
nKodePos (KodePos, Provinsi, Kota)


Sekian Dalam Ulasan materi kali ini semoga artikel ini dapat membantu dan bermanfaat bagi blogger sekalian. sampai jumpa lagi di ulasan ulasan berikutnya Salam "NHP"


Tidak ada komentar:

Posting Komentar