Pengertian Normalisasi Database

Normalisasi database adalah suatu teknik untuk mengorganisasi data ke dalam tabel-tabel untuk memenuhi kebutuhan pengguna dalam suatu organisasi (Tarigan, W., dkk, 2021, hlm. 70). Artinya, data yang dibutuhkan pengguna aplikasi akan dipilah dan dtata sesuai dengan kebutuhan basis data yang dapat digunakan untuk menampung setiap data dan informasi yang akan diolah oleh perangkat lunak sistem informasi Perusahaan.

Dengan kata lain normalisasi basis data (database normalization) merupakan salah satu cara pendekatan atau teknik yang digunakan dalam membangun desain logic basis data relation dengan menerapkan sejumlah aturan dan kriteria standar (Yakub, 2012, hlm. 70). Sedangkan menurut Menurut Indrajani (2015, hlm. 7), normalisasi basis data adalah teknik dengan melakukan sebuah pendekatan bottom-up yang digunakan dalam membantu mengidentifikasikan hubungan tabel-tabel pada suatu database.

Data mana saja yang merupakan data variabel atau data yang dapat bertambah atau bahkan berubah nama dan jenisnya? Mana yang merupakan data transaksi sehingga justru tidak boleh berubah sama sekali dan hanya dapat ditambahkan data baru saja? Bagaimana hubungan keduanya? Apakah data transaksi tersebut terkait bahkan bergantung pada data variabel atau data master yang dapat berubah tersebut?

Lantas bagaimana seharusnya agar kedua data tersebut disusun dan dihubungkan dengan baik sehingga kita dapat dengan mudah dan akurat untuk mengolahnya menjadi informasi? Hal-hal semacam itulah yang menjadi masalah pokok normalisasi basis data ini.

Proses Normalisasi Basis Data

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. Untuk lebih jelasnya, berikut adalah penjelasan proses normalisasi basis data berdasarkan tahapan-tahapan yang dilaluinya.

Tahapan Normalisasi Database

1. Bentuk Tidak Normal

Menurut Tarigan, W., dkk, 2021, hlm. 70) aktivitas utama dari tahap ini adalah untuk menghilangkan perulangan group. Hal tersebut karena tahap bentuk tidak normal ini sejatinya adalah keadaan data sebelum dinormalisasi, sehingga kemungkinan akan banyak perulangan group atau duplikasi yang terjadi.

Pada tahap ini, saat mengepul data yang akan dinormalisasi, kumpulkan saja terlebih dahulu berbagai data yang ada tanpa memedulikan organisasi, duplikasi, atau redundasi yang ada. Tujuan dari tahap ini adalah mengumpulkan seluruh data yang kemungkinan dibutuhkan oleh pengguna dan akan dinormalisasi, sehingga kita dapat menghilangkan duplikasi dan redundansi yang ada.

Contoh tahapan normalisasi bentuk tidak baku

Misalnya, kita memiliki tabel tunggal yang berisi informasi karyawan dan proyek yang mereka kerjakan. Tabel ini mungkin memiliki kolom-kolom seperti: Nama Karyawan, Proyek yang Ditugaskan, Gaji, dll. Namun, satu karyawan bisa muncul beberapa kali jika ia terlibat lebih dari satu proyek. Hal itulah yang disebut dengan duplikasi atau perulangan data yang sebetulnya tidak diperlukan dan harus dinormalisasi. Dalam praktiknya, nama karyawan dapat diganti menjadi ID karyawan yang akan dihubungkan pada tabel lain yang khusus menampung informasi karyawan, termasuk namanya sendiri. Bentuk tabel pada tahap ini misalnya seperti di bawah ini.

Nama KaryawanGajiProyek
John Doe4.000.000Program promosi produk A di Bandung
Jane Smith5.000.000Program promosi produk B di Jakarta
John Doe4.000.000Program promosi produk A di Bandung

Tampak bahwa seharusnya data tersebut idealnya dibagi menjadi dua tabel, yakni: tabel karyawan, dan tabel proyek.

2. Bentuk Normal Pertama (1NF)

Pada tahap ini, setiap kolom dalam tabel haruslah memiliki nilai atomik (tidak terpecah). Artinya, setiap sel dalam tabel harus berisi nilai tunggal, bukan kumpulan nilai atau struktur data tertentu. Hal ini dapat dilakukan dengan cara menghilangkan ketergantungan sebagiannya, sehingga data tersebut akan menjadi nilai atomik. Untuk lebih jelasnya, berikut adalah contoh tahap bentuk normal pertama (1NF).

Contoh

