Kamis, 14 Februari 2013

Normalisasi dan Denormalisasi Data

Normalisasi dan Denormalisasi Data



    Pengertian Normalisasi Data.
  • Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data yang mengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi).
  • Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.
  • Tujuan normalisasi data adalah untuk:
  1. Untuk menghilang kerangkapan data.
  2. Untuk mengurangi kompleksitas.
  3. Untuk mempermudah pemodifikasian data.
  • Proses normalisasi adalah sebagai berikut:
  1. Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat.
  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.
    Tahapan dalam Normalisasi Data.
  • Tahap Normalisasi dimulai dari tahap paling ringan (1NF) hingga paling ketat (5NF). Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik. Urutan: 1NF, 2NF, 3NF, BCNF, 4NF, 5NF.
  • Bentuk 1NF (First Normal Form)
  • Aturan :
  • Tidak adanya atribut multi-value, atribut komposit atau kombinasinya.
  • Mendefinisikan atribut kunci.
  • Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi).

  • Bentuk 2NF (Second Normal Form)
  • Aturan :
  • Sudah memenuhi dalam bentuk normal kesatu (1NF).
  • Semua atribut bukan kunci hanya boleh tergantung (functional dependency) pada atribut kunci.
  • Jika ada ketergantungan parsial maka atribut tersebut harus dipisah pada tabel yang lain.
  • Perlu ada tabel penghubung ataupun kehadiran foreign key bagi atribut-atribut yang telah dipisah tadi.

  • Bentuk 3NF (3th Normal Form)
  • Aturan :
  • Sudah berada dalam bentuk normal kedua (2NF).
  • Tidak ada ketergantungan transitif (dimana atribut bukan kunci tergantung pada atribut bukan kunci lainnya).

  • Bentuk 4NF (4th Normal Form)
  1. Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued attribute.
  2. Untuk setiap multivalued dependencies (MVD) juga harus merupakan functional dependencies.
  • Bentuk 5NF (5th Normal Form)
  1. Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah lossless decomposition menjadi tabel-tabel yg lebih kecil.
  2. Jika 4 bentuk normal sebelumnya dibentuk berdasarkan functional dependency, 5NF dibentuk berdasarkan konsep join dependence. Yakni apabila sebuah tabel telah di-dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi (join) untuk membentuk tabel semula
    Contoh Penerapan Normalisasi Data.
  • Untuk mendapatkan hasil yang paling normal, maka proses normalisasi dimulai dari normal pertama. Field-field tabel di atas yang merupakan group berulang : NoPegawai, NamaPegawai, Golongan, BesarGaji.
  • Solusinya hilangkan duplikasi dengan mencari ketergantungan parsial. menjadikan field-field menjadi tergantung pada satu atau beberapa field. Karena yang dapat dijadikan kunci adalah NoProyek dan NoPegawai, maka langkah kemudian dicari field-field mana yang tergantung pada NoProyek dan mana yang tergantung pada NoPegawai.


  • Field-field yang tergantung pada satu field haruslah dipisah dengan tepat, misalnya NoProyek menjelaskan NamaProyek dan NoPegawai menjelaskan NamaPegawai, Golongan dan BesarGaji.
Tabel 1


