Macam-macam Anomaly
Normalisasi
Definisi Normalisasi
Tujuan Normalisasi
Proses Normalisasi
Macam-macam Penyimpangan
(Anomaly)
Macam-macam Anomaly :
a. Insertion Anomaly
b. Deletion Anomaly
c. Update Anomaly
Di bawah ini terdapat tabel resep :
No_Pasien
Kode_Obat
Harga_Obat
P001
Kd01
2000
P002
Kd02
4500
P003
Kd01
2000
a. Insertion Anomaly
b. Deletion Anomaly
c. Update Anomaly
Dependency / Ketergantungan
Jenis-Jenis Ketergantungan
Jenis-jenis ketergantungan :
a. Ketergantungan Fungsional (Functional
Dependence)
b. Ketergantungan Fungsional Penuh (Fully
Functional Dependent)
c. Ketergantungan Transitif
d. Ketergantungan Parsial
e. Ketergantungan Determinan
a. Ketergantungan Fungsional
(Functional Dependence)
Contoh
Terdapat relasi PESANAN_JUAL yang
dinotasikan dengan :
PESANAN_JUAL
(PEMBELI,
KOTA,
BARANG, JUMLAH)
Yang
artinya
bahwa
relasi
PESANAN_JUAL mengandung atribut
PEMBELI, KOTA, BARANG dan JUMLAH.
PEMBELI
KOTA
BARANG
JUMLAH
P1
Yogya
B1
10
P1
Yogya
B2
P2
Solo
B1
P2
Solo
B2
P2
Solo
B3
P3
Klaten
B3
P3
Klaten
B4
contoh lain:
{Pembeli, Barang} Jumlah
{Pembeli, Barang} Kota
{Pembeli, Barang} {Jumlah, Kota}
b. Ketergantungan Fungsional
Penuh (Fully Functional
Dependent)
Y
mempunyai
dependensi
fungsional
terhadap X
Y tidak memiliki dependensi terhadap
bagian dari X
Notasi : X Y
c. Ketergantungan transitif
NIP
Nama
Gol_gaji
Gaji_pokok
0001
Ian
III A
600000
0002
Saputra
III B
650000
0003
Rohim
III A
600000
0004
Fani
III B
650000
XYZ
NIP Gol_gaji Gaji_pokok
d. Ketergantungan Determinan
Tahapan Normalisasi
Normalisasi
Sebuah tabel dikatakan baik (efisien) atau normal
jika memenuhi 3 kriteria sbb:
1.
2.
3.
Bentuk-bentuk Normal
1.
2.
3.
4.
5.
6.
Aturan :
Tidak adanya atribut multi-value,
atribut komposit atau kombinasinya.
Mendefinisikan atribut kunci.
Setiap atribut dalam tabel tersebut
harus bernilai atomic (tidak dapat dibagibagi lagi)
Atau:
Contoh 1 (samb)
Didekomposisi menjadi:
Tabel
Mahasiswa
Tabel Hobi
Contoh 2 (composite)
JadwalKuliah
Kodekul
NamaKul
Dosen
Kelas
Jadwal
JadwalKulia
h
Kodekul NamaKul
Dosen
Kelas
JadwalHari
JadwalJam
Aturan :
Sudah memenuhi dalam bentuk normal
kesatu (1NF)
Semua atribut bukan kunci hanya boleh
tergantung (functional dependency) pada atribut
kunci
Jika ada ketergantungan parsial maka atribut
tersebut harus dipisah pada tabel yang lain
Perlu ada tabel penghubung ataupun kehadiran
foreign key bagi atribut-atribut yang telah dipisah
tadi
Contoh
Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:
Mhs_nrp
mhs_nama
mhs_alamat
mk_kode
mk_nama
mk_sks
nihuruf
{Mhs_nrp, mk_kode}
mhs_nama
{Mhs_nrp, mk_kode} mhs_alamat
{Mhs_nrp, mk_kode} mk_nama
{Mhs_nrp, mk_kode} mk_sks
{Mhs_nrp, mk_kode}
nihuruf
Tabel
di atas perlu didekomposisi menjadi beberapa
Contoh (samb)
Functional dependencynya sbb:
{Mhs_nrp, mk_kode} nihuruf
(fd1)
Mhs_nrp
{mhs_nama, mhs_alamat}
(fd2)
fd1Mk_kode
(mhs_nrp, mk_kode,
nihuruf) mk_sks} Tabel
{mk_nama,
(fd3)
Nilai
fd2 (Mhs_nrp, mhs_nama, mhs_alamat)
Tabel
Mahasiswa
fd3 (mk_kode, mk_nama, mk_sks)
Tabel
MataKuliah
Aturan :
Contoh
Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:
Mahasiswa
Nrp
Nama
Alm_Jalan
Alm_Kota
Alm_Provinsi Alm_Kodepos
Contoh
Misal, tabel berikut tidak memenuhi 4NF:
Penerapan Normalisasi
Inserting / Penyisipan
Kita tidak dapat memasukkan kode dan nama supplier saja tanpa
adanya transaksi pembelian, sehingga supplier baru bisa
dimasukkan kalau ada transaksi pembelian.
Deleting / Penghapusan
Bila satu record / baris di atas dihapus, misal nomor faktur 779,
maka berakibat pada penghapusan data supplier S02 (Hitachi)
padahal data tersebut masih diperlukan.
Updating / Pengubahan
Kode dan nama supplier terlihat ditulis berkali-kali, bila nama
supplier berubah, maka di setiap baris yang ada harus dirubah, bila
tidak menjadi tidak konsisten.
2 NFLanj