NORMALISASI 1NF, 2NF dan 3NF

 Nama : Reihan Fariza

NIM : 2101301076

Kelas : 1D

Prodi : Teknologi Informasi


NORMALISASI 1NF, 2NF dan 3NF

Normalisasi Basis Data Bentuk Normal Pertama (1NF)

Normalisasi pangkalan data merupakan cara lain untuk merancang basis data yang bertujuan memastikan dependensi data pada sistem basis data, normalisasi memiliki aturan-aturan tahapan wajib di lalu satu persatu agar basis data dapat dikatakan baik dan efisien. 1NF merupakan singkatan dari 1st (first) Normal Form bahasa indonesia dikenal dengan Bentuk Normal Pertama. 

Normalisasi Bentuk Normal Pertama (1NF) merupakan proses dekomposisi atau penguraian data berdasarkan sampel star table/universal. star table atau universal merupakan tabel atau relasi berisikan kumpulan item data yang masih memiliki indikasi relasi redudansi dan atribut bernilai ganda (Multivalued Attribute) ataupun tidak, memiliki indikasi tersebut merupakan kelemahan fatal dalam sebuah sistem basis data. Star tabel/universal dapat berupa output record dari sebuah sistem informasi, baik itu berupa nota, kwitansi, invoice yang  dapat digunakan untuk megontruksi ulang ralasi menjadi basis data relasional yang baik.

Edgard F. Codd mendefinisikan normalisasi bentuk pertama (1NF) di dalam konferensi makalahnya berjudul "A Relational Model of Data for Large Shared Data Banks" atau Sebuah Model Data Relasional untuk Bank Data Besar Bersama pada tahun 1971. Di Dalam makalah itu bertuliskan kalimat "defined a relation to be in first normal form when none of its domains have any sets as elements", kurang lebih definisi normalisasi bentuk normal pertama (1NF) adalah ditetapkan sebuah tabel berbentuk normal pertama ketika tidak ada relasi (relasi) yang domainnya memiliki himpunan sebagai elem. Domain diatas dimaksudkan himpunan nilai, nama, tipe data dan ukuran yang diberikan pada suatu atribut dalam tabel, sedangkan elemen disini dimaksudkan nilai data yang dapat dipisah atau dapat dijadikan sub atribut.

 

Ketentuan Normalisasi Database Bentuk Pertama (1NF)

Sebuah relasi dalam pangkalan data dikatakan memenuhi bentuk normal pertama, jika relasi tersebut telah memenuhi kriteria-kriteria Normalisasi Bentuk Pertama (1NF) sebagai berikut:

  • Mendefinisikan atribut kunci (key attribute), dimana ketentuan Normalisasi bentuk pertama (1NF) harus mengidentifikasikan atribut-atribut ke dalam kata kunci. Atribut kunci adalah satu atau kumpulan atribut yang membedakan baris data record satu dengan baris data record lainnya agar menjadikan baris data record tersebut menjadi unik (unique) pada sebuah tabel. Terutama megiden tifikasikan atribut kunci primer (primary key).
  • Tidak adanya atribut bernilai banyak (multivalued attribute). Artinya bentuk normal 1nf adalah dimana setiap relasi tidak memiliki nilai atribut dengan jenis yang sama, contoh multivalued attribute adalah ketika hobi dijadikan sebagai atribut, seorang mahasiswa memiliki banyak nilai/jenis hobi (hobi berenang, tenggelam, mancing dan bulutangkis per seorang mahasiswa). 
  • Setiap atribut dalam tabel tersebut harus bernilai atomic. Dimana Ketentuan normalisasi bentuk normal pertama (1NF) atribut tersebut tidak boleh atribut komposit (composite attribute) harus bernilai terkecil tunggal dan bukan atribut yang dapat dipilah menjadi subatribut (tidak memiliki kemungkinan sub-sub atribut). Contoh atribut kompisit adalh terdapat artribut alamat didalam sebuah tabel, atribut alamat dalam amatan normalisasi bentuk tahap pertama (1NF), dimungkan kan untuk didekomposisi (diuraikan)menjadi beberapa subatribut. subatribut dari alamat adalah kode pos, desa, kecamatan, kabupaten, provinsi, dan negara.

 

Contoh sederhana normalisasi database bentuk normal pertama (1NF)

Untuk memudahkan dalam pemahaman tentang normalisasi database 1NF (1st Normal form), mari perhatikan contoh normalisasi database Bentuk pertama sederhana dibawah.

Ketergantungan Fungsional (Functional Dependency)

Untuk memudahkan dalam pendekomposisian tabel diatas, kita dapat menggunakan teknik dekomposisi Ketergantungan Fungsional (Functional Dependency). Dimana jika diberikan tabel dengan A berisikan 2 atribut dengan nama B dan C, yang berarti secara fungsional B menentukan C atau C tergantung pada B (B → C), jika dan hanya jika ada 2 baris data (row) dengan nilai B yang sama, maka nilai C juga sama (B => C). Cara menentukan Ketergantungan Fungsional (Functional Dependency) dari gambar tabel mata kuliah per mahasiswa di atas adalah dengan mencari atribut dengan nilai unik (tidak sama). Atribut unik ini juga merupakan atribut kandidat key (Candidate-Key) atau bakal calon primary key.

Berdasarkan gambar belum normal (unnormalized) diatas, ditemukan dua buah atribut bersifat unik nim dan kode-matkul.

  • nim → merupakan Ketergantungan Fungsional nama.
  • kode_matkul → merupakan Ketergantungan Fungsional matkulwaktu1, dan waktu2

 

Kembali Lagi dalam ketentuan bentuk Normal pertama (1NF). Setelah Ketergantungan Fungsional (Functional Dependency) telah diidentifikasikan, tercipta tabel mahasiswa yang terdiri dari atribut nim dan nama dan tabel mata_kuliah  dengan atribut kode_mtkulmatkulwaktu1 dan waktu2. Selanjutnya mendekomposisikan tabel belum normal tersebut seperti gambar dibawah.

Ternyata Gambar diatas belum memenuhi bentuk normal pertama (1NF), karena didalamnya terdapat ambiguity perulangan grup atau pengulangan banyak nilai (Multivalued Attribute) yang terdapat atribut waktu1 dan waktu2 pada tabel mata_kuliah. Sehingga memungkinkan terjadinya anomali (insert, delete, dan update anomaly).

Pada situasi seperti ini kita diharuskan mengulangi lagi dekomposisi tabel mata_kuliah dengan mencari lagi ketergantungan fungsional pada tabel tersebut. Ketergantungan fungsional dari tabel mata_kuliah tersebut adalah nimkode_matkul → merupakan Ketergantungan Fungsional waktu1 dan waktu2. permasalahan ini mengharuskan untuk menguraikan atribut baru sehingga didapatkan entri data unik dan dapat menjadi kunci primer (primary key). Tabel mata_kuliah diatas dapat didekomposisikan lagi menjadi tabel_jadual dan memberi atribut kode_jadwal dan jam. Perhatikan gambar dibawah.

Dekomposisi dari Tabel Belum Normal (Unnormalized) Mata Kuliah

 

Setelah dekomposisi diuraikan, dapat disimpulkan bentuk normalisasi basis data bentuk normal pertama terhadap tabel atau relasi data mata kuliah per mahasiswa ini terdiri dari atribut nim, nama, kode_matkulmatkulkode_jual, dan jadual. Perhatikan gambar contoh tabel yang memenuhi normalisasi bentuk normal pertama (1NF) berdasarkan tabel universal kumpulan data mata kuliah per mahasiswa dibawah

Tabel Normalisasi Basis Data Bentuk Normal Pertama (1NF)


Jika dan hanya jika domain dari setiap atribut pada tabel database mahasiswa diatas hanya berisi nilai bersifat atom (elemen terkecil) atau tidak dapat diuraikan lagi, maka tabel tersebut telah memenuhi bentuk normalisasi basis data bentuk pertama (1NF) dan dapat dilanjutkan ke bentuk normal kedua (2NF) jika diperlukan. Artinya, dalam Aturan dan tahapan perancangan basis data dengan pendekatan teknik normalisasi basis data tidak harus memenuhi semua tahapan bentuk awal hingga akhir normalisasi. Dimana jika Normalisasi basis data pada bentuk normal tertentu dapat memenuhi aturan BCNF (Boyce-Codd Normal Form), maka basis data tersebut dikatakan efisien dan baik.


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.

 

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:


DAFTAR PUSTAKA

Normalisasi Database 1NF, 2NF & 3NF | by Ahmad Rusadi Muslim | dycode | Medium

 







Komentar