RINGKASAN
MATERI KELOMPOK 7
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-)
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)
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
NORMALISASI
MENGGUNAKAN CLASS DIAGRAM UML
Gambarkan
diagram dengan menggunakan relasi sumber KRS yang digunakan untuk mencatat data
mahasiswa dan mata kuliah yang diikutinya
Mahasiswa
|
NIM*
Nama_mahasiswa
|
Mata_kuliah
|
Kode_MK1*
Kode_MK2*
SKS_1
SKS_2
Tahun_smt1*
Tahun_smt2*
|
KRS
|
NIM*
Kode_MK1*
Kode_MK2*
Tahun_smt1*
Tahun_smt2*
|
Tabel 1 Relasi KRS dalam bentuk UNF
NIM
|
Nama_Mahasiswa
|
Kode_MK1
|
SKS_1
|
Tahun_smt_1
|
Kode_MK2
|
SKS_2
|
Tahun_smt_2
|
001
|
Koko
|
MK01
|
2
|
20021
|
MK02
|
2
|
20022
|
002
|
Kiki
|
MK01
|
2
|
20021
|
MK02
|
2
|
20022
|
003
|
Kiko
|
MK01
|
2
|
20031
|
MK03
|
2
|
20032
|
004
|
koki
|
MK01
|
2
|
20031
|
MK04
|
2
|
20032
|
Catatan :
Relasi KRS
berada dalam bentuk UNF karena memuat set atribut berulang, yaitu Kode mata
kuliah, tahun semester, dan SKS. Selanjutnya, hasil proses normalisasi 1NF di
beri nama Relasi KRS_1 dan ditampilkan pada tabel 2. Proses yang dilakukan
adalah mengubah struktur relasi dimana set atribut berulang diubah susunannya
dari horizontal menjadi vertikal.
Tabel 2 Relasi KRS_1 dalam bentuk 1NF
NIM
|
Nama
|
Kode_MK
|
SKS
|
Tahun_smt
|
001
|
Koko
|
MK01
|
2
|
20021
|
001
|
Koko
|
MK02
|
2
|
20022
|
002
|
Kiki
|
MK01
|
2
|
20021
|
002
|
Kiki
|
MK02
|
2
|
20022
|
003
|
Kiko
|
MK01
|
2
|
20031
|
003
|
Kiko
|
MK03
|
2
|
20032
|
004
|
Koki
|
MK01
|
2
|
20031
|
004
|
koki
|
MK04
|
2
|
20032
|
Relasi KRS_1
selanjutnya dipecah menghasilkan dua relasi baru yaitu KRS_2 dan mahasiswa yang
di tampilkan pada tabel 3 dan 4
Tabel 3 Relasi KRS_2 dalam bentuk 2 NF
NIM
|
Kode_MK
|
SKS
|
Tahun_smt
|
001
|
MK01
|
2
|
20021
|
001
|
MK02
|
2
|
20022
|
002
|
MK01
|
2
|
20021
|
002
|
MK02
|
2
|
20022
|
003
|
MK01
|
2
|
20031
|
003
|
MK03
|
2
|
20032
|
004
|
MK01
|
2
|
20031
|
004
|
MK04
|
2
|
20032
|
Tabel 4 Relasi Mahasiswa
NIM
|
Nama_Mahasiswa
|
001
|
Koko
|
002
|
Kiki
|
003
|
Kiko
|
004
|
koki
|
Catatan:
Relasi
KRS_2 pada tabel 3 masih mengalami ketergantungan transitif yaitu NIM, Kode_MK,
dan SKS sehingga perlu dipecah kembali hasilnya adalah dua relasi baru, yaitu
relasi KRS_3 yang di tampilkan pada tabel 5 dan relasi Mata_kuliah yang
ditampilkan pada tabel 6
Tabel 5 Relasi KRS_3 dalam bentuk 3NF
NIM
|
Kode_MK
|
Tahun_smt
|
001
|
MK01
|
20021
|
001
|
MK02
|
20022
|
002
|
MK01
|
20021
|
002
|
MK02
|
20022
|
003
|
MK01
|
20031
|
003
|
MK03
|
20032
|
004
|
MK01
|
20031
|
004
|
MK04
|
20032
|
Tabel
6 Relasi Matakuliah
Kode_MK
|
SKS
|
MK01
|
2
|
MK02
|
2
|
MK03
|
2
|
MK04
|
2
|
Hasil
akhir dari proses normalisasi dalam tiga buah relasi baru