Sabtu, 03 Oktober 2015

Normalisasi Data

PENGERTIAN NORMALISASI BASIS DATA
Normalisasi
Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atribut data dengan cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan fleksible
Normalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah baik, yaitu dapat dilakukan proses insert,update,delete, dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut.
Anomali dan Redudansi
Alasan utama diperlukannya normalisasi karena Permasalahan Redundansi Redundansi : Perulangan yang berlebihan Redundansi menyebabkan :
  • Pemborosan ruang penyimpanan
  • Anomali pada saat insert (simpan), Update (edit/pembaharuan), Delete (hapus)
  • Bisa menyebabkan inkonsistensi
Contoh Anomali
Contoh Anomali
Contoh Redundansi: NIM, Nama, Alamat yang sama ditulis berulang-ulang
Anomali Insert (Penyisipan)
  • Keadaan yang tidak diingini atau munculnya masalah saat akan menyisipkan data baru ke dalam relasi dengan struktur yang tidak lengkap
  • Data baru bernama Rudi tetapi hobby belum tercatat…?
Anomali Update (Pembaharuan)
  • Keadaan di mana apabila satu nilai atribut perlu diperbaharui, jika lebih daripada satu data yang terlibat yang disebabkan adanya pengulangan data maka apabila tidak semua data diperbaharui akan menimbulkan inkonsistensi data
  • Andi berpindah alamat…?
Anomali Delete (Penghapusan)
  • Keadaan di mana apabila satu data dihapuskan pada suatu relasi, terjadi kehilangan data lain yang masih diperlukan
  • Data hobby bersepeda dihilangkan, maka Data Antok ikut hilang
Penyebab Redundansi
  •  Perulangan fakta yang sama
  • Adanya atribut turunan, contoh:
·         Umur (diperoleh dari tgl lahir)
·         Subtotal (diperoleh dari Qty x Harga)
  • Solusi Redundansi
·         Penghilangan data turunan
·         Dekomposisi: pemecahan sebuah relasi menjadi 2 atau lebih relasi
  • Lossy decomposition/lossy-join decomposition (kehilangan informasi ketika relasi dipecah menjadi relasi-relasi lain)
  • Lossless-join decomposition (tidak ada informasi yang hilang ketika relasi dipecah menjadi relasi-relasi lain)
 Depedensi (Ketergantungan)
Konsep dasar pada tahap normalisasi yang menjelaskan hubungan atribut atau secara lebih khusus menjelaskan nilai suatu atribut yang menentukan atribut lainnya.
Depedensi fungsional
Dependensi fungsional adalah Suatu atribut Y mempunyai depedensi fungsional terhadap atribut X jika dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y.
Macam – macam depedensi :
Depedensi fungsional
“X secara fungsional menentukan  Y” atau secara istilah :
penentu (determinan) → yang tergantung (dependen)
Depedensi fungsional sepenuhnya
Suatu atribut Y mempunyai dependensi fungsional sepenuhnya terhadap atribut X, jika:
  • Y mempunyai dependensi fungsional terhadap X, dan
  • Y tidak memiliki dependensi terhadap bagian dari X.
Depedensi total
Suatu atribut Y mempunyai dependensi total terhadap atribut X jika:
  • Y memiliki dependensi fungsional terhadap X, dan
  • X mempunyai dependensi fungsional terhadap Y.
Dependensi seperti ini dinyatakan dengan notasi: X ← →Y
Depedensi transitif
Atribut Z mempunyai dependensi transitif terhadap X jika :
  • Y memiliki dependensi fungsional terhadap X.
  • Z memiliki dependensi fungsional terhadap Y.
atau dapat dituliskan : X → Y → Z
Tahap Normalisasi
Tahapan Normalisasi
Tahapan Normalisasi
Pada proses normalisasi terhadap tabel pada database dapat dilakukan dengan tiga tahap normalisasi antara lain :
Bentuk Tidak Normal (Unnormalized Form)
Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikukti format tertentu, dapat saja data tidak lengkap atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan saat menginput. Untuk mentransformasikan tabel yang belum ternomalisasi di atas menjadi tabel yang memenuhi kriteria 1NF adalah kita harus merubah seluruh atribut yang multivalue menjadi atribut single value, dengan cara menghilangkan repeating group pada tabel di atas.  Misalkan terdapat dokumen dasar sebagai berikut,
nota awal