Tabel 2









  • Pada tabel diatas masih terdapat masalah, bahwa BesarGaji tergantung kepada Golongan nya. Padahal disini Golongan bukan merupakan field kunci. Artinya kita harus memisahkan field non-kunci Golongan dan BesarGaji yang tadinya tergantung secara parsial kepada field kunci NoPegawai, untuk menghilangkan ketergantungan transitif.


    Pengertian Denormalisasi Data.
  • Denormalisasi merupakan proses yang dilakukan pada database yang sudah dinormalisasi, dengan cara memodifikasi struktur tabel dan mengabaikan kerangkapan data (yang terkontrol) untuk meningkatkan kinerja database.
  • Pelanggaran terhadap Normalisasi, dan ditujukan demi pertimbangan performansi. Cara : mengendalikan redundansi untuk mengurangi perhitungan, kompleksitas perintah, & jumlah tabel yang di-Join. Konsekuensi :
  1. Kebutuhan tambahan ruang penyimpanan.
  2. Proses manipulasi data lebih lambat.
  • Denormalisasi adalah hal mendasar dalam membuat DATAWAREHOUSE
    Tahapan dalam Denormalisasi Data.
  • Derived Attribute (Atribut yg terderivasi).
  1. Nilai-nilai dari atribut ini diolah dari nilai-nilai yang sudah ada pada atribut yang lain (dari tabel yg sama atau tabel lain).
  2. Digunakan untuk menghindari proses yang berulang dan memakan waktu.
  • Atribut yang berlebihan.
  1. Atribut yang menyatakan lebih dari satu fakta.
  2. Melanggar First Normal Form, karena tidak memiliki domain nilai yang unik
  • Jenis :
      • Encoded attribute
      • Concatenated Attribute
      • Overlapping Attribute
      • Alternate Attribute
  • Summary Table (tabel rekapitulasi).
  1. Normalisasi  tabel-tabel Detail.
  2. Laporan berbentuk Summary (rekapitulasi) merupakan hasil pengolahan dari Kumpulan data Detail.
  3. Makin besar volume data dan makin banyak tabel yang ter-JOIN  makin lama waktu diperlukan.
  4. Solusi : simpan hasil pengolahan dalam tabel khusus.
    Contoh Penerapan Denormalisasi Data.
    Boyce-Codde Method.
  • Boyce-Codde Method adalah bentuk normal yang digunakan dalam normalisasi database. Ini adalah versi yang sedikit lebih kuat dari bentuk normal ketiga (3NF). BCNF dikembangkan pada tahun 1974 oleh Raymond F. Boyce dan Edgar F. Codd untuk mengatasi beberapa jenis anomali tidak ditangani oleh 3NF.
  • Dalam Date (2004), didefinisikan bahwa sebuah relvar berada dalam BCNF bila dan hanya bila setiap FD yang tidak sepele, tidak dapat dikurangi-sebelah kiri memiliki sebuah kunci kandidat sebagai determinannya. Contoh solusi untuk relvar SSP {S#, SNAME, P#, QTY}, menjadi proyeksi.
  • Dalam Hariyanto (2004), ketentuan BCNF tercapai apabila masing-masing atribut utama bergantung fungsional penuh pada masing-masing kunci di mana kunci tersebut bukan bagiannya. Contoh sebuah relasi sebelum berada dalam BCNF, Kehadiran {Dosen, Semester, Kuliah, Sesi, Kehadiran}. Diperoleh keterangan bahwa keterangan di atas dapat dideskripsikan bahwa Kuliah memiliki ketergantungan fungsional pada Dosen dan Semester; Dosen memiliki ketergantungan fungsional pada Kuliah dan Semester; Kehadiran memiliki ketergantungan fungsional pada Dosen, Semester dan Sesi; dan Kehadiran memiliki ketergantungan fungsional pada Kuliah, Semester dan Sesi. Dengan demikian, diperoleh hasil dekomposisi.
  • Dalam Philip (2007), dinyatakan bahwa sebuah relasi berada dalam BCNF jika, dan hanya jika, setiap kunci kandidat adalah sebuah determinan. Contoh: ORDER (OrderNo, OrderDate, CustNo, PmtMethod, ItemNo, ItemName, UnitPrice, OrderQty).
    Tahapan dalam Boyce-Codde.
  • Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional dependency terhadap setiap atribut atau gabungan atribut dalam bentuk: X  Y maka X adalah super key.
  • Tabel tersebut harus di-dekomposisi berdasarkan functional dependency yang ada, sehingga X menjadi super key dari tabel-tabel hasil dekomposisi.
  • Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF . Perbedaannya, untuk functional dependency X  A, BCNF tidak membolehkan A sebagai bagian dari primary key.

Tidak ada komentar:

Posting Komentar