Normalisasi Database

Atrem13
5 min readMay 21, 2020

--

Hei hei… balik lagi sama Merta v: setelah beberapa kali nulis ternyata asik juga ya bisa ngeluarin isi kepala kita dalam sebuah artikel. kemungkinan aku bakal post tiap selesai belajar sesuatu yang baru. tapi itupun kalau ada waktu luang hehe :) kita ga tau kapan deadline yang lain akan menerjang kita disaat lengah jadi pastikan kalian bisa atur waktu dengan baik ya. biar ga kayak aku yang keteteran tugas jadi harus begadang ampe pagi :(

ok itu dulu basa basinya sekarang kita bakal lanjut bahas materi tentang Normalisasi Database. “wah apa lagi nih mer?” kalau kalian udah biasa bikin sistem web dengan SQL pasti udah ga asing ama normalisasi database, karena hal ini penting banget untuk acuan kita saat merancang database nantinya

Tapi kalau kalian bener bener baru belajar dan masih belum ada basic mungkin bisa coba dibaca dulu materi yang udah aku post sebelumnya tentang

Data Definition Language (https://medium.com/@atrem13/data-definition-language-ddl-cd178b6337a8)

dan

Data Manipulation Language (https://medium.com/@atrem13/data-manipulation-language-dml-d9f24186d146)

kalau sudah yuk masuk ke materi

Photo by Andy Beales on Unsplash

Normalisasi

Normalisasi merupakan sebuah teknik logical desain dalam sebuah basis data yang mengelompokkan atribut dari berbagai entitas dalam suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi/pengulangan data) serta sebagian besar ambiguity bisa dihilangkan.

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 bentuk normalisasi ini yang paling sering digunakan sampai bentuk 3N.

Photo by Markus Winkler on Unsplash

Tujuan

  • Untuk menghilang redudansi/duplikasi data
  • Untuk mengurangi kompleksitas
  • Untuk mempermudah pemodifikasian (insert, update, dan delete) data
Photo by NEW DATA SERVICES on Unsplash

Proses Normalisasi

  • Data pertama-tama diuraikan dalam bentuk tabel untuk mempermudah proses pembacaan
  • Selanjutnya dianalisis berdasarkan persyaratan tertentu sesuai tingkat normalisasi.
  • Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.
Photo by Jude Beck on Unsplash

Resiko jika tidak dilakukan Normalisasi

  • Data (file atau record) yang sama tersimpan di beberapa tempat berbeda
  • Ketidakmampuan untuk menghasilkan informasi tertentu
  • Terjadi adanya redudansi (pengulangan) atau duplikasi data sehingga memboroskan ruang penyimpanan dan menyulitkan saat proses modifikasi data
  • Timbul adanya NULL VALUE/ nilai kosong yang akan mengakibatkan error
  • Kehilangan informasi bisa terjadi karena data tidak rapi
Photo by You X Ventures on Unsplash

Tahapan Normalisasi

Untuk melakukan normalisasi database kita harus mengidentifikasi atau menentukan seperti apa bentuk data yang dimiliki atau akan di simpan. Sebagai contoh data pembelian tiket nonton bioskop.

A. Unnormalize form

https://medium.com/dycode/normalisasi-database-1nf-2nf-3nf-f609174e353a

Contoh data di atas merupakan data yang belum dinormalisasi. Unnormalize form merupakan kumpulan data yang direkam tidak ada keharusan dengan mengikuti suatu format tertentu(disimpan secara mentah kedalam tabel). Pada bentuk tidak normal terdapat repeating group (Pengulangan Group), sehingga pada kondisi ini data menjadi permasalahan dalam melakukan manipulasi data (insert, update, dan delete) atau biasa disebut anomali. Tahap selanjutnya 1NF.

B. 1NF / First Normal Form

Syarat:

  • Menghilangkan duplikasi kolom dari tabel yang sama.
  • mengelompokan masing-masing data terkait dan mengidentifikasi setiap baris dengan kolom yang unik (primary key).

Suatu tabel dikatakan 1NF jika dan hanya jika setiap setiap atribut dari data tersebut hanya memiliki nilai tunggal dalam satu baris.

Jadi tabel yang belum normal tadi perlu diubah, sehingga bentuk 1NFnya menjadi seperti ini:

https://medium.com/dycode/normalisasi-database-1nf-2nf-3nf-f609174e353a

Intinya pada tahap 1NF ini tidak diperbolehkan ada duplikasi data

Tahap selanjutnya 2NF.

C. 2NF

Syarat:

  • Memenuhi persyaratan 1NF
  • Menghapus beberapa subset data yang ada pada tabel dan menempatkan mereka pada tabel baru yang terpisah.
  • Menciptakan hubungan antara tabel baru dan tabel lama dengan menciptakan foreign key.
  • Tidak ada atribut dalam tabel yang secara fungsional bergantung pada primary key tabel tersebut.

functional dependency adalah batasan ketergantungan antara 2 attribut dalam suatu tabel (misalnya attribute nama_member tergantung dengan id_member).

Intinya adalah pada 2NF ini tabel tersebut harus dipecah berdasarkan primary key dan attribute yang memiliki functional dependency harus dihilangkan. Sehingga bentuk 2NF tersebut ialah sebagai berikut.

https://medium.com/dycode/normalisasi-database-1nf-2nf-3nf-f609174e353a

Setelah dinormalisasi 2NF, tabelnya terpecah menjadi 4. Tahap selanjutnya adalah 3NF.

D. 3NF

Syarat:

  • Memenuhi 2NF
  • Pada 3NF tidak diperkenankan adanya partial “transitive dependency” dalam sebuah tabel.

Transitive dependency merupakan functional dependency yang berdasarkan sifat transitifitas. Intinya adalah pada 3NF ini, jika terdapat suatu atribut yang tidak bergantung pada primary key tapi bergantung pada field yang lain maka atribut-atribut tersebut perlu dipisah ke tabel baru.

Contohnya ada pada atribut “keterangan_member”, field tersebut bergantung pada yang bukan merupakan primary key field “tipe_member”. Jadi setelah di normalisasi 3NF ialah sebagai berikut:

https://medium.com/dycode/normalisasi-database-1nf-2nf-3nf-f609174e353a
Photo by Razvan Chisu on Unsplash

Akhirnya materi kali ini selesai juga ya, jujur aku pribadi baru aja paham setelah beberapa kali explore beberapa sumber yang ngebahas normalisasi. tapi materi kali ini penting banget buat kalian yang ingin membangun sebuah sistem dengan Relational Database. Seperti yang aku bilang sebelumnya disini aku cuma bahas normalisasi sampai tahap 3NF. Jadi seperti biasa sisanya kalian explore lagi sendiri :) kalau kalian nemuin sumber bagus boleh dong share kesini juga hehe v: . Ok seperti biasa kalau ada salah kata atau sejenisnya mohon dimaafkan dan kalau bisa dikoreksi agar aku bisa lebih baik lagi kedepannya.

Oke itu dulu untuk seri kali ini, saya Merta pamit undur diri dan ingat untuk ‘Haus akan ilmu baru’ :)

--

--

Atrem13
Atrem13

No responses yet