Berdasarkan bentuk nota tersebut dapat dibuat bentuk tidak normalnya sebagai berikut:
Bentuk Tidak Normal
Bentuk Normal Ke Satu (First Normal Form/1-NF)
Pada tahap ini dilakukan penghilangan beberapa group elemen yang berulang agar menjadi satu harga tunggal yang berinteraksi di antara setiap baris pada suatu tabel, dan setiap atribut harus mempunyai nilai data yang atomic (bersifat atomic value). Atom adalah zat terkecil yang masih memiliki sifat induknya, bila terpecah lagi maka ia tidak memiliki sifat induknya.
Syarat normal ke satu (1-NF) antara lain:
  1. setiap data dibentuk dalam flat file, data dibentuk dalam satu record demi satu record nilai dari field berupa “atomic value”.
  2. tidak ada set atribute yang berulang atau bernilai ganda.
  3. telah ditentukannya primary key untuk tabel / relasi tersebut.
  4. tiap atribut hanya memiliki satu pengertian.
Bentuk Normal Pertama
Bentuk Normal Pertama
Masalah yang muncul : Duplication, Inconsistency, Data Isolation, dan Un-Efficiency
Contoh Lain:
Contoh Lain Bentuk Normal Kesatu
Contoh Lain Bentuk Normal Kesatu
Contoh lainnya:
Contoh Bentuk Normal Kesatu
Contoh Bentuk Normal Kesatu
Bentuk Normal Kedua (Second Normal Form/2-NF)
Bentuk normal kedua didasari atas konsep full functional dependency (ketergantungan fungsional sepenuhnya) yang dapat didefinisikan sebagai berikut. Jika A adalah atribut-atribut dari suatu relasi, B dikatakan full functional dependency (memiliki ketergantungan fungsional terhadap A, tetapi tidak secara tepat memiliki ketergantungan fungsional dari subset (himpunan bagian) dari A.
Syarat normal kedua (2-NF) sebagai berikut.
  1. Bentuk data telah memenuhi kriteria bentuk normal kesatu.
  2. Atribute bukan kunci (non-key) haruslah memiliki ketergantungan fungsional sepenuhnya (fully functional dependency) pada kunci utama / primary key.
Contoh Bentuk Normal Kedua
Contoh Bentuk Normal Kedua
Bentuk Normal Ketiga (Third Normal Form / 3 NF)
Walaupun relasi 2-NF memiliki redudansi yang lebih sedikit dari pada relasi 1-NF, namun relasi tersebut masih mungkin mengalami kendala bila terjadi anomaly peremajaan (update) terhadap relasi tersebut.
Syarat normal ketiga (Third Normal Form / 3 NF) sebagai berikut.
  1. Bentuk data telah memenuhi kriteria bentuk normal kedua.
  2. Atribute bukan kunci (non-key) harus tidak memiliki ketergantungan transitif, dengan kata lain suatu atribut bukan kunci (non_key) tidak boleh memiliki ketergantungan fungsional (functional dependency) terhadap atribut bukan kunci lainnya, seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap priamry key di relasi itu saja.
  3. Seluruh atribut non-primary key pada relasi Pelanggan dan Biaya di atas terlihat memiliki ketergantungan fungsional (functional dependency) terhadap primary key dari masing-masing tabel / relasi. Relasi / tabel Pelanggan dan Biaya di atas tidak memiliki ketergantungan transitif (transitive dependency), sehingga tabel tersebut telah memenuhi
BENTUK NORMAL KE TIGA (THIRD NORMAL FORM / 3 NF)
Walaupun relasi 2-NF memiliki redudansi yang lebih sedikit dari pada relasi 1-NF, namun relasi tersebut masih mungkin mengalami kendala bila terjadi anomaly peremajaan (update) terhadap relasi tersebut.
Syarat normal ketiga (Third Normal Form / 3 NF) sebagai berikut.
  1. Bentuk data telah memenuhi kriteria bentuk normal kedua.
  2. Atribute bukan kunci (non-key) harus tidak memiliki ketergantungan transitif, dengan kata lain suatu atribut bukan kunci (non_key) tidak boleh memiliki ketergantungan fungsional (functional dependency) terhadap atribut bukan kunci lainnya, seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap priamry key di relasi itu saja.
  3. Selruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap primary key di relasi itu saja.
Contoh Bentuk Normal Ketiga
Contoh Bentuk Normal Ketiga
Boyce-Code Normal Form (BCNF)
Suatu relasi disebut memenuhi bentuk normal Boyce-Codd jika dan hanya jika semua penentu (determinan) adalah kunci kandidat (atribut yang bersifat unik). BCNF merupakan bentuk normal sebagian perbaikan terhadap 3NF. Suatu relasi yang memenuhi BCNF selalu memenuhi 3NF, tetapi tidak untuk sebaliknya
Suatu relasi yang memenuhi 3NF belum tentu memenuhi BCNF. Dalam banyak literatur disebutkan bahwa BCNF adalah perbaikan dari 3NF, karena bentuk normal ketigapun mungkin masih mengandung anomali sehingga masih perlu dinormalisasi lebih lanjut.
BCNF memiliki ketentuan yaitu :
  • 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.
Properti penting BCNF adalah relasi tidak memiliki informasi yang redundan.
Perbedaan BCNF dengan 3NF :
  • Pada BCNF suatu atribut yang bergantung secara fungsional terhadap kunci primer, mungkin saja merupakan kunci primer bagi atribut yang lain.
  • Pada 3NF hal ini bisa saja terjadi dan tidak menjadi masalah.
Contoh Tidak Memenuhi BCNF
Contoh Tidak Memenuhi BCNF
Relasi di atas memenuhi 3NF tetapi tidak memenuhi BCNF,   Karena :
  • Seorang mahasiswa dapat mengambil sejumlah mata kuliah.
  • Setiap dosen hanya mengajar pada sebuah mata kuliah.
  • Setiap mahasiswa pada setiap mata kuliah hanya diajar oleh seorang dosen.
  • Suatu mata kuliah yang sama bisa memiliki lebih dari satu dosen.
 Mahasiswa, Mata Kuliah  –>Dosen
 Mahasiswa, Dosen –> Mata Kuliah
 Cara mengkonversi relasi yang telah memenuhi 3NF ke BCNF:
  • Carilah semua penentu
  • Bila terdapat penentu yang bukan berupa kunci kandidat,
maka:
  • Pisahkan relasi tersebut, dan
  • Buat penentu tersebut sebagai kunci primer.
Bentuk Normal Keempat (4NF)
Syarat:
  • Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued attribute.
  • Untuk setiap  multivalued attribute (MVD) juga harus merupakan Functional Dependency
Multivalued dependency (MVD).
Dependensi ini pertama kali diperkenalkan oleh R.Fagin pada tahun 1977, dipakai pada bentuk normal keempat (4NF). Dependensi ini dipakai untuk menyatakan hubungan satu ke banyak.
Secara umum, dependensi nilai banyak muncul pada relasi yang paling tidak memiliki tiga atribut dan dua di antaranya bernilai banyak, dan nilainilainya tergantung hanya pada atribut ketiga.
Bila R(A,B,C) merupakan suatu relasi, dengan A, B, C adalah   atribut – atribut relasi tersebut, maka proyeksi dari R berupa (A, B) dan (A, C) jika R memenuhi MVD: A –>> B | C

Perlu diketahui, bila terdapat:
A —>> B
A —>> C

Maka keduanya dapat ditulis menjadi:
A —>> B | C

Misalnya, pegawai ditugaskan ke banyak proyek dan ia mempunyai banyak keahlian.
  • Jika kita mencatat info ini pd satu tabel, ketiga atribut harus digunakan sbg kunci
  • Hubungan antara pegawai dan proyek mrp ketergantungan multivalue krn untuk setiap pasang nilai pegawai/ahli pd tabel, himp nilai proyek yg berhub hanya ditentukan olehpegawai dan tidak tergantung pada
  • Hubungan antara pegawai &ahli mrp ketergantungan multivalue,karena himpunan nilai ahli untuk pasangan pegawai/proyek selalu hanya tergantung pd pegawai
  • untuk mengubah sebuah tabel dg ketergantungan multivalue ke dlm 4NF, pindahkan masing2 pasangan MVD ke tabel baru.
Bentuk Normal Tahap Kelima (5NF)
  • Bentuk normal 5NF terpenuhi jika memiliki sebuah loseloss decomposition menjadi tabel-tabel yang lebih kecil.
  • 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 untuk membentuk tabel semula.
Overnormalisasi
Analisa Overnormalisasi diperlukan jika :
  • Database ini digunakan untuk sistem multi user
  • Tabel-tabel yang sudah normal ini digabungkan dengan fungsi lain yang ada di lapangan, misalnya; untuk fungsi retur, untuk fungsi inventori, untuk fungsi sales order maupun order pembelian, untuk fungsi keamanan database, dan lain-lain


Tidak ada komentar:

Posting Komentar