NORMALISASI Basis Data
Gentisya Tri Mardiani, S.Kom., M.Kom
Normalisasi • Proses untuk menciptakan suatu tabel (relasi) dalam basis data dengan tujuan untuk mengurangi kemubaziran. • Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data, teknik pengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi). • Proses normalisasi adalah proses pengelompokkan data elemen menjadi tabel-tabel yang menunjukkan entity dan relasinya.
Anomali • Masalah-masalah yang timbul dalam pembuatan tabel yang disebut dengan anomali. • Anomali adalah proses pada basis data yang mempunyai efek samping yang tidak diharapkan. • Anomali ada 3 jenis yaitu: – Anomali pengubahan – Anomali penyisipan – Anomali penghapusan
Anomali Pengubahan •
Anomali ini terjadi bila ada perubahan pada sejumlah data, tetapi tidak seluruhnya diubah. • Contoh: Tabel pesanan
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
Anomali Penghapusan • Anomali ini terjadi apabila dalam satu baris/ tuple ada data yang akan dihapus sehingga akibatnya terdapat data lain yang hilang. • Contoh: data NoSiswa 10 akan dihapus dengan data kursus perancis karena sudah tidak ikut kursus.
Depedensi (ketergantungan) • • • •
Depedensi Fungsional Depedensi Fungsional Sepenuhnya Depedensi Total Depedensi Transitif
Depedensi Fungsional • Suatu atribut Y mempunyai depedensi fungsional terhadap atribut X jika dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y. • Notasi: X Y X dan Y adalah atribut dari sebuah tabel. Berarti secara fungsional X menentukan Y atau Y tergantung pada X, jika dan hanya jika ada 2 baris data dengan nilai X yang sama, maka nilai Y juga sama
Depedensi Fungsional • Contoh: Tabel Pesanan
Pembeli Kota Pembeli, Barang} Kota
Contoh Depedensi Fungsional NIM
NamaMhs
Matkul
Nilai
98001
Ali Akbar
Basis Data
A
98004
Susanti
Basis Data
B
98001
Ali Akbar
Bahasa Indonesia
A
98001
Ali Akbar
Struktur Data
B
98003
Budi Hasan
Struktur Data
C
• Tentukan depedensi fungsionalnya! – NIM NamaMhs – {NIM, Matkul} Nilai
Depedensi Fungsional Sepenuhnya • Suatu atribut Y mempunyai depedensi fungsional penuh terhadap X jika – Y mempunyai depedensi fungsional terhadap X dan – Y tidak memiliki depedensi terhadap bagian dari X
• Contoh: Tabel Pesanan Pembeli Kota
Depedensi Total • Suatu atribut Y mempunyai depedensi total terhadap atribut X jika – Y memiliki depedensi fungsional terhadap X dan – X memiliki depedensi fungsional terhadap Y
• Notasi : X Y • Contoh: Tabel Pemasok
KodePemasok NamaPemasok
Depedensi Transitif • Atribut Z mempunyai depedensi transitif terhadap X bila : – Y memiliki depedensi fungsional terhadap X – Z memiliki depedensi fungsional terhadap Y
• Notasi : X Y Z
Depedensi Transitif • Contoh:
Kuliah {Ruang, Waktu} Ruang Tempat Terlihat bahwa : Kuliah Ruang Tempat
Diagram Depedensi Fungsional • Contoh: Kuliah {Ruang, Waktu} Ruang Tempat maka: Kuliah Ruang Tempat
Dekomposisi • Proses pemecahan table ke dalam bentuk dua atau lebih relasi. • Syarat : Tidak ada informasi yang hilang ketika suatu relasi dipecah menjadi relasi-relasi lain.
Contoh Dekomposisi (1)
Nim
Nama
Nim
Program Studi
95001
Andi
95001
Ekonomi
95002
Vira
95002
Teknik
95003
Andi
95003
Fisika
Contoh Dekomposisi hilang
Nim
Nama
Nama
Program Studi
95001
Andi
Andi
Ekonomi
95002
Vira
Vira
Teknik
95003
Andi
Andi
Fisika
Contoh Dekomposisi (2) Misalnya data mahasiswa: Nim
Nama
Hobi
95001
Andi
Sepakbola, membaca, berenang
95002
Vira
Berenang, menjahit
95003
Andi
Membuat program, memasak
maka, dibuat seperti ini: Nim
Nama
Hobi 1
Hobi 2
Hobi 3
95001 Andi
Sepakbola
membaca
berenang
95002 Vira
Berenang
menjahit
95003 Andi
Membuat program
memasak
Contoh Dekomposisi (2) Didekomposisi menjadi: Tabel Mahasiswa Nim
Nama
95001
Andi
95002
Vira
95003
Andi
Tabel Hobi Nim
Hobi
95001
Sepakbola
95001
Membaca
95001
Berenang
95002
Berenang
95002
Menjahit
95003
Membuat program
95003
Memasak
Bentuk Normalisasi Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi kriteria: Jika ada dekomposisi tabel, maka dekomposisinya harus dijamin aman. Artinya, setelah tabel tersebut diuraikan/ didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut bisa menghasilkan tabel semula dengan sama persis. 2. Terpeliharanya ketergantungan fungsional pada saat perubahan data. 1.
Bentuk Normalisasi • • • •
Bentuk normalisasi pertama (1NF) Bentuk normalisasi kedua (2NF) Bentuk normalisasi ketiga (3NF) Bentuk normal boyce-codd (BCNF)
Bentuk tidak normal (unnormalized form) Bentuk ini merupakan kumpulan data yang direkam, tidak ada keharusan mengikuti suatu format tertentu, bisa tidak lengkap atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan kedatangannya.
Bentuk tidak normal (unnormalized form)
Bentuk normal pertama (1NF) Aturan : Tidak adanya group berulang Semua atribut bernilai tunggal dalam satu baris
Bentuk normal pertama (1NF) 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
Bentuk normal kedua (2NF) Aturan : Sudah memenuhi bentuk 1NF Mendefinisikan atribut kunci Semua atribut bukan kunci tergantung pada atribut kunci
Bentuk normal kedua (2NF) •
•
Nama dan jabatan mempunyai depedensi fungsional terhadap NIP NIP{Nama, Jabatan} Lama kerja mempunyai depedensi fungsional terhadap NIP dan keahlian {NIP, Keahlian} Lama Kerja
Bentuk normal ketiga (3NF) Aturan : Sudah memenuhi bentuk 2NF Semua atribut bukan kunci tidak memiliki depedensi transitif terhadap kunci primer
Bentuk normal ketiga (3NF) •
Tidak memiliki depedensi transitif NIP{Nama, Jabatan} {NIP, Keahlian} Lama Kerja
Bentuk normal boyce-codd (BCNF) Aturan : Bentuk ini dilakukan jika dan hanya jika semua penentu (determinan) adalah kunci kandidat (atribut yang bersifat unik). Relasi yang memenuhi BCNF pasti memenuhi 3NF, tetapi tidak sebaliknya.
Bentuk normal boyce-codd (BCNF)
• • • •
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
Bentuk normal boyce-codd (BCNF)
• •
Tutor sebagai kunci kandidat Tabel menyebabkan anomali karena jika baris Cecep dihapus maka Suzane sebagai tutor juga akan terhapus
Bentuk normal boyce-codd (BCNF) Aturan : Cari semua penentu Bila terdapat penentu yang bukan kunci kandidat, maka: – Pisahkan relasi tersebut – Buat penentu sebagai kunci primer
Bentuk normal boyce-codd (BCNF)
Studi Kasus Normalisasi NIM
NamaMhs
Jurusan
KodeMK NamaMK
Kode Nama Nilai Dosen Dosen
2683
Willi
MI
MI350
Manajemen Sistem Informasi
104
Dita
A
MI240
Basis Data
317
Budi
B
AK201
Akuntasi Dasar
219
Deni
A
AK302
Pemasaran
280
Rini
A
AK304
Manajemen Keuangan
211
Weni
C
5432
Bakri
AK