Database 1
5
Teknik dan Penerapan Normalisasi
Dahlia Widhyaestoeti, S.Kom
dahlia.widhyaestoeti@gmail.com
dahlia74march.wordpress.com
Teknik Normalisasi
Beberapa pengertian mengenai normalisasi :
Istilah Normalisasi berasal dari E. F.Codd, salah seorang perintis teknologi basis
yang memiliki masalah tertentu ke dalam dua buah relasi atau lebih yang tida
memiliki masalah tersebut. Masalah yang dimaksud oleh kroenke ini sering
disebut dengan istilah anomali.
Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data /
relasional, dan secara umum lebih tepat dikoneksikan dengan model data logika.
Teknik Normalisasi
Proses normalisasi adalah proses pengelompokan data elemen
menjadi tabel-tabel yang menunjukkan entity dan relasinya. Pada
proses normalisasi dilakukan pengujian pada beberapa kondisi
apakah ada kesulitan pada saat menambah/menyisipkan,
menghapus, mengubah dan mengakses pada suatu basis data.
Bila terdapat kesulitan pada pengujian tersebut maka perlu
dipecahkan relasi pada beberapa tabel lagi atau dengan kata lain
perancangan basis data belum optimal.
Tujuan dari normalisasi
Menghilangkan kerangkapan data,
Mengurangi kompleksitas, dan
Mempermudah pemodifikasian data.
Teknik Normalisasi
Sebuah tabel dikatakan baik (efisien) atau normal jika
memenuhi 3 kriteria sbb:
1.
2.
3.
Tabel Relasional
Tabel Universal
Tabel Universal (Universal / Star Table)
sebuah tabel yang merangkum semua
kelompok data yang saling berhubungan,
bukan merupakan tabel yang baik.
Misalnya:
No-Mhs
Nama-MK
Kd-Dosen Nm_Dosen
Nilai
2683
Welli
MI
MI350
MI465
B104
B317
Ati
Dita
A
B
5432
Bakri
AK
MI350
Manajemen Basis Data
AKN201 Akuntansi Keuangan
MKT300 Dasar Pemasaran
B104
D310
B212
Ati
Lia
Lola
C
B
A
Functional Dependency
Notasi: A B
A dan B adalah atribut dari sebuah tabel. Berarti
secara fungsional A menentukan B atau B
tergantung pada A, jika dan hanya jika ada 2
baris data dengan nilai A yang sama, maka nilai
B juga sama
Notasi: A B
atau A x B
Adalah kebalikan dari notasi sebelumnya.
Functional Dependency
Contoh tabel nilai
Nrp namaMhs
Karena untuk setiap nilai nrp yang sama, maka nilai namaMhs
juga sama.
{Namakul, nrp} NiHuruf
Karena attribut Nihuruf tergantung pada Namakul dan nrp secara
bersama-sama. Dalam arti lain untuk Namakul dan nrp yang sama,
maka NiHuruf juga sama, karena Namakul dan nrp merupakan key
(bersifat unik).
NamaKul nrp
Nrp NiHuruf
Bentuk-bentuk Normal
Atau:
Tabel Mahasiswa
Tabel Hobi
Contoh 2 (composite)
JadwalKuliah
Kodekul
NamaKul
Dosen
Kelas
Jadwal
JadwalKuliah
Kodekul
NamaKul
Dosen
Kelas
JadwalHari
JadwalJam
Contoh
Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:
Mhs_nrp
mhs_nama
mhs_alamat
mk_nama
mk_sks
nihuruf
mk_kode
mhs_nama
mhs_alamat
mk_nama
mk_sks
nihuruf
fd1
fd2
fd3
(fd1)
(fd2)
(fd3)
Nama
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):
Normalisasi pertama
Solusinya :
Hilangkan duplikasi dengan mencari ketergantungan parsial.
Menjadikan field-field menjadi tergantung pada satu atau
beberapa field.
Karena yang dapat dijadikan kunci adalah NoProyek dan
NoPegawai, maka langkah kemudian dicari field-field mana
yang tergantung pada NoProyek dan mana yang tergantung
pada NoPegawai.
NP001
BRR
NP001
BRR
NP002
NP002
PEMDA
PEMDA
900.000
Normalisasi Kedua
Field-field yang tergantung pada satu field haruslah
dipisah dengan tepat, misalnya
NoProyek menjelaskan NamaProyek dan
NoPegawai menjelaskan NamaPegawai, Golongan
dan BesarGaji.
TABEL PROYEK
TABEL PEGAWAI
900.000
Normalisasi Kedua
Untuk membuat hubungan antara dua tabel, dibuat suatu
tabel yang berisi key-key dari tabel yang lain.
TABEL PROYEKPEGAWAI
Normalisasi Ketiga
Pada tabel diatas masih terdapat masalah, bahwa
BesarGaji
Normalisasi Ketiga
TABEL PROYEK
TABEL PEGAWAI
TABEL GOLONGAN
TABEL PROYEKPEGAWAI
Kasus 2
No-Mhs
Nama-MK
Kd-Dosen Nm_Dosen
Nilai
2683
Welli
MI
MI350
MI465
B104
B317
Ati
Dita
A
B
5432
Bakri
AK
MI350
Manajemen Basis Data
AKN201 Akuntansi Keuangan
MKT300 Dasar Pemasaran
B104
D310
B212
Ati
Lia
Lola
C
B
A
1NF
No-Mhs
Nama-MK
Kd-Dosen Nm_Dosen
Nilai
2683
2683
Welli
Welli
MI
MI
MI350
MI465
B104
B317
Ati
Dita
A
B
5432
5432
5432
Bakri
Bakri
Bakri
AK
AK
AK
MI350
Manajemen Basis Data
AKN201 Akuntansi Keuangan
MKT300 Dasar Pemasaran
B104
D310
B212
Ati
Lia
Lola
C
B
A
Kasus 2
No-Mhs
2683
5432
Kode-MK
Nama-Mhs
Welli
Bakri
No-Mhs
Kode MK
2683
2683
5432
5432
5432
MI350
MI465
MI350
AKN201
MKT300
Tabel Mahasiswa
MI
AK
Nama-MK
MI350
MI465
AKN201
MKT300
2NF
Jurusan
Kode-Dosen
B104
B317
D310
B212
Nama-Dosen
Ati
Dita
Lia
Lola
Nilai
A
B
C
B
A
Tabel Nilai
Tabel Kuliah
Kasus 2
3NF
Kode-MK
Nama-MK
MI350
MI465
AKN201
MKT300
Kode-Dosen
B104
B317
D310
B212
Kode-Dosen
B104
B317
D310
B212
Nama-Dosen
Ati
Dita
Lia
Lola
Tabel Dosen
User-user
Spesifikasi
Kebutuhan
Berbagai
user
Form
Atau
Laporan
Data Dictionary
Dan
Data Model
UNF
Menghilangkan pengulangan grup
1NF
Menghilangkan Partial Dependency
2NF
Menghilangkan Transitive Dependency
3NF
Menuliskan semua data yang akan direkam, bagian yang doubel tidak perlu
dituliskan. Terlihat record-record yang tidak lengkap, sulit untuk
membayangkan bagaimana bentuk record yang harus dibentuk untuk
merekam data tersebut.
Normal Kedua
FD 1 : KodeSup NamaSup
FD 2 : KodeBarang NamaBarang
FD 3 : {KodeSup, KodeBarang} NoFak, tanggal, tempo,Qty,
Harga, Total
FD 1 : Tabel Suplier
FD 2 : Tabel Barang
FD 3 : Tabel Faktur
Barang
Suplier
KodeSup
KodeBarang
NamaSup
NamaBarang
Faktur
NoFak
Tanggal
Tempo
KodeSup
KodeBarang
Qty
Harga Total
Normal Ketiga
FD 4 : {NoFak, KodeSup} Tanggal, Tempo,Total
FD 5 : {NoFak,KodeBarang} Qty, Harga
FD 4 : Tabel Faktur
FD 5 : Tabel Transaksi
Barang
Suplier
KodeSup
KodeBarang
NamaSup
NamaBarang
Faktur
NoFak
KodeSup
Tanggal
Tempo
Total
Transaksi
NoFak
KodeBarang
Qty
Harga