Pengetahuan Dasar Normalisasi Tabel Basis Data

Tulisan ini adalah bagian dari : Pengetahuan dasar Pengembangan Basis Data

Setelah Tabel tabel dibuat berdasar ER diagram maka tahap selanjutnya Tabel tabel tsb diperiksa validasinya  dan diperbaiki (normalisasi) struktur tabelnya.

Definisi Normalisasi 

Normalisasi adalah suatu teknik untuk memperbaiki struktur tabel dengan ketergantungan fungsional(KF) dan primary key . Perbaikan dengan memecah struktur tabel  ke dalam tabel-tabel  lebih kecil  secara bertahap untuk memenuhi kebutuhan pemakai di dalam suatu organisasi. Pemecahan tabel menjadi tabel tabel yg lebih kecil disebut dekomposisi.

Tujuan dari normalisasi

  • Untuk menghilangkan redudan( rangkap data) yg menyebabkan pemborosan memori. Data rangkap bisa dlm 1 tabel atau dalam banyak tabel.
  • Untuk mengurangi kompleksitas.
  • Untuk  menghindari anomali (ketidak konsistenan)  saat  update  data.

Proses Normalisasi

  1. Data diuraikan dalam bentuk tabel, selanjutnya dianalisis/diperiksa berdasarkan persyaratan tertentu ke beberapa tingkat (1NF, 2NF, 3NF  dst..).
  2. Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.

Pemeriksaan Normalitas Tabel

Tabel yang dikategorikan normal hanya tabel yg berisi kolom kolom  yg berkaitan erat. Erat tidaknya antara kolom-kolom dalam satu tabel dinyatakan dalam ketergantungan fungsional (KF).

Misal dalam satu tabel kolom kolom B ditentukan nilainya oleh kolom kolom A, maka ini disebut B tergantung dengan A atau dengan kata lain A menentukan nilai B disimbolkan dengan A -> B.  contoh

—————————————
|noKtp  |  nama     | tempatLahir    |
—————————————-
|10001   | Abdullah |   Jakarta |
|10002   | Fatih        |   Yogya    |
|10003   | Abdullah |  Makasar |
|10004  | Dadan       | Bandung |
————————————

Beberapa KF yg ada di tabel diatas antara lain

noKtp –> nama
kolom  nama ditentukan oleh no_ktp

noKtp –> alamat
kolom alamat ditentukan oleh no_ktp

noKtp,nama –> tempatLahir
kolom tempatLahir ditentukan oleh kolom noKtp dan kolom nama

Kolom-kolom  sebelah kiri tanda panah disebut determinan (penentu) dan kolom-kolom disebelah kanan tanda panah disebut non-determinan.

Jenis jenis Ketergantungan fungsional (KF)

1. Ketergantungan penuh (KF penuh) ,   jumlah determinannya memiliki jumlah minimum yg diperlukan untuk menjaga KF terhadap kolom non-determinannya.

Yang dimaksud dengan jumlah  kolom minimal  adalah “untuk menjaga suatu KF” adalah jika  satu kolom saja dihapus dari kolom kolom determinan maka maka KF tidak berlaku lagi.

nim       nama         matakuliah     nilai

1002   Abdullah     matematika       C

1003   Putri             statistik                A

1004   Budi              kalkulus               D

nim,matakuliah –>  nilai

adalah KF penuh karena jika salah satu kolom dari determinan dihilangkan  KF tsb tdk lagi  menjadi KF penuh. Nilai bergantung (ditentukan) oleh nim dan mataKuliah.

2. Ketergantungan Sebagian (KF parsial), kolom  non determinannya bergantung kepada minimal  satu kolom determinan, KF parsial bisa ditemukan  jika suatu tabel mengandung composite key.

3. Ketergantungan Transitif (KF transitif),  misal A,B,C adalah himpunan kolom , jika A–>B  dan B–>C   maka  C bergantung secara transitif terhadap A  .   B–>C  adalah KF transitif. contoh pada tabel diatas :

noktp–>nama  dan nama–>tempatLahir  maka

noKtp–>tempatLahir adalah KF transitif.

Tabel yang baik atau  normal adalah tabel yg hanya memiliki Kf penuh ( tidak terdapat KF parsial dan KF transitif) .

Tingkatan /level  sebuah tabel

  • Bentuk Tidak Normal,  pada level  ini tabel mempuyai kolom yg berisi nilai ganda .
  • Bentuk Normal Pertama (1NF), pada level ini tabel sudah tdk ada lagi kolom yg berisi nilai ganda. Bisanya tabel hasil pemetaan dari ERD sudah dlm bentuk 1NF.
  • Bentuk Normal Kedua (2NF), pada level ini tabel tdk ada KF parsial
  • Bentuk Normal Ketiga (3NF), pada level ini tabel tdk ada KF transitif
  • Bentuk Normal Boyce-Codd (BCNF)
  • Bentuk Normal Keempat (4NF)

Untuk perancangan sebuah database minimal level 3NF sudah cukup memadai

contoh 1. Tabel daftar nilai mahasiswa .

contohkf

Tabel diatas sudah dlm bentuk 1NF karena setiap cell  (perpotongan baris dan kolom) hanya terdiri dari 1 data.

KF yang ada di tabel tsb bisa kita lihat dengan diagram KF sbb:

contohdiagramkf

tabel tersebut mengandung composite key idMahasiswa dan kodeMatakuliah yg menyebabkan adanya KF parsial.

Daftar KF  yg ada pada tabel tsb antara lain :

1.  idMahasiswa –>nama,jurusan

2.  kodeMatakuliah –> mataKuliah, idDosen, namaDosen

3.  idMahasiswa, kodeMatakuliah –>nilai

Normalisasi   bentuk 1NF  tabel diatas ke bentuk 2NF .

Tabel 2NF adalah tabel tanpa adanya  KF parsial. jadi tahapan merubahnya

  1.  Cari  kunci gabungan (composite key) jika ada  kemudian periksa KF parsial.
  2.  Untuk tiap KF parsial buat tabel baru  dgn kolom kolomnya terdiri dari kolom determinan dan non determinan dari KF parsial dan jadikan kolom determinan sebagai key.

contohdiagramkf0

Contoh 2  merubah bentuk norml  tabel 1NF ke bentuk normal 3NF, tabel berikut mempunyai composite key noFaktur dan kodeBarang.

contohdiagramkf2

KF parsial yg ada di tabel tsb antara lain

1. kodeBarang–>namaBarang,qtyBarang,harga,unit

2. noFaktur–>tgl, idPelanggan, pelanggan, idPegawai, Pegawai

Tabel 1NF  di dekomposisi menjadi 5 buah tabel 3NF  yaitu tabel tabel dgn KF penuh.

Contoh 3

contohdiagramkf1

About pccontrol

Berisi Tutorial Menggunakan PC untuk mengontrol Peralatan dengan cara mudah & praktis.

Posted on 13/03/2014, in Dasar Basisdata (Database). Bookmark the permalink. 2 Comments.

  1. Mantap! Terima kasih Gan…

Komentar ,Saran atau Pertanyaan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: