PERANCANGAN BASIS DATA - ANOMALI & NORMALISASI

Assalamualaikum Wr. Wb. para pengunjung blog. Kali ini saya akan merangkum 2 materi, yaitu Anomali & Redundansi (materi 9) dan Normalisasi (materi 10). Kita bahas materi pertama dahulu.

ANOMALI

Anomali merupakan perubahan yang timbul pada tabel saat akan dimanipulasi, karena :

  • Data yang tidak konsisten
  • Penghilangan data ketika data lain dihapus

“Tabel-tabel yang normal dalam sebuah database hanya dapat dibentuk jika tabel-tabel tersebut bebas dari anomali.” (ocw.ui.ac.id). Dari sini diharapkan proses normalisasi akan menghilangkan anomali pada tabel-tabel tersebut.

Ada tiga jenis kondisi anomali :

1.      Anomali penambahan (insertion anomaly)

Kondisi yang terjadi ketika ada data baru namun tidak semua elemen data baru itu lengkap. Contoh:

Dosen

matakuliah

X

abc

Y

def

Jika ada data baru misalnya ‘matakuliah = ghi’, maka data ini tidak bisa dimasukkan dalam tabel karena elemen nya tidak lengkap, dalam hal ini data ‘dosen’ belum ada. Maka data baru yang diperbolehkan adalah ‘matakuliah = jkl, dosen = Z’.

2.      Anomali pengubahan (update anomaly)

Kondisi yang terjadi ketika ada elemen pada data yang di update/berubah namun tidak di terapkan pada seluruh data yang bersangkutan.

Contoh :

Data Log-in

time

name

username

07:30:33

Q

indomi_telur

07:30:40

W

4eversimp

07:50:31

E

ahoyyy_

08:00:55

W

amber_s_tier

Anomali terjadi pada data W yang memiliki 2 data elemen username yang berbeda, menghasilkan inkonsistensi data karena data lama tidak di-update sesuai dengan data baru.

3.      Anomali penghapusan (deletion anomaly)

Kondisi ketika menghapus salah satu elemen data pada sebuah baris data, maka elemen lain pada baris data tersebut akan ikut terhapus.

Contoh :

Kode_daftar

nama

email

SWE

toto

hmm@hotmail.com

CTR

yuyu

bruh@gmail.com

FGG

uri

uwu@student.untan.ac.id

Ketika kita menghapus data CTR pada ‘kode_daftar’, maka data yuyu dan bruh@gmail.com akan ikut terhapus.

REDUNDANSI

Merupakan perulangan data pada database yang seringkali tidak dapat dihindari. Contohnya data umur yang mengalami redundansi (duplikasi) :

pembeli

umur

Jumlah

FFR

22

4

FFR

22

3

FFR

22

4

Data ‘umur’ dapat diabaikan (dihilangkan) untuk mengoptimalkan penyimpanan.

NORMALISASI

Ketika kita akan merancang sebuah database untuk sistem database relasional maka tujuan utama dalam mengembangkan model data logikalnya adalah untuk menciptakan representasi data yang tepat bagi hubungan maupun batasannya (constraints). Untuk mencapai hal tersebut kita harus mengidentifikasi sekumpulan relasi yang tepat. Teknik yang digunakan untuk membantu mengidentifikasi relasi tersebut disebut dengan normalisasi (ocw.ui.ac.id).

Normalisasi adalah suatu teknik untuk menghasilkan sekumpulan relasi/tabel yang memiliki karakteristik tertentu, untuk memenuhi kebutuhan organisasi (ocw.ui.ac.id).

Normalisasi bertujuan untuk menghasilkan tabel yang normal, dalam artian meminimalisir anomali & redundansi data, lalu mengurangi kompleksitas data serta mempermudah pengelolaan jika nanti terdapat modifikasi data.

Ada beberapa tahap normalisasi data :

  • Bentuk Tidak Normal – UNF / NF
  • 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

Catatan : umumnya database bisnis sudah cukup baik pada 3NF atau BCNF

Database yang baik memperhatikan faktor-faktor berikut :

1.      Pada data terdekomposisi, gunakan teknik Lossless Join Decomposition, yaitu cara agar tabel terdekomposisi memiliki makna yang sama persis terhadap tabel awal (UNF).

2.      Gunakan juga Dependency Preservation, yaitu semua ketergantungan fungsional pada data tetap terjaga dalam tabel terdekomposisi.

3.      Tidak melanggar Bentuk Normal Boyce-Codd – BCNF

