TEKNIK NORMALISASI
Proses
normalisasi merupakan proses pengelompokkan data elemen menjadi tabel-tabel
yang menyatakan entity dan relasinya.
Pada proses normalisasi selalu diuji apakah ada kesulitan saat
menambah, menghapus, mengubah, membaca suatu database. Bila masih ada kesulitan
berarti relasi pada database tersebut belum optimal dan relasi harus dipecah
dalam beberapa tabel sampai kesulitan yang dihadapai hilang. Atau dapat juga
dikatakan bahwa normalisasi adalah proses yang mengubah relasi yang memiliki
masalah ke dalam dua atau lebih tabel sehingga tak memiliki masalah lagi.
Masalah yang muncul disebut dengan anomaly. Anomaly adalah proses pada basis
data yang memberikan efek samping yang tidak diharapkan. (ketidakkonsistenan,
data hilang saat suatu data dihapus) à redudansi (data rangkap).
Anomali ada 3
macam :
Ø Anomali peremajaan/update
Ø Anomali penyisipan/insert
Ø Anomali penghapusan/delete
1.
Anomali peremajaan/update
Anonali ini terjadi bila pengubahan pada sejumlah tabel yang
mubadzir, tetapi tidak semua data diubah.
Contoh :
Terdapat relasi Dosen yang mengandung data Nama, Alamat, Mt_Kuliah
yang menyatakan identitas dosen dan mata kuliah yang diampu.
Dosen(Nama, Alamat, Mt_Kuliah)
|
Nama
|
Alamat
|
Mt_Kuliah
|
|
Kartika
Citra
Indra
Kartika
|
Jl. Bantul
Jl. Wates
Jl. Imogiri
Jl. Bantul
|
Aljabar
Pancasila
Kewiraan
Pascal
|
Seandainya dosen kartika berpindah alamat misalnya ke Jl. Kaliurang
dan pengubahan hanya dilakukan pada data pertama maka relasi akan menjadi :
Dosen(Nama, Alamat, Mt_Kuliah)
|
Nama
|
Alamat
|
Mt_Kuliah
|
|
Kartika
Citra
Indra
Kartika
|
Jl. Kaliurang
Jl. Wates
Jl. Imogiri
Jl. Bantul
|
Aljabar
Pancasila
Kewiraan
Pascal
|
Terlihat ada ketidakkonsistenan. Fakta pertama dosen kartika
beralamat di Jl. Kaliurang dan fakta kedua dosen kartika beralamat di Jl. Bantul
2.
Anomali penyisipan/insert
Anomali ini terjadi pada saat penambahan hendak dilakukan ternyata
ada elemen data yang masih kosong dan ternyata elemen tersebut menjadi kunci.
Contoh :
Sebuah relasi kursus berisi tiga atribut yaitu Nama_Siswa,
Nama_Kursus dan Biaya
Kursus(Nama_Siswa, Nama_Kursus dan Biaya)
|
Nama_Siswa
|
Nama_Kursus
|
Biaya
|
|
Sigit
Andi
Sigit
Anto
|
Bhs Inggris
Bhs Inggris
Bhs Perancis
Bhs jerman
|
80.000
80.000
75.000
70.000
|
Relasi
diatas menyatakan kursus-kursus yang diikuti oleh siswa dan jumlah biayanya.
Masalah akan timbul dibuka kursus baru tetapi belum ada siswanya. Misalnya Bhs
Belanda dengan biaya 90.000. akibatnya data kursus baru tersebut tidak bisa
dicatat.
3.
Anomali penghapusan/delete
Anomali ini terjadi sekiranya suatu baris/tupel dihapus dan sebagai
akibatnya terdapat data lain yang hilang. Dengan contoh kursus tersebut apa
yang terjadi jika Nama_Siswa Sigit dihapus, data yang menyatakan bahwa biaya
kursus Bhs Perancis 75.000 akan hilang.
Field/Atribut Kunci
Setiap file
selalu terdapat atribut kunci file berupa satu file atau satu set file yang
dapat mewakili record. Contoh Nomor Pegwai merupakan kunci dari tabel pegawai
dalam suatu perusahaan, setiap pencarian cukup dengan menyebutkan nomor pegawai
tersebut maka Nama, Alamat dan atribut lainnya kan diketahui.
Istilah-istilah
atribut :
1.
Candidate Key (kunci kandidat)
Adalah kunci yang unik yang dapat dipakai untuk mengidentifikasikan
suatu baris dalam tabel
Contoh : Nomor Induk, Nama
2.
Komposit key (Kunci Kombinasi)
Adalah kunci yang tersusun lebih dari satu atribut.
3.
Primary Key (Kunci Primer)
Adalah kunci kandidat yang dipilih menjadi kunci utama untuk
mewakili setiap kejadian (baris) dari setiap entity.
Contoh : Nomor mahasiwa, NIP
4.
Alternate Key (Kunci
Alternatif)
Adalah semua kunci kandidat yang tidak dipilih menjadi kunci primer
5.
Foreign Key (Kunci Tamu)
Adalah satu atribut yang menunjuk ke kunci primer pada tabel lain
atau satu atribut yang melengkapi satu relationship (hubungan) yang menunjuk ke
induknya.
Ketergantungan (Dependecsi)
Dependensi
menjelaskan hubungan antara atribut dalam sebuah tabel atau secara lebih khusus
menjelaskan nilai suatu atribut yang menentukan nilai atribut lainnya.
1.
Dependensi fungsional (fungctional
dependency)
Definisi :
Suatu atribut Y mempunyai dependensi fungsional terhadap atribut X
jika dan hanya jika setiap atribut X berhubungan dengan sebuah nilai Y.
Atau dapat dituangkan dalam notasi :
X à Y atau Y = f(X)
Dibaca : “X secara fungsional menentukan Y” atau X panah Y
Pada suatu tabel mahasiswa berisi atribut :
Mahasiswa(NIM, Nama, Jn_kelamin, Alamat)
Isi atribut Nama bergantung pada NIM, jadi dapat dikatakan bahwa
atribut Nama bergantung secara fungsi pada NIM. Jika anda mengetahui NIM, anda dapat menentukan
Nama mahasiswa. Artinya bahwa NIM yang sama Nama juga sama.
Notasi :
NIM Nama
Penentu (determinan) Yang tergantung (dependen)
2.
Dependensi fungsional
sepenuhnya
Definisi :
Suatu atribut Y mempunyai dependensi fungsional penuh terhadap
atribut X jika :
Ø
Y mempunyai dependensi fungsional
terhadap X
Ø
Y tidak memiliki dependent
terhadap bagian X
Contoh terdapat relasi Pelanggan :
Pelanggan(Kode_Pelanggan, Nama, Kota, Nomor_Telp)
Pada relasi ini :
- {Kode_Pelanggan, Kota} à Nomor_Telp
- Kode_Pelanggan à Nomor_Telp.
Nomor_Telp bergantung pada {Kode_Pelanggan, Kota}
dan juga bergantung pada Kode_Pelanggan yang tidak lain adalah bagian dari
{Kode_Pelanggan, Kota}, maka Nomor_Telp tidaklah
mempunyai dependensi fungsional sepenuhnya pada {Kode_Pelanggan, Kota} tetapi mempunyai
dependensi fungsional sepenuhnya pada Kode_Pelanggan.
3.
Dependensi Total
Definisi :
Suatu atribut Y mempunyai dependensi total terhadap X jika :
Ø
Y memiliki dependesi fungsional
terhadap X
Ø
X mempunyai dependesi
fungsional terhadap Y
Dinyatakan dengan notasi :
X « Y
Contoh relasi mahasiswa :
Mahasiswa(No_Mhs, Nama_Mhs, Alamat)
Pada contoh tersebut :
No_Mhs « Nama_Mhs
Dengan asumsi tidak ada nama mahasiswa yang sama
4.
Dependensi Trasitif
Definisi :
Atribut Z memiliki dependensi transitif terhadap X jika :
Ø
Y memiliki dependesi fungsional
terhadap X
Ø
Z memiliki dependesi fungsional
terhadap Y
Contoh :
|
Mt_Kuliah
|
Ruang
|
Tempat
|
Waktu
|
|
AP I
Basis Data
|
2
1
|
Lt II
Lt I
|
Senin,
07.00-09.00
Selasa,
10.00-12.00
|
Pada relasi tersebut :
Mt_Kuliah à {Ruang, Waktu}
Ruang à Tempat
Terlihat :
Mt_Kuliah à Ruang à
Tempat
Dengan demikian Tempat mempunyai dependensi transitif terhadap
Mt_Kuliah
Dekomposisi Tak Hilang
Pada suatu
proses normalisasi sering kali terjadi bahwa suatu relasi harus dipecah menjadi
dua atau lebih. Proses semacam ini sering disebut dengan proses dekomposisi.
Dekompisisi yang harus dilakukan adalah dekomposisi tak hilang, artinya bahwa
dalam melakukan dekomposisi jangan sampai ada relasi yang hilang ketika relasi
dipecah menjadi relasi-relasi lain.
Contoh :
Bentuk semula :
|
Nomor
|
Nama
|
Jurusan
|
|
001
002
003
|
Joko
Nawang
Joko
|
TI
SI
KA
|
Dekomposisi tak
hilang
|
Nomor
|
Nama
|
|
Nomor
|
Jurusan
|
|
001
002
003
|
Joko
Nawang
Joko
|
|
001
002
003
|
TI
SI
KA
|
Dekomposisi
hilang
|
Nomor
|
Nama
|
|
Nama
|
Jurusan
|
|
001
002
003
|
Joko
Nawang
Joko
|
|
Joko
Nawang
Joko
|
TI
SI
KA
|
Proses Normalisasi
Proses
normalisasi merupakan proses pengelompokkan data elemen menjadi tabel-tabel
yang menunjukkan entiti dan relasinya.
Bentuk-Bentuk Normalisasi
Bentuk normal adalah suatu aturan yang
dikenakan pada relasi-relasi dalam basis data dan harus dipenuhi oleh
relasi-relasi tersebut pada level-level normalisasi.
Beberapa level
pada normalisasi adalah :
Ø Bentuk Normal Pertama (1NF)
Ø Bentuk Normal Kedua (2NF)
Ø Bentuk Normal Ketiga (3NF)
Ø Bentuk Boyce Codd (BCNF)
Ø Bentuk Normal Keempat (4NF)
Ø Bentuk Normal Kelima (5NF)
§
1NF – 3NF dibuat oleh E.F. Codd
merupakan bentuk yang banyak dipakai pada suatu relasi, bila ketiga bentuk
tersebut dipenuhi maka persoalan anomali tidak muncul lagi.
§
Boyce Codd merupakan bentuk
revisi dari bentuk 3NF
§
4NF dan 5NF dikemukakan oleh
Fagin, hanya dipakai untuk kasus-kasus khusus yakni pada relasi yang mengandung
dependensi nilai banyak.
1.
Bentuk Tak Normal
Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada
keharusan untuk mengikuti format tertentu, dapat saja data tidak lengkap atau
terduplikasi. Atau data dikumpulkan apa adanya sesuai bentuk aslinya.
Contoh :
Seorang dosen mengampu mata kuliah yang memiliki beberapa kelas.
|
NIP
|
Nama
|
Mt_Kuliah
|
Kelas
|
Ruang
|
|
101
102
103
|
Bimo
Janoko
Werkudoro
|
Pancasila
Basis Data
Matematika
|
IA
IB
IC
IIA
IIB
IIC
IA
IB
|
R3
R2
R1
R1
R2
R3
R1
R2
|
Pada contoh tersebut kelas merupakan atribut yang berulang (misalnya
Pancasila memiliki 3 kelas dan Matematika memiliki 2 kelas).
2.
Bentuk Normal Pertama
(1NF)
Definisi :
Suatu relasi berada dalam bentuk normal pertama jika dan hanya jika
setiap atribut bernilai tunggal untuk setiap baris. Data dibentuk dalam satu
record demi satu record dan nilai dari field-field berupa “atomic value”.
Tidak ada set atribut yang beruang atau bernilai ganda (multivalue).
Data dalam bentuk tidak normal dapat dibuat dalam bentuk 1NF :
|
NIP
|
Nama
|
Mt_Kuliah
|
Kelas
|
Ruang
|
|
101
101
101
102
102
102
103
103
|
Bimo
Bimo
Bimo
Janoko
Janoko
Janoko
Werkudoro
Werkudoro
|
Pancasila
Pancasila
Pancasila
Basis Data
Basis Data
Basis Data
Matematika
Matematika
|
IA
IB
IC
IIA
IIB
IIC
IA
IB
|
R3
R2
R1
R1
R2
R3
R1
R2
|
Persoalan anomali (peremajaan, penyisipan, penghapusan) biasanya
muncul pada relasi yang hanya memenuhi bentu 1NF.
3.
Bentuk Normal Kedua
(2NF)
Definisi :
Suatu relasi berada dalam bentuk normal kedua jika dan hanya jika :
§
Berada dalam bentuk normal pertama
§
Semua atribut bukan kunci
memiliki dependensi sepenuhnya terhadap kunci primer
Untuk membentuk normal kedua harus sudah ditentukan kunci-kunci
fieldnya. Kunci field haruslah unik dan dapat mewakili atribut lain yang
menjadi anggotanya. Dalam bentuk normal kedua mensyaratkan setiap atribut
bergantung pada kunci primer.
Pada contoh diatas relasi tidak termasuk 2NF walaupun memenuhi 1NF.
Perhatikan Nama dan Mt_Kuliah mempunyai dependensi penuh terhadap NIP (NIP
sama, Nama sama dan Mt_Kuliah sama), namun tidak untuk Kelas dan Ruang.
Untuk mengubah suatu relasi yang tergolong 1NF ke bentuk 2NF perlu
dilakukan dekomposisi pada relasi tersebut. Proses dekomposisi dapat dilakukan
dengan menggambarkan diagram dependensi fungsional terlebih dahulu. Berdasarkan
diagram ini, relasi dalam bentuk normal pertama dipecah ke sejumlah fungsi.
§
Nama dan MT_Kuliah memiliki
dependensi fungsional terhadap NIP
§
Ruang
memiliki dependensi fungsional terhadap NIP dan Kelas
§
Pendekomposisian diatas
menghasilkan dua relasi misalnya NNM dan NKR.
NNM(NIP, Nama, Mt_Kuliah)
|
NIP
|
Nama
|
Mt_Kuliah
|
|
101
102
103
|
Bimo
Janoko
Werkudoro
|
Pancasila
Basis Data
Matematika
|
NKR(NIM, Kelas, Ruang)
|
NIP
|
Kelas
|
Ruang
|
|
101
101
101
102
102
102
103
103
|
IA
IB
IC
IIA
IIB
IIC
IA
IB
|
R3
R2
R1
R1
R2
R3
R1
R2
|
Masalah yang sering terjadi pada 2NF diakibatkan oleh adanya
dependensi transitif. Dependensi transitif mengkibatkan kemungkinan munculnya
permasalahan sebagaimana bentuk normal pertama.
4.
Bentuk Normal Ketiga
(3NF)
Definisi :
Suatu relasi berada dalam bentuk normal ketiga jika :
§
Berada dalam bentuk normal
kedua
§
Setiap atribut bukan kunci
tidak memiliki dependensi transitif terhadap kunci primer.
Relasi NNM dan NKR memenuhi kriteria diatas, sehingga relasi
tersebut memnuhi 3NF.
Contoh relasi memenuhi 2NF tetapi tidak 3NF :
|
No_Mhs
|
Semester
|
Kode_Mk
|
Nama_Mk
|
|
111
111
111
112
112
113
|
I
I
I
I
I
II
|
K01
A01
B01
A01
B01
B01
|
Kalkulus
Algoritma
Basis
Data
Algoritma
Basis
Data
Basis
Data
|
Pada relasi diatas kunci primer gabungan No_Mhs + Semester, sehingga
Kode_MK dan Nama_Mk mempunyai dependensi fungsional terhadap kunci primer.
Namun perlu diperhatikan jika Kode_Mk sama, maka Nama_Mk juga sama. Hal ini
perlu diperhatikan bahwa ada suatu ketergantungan kepada Kode_MK (Kode_MK
sebagai penentu). Jadi Nama_Mk memiliki dependensi fungsional terhadap Kode_Mk,
sehingga Nama_Mk tidak memiliki dependensi secara langsung terhadap kunci
primer. Sehingga relasi diatas perlu didekomposisi lagi menjadi dua relasi :
|
No_Mhs
|
Semester
|
Kode_Mk
|
|
111
111
111
112
112
113
|
I
I
I
I
I
II
|
K01
A01
B01
A01
B01
B01
|
|
Kode_Mk
|
Nama_Mk
|
|
K01
A01
B01
|
Kalkulus
Algoritma
Basis
Data
|

Makasih sobat buat teknis normalsasi
BalasHapus