Jika kita melanjutkan contoh sebelumnya, kita dapat memecah tabel karyawan dan proyek-proyek yang dikerjakannya menjadi dua, yakni tabel informasi karyawan, dan tabel informasi proyek. Dengan demikian, duplikasi data akan dihilangkan serta setiap sel berisi nilai atomik yang tidak memiliki ketergantungan sebagian.

Berikut adalah contoh tabel sebelum dan sesudah tahapan bentuk normal pertama (1NF)

Nama KaryawanGajiProyek
John Doe4.000.000Program promosi produk A di Bandung
Jane Smith5.000.000Program promosi produk B di Jakarta
John Doe4.000.000Program promosi produk C di Bandung

Tabel tersebut seharusnya dibagi menjadi dua tabel sebagai berikut.

Tabel Karyawan

IDNama KaryawanGajiProyek
1John Doe4.000.000Program promosi produk A di Bandung
2Jane Smith5.000.000Program promosi produk B di Jakarta

Tabel Proyek

IDProyekNilai Proyek
1Program promosi produk A di Bandung5.000.000.000
2Program promosi produk B di Jakarta2.000.000.000
3Program promosi produk C di Bandung1.000.000.000

3. Bentuk Normal Kedua (2NF)

Jika pada tahap sebelumnya kita telah memilah tabel agar nilainya menjadi atomik atau ttidak terpecah, maka pada tahap ini kita harus menghilangkan ketergantungan transitif (Tarigan, W., dkk, 2021, hlm. 70). Caranya adalah dengan membangun hubungan antar-tabel yang telah kita pisahkan.

Contoh

Pada contoh sebelumnya, tabel yang telah kita pisahkan memiliki 1 kolom yang sama, yaitu ID atau identifier (pengenal) yang merupakan identitas atau kuncian unik dari setiap kolom yang ada. Dengan demikian kita dapat menggunakan ID tersebut untuk menghubungkan dua tabel yang telah kita pisahkan sebelumnya, seperti pada tabel transaksi karyawan-proyek di bawah ini.

Tabel Karyawan-Proyek

ID KaryawanID ProyekJam KerjaTenggat Waktu Proyek
114012-12-2028
228011-12-2026
134012-12-2028

Dengan demikian, kita memiliki tabel yang mencakup informasi karyawan dan proyek. Melalui cara tersebut juga kita memastikan bahwa informasi proyek tergantung pada ID Proyek, bukan pada ID Karyawan. Kolom yang bukan bagian dari kunci utama harus sepenuhnya tergantung pada kunci utama. Dengan kata lain, hal Ini menghilangkan ketergantungan sebagian atau ketergantungan pada bagian dari kunci utama.

4. Bentuk Normal Ketiga (3NF)

Bentuk normal ketiga atau 3NF adalah tahapan yang menghilangkan anomali-anomali hasil dari ketergantungan fungsional (Tarigan, W., dkk, 2021, hlm. 70). Dalam tahap ini, kita memastikan bahwa tidak ada ketergantungan transitif. Artinya, jika ada A yang bergantung pada B, dan B yang bergantung pada C, maka A tidak boleh bergantung pada C. Untuk lebih jelasnya, berikut adalah contoh tahapan bentuk normal ketiga ini.

Contoh

Misalnya, kita memiliki tabel informasi karyawan yang mencakup kota tempat karyawan tinggal dan kode pos. Kode pos seharusnya tidak berkaitan langsung dengan informasi karyawan, tetapi melalui kota.

Tabel Karyawan

ID KaryawanNama KaryawanKota TinggalKode Pos
2Jane SmithSurabaya67890

Pada contoh ini, kita dapat memisahkan tabel karyawan dan tabel kota menjadi sebagai berikut.

Tabel Karyawan

ID KaryawanNama KaryawanKota Tinggal
1John DoeJakarta
2Jane SmithSurabaya

Tabel Kota

Kota TinggalKode Pos
Jakarta12345
Surabaya67890

Tujuan Normalisasi Database

Setelah tahap-tahap normalisasi tersebut, kita dapat memiliki struktur database yang lebih efisien, mengurangi redundansi data dan meminimalkan risiko anomali data. Dengan demikian, dapat kita simpulkan beberapa tujuan normalisasi database ini di antara lain adalah sebagai berikut.

  1. Untuk menghilangkan kerangkapan data.
  2. Untuk mengurangi kompleksitas.
  3. Untuk mempermudah pemodifikasian data (Tarigan, W., dkk, 2021, hlm. 70).

Referensi

  1. Indrajani. (2015). Perancangan basis data all in 1. Jakarta : Elex Media Komputindo.
  2. Tarigan, W., dkk. (2021). Perancangan Basis Data. Purbalingga: Eureka Media Aksara.
  3. Yakub. (2021). Sistem basis data : tutorial konseptual. Yogyakarta: Graha Ilmu.

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *