0
NORMALISASI TABEL RELASI
Posted by jujur
on
10:41 AM
Ø Normalisasi
adalah proses untuk menciptakan suatu table (relasi) dalam basis data dengan
tujuan untuk mengurangi kemubaziran.
Ø Masalah-masalah yang timbul dalam
pembuatan table yang disebut dengan anomali. Anomali adalah proses pada basis data yang mempunyai efek samping yang
tidak diharapkan. Misal : ketidakkonsistenan data, suatu data hilang pada saat
dihapus, dll.
Ø Anomali ada 3 jenis yaitu :
a. Anomali peremajaan
Anomali ini terjadi bila ada
perubahan pada sejumlah data yang mubazir, tetapi tidak seluruhnya diubah.
Contoh : Tabel Pesanan
Pemasok
|
Kota
|
Barang
|
Jumlah
|
Kartika
|
Jakarta
|
Mouse
|
5
|
Citra
|
Bandung
|
Monitor
|
2
|
Yudi
|
Medan
|
CPU
|
2
|
Citra
|
Bandung
|
Printer
|
1
|
Seandainya Citra dengan kota Bandung pindah ke Bogor maka pengubahan data
hanya dilakukan pada data pertama menjadi : Tabel Pesanan
Pemasok
|
Kota
|
Barang
|
Jumlah
|
Kartika
|
Jakarta
|
Mouse
|
5
|
Citra
|
Bogor
|
Monitor
|
2
|
Yudi
|
Medan
|
CPU
|
2
|
Citra
|
Bandung
|
Printer
|
1
|
Di sini terlihat bahwa data tentang
pemasok Citra tidak sama yang menyebabkan ketidakkonsistenan data.
b. Anomali Penyisipan
Anomali ini terjadi pada saat
penambahan data ternyata ada elemen yang kosong dan elemen tsb justru menjadi
key. Contoh : Tabel Kursus
NoSiswa
|
Kursus
|
Biaya
|
10
|
Bhs.Inggris
|
60000
|
10
|
Bhs.Perancis
|
80000
|
10
|
Bhs.Jepang
|
70000
|
15
|
Bhs.Inggris
|
60000
|
20
|
Bhs.Jepang
|
70000
|
Misalnya akan dibuka kursus baru
yaitu Bhs.Jerman dengan biaya 75000 akan tetapi belum ada seorangpun yang ikut
kursus ini, shg data menjadi : Tabel Kursus
NoSiswa
|
Kursus
|
Biaya
|
10
|
Bhs.Inggris
|
60000
|
10
|
Bhs.Perancis
|
80000
|
10
|
Bhs.Jepang
|
70000
|
15
|
Bhs.Inggris
|
60000
|
20
|
Bhs.Jepang
|
70000
|
Bhs.Jerman
|
75000
|
c.
Anomali penghapusan
Anomali ini terjadi apabila dalam
satu baris/ tuple ada data yang akan dihapus sehingga akibatnya terdapat data
lain yang hilang. Contoh pada table kursus data NoSiswa 20 akan dihapus karena
sudah tidak ikut kursus lagi sehingga akibatnya data kursus bhs jepang dan
biaya 70000 akan ikut terhapus.
Ø Dependensi (Ketergantungan)
Konsep dasar pada tahap
normalisasi yang menjelaskan hubungan atribut atau secara lebih khusus
menjelaskan nilai suatu atribut yang menentukan atribut lainnya.
Ø Macam-macam dependensi, yaitu :
a. Dependensi fungsional
Definisi : Suatu atribut Y mempunyai dependensi fungsional
terhadap atribut X jika dan hanya jika setiap nilai X berhubungan dengan sebuah
nilai Y.
Notasi : X Y (X secara fungsional menentukan Y)
Contoh : Tabel
Pesanan
Pembeli
|
Kota
|
Barang
|
Jumlah
|
P1
|
Yogya
|
B1
|
10
|
P1
|
Yogya
|
B2
|
5
|
P2
|
Jakarta
|
B1
|
4
|
P2
|
Jakarta
|
B2
|
7
|
P3
|
Solo
|
B3
|
6
|
P3
|
Solo
|
B4
|
6
|
Pembeli secara fungsional menentukan kota,
sebab setiap pembeli yang sama mempunyai
kota yang sama,
dengan demikian : Pembeli Kota
contoh lain :
{Pembeli, Barang} Jumlah
Keterangan:
v Bagian yang terletak disebelah kiri
tanda panah biasa disebut DETERMINAN / PENENTU dan bagian yang terletak di sebelah
kanan panah disebut DEPENDENSI / YANG TERGANTUNG.
v Tanda {} biasanya digunakan untuk
menentukan lebih dari satu atribut sebagai penentu atau sebagai yang
tergantung.
b. Dependensi fungsional sepenuhnya
Definisi : Suatu atribut Y mempunyai dependensi
fungsional penuh terhadap X jika
v Y mempunyai dependensi fungsional
terhadap X dan/atau
v Y tidak memiliki dependensi terhadap
bagian dari X
Contoh : Pembeli Kota
{Pembeli, Barang} Jumlah
v Intinya : Kota
mempunyai dependensi fungsional terhadap Pembeli atau {Pembeli, Barang} tapi kota mempunyai dependensi
fungsional sepenuhnya terhadap pembeli bukan barang.
c.
Dependensi Total
Definisi : Suatu atribut Y mempunyai dependensi
total terhadap atribut X jika
v Y memiliki dependensi fungsional
terhadap X dan
v X memiliki dependensi fungsional
terhadap Y
v Notasi : X Y
v Contoh : Tabel Pemasok
KodePemasok
|
NamaPemasok
|
Kota
|
K1
|
Kartika
|
Jakarta
|
C1
|
Citra
|
Bandung
|
C2
|
Candra
|
Jakarta
|
v Pada kasus ini
KodePemasok
NamaPemasok, karena setiap kode tidak mempunyai nama yang sama.
d. Dependensi Transitif
Definisi : Atribut Z mempunyai dependensi
transitif terhadap X bila :
v Y memiliki dependensi fungsional
terhadap X
v Z memiliki dependensi fungsional
terhadap Y
v Contoh :
Kuliah
|
Ruang
|
Tempat
|
Waktu
|
Jarkom
|
Merbabu
|
Gedung Utara
|
Senin
|
Basis Data
|
Arjuna
|
Gedung Selatan
|
Selasa
|
Matematika
|
Merapi
|
Gedung Barat
|
Rabu
|
Fisika
|
Merbabu
|
Gedung Timur
|
Kamis
|
v Relasi : Kuliah {Ruang, Waktu}
Ruang Tempat
Terlihat bahwa : Kuliah Ruang Tempat
v Dengan demikian Tempat mempunyai dependensi
transitif terhadap kuliah
Ø Diagram Dependensi Fungsional (Diagram DF)
Adalah diagram yang
digunakan untuk menggabarkan dependensi fungsional. Diagram ini menunjukkan
hubungan antara atribut yang menjadi penentu atribut lainnya, dengan hubungan
yang dinyatakan dengan tanda panah. Seperti contoh diatas dapat digambarkan
diagram DF sebagai berikut :
Ø Dekomposisi
Pada tahap normalisasi
sering kali terjadi pemecahan table kedalam bentuk dua atau lebih relasi.
Proses pemecahaan ini disebut dengan dekomposisi. Syarat : Tidak ada informasi
yang hilang ketika suatu relasi dipecah menjadi relasi-relasi lain. Contoh :
Terdapat suatu relasi awal sebagai berikut :
Nim
|
Nama
|
Program Studi
|
95001
|
Andi
|
Ekonomi
|
95002
|
Vira
|
Teknik
|
95003
|
Andi
|
Fisika
|
Akan dibentuk kedalam
dekomposisi tak hilang menjadi :
Nim
|
Nama
|
Nim
|
Program Studi
|
|
95001
|
Andi
|
95001
|
Ekonomi
|
|
95002
|
Vira
|
95002
|
Teknik
|
|
95003
|
Andi
|
95003
|
Fisika
|
Pada relasi awal dapat
diketahui informasi sebagai berikut : 95001 adalah ANDI program
studi Ekonomi. Setelah proses dekomposisi tak hilang hasilnya adalah
sama 95001 adalah ANDI dan 95001 program studi Ekonomi.
Contoh dekomposisi hilang adalah
Nim
|
Nama
|
Nama
|
Program Studi
|
|
95001
|
Andi
|
Andi
|
Ekonomi
|
|
95002
|
Vira
|
Vira
|
Teknik
|
|
95003
|
Andi
|
Andi
|
Fisika
|
95001 bernama ANDI,
tetapi ANDI dengan program studi Ekonomi atau Fisika?
Ø Bentuk Normalisasi
1. Bentuk normalisasi pertama (1NF)
Dikenakan pada tabel yang sama sekali
belum ternomalisasi. Tabel yang belum ternomalisasi adalah tabel yang mempunyai
atribut berulang. Contoh : terdapat suatu data sebagai berikut :
NIP
|
Nama
|
Jabatan
|
Keahlian
|
Lama Kerja
|
107
|
Ilham
|
Analis Senior
|
Cobol
|
6
|
Oracle
|
1
|
|||
109
|
Ryan
|
Analis Junior
|
Cobol
|
2
|
C++
|
2
|
|||
120
|
Fika
|
Programmer
|
Dbase
|
3
|
Sybase
|
1
|
|||
Cobol
|
1
|
Pada contoh di atas, keahlian
mempunyai atribut yang berulang. Untuk itu akan dibentuk ke normal 1NF. Syarat
Normal 1NF adalah suatu relasi dikatakan dalam bentuk normal pertama jika dan
hanya jika setiap atribut bernilai tunggal dalam satu baris.
NIP
|
Nama
|
Jabatan
|
Keahlian
|
Lama Kerja
|
107
|
Ilham
|
Analis Senior
|
Cobol
|
6
|
107
|
Ilham
|
Analis Senior
|
Oracle
|
1
|
109
|
Ryan
|
Analis Junior
|
Cobol
|
2
|
109
|
Ryan
|
Analis Junior
|
C++
|
2
|
120
|
Fika
|
Programmer
|
Dbase
|
3
|
120
|
Fika
|
Programmer
|
Sybase
|
1
|
120
|
Fika
|
Programmer
|
Cobol
|
1
|
Tabel d i atas sudah memenuhi bentuk
normal 1NF
2. Bentuk Normal 2NF
Bentuk ini didefinisikan berdasarkan dependensi
fungsional dengan syarat adalah :
v Berada pada bentuk normal pertama
v Semua atribut bukan kunci memiliki dependensi
sepenuhnya terhadap kunci primer
Contoh :
v Nama
dan jabatan mempunyai dependensi fungsional terhadap NIP
v Lama mempunyai dependensi fungsional
terhadap NIP dan keahlian
v Bentuk tabelnya adalah : NNJ (NIP,
Nama, Jabatan) dan NKL (NIP, Keahlian, Lama Kerja)
NIP
|
Nama
|
Jabatan
|
107
|
Ilham
|
Analis Senior
|
109
|
Ryan
|
Analis Junior
|
120
|
Fika
|
Programmer
|
NIP
|
Keahlian
|
Lama Kerja
|
107
|
Cobol
|
6
|
107
|
Oracle
|
1
|
109
|
Cobol
|
2
|
109
|
C++
|
2
|
120
|
Dbase
|
3
|
120
|
Sybase
|
1
|
120
|
Cobol
|
1
|
3.
|
v Berada dalam bentuk normal 2 NF
v Setiap atribut bukan kunci tidak
memiliki dependensi transitif terhadap kunci primer
Contoh di atas sudah memenuhi normal
3NF karena : Tidak memiliki dependensi transitif, yaitu
NIP
{Nama, Jabatan}
{NIP, Keahlian}
Lama Kerja
4. Bentuk Normal boyce-codd (BCNF)
Bentuk ini dilakukan jika dan hanya
jika semua penentu (determinan) adalah kunci kandidat (atribut yang bersifat
unik). BCNF merupakan perbaikan dari 3NF. Relasi yang memenuhi BCNF pasti
memenuhi 3NF tetapi tidak sebaliknya. Contoh : Tabel SKT
Siswa
|
Kursus
|
Tutor
|
Anwar
|
Bhs. Perancis
|
Pierre
|
Anwar
|
Bhs. Inggris
|
Richard
|
Budi
|
Bhs. Perancis
|
Pierre
|
Cecep
|
Bhs. Inggris
|
Suzanne
|
Tabel di atas adalah suatu relasi
yang memenuhi 3NF tetapi tidak memenuhi BCNF. Relasi diatas didasarkan oleh
fakta :
v Seorang siswa dapat mengambil
sejumlah kursus
v Setiap tutor hanya mengajar satu
kursus bahasa
v Setiap siswa dalam satu kursus diajar
oleh satu tutor
v Suatu kursus bis dipegang oleh
beberapa tutor
Pada keadaan tersebut di atas dapat
digambarkan sebagai berikut : Siswa & Kursus dan Siswa & Tutor.
Memenuhi bentuk 3NF karena tidak ada dependensi
transitif pada relasi tersebut. Tetapi tidak memenuhi BCNF karena adanya
determinan Tutor yang berdiri sebagai kunci kandidat. Realsi SKT menyebabkan
anomali karena baris Cecep dihapus maka Suzane sebagai tutor jug akan terhapus.
Cara konversi dari 3NF ke BCNF adalah :
v Carilah semua penentu
v Bila terdapat penentu yang bukan
kunci kandidat, maka :
ü Pisahkan relasi tersebut
ü Buat penentu sebagai kunci primer
ü Dekomposisi berupa : ST (Siswa,
Tutor) dan TK (Tutor, Kursus)
|
|