Normalisasi Database 1NF, 2NF & 3NF
Pada kesempatan ini saya akan berbagi pengetahuan mengenai normalisasi database. Tujuan utama dilakukannya normalisasi database ini ialah supaya proses bisnis pada suatu applikasi bisa terjaga integritas & performanya.
Database seperti apa yang bisa di normalisasi?
Tentunya tidak semua database, hanya tipe “relational database” bisa di normalisasi. banyak vendor DBMS (database management system) diantaranya Oracle, MySql, SqlServer, PostgreeSQL dan masih banyak lagi.
Bagaimana cara melakukan normalisasi database?
Untuk melakukan normalisasi database kita harus mengidentifikasi seperti apa bentuk data yang yang saat ini di simpan. Sebagai contoh, saya punya data pembelian tiket nonton bioskop.
Contoh data di atas merupakan data yang belum dinormalisasi, untuk selanjutnya tahap normalisasi 1NF
1NF
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 1NF menjadi seperti ini:
Intinya pada tahap 1NF ini tidak diperbolehkan ada grouping data ataupun duplikasi data. Tahap selanjutnya 2NF
2NF
Syarat 2NF adalah tidak diperkenankan adanya partial “functional dependency” kepada primary key dalam sebuah tabel.
Apa itu “functional dependency”?
Itu adalah batasan keterkaitan antara 2 attribut dalam suatu tabel (pasti banyak yang bingung).
Intinya adalah pada 2NF ini tabel tersebut harus dipecah berdasarkan primary key. Sehingga bentuk 2NF dari tabel tersebut ialah sebagai berikut.
Setelah dinormalisasi 2NF, tabelnya terpecah menjadi 4. Tahap selanjutnya ialah 3NF.
3NF
Pada 3NF tidak diperkenankan adanya partial “transitive dependency” dalam sebuah tabel.
Apa itu “transitive dependency”?
Transitive dependency merupakan functional dependency yang berdasarkan sifat transitifitas. (pasti bingung juga).
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:
Seperti itulah cara melakukan normalisasi database 1NF, 2NF & 3NF. Semoga infomasi yang saya share ini dapat membantu, terima kasih bagi yang sudah membaca.