Normalisasi adalah teori pada databae yang ditemukan oleh seseorang yang bernama Dr. Codd. Dia menemukan teori ini sekitar tahun 1970. Teori normalisasi ini dapat membantu kita dalam membuat desain database yang baik dan mudah digunakan.
Desain database yang baik :
- Tidak ada anomali data- Tidak ada redudansi data
- Saat melakukan Edit/Update/Delete tidak perlu menghapus data-data lainnya yang sebenarnya masih diperlukan
Bagaimana cara membuat desain database yang baik ? Ya tentunya dengan menggunakan teknik NORMALISASI.
Jenis normalisasi :
1. Normalisasi Pertama2. Normalisasi Kedua
3. Normalisasi Ketiga
4. Normalisasi Boyce Codd
5. Normalisasi Keempat
6. Normalisasi Kelima
Namun, dalam kenyataannya apabila kita sudah mencapai normalisasi ketiga itu sudah termasuk baik. Maka dari itu pada postingan kali ini akan dijelaskan normalisasi dari pertama hingga ketiga.
Database Tidak Normal
Sebelum kita normalisasi mari kita ambil contoh database data pemesanan rumah makan yang tidak normal seperti berikut.
ID
|
Waktu
|
Nomeja
|
Namapemesan
|
Nama_makanan
|
Harga
|
Kateogorimakanan
|
1
|
9 sep 2017
|
A
|
Arif Budiman
|
Kerang goreng, ikan nila bakar
|
10000
|
seafood
|
2
|
9 sep 2017
|
A
|
Arif Budiman
|
Tempe
|
3000
|
Gorengan
|
3
|
9 sep 2017
|
A
|
Arif Budiman
|
Tahu
|
2500
|
Gorengan
|
4
|
9 sep 2017
|
A
|
Arif Budiman
|
Nasi Putih
|
3000
|
Nasi
|
5
|
9 sep 2017
|
A
|
Arif Budiman
|
Nasi Putih
|
3000
|
Nasi
|
6
|
9 sep 2017
|
A
|
Arif Budiman
|
Nasi Putih
|
3000
|
Nasi
|
7
|
9 sep 2017
|
A
|
Arif Budiman
|
Es teh
|
2000
|
Minuman
|
8
|
9 sep 2017
|
A
|
Budi Setiawan
|
Nasi goreng
|
10000
|
Nasi
|
9
|
9 sep 2017
|
A
|
Budi Setiawan
|
Nasi goreng
|
10000
|
Nasi
|
10
|
9 sep 2017
|
A
|
Budi Setiawan
|
Es jeruk
|
3000
|
Minuman
|
Dalam tabel tersebut terlihat bahwa banyak sekali data duplikat. Bahkan parahnya database tersebut hanya terdiri dari 1 TABEL.
Mengapa Kita Tidak Boleh Membuat Database Hanya 1 Tabel ? Baca Alasannya disini (beserta contoh)
Mengapa Kita Tidak Membuat 1 Tabel Dalam 1 Database Saja ?
Normalisasi Pertama atau 1NF
Syarat :- Tidak ada grup-grup yang diulang
- Harus ada key di setiap tabel
- Semua data harus atomic
- Setiap baris harus unik
Proses Normalisasi :
ID
|
Waktu
|
Nomeja
|
Namapemesan
|
Nama_makanan
|
Harga
|
Kateogorimakanan
|
1
|
9 sep 2017
|
A
|
Arif Budiman
|
Kerang goreng
|
10000
|
seafood
|
2
|
9 sep 2017
|
A
|
Arif Budiman
|
Ikan nila bakar
|
10000
|
Seafood
|
3
|
9 sep 2017
|
A
|
Arif Budiman
|
Tempe
|
3000
|
Gorengan
|
4
|
9 sep 2017
|
A
|
Arif Budiman
|
Tahu
|
2500
|
Gorengan
|
5
|
9 sep 2017
|
A
|
Arif Budiman
|
Nasi Putih
|
3000
|
Nasi
|
6
|
9 sep 2017
|
A
|
Arif Budiman
|
Nasi Putih
|
3000
|
Nasi
|
7
|
9 sep 2017
|
A
|
Arif Budiman
|
Nasi Putih
|
3000
|
Nasi
|
8
|
9 sep 2017
|
A
|
Arif Budiman
|
Es teh
|
2000
|
Minuman
|
9
|
9 sep 2017
|
A
|
Budi Setiawan
|
Nasi goreng
|
10000
|
Nasi
|
10
|
9 sep 2017
|
A
|
Budi Setiawan
|
Nasi goreng
|
10000
|
Nasi
|
11
|
9 sep 2017
|
A
|
Budi Setiawan
|
Es jeruk
|
3000
|
Minuman
|
Nah tabel diatas adalah hasil dari normalisasi pertama. Bisa kita lihat bahwa pada kolom nama_makanan terdapat "kerang goreng, ikan nila bakar" dan itu harus dipisah agar data menjadi atomic. Data yang atomic adalah data yang hanya mempresentasikan 1 hal !
Kalau data tersebut berupa "kerang goreng, ikan nila bakar" maka data tersebut mempresentasikan 2 hal yaitu "kerang goreng" dan "ikan nila bakar" sehingga harus kita pisah dulu.
Normalisasi Kedua atau 2NF
Syarat :- Harus sudah melalui normalisasi pertama(1NF)
- Kolom/atribut yang bukan kunci harus bergantung pada primary key
Proses Normalisasi :
Bisa dilihat, banyak sekali perubahan yang terjadi setelah normalisasi kedua ini. Karena di setiap bagian akan dipecah-pecah menjadi beberapa tabel yang bisa Anda lihat pada gambar tersebut.
pada tabel tersebut juga ditambahkan beberapa kolom untuk memudahkan kita dalam melakukan edit,delete,menambah,membaca data(CRUD). Yang saya beri garis merah itu adalah relasi.
Silahkan dipelajari dulu pelan-pelan tabel tersebut hingga Anda mengerti.
Normalisasi Ketiga atau 3NF
Syarat :- Harus sudah melalui normalisasi kedua(2NF)
- Tidak boleh ada ketergantungan transitif (kolom bukan kunci tidak boleh bergantung pada kolom bukan kunci lainnya)
Proses Normalisasi :
setelah dinormalisasi ketiga :
Bisa Anda lihat bahwa pada tabel makanan SEBELUMNYA, kolom seafood bergantung pada kolom nama. Betul ? padahal syarat yang ketiga adalah tidak boleh ada ketergantungan pada kolom bukan kunci dengan kolom bukan kunci lainnya sehingga hal ini harus diperbaiki.
Jadi database yang baru bisa Anda lihat diatas yaitu dengan menambahkan tabel bernama 'kategorimakanan' yang berelasi dengan tabel 'makanan'
Itu saja dari IHE, apabila Anda merasa bermanfaat silahkan shar eke teman-temanmu. !
Labels:
Programming
Thanks for reading Teknik Normalisasi LENGKAP beserta CONTOH. Please share...!
0 Comment for "Teknik Normalisasi LENGKAP beserta CONTOH"