BAD DATABASE!!!
• Redundansi
• Data untuk nama, dan kota diulangi untuk tiap pembelian yang
dibuat
• Tempat yang terbuang percuma
• Proses update yang rumit, dapat menyebabkan inkonsistensi nilai
atribut, contohnya untuk atribut harga.
• Nilai null
• Tidak dapat menyimpan informasi tentang sebuah nama apabila
tidak ada pembelian.
• Dapat diselesaikan dengan penggunaan nilai null, tetapi nilai null
sulit ditangani.
CONTOH 2:
NIM KD MK BIAYA
• Insertion Anomaly
• Merupakan error atau kesalahan yang terjadi sebagai akibat dari operasi
menyisipkan tuple/record pada sebuah relasi.
• Delete Anomaly
• Merupakan error atau kesalahan yang terjadi sebagai akibat dari operasi
penghapusan terhadap tuple/record pada sebuah relasi.
• Update Anomaly
• Merupakan error atau kesalahan yang terjadi sebagai akibat dari operasi
perubahan (update) tuple/record pada sebuah relasi.
CONTOH 1:
RELASI KULIAH
1. Insertion Anomaly
2. Delete Anomaly
3. Update Anomaly
PENYELESAIAN:
Kd_MK Biaya
M02 45
M02 45
M04 55
M03 40
CONTOH 2:
KETERGANTUNGAN FUNGSIONAL
• Definisi :
• Atribut Y pada relasi R dikatakan tergantung fungsional pada
atribut X (R.X ---> R.Y), jika dan hanya jika setiap nilai X
pada relasi R mempunyai tepat satu nilai Y pada R.
• Misal, terdapat skema database Pemasok-barang :
• Pemasok (No-pem, Na-pem)
• Tabel PEMASOK-BARANG
No_Pem Nm_Pem
P01 Bintang
P02 Sinar
P03 Baru
Ketergantungan fungsional :
No-pem --> Nm-pem
No-bar, No-pem --> Jumlah (Tergantung penuh thd keynya)
KETERGANTUNGAN TRANSITIF
• Definisi :
• Atribut Z pada relasi R dikatakan tergantung transitif pada
atribut X , jika atribut Y tergantung pada atribut X pada relasi
R dan atribut Z tergantung pada atribut Y pada relasi R.
• (X Y, Y Z , maka X Z)
No-pem Kode-kota Kota No-bar Jumlah
P01 1 Jakarta B01 1000
P01 1 Jakarta B02 1500
P01 1 Jakarta B03 2000
P02 3 Bandung B03 1000
P03 2 Surabaya B02 2000
Ketergantungan transitif :
No-pem Kode-kota
Kode-kota Kota , maka No-pem Kota
LANGKAH-LANGKAH NORMALISASI
Atau:
Tabel Hobi
ATAU
MAHASISWA
mhs_nrp mhs_nama mhs_alamat
MATAKULIAH
mk_kode mk_nama mk_sks
Bentuk Normal Ketiga:
• Bentuk data telah memenuhi kriteria bentuk normal ke dua.
• Atribut bukan kunci(non-key attribute) tidak boleh memiliki
ketergantungan fungsional terhadap atribut bukan kunci
lainnya. Seluruh atribut bukan kunci pada suatu relasi hanya
memiliki ketergantungan fungsional terhadap primary key
di relasi itu saja.
CONTOH
karena masih terdapat atribut non primary key (yakni alm_kota dan
alm_Provinsi) yang memiliki ketergantungan terhadap atribut non
primary key yang lain (yakni alm_kodepos):
alm_kodepos {alm_Provinsi, alm_kota}
Sehingga tabel tersebut (Nrp,
Mahasiswa perlu didekomposisi menjadi:
nama, alm_jalan,
alm_kodepos)
Kodepos (alm_kodepos, alm_provinsi,
alm_kota)
BOYCE-CODE NORMAL FORM (BCNF)
MENGAPA ????
Karena:
1. Tidak ada data yang berulang
2. Setiap domain terisi dengan data (tidak ada domain
yang kosong).
Bentuk normal 2 (2NF)
Belum memenuhi kriteria 3NF,
Karena atribut non-key Nilai dan
Bobot masih memiliki ketergantu-
ngan fungsional.