Normalisasi Database
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
¨ 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
Sebuah
tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb:
- 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.
- Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation).
- 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).
FUNCTIONAL DEPENDENCY (FD)
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
Aturan normalisasi
- Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)
- Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF)
- Bentuk Normal Tahap (3rd Normal Form / 3NF)
- Boyce-Code Normal Form (BCNF)
- Bentuk Normal Tahap (4th Normal Form / 4NF)
- Bentuk Normal Tahap (5th Normal Form / 5NF)
Aturan normalisasi
1. Normalisasi Pertama (1st Normal Form)
¨ Mendefinisikan
atribut kunci
¨ Tidak
adanya group berulang
¨ Setiap
atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi
lagi)
2. Normalisasi Kedua (2nd Normal Form)
¨ Sudah
memenuhi dalam bentuk normal kesatu
¨ Sudah
tidak ada ketergantungan parsial, dimana seluruh field hanya tergantung pada
sebagian field kunci.
3. Normalisasi Ketiga (3rd Normal Form)
¨ 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. Normalisasi Keempat (4rd Normal Form)
¨ 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. Normalisasi Kelima (5rd Normal Form)
¨ 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
Contoh Kasus
Perancangan Basis data pengolahan nilai
1.Mengidentifikasi
dan menetapkan seluruh himpunan entitas yang akan terlibat
|
|
|
||||||
2. Menentukan atribut-atribut key dari masing-masing
himpunan entitas
nama
|
+Nama_mahasiswa:string
+Nim:string
+Tgl_lahir:date
|
Mata_kuliah
|
+Kode matakuliah:string
+Nama_matakuliah:string
+sks:int
|
predikat
|
+Nilai:int
+bobot:string
|
4.Mengidentfikasi
dan menetapkan seluruh himpunan relasi di antara himpunan
entitas-himpunan entitas yang ada beserta foreign key-nya
5.Normalisasi
Tahap 1
belum di normalisasi
Penilaian
|
|||||||
Nama_mahasiswa
|
nim
|
Tgl_lahir
|
Kode_mtakuliah
|
Nama_matakuliah
|
sks
|
nilai
|
bobot
|
Reynald
|
73823
|
03/04/1992
|
M1012
|
Matematika
|
3
|
A
|
4
|
03/04/1992
|
F11023
|
Fisika dasar
|
3
|
A
|
4
|
||
Reni
|
27973
|
25/03/1993
|
M1012
|
matematika
|
3
|
B
|
3
|
Frederick
|
83298
|
30/12/1993
|
B12933
|
Bahasa indonesia
|
3
|
A
|
4
|
83298
|
E23982
|
ekonomi
|
2
|
B
|
3
|
Tahap 2.
Normalisasi tahap 1
Penilaian
|
|||||||
Nama_mahasiswa
|
nim
|
Tgl_lahir
|
Kode_mtakuliah
|
Nama_matakuliah
|
sks
|
nilai
|
bobot
|
Reynald
|
73823
|
03/04/1992
|
M1012
|
Matematika
|
3
|
A
|
4
|
Reynald
|
73823
|
03/04/1992
|
F11023
|
Fisika dasar
|
3
|
A
|
4
|
Reni
|
27973
|
25/03/1993
|
M1012
|
matematika
|
3
|
B
|
3
|
Frederick
|
83298
|
30/12/1993
|
B12933
|
Bahasa indonesia
|
3
|
A
|
4
|
Frederick
|
83298
|
30/12/1993
|
E23982
|
ekonomi
|
2
|
B
|
3
|
Tahap 3. Normalisasi tahap 2
Nama
|
||
Nama_mahasiswa
|
nim
|
Tgl_lahir
|
Reynald
|
73823
|
03/04/1992
|
Reni
|
27973
|
25/03/1993
|
frederick
|
83298
|
30/12/1993
|
Mata_kuliah
|
||
Kode_matakuliah
|
Nama_matakuliah
|
sks
|
M1012
|
Matematika
|
3
|
F11023
|
Fisika dasar
|
3
|
B12933
|
Bahasa Indonesia
|
3
|
E23982
|
ekonomi
|
2
|
Predikat
|
|||
Nim
|
Kode_matakuliah
|
nilai
|
bobot
|
73823
|
M1012
|
A
|
4
|
73823
|
F11023
|
A
|
4
|
27973
|
M1012
|
B
|
3
|
83298
|
B12933
|
A
|
4
|
83298
|
E23982
|
B
|
3
|
Belum
memenuhi bentuk normal ke tiga karena atribut non key nilai dan bobot masih
memiliki ketergantungan fungsional
Tahap 4.
Normalisasi tahap 3
Tabel predikat
dipecah lagi menjadi
Tabel tersebut sudah memenuhi normalisasi tahap 3
nilai
|
|
nilai
|
bobot
|
A
|
4
|
B
|
3
|
C
|
2
|
D
|
1
|
Predikat
|
||
Nim
|
Kode_matakuliah
|
nilai
|
73823
|
M1012
|
A
|
73823
|
F11023
|
A
|
27973
|
M1012
|
B
|
83298
|
B12933
|
A
|
83298
|
E23982
|
B
|
Tabel tersebut sudah memenuhi normalisasi tahap 3
0 komentar:
Post a Comment