Normalisasi database merupakan suatu
pendekatan sistematis untuk meminimalkan redundansi data pada suatu database
agar database tersebut dapat bekerja dengan optimal. Jika anda seorang database
administrator ketika terjadi sesuatu pada database seperti penurunan kinerja,
mungkin anda akan ditanya apakah database tersebut telah di normalisasi?
Tujuan Normalisasi Database
Tujuan normalisasi database adalah untuk menghilangkan dan mengurangi
redudansi data dan tujuan yang kedua adalah memastikan dependensi data (Data
berada pada tabel yang tepat).
Jika data dalam database tersebut belum di normalisasi maka akan terjadi 3
kemungkinan yang akan merugikan sistem secara keseluruhan.
1. INSERT Anomali : Situasi dimana tidak memungkinkan memasukkan beberapa
jenis data secara langsung di database.
2. DELETE Anomali: Penghapusan data yang tidak sesuai dengan yang diharapkan,
artinya data yang harusnya tidak terhapus mungkin ikut terhapus.
3. UPDATE Anomali: Situasi dimana nilai yang diubah menyebabkan inkonsistensi
database, dalam artian data yang diubah tidak sesuai dengan yang
diperintahkan atau yang diinginkan.
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.
Normal Form
Data yang direkam dan dimasukkan secara mentah dalam suatu tabel pada
bentuk ini sangat mungkin terjadi inkonsistensi dan anomali data
Contoh Normal Form
Contoh normal form
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 dalam 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).
Contoh Normalisasi Database 1NF
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.
Contoh normalisasi database bentuk 2NF
Contoh Normalisasi Database 2NF
Contoh di atas kita menggunakan tabel bantuan yaitu tabel transaksi, pada
intinya bentu 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.
Third Normal Form (3NF)
Normalisasi database dalam bentuk 3NF bertujuan untuk menghilangkan seluruh
atribut atau field yang tidak berhubungan dengan primary key. Dengan demikian
tidak ada ketergantungan transitif pada setiap kandidat key. Syarat dari bentuk
normal ketiga atau 3NF adalah :
·
Memenuhi semua
persyaratan dari bentuk normal kedua.
·
Menghapus kolom yang
tidak tergantung pada primary key.
Contoh Normalisasi Database Bentuk 3NF
Tidak semua kasus atau tabel dapat kita sesuaikan dengan berbagai bentuk
normalisasi ini, untuk contoh 3NF kita akan mengambil contoh dari tabel order.
Normalisasi Database Bentuk 3NF
Pada tabel pertama di atas, apakah semua kolom sepenuhnya tergantung pada
primary key? tentu tidak, hanya saja ada satu field yaitu total yang bergantung
pada harga dan jumlah, total dapat dihasilkan dengan mengalikan harga dan
jumlah. Bentuk 3NF dalam tabel di atas dapat dilakukan dengan membuang field
Total.
Bentuk SQL
SELECT ORDERID, HARGA, JUMLAH, TOTAL
FROM ORDER
FROM ORDER
Menjadi
SELECT ORDERID, HARGA*JUMLAH AS TOTAL
FROM ORDER
FROM ORDER
BCNF Boyce–Codd normal form
Merupakan sebuah teknik normalisasi database yang sering disebut 3.5NF,
memiliki hubungan yang sangat erat dengan bentuk 3NF. Pada dasarnya adalah
untuk menghandle anomali dan overlooping yang tidak dapat di handle dalam
bentuk 3NF. Normalisasi database bentuk ini tergantung dari kasus yang
disediakan, tidak semua tabel wajib di normalisasi dalam bentuk BCNF.
Fungsi Normalisasi Database
Pada ilmu database atau basis data,
normalisasi digunakan untuk menghindari terjadinya berbagai anomali data dan
tidak konsistensinya data. Ini merupakan fungsi database secara umum.
Dalam beberapa kasus normalisasi ini sangat penting untuk menunjang kinerja
database dan memastikan bahwa data dalam database tersebut aman dan tidak
terjadi kesalahan jika mendapat perintah SQL terutama DML yaitu update,
insert, dan delete.
Perlu diketahui dalam beberapa kasus Normalisasi database terkadang harus
diubah menjadi bentuk denormalisasi, terutama untuk data yang telah besar dan
membengkak. Denormalisasi ini ditujukan untuk meningkatkan performance dengan
meletakkan beberapa field menjadi satu tabel sehingga mudah di tarik.
Denormalisasi ini sering digunakan untuk menarik data yang besar dari database