Senin, 04 Juni 2012

NORMALISASI DATABASE



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