Sunday, January 20, 2019

Normalisasi Model Data Relational

Assalamu'alaikum

Selamat pagi, jumpa lagi di artikel pembahasan mengenai database, kali ini saya berencana membahas tentang normalisasi pada model data relational. Normalisasi pada basis data relational merupakan sesuatu yang harus di perhatikan di karenakan basis data yang baik adalah basis data yang tidak memiliki abiguity, anomaly dan memiliki integritas data yang baik dan karena itu normalisasi dibutuhkan. 

Normalisasi

Seperti yang kita tau, normalisasi adalah sebuah proses untuk melakukan hal hal yang berkaitan dengan standarisasi sehingga menciptakan sesuatu hal yang normal. Normalisasi pada database memiliki arti yaitu membuat database lebih baik dari segala terjadi kerangkapan data, ambiguity dan anomaly serta menjaga database yang sudah di rancang agar memiliki integritas data yang baik (data yang terpercaya).


Pada dasarnya ada beberapa poin yang perlu diperhatikan dalam melakukan normalisasi database. Poin poin ini disebut important relational model terms yang diantaranya :
  • Entitas
  • Relasi
  • Ketergantungan fungsional
  • Determinant
  • Candidate Key
  • Composite Key 
  • Primary Key
  • Surrogate Key
  • Foreign Key
  • Referential Integrity Constraint
  • Normal Form
  • Multivalued Dependency

Ketergantungan Fungsional

Dari listing important model terms diatas diketahui bahwa semua poin poinnya saling berketerkaitan. Dalam proses database design, dimana normalisasi termasuk masuk ke dalam proses tersebut. Ketergantungan fungsional masuk kedalam proses database design tersebut. Dimana sebuah attribute utama (primary key) atau kita sebut sebagai sebuah determinant menentukan attribute lainnya. 

Bentuk Normal Database

  • Pertama, pada bentuk normal database, setiap baris dalam suatu tabel harus unik dan setidaknya ada satu attribute yang dijadikan primary key. 
  • Kedua primary key yang sudah di tanam pada suatu tabel dihubungkan dengan tabel yang lain sebagai foreign key. 
  • Ketiga, nilai data pada setiap kolom harus memiliki kelas atau data yang sama. 
  • Dan keempat, setiap kolom pada tabel harus memiliki nama yang unik seperti kolom NPM yang berbeda dengan kolom Nama dan berbeda dengan kolom Alamat dsb.

Anomalies

Seperti yang sudah saya jelaskan sebelumnya, tujuan dilakukannya normalisasi adalah salah satunya untuk menghilangkan anomali anomali yang terjadi pada database ketika suatu waktu kita ingin mengupdate data pada database. 3 contoh bentuk anomali yang terjadi pada update data database seperti contoh berikut ini. 

Modification Anomaly - Deletion Anomaly adalah anomali yang terjadi ketika kita ingin update data dengan cara mendelete sebuah data, namun berimbas pada data lainnya. Contohnya sebagai berikut.


Terlihat pada contoh bahwa ditunjukan data matakuliah dan data dosen berada dalam rencangan di tabel yang sama. Ketika sewaktu waktu ketika kita ingin menghapus data matakuliah sistem infomasi management, maka data dosen wawan irawan juga akan ikut terhapus. 

Modification Anomaly - Insertion Anomaly adalah anomali yang terjadi ketika kita ingin menambahkan suatu data. Contohnya jika menggunakan tabel diatas. Ketika kita ingin menambahkan suatu matakuliah maka dibutuhkan juga data dosen yang mengisi matakuliah tersebut. Artinya ketika kita hanya ingin menambahkan data matakuliah saja, data dosen juga harus kita tambahkan. Kondisi ini disebut insertion anomaly


Modification Anomaly - Update Anomaly adalah anomaly yang terjadi ketika kita ingin update suatu data namun hasil update malah membuat data menjadi anomali atau kita sebut data yang berbeda. Contohnya :


Ketika kita update data acquitionCost seperti contoh diatas, akan membuat data anomali yaitu perbedaan data atau data incosistency untuk data 'Drill Press'. Sehingga membuat kita tidak tau data drill press membutuhkan acquistionCost sebesar apa. 

Proses Normal Forms Untuk Normalisasi Database

Proses normalisasi pada database terdiri dari beberapa tahapan dimulai dari tahap 1NF, 2NF, 3NF sampai BCNF bahkan ada yang bisa mencapai 4NF dan selebihnya. Namun normalnya, normalisasi pada database biasanya dilakukan sampai bentuk normal ke3 dan untuk kasus normalisasi sampai BCNF jarang ditemui adanya. Normalisasi biasa di lakukan usai setelah menganalisis kebutuhan dan hubungan apa saja yang di perlukan dan bentuk data seperti apa yang harus di manage. 

NF1 : Bentuk normal kesatu adalah bentuk ketergantungan fungsional ketika suatu attribute sudah menentukan attribute lainnya. Contohnya : Determinant UserID yang menentukan attribute name, address, city_id, city_name, school_id, school_name, company_id, company_name, job_id, dan job_title 

user_id > name, address, city_id, city_name, school_id, school_name, company_id, company_name, job_id, job_title  


NF2 : Bentuk normal kedua adalah bentuk yang sudah terpisah menjadi beberapa entitas / table yang setiap tabel memiliki primary key dan saling terhubung dengan foreign key. Karena sudah terpisah, ketergantungan fungsional dan determinantnya pun juga ikut berubah 

user_id > name, address, city_id, school_id, company_id, job_id
city_id > city_name
school_id > school_name
company_id > company_name
job_id > job_title

 
NF3 : Bentuk normal ke tiga adalah menghilangkan attribute atau field yang tidak berhubungan dengan primary, dalam hal ini menghilangkan attribute yang tidak berkaitan dengan sebuah data 'user'. Artinya kita membutuhkan entitas / tabel baru yang di perlukan untuk menghubungkan semua entitas, tidak pada tabel data si user.

user_id > name, address, city_id
user_id > school_id, company_id, job_id
 
city_id > city_name
school_id > school_name
company_id > company_name
job_id > job_title


Mungkin sekian penjelasan mengenai normalisasi model data relational. Semoga bisa bermanfaat bagi pembaca. Saran dan pertanyaan bisa letakkan di kolom komentar. Terima kasih sudah berkunjung, sampai berjumpa di pertemuan berikutnya.

0 komentar:

Post a Comment

Kenal Saya

Follow My Twitter

Profil



Nama saya Alfa Farhan Syarief, web ini ada berdasarkan nama saya sendiri. Saya sendiri masih duduk tingkat SMK. Lebih lengkapnya saya masih bersekolah di SMKN 1

More »

Blog Archive

Recent Comment