Jika ketiga faktor di atas tidak ada, paling tidak database sudah sesuai dengan Bentuk Normal Ketiga – 3NF.

Functional Dependency

Ketergantungan fungsional (functional dependency) adalah suatu kondisi dimana satu atribut atau beberapa atribut dari suatu relasi yang keberadaannya bergantung pada atribut lain. Contoh nya :

KTP

Nama

Tgl_lahir

Kecamatan

pekerjaaan

80801

Nyu

10-10-1990

Matan Hilir Utara

Desainer Grafis

Data KTP mempengaruhi data nama, tanggal lahir, kecamatan asal, dan pekerjaan.

Bentuk Tidak Normal – UNF / NF

Merupakan bentuk awal tabel yang boros data (mengalami redundansi data) dan belum efisien dalam normalisasi data.

id

nama

mapel

1

Jean

MTK

Fisika

2

Sam

B.indo

3

Kim

Fisika

B.indo

 

Bentuk Normal Pertama – 1NF

Definisi pertama dari 1NF dijelaskan oleh Edgar Codd (1972) yang menyebutkan bahwa suatu relasi berada dalam bentuk normal pertama jika dan hanya jika domain dari setiap atribut hanya berisi nilai atom (tak dapat dibagi), dan nilai setiap atribut hanya berisi satu nilai dari domain itu.

·         Tak ada atribut multivalue, komposit, atau kombinasinya

·         Mencantumkan atribut kunci

·         Tiap atribut bernilai atomic (tidak dapat dibagi lagi)

Tabel awal

1NF


Bentuk Normal Kedua – 2NF

·         Memenuhi 1NF

·         Functional dependency dari tiap atribut kunci ke atribut kunci

·         Jika terdapat ketergantungan parsial pada atribut harus membuat tabel baru

·         Perlu foreign key / tabel penghubung bagi atribut yang dipisah tadi

Tabel awal

2NF

Bentuk Normal Ketiga – 3NF

·         Memenuhi 2NF

·         Tak ada transitive dependency (ketergantungan sesama atribut non key)

Tabel awal

3NF


Bentuk Normal Boyce-Codd – BCNF

·         tiap functional dependency pada atribut / gabungan atribut diawali superkey

·         tiap tabel BCNF sudah tentu 3NF, tetapi tidak sebaliknya.

Tabel awal (sesuai 3NF)

BCNF

Bentuk Normal Keempat – 4NF

·         Memenuhi BCNF

·         Hanya ada 1 Atribut multivalue pada tabel

·         Tiap multivalued dependencies (MVD) harus functional dependencies

Tabel awal

4NF

Bentuk Normal Kelima – 5NF

·         Dibentuk berdasarkan Join dependence = tabel terdekomposisi bisa digabungkan (join) untuk tabel semula

Tabel awal

5NF

Terdapat bentuk normal lain selain bentuk diatas, seperti :

·         Domain-key normal form – DKNF (1981)

·         Elementary key normal form – EKNF (1982)

·         Sixth normal form / Bentuk Normal Keenam – 6NF (2003)

·         Essential tuple normal form – ETNF (2012)

Tingkatan normalisasi data menurut Malay Bhattacharyya (2020) – tabel oleh wikipedia :

Referensi :

Konsep Normalisasi dan Anomali Tabel. https://ocw.ui.ac.id/mod/resource/view.php?id=516

Tuteja, Sonal. Lossless Join and Dependency Preserving Decomposition. https://www.geeksforgeeks.org/lossless-join-and-dependency-preserving-decomposition/

Watt, Adrienne (October 2014). Database Design – 2nd Edition. https://opentextbc.ca/dbdesign01/chapter/chapter-11-functional-dependencies.

Database normalization. https://en.wikipedia.org/wiki/Database_normalization.

Bhattacharyya, Malay (February 2020). Database Management Systems, Database Normalization. https://www.isical.ac.in/~malaybhattacharyya/Courses/DBMS/Spring2020/Class%20V.pdf.

 

Sumber tabel :

·           https://en.wikipedia.org/wiki/First_normal_form

·           https://en.wikipedia.org/wiki/Second_normal_form

·           https://en.wikipedia.org/wiki/Third_normal_form

·           https://en.wikipedia.org/wiki/Boyce%E2%80%93Codd_normal_form

·           https://en.wikipedia.org/wiki/Fourth_normal_form

·           https://en.wikipedia.org/wiki/Fifth_normal_form

 

Komentar

Postingan Populer