Normalisasi Database (Langkah Dan Contoh)


Normalisasi Database (Langkah Dan Contoh) – Pada pembahasan kali ini kami berikan materi seputar normalisasi database. Apa itu normalisasi database?

Normalisasi database adalah upaya untuk mendapatkan sebuah basis data dengan struktur yang baik. Caranya adalah dengan menerapkan beberapa aturan pada tiap-tiap tabel supaya ruang penyimpanan efisien. Normalisasi juga bisa disederhanakan menjadi memecah relasi menjadi beberapa tabel untuk memperoleh database yang optimal.



Normalisasi database umumnya jarang dilakukan dalam database skala kecil. Sehingga hal ini dianggap tidak diperlukan pada penggunaan personal. Hanya saja seiring dengan berjalannya waktu dan berkembangnya informasi yang disimpan dalam database, proses normalisasi menjadi sangat diperlukan karena bisa membantu dalam menghemat ruang yang dipakai oleh setiap tabel di dalamnya, sekaligus mempercepat proses permintaan data.

Secara sederhana normalisasi model data bisa disingkat dalam tiga proses. Antara lain menemukan entitas-entitas utama dalam model data, menemukan hubungan antara setiap entitas dan menentukan atribut yang dimiliki masing-masing entitas.

Baca juga: Cara Membuat Foreign Key Di MySQL

Langkah Normalisasi Database

Bentuk Normal Pertama (1NF)

Suatu model data bisa disebut memenuhi bentuk normal pertama jika setiap atribut yang dimilikinya mempunyai satu nilai saja. Jika ada yang mempunyai nilai lebih dari satu atribut tersebut menjadi kandidat untuk menjadi entitas tersendiri.

Sebagai contoh entitas utama dari database tugas mata kuliah adalah tugas mata kuliah. Berikut sebian atribut yang dimiliki entitas tersebut.



Atribut Nama Kelas memuat kelas-kelas di mana tugas tersebut berlaku. Jika pendaftar untuk suatu mata kuliah melebihi kapasitas ruangan yang dimiliki oleh suatu fakultas, biasanya Kepala Program Studi akan membagi kegiatan perkuliahan untuk mata kuliah tersebut menjadi beberapa kelas.

Oleh karenanya atribut tersebut rentan mempunyai nilai jamak. Sehingga atribut tersebut lebih sesuai menjadi entitas baru atau atribut dari entitas lain.

Sementara kita buat entitas baru Kelas di mana sebagian atributnya berasal dari Tugas Matakuliah yang lebih sesuai menjadi atribut entitas ini. Jika diamati hampir semua atribut entitas Tugas Matakuliah selain Nama Kelas mempunyai nilai tunggal. Dengan catatan setiap matakuliah diampu oleh satu dosen.



Relasi Antas-Entitas dan Identifier

Tugas kita sekarang adalah menghubungkan Tugas Matakuliah dengan Kelas. Satu tugas bisa diberikan pada beberapa kelas yang berbeda. Dalam terminologi pemodelan data, kondisi tersebut menandakan bahwa entitas Tugas Matakuliah dan entitas Kelas mempunyai relasi 1:N atau 1-N untuk nilai N lebih dari satu.

Untuk menghubungkan kedua entitas tersebut bisa dengan menyertakan identitas satu entitas sebagai atribut entitas lain. Identitas sebuah entitas harus unik agar tidak terjadi ambiguitas ketika akan merujuk pada satu objek khusus dari entitas tersebut.

Entitas Tugas Matakuliah akan memakai pengidentifikasi arbitrer berupa angka yang berbeda antara satu objek Tugas Matakuliah dengan objek objek Tugas Matakuliah lain. Entitas Kelas bisa diidentifikasi dengan matakuliah dan kode kelas yang bersangkutan. Sehingga kita perlu menambahkan atribut pengidentifikasi atau identifier dalam kedua entitas.

Entitas tersebut berikut seluruh atribut baru dan hubungannya dengan Tugas Matakuliah diperlihatkan dalam Gambar 2, dengan memakai notasi relasi crows foot atau simbol kaki gagak yang menunjuk pada entitas jamak.



Jika diperhatikan tidak ada atribut entitas yang mempunyai nilai lebih dari satu. Sehingga dapat dikatakan bahwa model di atas memenuhi bentuk normal pertama.

Bentuk Normal Kedua (2NF)

Model data bisa dikatakan memenuhi bentuk normal kedua jika memenuhi bentuk pertama dan setiap atribut non-identifier suatu entitas bergantung sepenuhnya hanya pada seluruh identifier entitas tersebut.

Jika mencermati contoh model data di atas, Anda bisa mengetahui bahwa atribut dari entitas Kelas tidak sepenuhnya bergantung pada identitas unik Kelas. Seorang dosen akan tetap ada walaupun kelas matakuliah yang dosen tersebut ampu sudah tidak ada lagi.

Sehingga dalam kasus tersebut dosen merupakan entitas tersendiri yang nantinya bisa dilekatkan pada entitas Fakultas atau Universitas jika kedua entitas tersebut perlu ada.

Identifier

Mungkin ada yang beranggapan bahwa individu bisa diidentifikasi secara unik lewat namanya. Padahal bisa saja nama tersebut juga dimiliki orang lain, sekalipun satu rangkaian nama lengkap.

Maka dari itu pemodelan data yang melibatkan informasi tentang individu jarang memakai nama individu sebagai satu-satunya pengidentifikasi. Implementasi RDBMS tertentu juga akan lebih cepat memproses query atas suatu tabel jika tabel itu diindeks oleh nilai integer unik dibandingkan jika memakai indeks karakter. Sebab rangkaian karakter perlu diumpankan ke fungsi hash supaya bisa dipakai sebagai indeks tabel, berbeda dengan integer unik.

Untuk itu entitas Dosen pada model data di atas akan menggunakan pengidentifikasi arbitrer berupa Nomor Induk Pegawai. Dalam notasi crows foot, relasi non-identifying digambarkan dengan garis-putus-putus.

Sesudah atribut-atribut dari seluruh entitas dalam sebuah model data hanya bergantung pada seluruh pengidentifikasi entitas yang memilikinya, model data itu bisa disebut memenuhi bentuk normal kedua.

Bentuk Normal Ketiga (3NF)

Model data bisa dikatakan memenuhi bentuk normal ketiga jika memenuhi bentuk normal kedua dan tidak ada satupun atribut non-identifying yang bergantung pada atribut non-identifying lain. Jika ada, maka kita bisa memisahkan salah satu atribut tersebut menjadi entitas baru, dan atribut yang bergantung padanya menjadi atribut dari entitas baru tersebut.



Leave a Comment