NORMALISASI

Assalamualaikum Wr Wb

Pada kesempatan kali ini kita akan membahas tentang NORMALISASI. Sebagaimana kita ketahui dalam pembuatan database, kita membutuhkan suatu rancangan terlebih dahulu agar nantinya pada saat kita melakukan insert data, update maupun delete data tidak kebinguan dan prosesnya lancar wal afiat :D. Langsung saja kita cap cuuss >>



DASAR TEORI


Normalisasi dapat kita artikan sebagai teknik dalam logikal desain sebuah data yang mengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik, tanpa redudansi (pengulangan atau kolom yang mubazair :D). Dan juga Normalisasi ini digunakan untuk penghilangan atribut atau kolom yang ambigu.


Suatu rancangan database dapat dikatakan baik jika :

  • Tidak ada data yang sama tersimpan dibeberapa tempat (file atau record)
  • Mampu menghasilkan informasi tertentu dan tidak terjadi kehilangan informsi
  • Tidak adanya Redudansi (pengulangan) atau duplikasi data sehingga tidak memboroskan ruang penyimpanan dan tidak menyulitkan saat proses update data.
  • Tidak ada NULL VALUE
  • Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (Lossless-Join Decompotition). Artinya, setelah tabel tersebut diuraikan/dikomposisi menjadi tabel-tabel baru tersebut bisa menghasilkan tabel semula dengan sama persis
  • Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation)
  • Tidak melanggar Boyce-Codd Normal Form (BCNF)
Tujuan dari normalisasi itu sendiri adalah menyempurnakan struktur tabel dengan : mengeliminasi adanya duplikasi informasi, memudahkan pengubahan struktur tabel, memperkecil pengaruh perubahan struktur database

Proses normalisasi dapat dilakukan dengan :
  • Penguraian data 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 samapai memenuhi bentuk yang optimal
Untuk melakukan normalisasi, harus bisa menentukan terlabih dahulu Functional Dependency (FD) atau Ketergantungan Fungsional, khususnya dalam melakukan dekomposisi rancangan database. Functional Dependency (FD) dapat disimbolkan dengan  A => B  artinya B memiliki ketergantungan dengan A. Dengan kata lain A secara fungsional menentukan B atau sebaliknya.

Tahapan dari Normalisasi adalah sebagai berikut:
  • Pertama, Unnormalisasi
Tahap ini adalah tahap dimana kita menuliskan semua tabel yang ada didalam kasus dengan keseluruhan. Jadi, pada tahap ini adalah tahap yang masih tidak normal atau masih rancu. Dan tahap ini dapat dikatakan penulisan ulang suatu kolom dalam satu tabel dengan tidak memikirkan telebih dahulu adanya suatu relasi antar tabel, walaupun masih banyak perulangan yang terjadi disana.

  • Kedua, Normalisasi 1NF (First Normal Form)
Setelah langkah Unnormalisasi, tahap selanjutnya adalah menghilangkan perulangan grup yang akan menjadi tahap First Normal Form. Suatu relation disebut 1NF jika ada dan hanya jika semua attibut value-nya simple/atomic (tidak boleh ada attibut yang composit & multivalue)

Dan syarat pada tahap ini :
-  Tidak adanya atribut multi-value, atribut komposit atau kombinasinya
-  Mendefinisikan atribut kunci
-  Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi)

Sedangkan, tujuan dari 1NF :
-  Membuang adanaya pengulangan (Redudansi) data
-  Menghindari adanya percatatan Null Value
- Menjaga setiap entry data dari relasi (perpotongan baris-kolom) memiliki maksimal satu nilai tunggal

  • Ketiga, Normalsasi 2NF (Second Normal Form)
Syarat untuk melakukan tahap ini adalah: 
-   Telah melakukan dan menyelesaikan tahap 1NF
-   Semua atribut bukan kunci hanya boleh tergantung (functional dependency) pada atribut kunci
-   Jika ada ketergantungan parsial maka atribut tersebut harus dipisah pada tabel yang lain
-  Perlu ada tabel penghubung ataupun kehadiran foreign key bagi atrtibut-atribut yang telah dipisah tadi

  • Keempat, Normalisasi 3NF (Third Normal Form)
Syarat dari tahap ini : 
-    Sudah berada dalam bentuk 2NF
-  Tidak ada ketergantungan transitif (dimana atribut bukan kunci tergantung pada atribut bukan kunci lainnya)

  • Kelima, Boyce-Codd Normal Form (BCNF)
Sebenarnya, setelah sampai pada tahap 3NF proses Normalisasi itu sudah selesai, akan tetapi sebagian kasus memang perlu dilanjutkan ke tahap ini.

Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional dependency terhadap setiap atribut atau gabungan atribut dalam bentuk: X => Y maka X adalah super key

Tabel tersebut harus di-dekomposisi berdasarkan functional dependency yang ada, sehingga X menjadi super key dari tabel-tabel hasil dekomposisi.

Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF.
Perbedaannya, untuk functional dependency X => A,  BCNF tidak membolehkan A sebagian bagian dari primary key. 

  • Keenam, Normalisasi 4NF
Bentuk 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued atribute

  • Ketujuh, Normalisasi 5NF
Bentuk 5NF ini terpenuhi jika dapat memiliki sebuah lossless decoposition menjadi tabel-tabel yang lebih kecil.
Jika bentuk normal sebelumnya sibentuk berdasarkan functional dependency, 5NF dibentuk berdasarkan konsep join dependence. Yakni apabila sebuah tabel telah di dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi (join) untuk membentuk tabel semula.


HASIL PRAKTIKUM 

Sebagai Contoh dari pembahasan diatas dapat kita menyelsaikan sebuah kasus Nota Pembelanjaan, sebagaimana pada gambar berikut ini : 


  • Pertama, kita akan melakuan Unnormalisasi


UNNORMALISASI

  • Selanjutnya adalah Normalisasi 1NF 


1NF

  •  Ini masuk pada tahap 2NF


2NF



  •  Dan yang terakhir adalah 3NF

3NF

KESIMPULAN

Jadi dari pembahasan dan contoh di atas, kita dapat membuat database dengan melakukan normalisasi agar dalam pengisian ataupun peng-update- an data tidak memiliki kesulitan, dan memudahkan kita.


SUMBER REFERENSI

Saya membuat artikel ataupun laporan ini atas refernsi yang saya dapat pada link blog berikut ini ;

No comments

Powered by Blogger.