Landasan
Teori
“NORMALISASI”
Pengertian
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.
Langkah-Langkah
Pada proses normalisasi terhadap tabel pada database dapat
dilakukan dengan beberapa tahap/langkah normalisasi antara lain :
1.
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.
Repeating Group (elemen data berulang) adalah (No_Property,
Alamat_Property,Tgl_Pinjam, Tgl_Selesai, Biaya, No_Pemilik, Nama_Pemilik).
2.
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.
tiapatribut
hanya memiliki satu pengertian.
Suatu tabel dianggap normal ke satu
(1NF) jika :
-
Tidak terdapat baris yang bernilai ganda atau duplikat.
-
Masing - masing baris bernilai
tunggal dan tidak bernilai null.
Langkah – langkah :
-
Isikan setiap data bernilai tunggal dan tidak null
-
Membuang perulangan data dalam satu baris dengan baris yang lain
Langkah pertama yang dilakukan pada Tabel Pelanggan Biaya
(pada Tabel 9.3) tersebut adalah menghilangkan elemen data yang berulang
dengan data-data Pelanggan yang sesuai pada setiap baris. Hasil dari tabel
yang telah memenuhi bentuk normal pertama dapat dilihat pada Tabel 9.4.
kita dapat mengidentifikasi primary key untuk relasi Pelanggan_Biaya yang
masih memiliki composite key (No_Pelanggan, No_Property). Pada kasus ini
kita akan memperoleh primary key yang bersifat composite key. Relasi
Pelanggan_Biaya dapat didefinisikan sebagai berikut. Pelanggan_Biaya
=(No_Pelanggan, No_Property, Nama, Alamat_Property, Tgl_Pinjam, Tgl_Selesai,
Biaya,No_Pemilik, Nama_Pemilik)
3.
BENTUK NORMAL KE DUA (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.
Bentuk normal kedua (2NF) terpenuhi
jika :
-
Harus telah berbentuk normal pertama (1NF).
-
pada sebuah tabel
semua atribut yang
tidak termasuk dalam
primary key memiliki ketergantungan fungsional
pada primary key
secara utuh. Suatu atribut
dikatakan ketergantungan fungsional
jika harga pada
at ribut tersebut menentukan
harga dari atribut yang lain. Misalnya, nim → mhs_nama.
Langkah – langkah :
-
Jika terdapat atribut yang bergantung terhadap atribut bukan kunci utama
dan merupakan atribut kunci maka pecah menjadi table baru
Tabel
Tabel Pelanggan Biaya dalam bentuk
normal kedua (2-NF)
4.
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.
Misalkan kita akan melakukan update terhadap nama dari
seorang Pemilik (pemilik), seperti Durki (No_Pemilik: CO93), kita harus
melakukan update terhadap dua baris dalam relasi Property_Pemilik (lihat Tabel
9.5, (c) relasi Property_Pemilik). Jika kita hanya mengupdate satu baris saja,
sementara baris yang lainnya tidak, maka data didalam database tersebut akan
inkonsisten / tidak teratur. Anomaly update ini disebabkan oleh suatu
ketergantungan transitif (transitive dependency). Kita harus menghilangkan
ketergantungan tersebut dengan melakukan normalisasi ketiga (3-NF).
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. 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 kriteria normal ketiga (3-NF).
Bentuk normal ketiga (3NF) terpenuhi
jika :
-
Harus telah berbentuk normal kedua (2NF).
-
Tidak terdapat anomali
– anomali hasil
dari ketergantungan transitif. Ketergantungan transitif adalah
ketergantungan fungsional antara 2 atau lebih atribut bukan kunci.
Langkah – langkah :
-
Pastikan semua atribut non kunci bergantung penuh terhadap atribut
kunci.
-
Pisahkan menjadi tabel baru jika menemukan ketergantungan transitif
dalam tabel tersebut.
Seluruh atribut non-primary key pada relasi Property_Pemilik
di atas terlihat memiliki ketergantungan fungsional (functional
dependency) terhadap primary key, kecuali Nama_Pemilik yang masih memiliki
ketergantungan fungsional (functional dependency) terhadap No_Pemilik.
Inilah contoh ketergantungan dari transitif (transitive dependency), yang
terjadi ketika atribut non-primary key (Nama_Pemilik) bergantung secara
fungsi terhadap satu atau lebih atribut non-primary key lainnya (No_Pemilik).
Kita harus menghilangkan ketergantungan transitif (transitive dependency)
tersebut dengan menjadikan relasi Property_Pemilik menjadi 2 relasi /
tabel dengan format / bentuk sebagai berikut.
· Relasi / Tabel
Property_Untuk_Pemilik yang terdiri dari atribut-atribut:
Alamat_Property, Biaya, No_PemilikâNo_property
{No_property sebagai primary key}
· Dan relasi Pemilik yang terdiri
dari atribut-atribut:
Nama_PemilikâNo_Pemilik
{No_Pemilik sebagai primary key}
Normalisasi
tabel Pelanggan_Biaya sampai ke bentuk normal ketiga adalah sebagai berikut:
Seluruh
atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional
terhadap primary key di relasi itu saja.
5. BOYCE CODD NORMAL FORM (BCNF)
Secara praktis tujuan analisis database cukup sampai pada
3NF, Akan tetapi dalam suatu kasus tertentu
lebih baik bila
dapat mencapat BCNF.
Beberapa pemikir menyamakan
antara 3NF dengan BCNF. Bentuk normal BCNF terpenuhi jika :
-
Masing-masing
atribut utama bergantung fungsional penuh pada masing kunci dimana kunci
tersebut bukan bagiannya.
-
Setiap determinan
atribut-atribut relasi adalah
kunci relasi atau
kandidat kunci.
-
BCNF
dapat memiliki lebih dari satu kunci.
-
BCNF
hampir sama dengan 3NF.
Langkah
– langkah :
-
Hilangkan dependensi pada bukan kunci kandidat.
Daftar Pustaka :
Modul Praktikum Desain Basis Data/ Praktikum
6/ Normalisasi.