Normalisasi Data Author : Minarni, S.Kom.,MM
Normalisasi
• Normalisasi merupakan sebuah teknik dalam logical
desain sebuah basis data yang mengelompokkan
atribut dari suatu relasi sehingga membentuk struktur
relasi yang baik (tanpa redudansi).
• Normalisasi adalah proses pembentukan struktur basis
data sehingga sebagian besar ambiguity bisa
dihilangkan.
Tujuan Normalisasi
• Untuk menghilangkan kerangkapan data
• Untuk mengurangi kompleksitas
• Untuk mempermudah pemodifikasian data
Proses Normalisasi
• Data diuraikan dalam bentuk tabel, selanjutnya
dianalisis berdasarkan persyaratan tertentu ke
beberapa tingkat.
• Apabila tabel yang diuji belum memenuhi
persyaratan tertentu, maka tabel tersebut perlu
dipecah menjadi beberapa tabel yang lebih
sederhana sampai memenuhi bentuk yang
optimal.
Pentingnya Normalisasi
Suatu rancangan database disebut buruk jika :
• Data yang sama tersimpan di beberapa tempat (file atau record)
• Ketidakmampuan untuk menghasilkan informasi tertentu
• Terjadi kehilangan informasi
• Terjadi adanya redudansi (pengulangan) atau duplikasi data sehingga
memboroskan ruang penyimpanan dan menyulitkan saat proses
updating data
• Timbul adanya NULL VALUE.
• Kehilangan informasi bisa terjadi bila pada waktu merancang database
(melakukan proses dekomposisi yang keliru).
Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb:
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-Codd Normal Form (BCNF) (-akan dijelaskan kemudian-)
4. Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak
melanggar Bentuk Normal tahap ketiga (3rd Normal Form / 3NF).
Normalisasi database
Normalisasi database terdiri dari banyak bentuk, dalam ilmu basis data ada
setidaknya 9 bentuk normalisasi yang ada
yaitu 1NF, 2NF, 3NF, EKNF, BCNF, 4NF, 5NF, DKNF, dan 6NF. Namun dalam
prakteknya dalam dunia industri bentuk normalisasi ini yang paling sering
digunakan ada sekitar 5 bentuk.
Data yang direkam dan dimasukkan secara mentah dalam suatu tabel pada bentuk ini
sangat mungkin terjadi inkonsistensi dan anomali data
Pada bentuk ini ada beberapa ciri ciri yang penting, yang pertama adalah akan terjadi
anomali dalam insert, update, dan delete. Hal ini menyebabkan beberapa fungsi DML dalm
SQL tidak dapat berjalan dengan baik. Sebagai contoh jika ingin menghapus penerbit maka
data judul buku akan ikut terhapus begitu juga jika ingin menghapus peminjam, maka data
penerbit dan buku yang harusnya tidak terhapus akan ikut hilang.
First Normal Form (1NF)
Bentuk normal yang pertama atau 1NF mensyaratkan beberapa
kondisi dalam sebuah database,
berikut adalah fungsi dari bentuk normal pertama ini :
• Menghilangkan duplikasi kolom dari tabel yang sama.
• Buat tabel terpisah untuk masing-masing kelompok data terkait dan
mengidentifikasi setiap baris dengan kolom yang unik (primary key).
First Normal Form (1NF)
Contoh Normalisasi Database 1NF
Pada intinya bentuk normalisasi 1NF
ini mengelompokkan beberapa tipe
data atau kelompok data yang
sejenis agar dapat dipisahkan
sehingga anomali data dapat di
atasi.
Contoh adalah ketika kita ingin menghapus,
mengupdate, atau menambahkan data peminjam,
maka kita tidak bersinggungan dengan data buku
atau data penerbit. Sehingga inkonsistensi data
dapat mulai di jaga.
Second normal form (2NF)
Syarat untuk menerapkan normalisasi bentuk kedua ini adalah data telah
dibentuk dalam 1NF,
berikut adalah beberapa fungsi normalisasi 2NF.
• Menghapus beberapa subset data yang ada pada tabel dan menempatkan
mereka pada tabel terpisah.
• Menciptakan hubungan antara tabel baru dan tabel lama dengan
menciptakan foreign key.
• Tidak ada atribut dalam tabel yang secara fungsional bergantung pada
candidate key tabel tersebut.
Id_transaksi Id_buku Id_penerbit Id_Peminjam
1111 B01 P01 P01
1112 B02 P02 P01
1113 B03 P02 P02
1114 B04 P01 P01
Tabel diatas membentuk table baru yaitu tabel transaksi, pada intinya bentuk kedua ini adalah
tidak boleh ada field yang berhubungan dengan field lainnya secara fungsional. Contoh Judul
Buku tergantung dengan id_Buku sehingga dalam bentuk 2NF judul buku dapat di hilangkan
karena telah memiliki tabel master tersendiri.
Functional Dependency
Notasi: A B
A dan B adalah atribut dari sebuah tabel. Berarti secarafungsional A menentukan B atau B tergantung pada A, jikadan 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.
Functional Dependency dari tabel nilai
Nrp namaMhs
Karena untuk setiap nilai nrp yang sama, maka nilai namaMhs juga sama.
{Namakul, nrp} NiHuruf
Karena attribut Nihuruf tergantung pada Namakul dan nrp secara
bersama-sama. Dalam arti lain untuk Namakul dan nrp yang sama, maka
NiHuruf juga sama, karena Namakul dan nrp merupakan key (bersifat
unik).
NamaKul nrp
Nrp NiHuruf
• Andaikan ada tabel:
NILAI (NIM, Nm-mk, Semester, Nilai)
• Atribut kunci: NIM, Nm-mk, Semester
• Maka Functional Dependency:
NIM, Nm-mk, Semester -> Nilai
Third normal form (3NF)
Bentuk ini terpenuhi jika bentuk 2NF sudah terpenuhi terlebih dahulu, dan tidak ada
atribut non primary key yang memiliki ketergantungan terhadap atribut non primary
key yang lainnya.
Syarat dari bentuk normal ketiga atau 3NF adalah :
Memenuhi semua persyaratan dari bentuk normal kedua.
Menghapus kolom yang tidak tergantung pada primary key.
Tidak semua kasus atau tabel dapat kita sesuaikan dengan berbagai bentuk
normalisasi ini.