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
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
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
nilai
|
|
nilai
|
bobot
|
A
|
4
|
B
|
3
|
C
|
2
|
D
|
1
|
0 Responses to "NORMALISASI DATABASE"
Posting Komentar