Pengertian Anomali Data Base Anomali adalah proses pada basis data yang memberikan
efek samping yang tidak diharapkan ( misalnya menyebabkan
ketidakonsistenan data atau membuat suatu data menjadi hilang ketika
data dihapus)
Macam Anomali terdiri dari
Anomali peremajaan,
Anomali Penghapusan, dan
Anomali penyisipan
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.
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
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 :
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:
Bagian yang terletak disebelah kiri tanda panah biasa disebut
DETERMINAN / PENENTU dan bagian yang terletak di sebelah kanan panah
disebut DEPENDENSI / YANG TERGANTUNG.
Tanda {} biasanya digunakan untuk menentukan lebih dari satu atribut sebagai penentu atau sebagai yang tergantung.
Dependensi fungsional sepenuhnya
Definisi : Suatu atribut Y mempunyai dependensi fungsional penuh terhadap X jika
Y mempunyai dependensi fungsional terhadap X dan/atau
Y tidak memiliki dependensi terhadap bagian dari X
Contoh : Pembeli –> Kota
{Pembeli, Barang} –> Jumlah
Intinya : Kota mempunyai dependensi fungsional terhadap Pembeli atau
{Pembeli, Barang} tapi kota mempunyai dependensi fungsional sepenuhnya
terhadap pembeli bukan barang.
Dependensi Total
Definisi : Suatu atribut Y mempunyai dependensi total terhadap atribut X jika
Y memiliki dependensi fungsional terhadap X dan
X memiliki dependensi fungsional terhadap Y
Notasi : X<–> Y
Contoh : Tabel Pemasok
KodePemasok
NamaPemasok
Kota
K1
Kartika
Jakarta
C1
Citra
Bandung
C2
Candra
Jakarta
Pada kasus ini KodePemasok <–>NamaPemasok, karena setiap kode tidak mempunyai nama yang sama.
Dependensi Transitif
Definisi : Atribut Z mempunyai dependensi transitif terhadap X bila :
Y memiliki dependensi fungsional terhadap X
Z memiliki dependensi fungsional terhadap Y
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
Relasi :
Kuliah –> {Ruang, Waktu}
Ruang –> Tempat
Terlihat bahwa : Kuliah –> Ruang –> Tempat
Dengan demikian Tempat mempunyai dependensi transitif terhadap kuliah
Diagram Dependensi Fungsional (Diagram DF)
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
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 di atas sudah memenuhi bentuk normal 1NF
Bentuk Normal 2NF
Bentuk ini didefinisikan berdasarkan dependensi fungsional dengan syarat adalah :
Berada pada bentuk normal pertama
Semua atribut bukan kunci memiliki dependensi sepenuhnya terhadap kunci primer
Contoh :
Nama dan jabatan mempunyai dependensi fungsional terhadap NIP
Lama mempunyai dependensi fungsional terhadap NIP dan keahlian
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
Bentuk Normal 3NF
Berada dalam bentuk normal 2 NF
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
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 :
Seorang siswa dapat mengambil sejumlah kursus
Setiap tutor hanya mengajar satu kursus bahasa
Setiap siswa dalam satu kursus diajar oleh satu tutor
Suatu kursus bisa 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 :
Carilah semua penentu
Bila terdapat penentu yang bukan kunci kandidat, maka :
Pisahkan relasi tersebu
Buat penentu sebagai kunci primer
Dekomposisi berupa : ST (Siswa, Tutor) dan TK (Tutor, Kursus)