NORMALISASI DATABASE
Pengertian Normalisasi
Normalisasi merupakan sebuah upaya
untuk memperoleh sebuah database dengan struktur yang baik dengan cara
menerapkan sejumlah aturan pada setiap tabel agar ruang penyimpanan efisien.
Istilah normalisasi dapat disederhanakan menjadi memecah relasi menjadi
beberapa tabel untuk mendapat database yang optimal
Istilah Penting dalam Teknik Normalisasi
Field / atribut kunci. Setiap file
selalu terdapat kunci dari file berupa satu field atau satu field yang dapat
mewakili record.
Candidate key. Kumpulan atribut minimal yang secara unik
mengidentifikasi sebuah baris fungsinya sebagai calon primary key.
Composite key. Kunci kandidat yang berisi lebih dari satu
atribut
Primary key. Candidate key yang dipilih untuk
mengidentifikasi baris secara unik
Alternate key. Candidate key yang tidak dipilih sebagai
primary key
Foreign key. Key di tabel lain yang terhubung dengan primary
key pada sebuah tabel
3 Kriteria Suatu Tabel dikatakan
Baik
1.
Jika ada dekomposisi
(penguraian) tabel, maka dekomposisinya
harus dijamin aman (Lossless-Join Decomposition). 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 (Dependency Preservation).
3.
Tidak melanggar Boyce-Code
Normal Form (BCNF) (-akan dijelaskan kemudian-)
Boyce-Code
Normal Form (BCNF)
Jika kriteria ketiga
(BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar
Bentuk Normal tahap ketiga (3rd Normal
Form / 3NF).
Aturan normalisasi
1.
Bentuk
Normal Tahap Pertama (1st Normal Form / 1NF)
¨ Mendefinisikan
atribut kunci
¨
Tidak adanya group berulang
¨
Setiap atribut dalam tabel tersebut harus
bernilai atomic (tidak dapat dibagi-bagi lagi)
2.
Bentuk
Normal Tahap Kedua (2nd Normal Form / 2NF)
¨
Sudah memenuhi dalam bentuk normal kesatu
¨
Sudah tidak ada ketergantungan parsial,
dimana seluruh field hanya tergantung pada sebagian field kunci.
3.
Bentuk
Normal Tahap (3rd Normal Form / 3NF)
¨
Sudah berada dalam bentuk normal kedua
¨
Tidak ada ketergantungan transitif (dimana
field bukan kunci tergantung pada field bukan kunci lainnya).
4.
Boyce-Code
Normal Form (BCNF)
¨ Bentuk BCNF terpenuhi dalam sebuah tabel, jika
untuk setiap functional dependency terhadap
setiap atribut atau gabungan atribut dalam bentuk: X à Y
¨ tabel tersebut harus di-dekomposisi berdasarkan
functional dependency yang ada, sehingga X menjadi super key dari
tabel-tabel hasil dekomposisi
¨ Setiap tabel dalam BCNF merupakan 3NF. Akan
tetapi setiap 3NF belum tentu termasuk BCNF . Perbedaannya, untuk functional
dependency X à A, BCNF tidak membolehkan A sebagai bagian
dari primary key.
5.
Bentuk
Normal Tahap (4th Normal Form / 4NF)
¨
Bentuk
normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan
tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued atribute
¨
Untuk
setiap multivalued dependencies (MVD) juga harus merupakan functional
dependencies
6.
Bentuk
Normal Tahap (5th Normal Form / 5NF)
¨
Bentuk
normal 5NF terpenuhi jika tidak dapat memiliki sebuah lossless decomposition
menjadi tabel-tabel yg lebih kecil.
¨
Jika 4
bentuk normal sebelumnya dibentuk berdasarkan functional dependency, 5NF
dibentuk berdasarkan konsep join dependence. Yakni apabila sebuah tabel
telah di-dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan
lagi (join) untuk membentuk tabel semula
Example
Perancangan Basis Data Peminjaman Buku
Perpustakaan Pusat
1. Mengidentifikasi dan menetapkan seluruh himpunan entitas yang akan terlibat
2.
Menentukan
atribut-atribut key dari masing-masing himpunan entitas
3. Mengidentfikasi dan menetapkan seluruh himpunan relasi di
antara himpunan entitas-himpunan entitas yang ada beserta foreign key-nya
4.
Normalisasi
Belum di Normalisasi
NIM
|
NAMA
|
KodJur
|
Jur
|
KodBuk
|
JudBuk
|
Ambil
|
Kembali
|
H1108
|
Yudha
|
H1
|
Math
|
B4
|
Java
|
2-1-12
|
12-1-12
|
A3
|
Pascal
|
1-2-12
|
11-2-12
|
||||
C6
|
numerik
|
5-3-12
|
15-2-12
|
||||
D4
|
PDP
|
4-5-12
|
15-5-12
|
||||
C2123
|
Maria
|
C2
|
Kedok
|
G6
|
Anotomi
|
5-5-12
|
12-5-12
|
H5
|
Fisiologi
|
6-5-12
|
12-5-12
|
Normalisasi bentuk 1 (1NF)
NIM
|
NAMA
|
KodJur
|
Jur
|
KodBuk
|
JudBuk
|
Ambil
|
Kembali
|
H1108
|
Yudha
|
H1
|
Math
|
B4
|
Java
|
2-1-12
|
12-1-12
|
H1108
|
Yudha
|
H1
|
Math
|
A3
|
Pascal
|
1-2-12
|
11-2-12
|
H1108
|
Yudha
|
H1
|
Math
|
C6
|
numerik
|
5-3-12
|
15-2-12
|
H1108
|
Yudha
|
H1
|
Math
|
D4
|
PDP
|
4-5-12
|
15-5-12
|
C2123
|
Maria
|
C2
|
Kedok
|
G6
|
Anotomi
|
5-5-12
|
12-5-12
|
C2123
|
Maria
|
C2
|
Kedok
|
H5
|
Fisiologi
|
6-5-12
|
12-5-12
|
Normalisasi bentuk 2 (2NF)
Tabel buku
Kode Buku*
|
Judul buku
|
B4
|
Java
|
A3
|
Pascal
|
C6
|
Numerik
|
D4
|
PDP
|
G6
|
Anotomi
|
H5
|
Fisiologi
|
Tabel Peminjam
NIM
|
Nama
|
KodJur
|
Jur
|
H1108
|
Yudha
|
H1
|
Math
|
C2123
|
Maria
|
C2
|
Kedok
|
Tabel
Peminjaman
NIM
|
KodJur
|
KodBuk
|
Ambil
|
Kembali
|
H1108
|
H1
|
B4
|
2-1-12
|
12-1-12
|
H1108
|
H1
|
A3
|
1-2-12
|
11-2-12
|
H1108
|
H1
|
C6
|
5-3-12
|
15-2-12
|
H1108
|
H1
|
D4
|
4-5-12
|
15-5-12
|
C2123
|
C2
|
G6
|
5-5-12
|
12-5-12
|
C2123
|
C2
|
H5
|
6-5-12
|
12-5-12
|
Normalisasi ke 3 (3NF)
Tabel Buku
KodBuk*
|
JudBuk
|
B4
|
Java
|
A3
|
Pascal
|
C6
|
numerik
|
D4
|
PDP
|
G6
|
Anotomi
|
H5
|
Fisiologi
|
Tabel Mhs
NIM*
|
Nama
|
H1108
|
Yudha
|
C2123
|
Maria
|
Tabel Jurusan
KodJur*
|
Jur
|
H1
|
Math
|
C2
|
Kedok
|
Tabel Tanggal
Ambil
|
Kembali
|
2-1-12
|
12-1-12
|
1-2-12
|
11-2-12
|
5-3-12
|
15-2-12
|
4-5-12
|
15-5-12
|
5-5-12
|
12-5-12
|
6-5-12
|
12-5-12
|
Tabel Peminjaman
NIM
|
KodJur
|
KodBuk
|
Ambil
|
Kembali
|
H1108
|
H1
|
B4
|
2-1-12
|
12-1-12
|
H1108
|
H1
|
A3
|
1-2-12
|
11-2-12
|
H1108
|
H1
|
C6
|
5-3-12
|
15-2-12
|
H1108
|
H1
|
D4
|
4-5-12
|
15-5-12
|
C2123
|
C2
|
G6
|
5-5-12
|
12-5-12
|
C2123
|
C2
|
H5
|
6-5-12
|
12-5-12
|