Kamis, 15 November 2012

TAHAPAN NORMALISASI

Assalamu'alaikum Warahmatullahi Wabarakatuh...
Salam sejahtera untuk kita semua, Alhamdulillah atas segala Kenikmatan-Nya. Aamiin....
Perkenalkan nama saya Joko Purnomo, saya adalah salah seorang mahasiswa di universitas kebanggaan Kota Kudus yakni Universitas Muria Kudus dari Fakultas Teknik Program Studi Sistem Informasi. Langsung saja, dalam kesempatan yang berbahagia ini saya akan menjelaskan apa itu Tahapan Normalisasi, Normalisasi itu sendiri serta hal-hal yang saling berkaitan.

NORMALISASI merupakan sebuah teknik dalam logical desain sebuah basis data yang mengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi). NORMALISASI adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.
  • TUJUAN NORMALISASI : untuk menghilangkan kerangkapan data, untuk mengurangi kompleksitas, serta untuk mempermudah pemodifikasian data.
  • PROSES NORMALISASI : data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat, apabila tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.
  • TAHAPAN NORMALISASI : Tahapan Normalisasi dimulai dari tahap ringan (1NF) hingga paling ketat (5NF). Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik. Urutannya : 1NF, 2NF, 3NF, BCNF, 4 NF, 5NF
  1. Bentuk Tidak Normal
  2. Bentuk Normal Pertama (1NF) : Menghilangkan Perulangan Grup
  3. Bentuk Normal Kedua (2NF) : Menghilangkan Ketergantungan Parsial
  4. Bentuk Normal Ketiga (3NF) : Menghilangkan Ketergantungan Transitif
  5. Bentuk Normal Boyce-Code Form (BCNF) : Menghilangkan anomali-anomali hasil dari ketergantungan fungsional
  6. Bentuk Normal Keempat (4NF) : Menghilangkan ketergantungan multivalue
  7. Bentuk Normal Kelima : Menghilangkan anomali-anomali yang tersisa
  • FUNGSIONAL DEPENDENSI : misalkan kita pakai notasi A--> B adalah atribut dari sebuah tabel. Berarti secara fungsional A menentukan B atau B tergantung pada A, jika dan hanya jika ada 2 baris data dengan nilai A yang sama, maka nilai B juga sama. Sebagai contohnya, ada sebuah nota seperti pada gambar di bawah ini :

fungsi formulir ?
masalah yang muncul ?
jumlah atribut ?
Kemudian dijadikan ke dalam bentuk
  1. Un-Normal Form
  • Berupa relasi umum, sesuai kenyataan
  • Mencerminkan item data nyata
  • Mencerminkan bagian dari suatu sistem
  • Belum dapat digunakan sebagai database
  • Bentuk Flat Table menggambarkan jumlah  atribut
 
2. Bentuk Normal Tahap Pertama (1NF)
  • Bentuk normal 1NF terpenuhi jika sebuah tabel tidak memiliki atribut bernilai banyak (multivalued attribute), atribut composite atau kombinasinya dalam domain data yang sama.
  • Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi).
Masalah yang muncul : Duplication, Inconsistency, Data Isolation, dan Un-Efficiency
3. Bentuk Normal Tahap Kedua (2NF)
  • Bentuk Normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh memiliki Functional dependency pada primary key.
  • Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya (Functional Dependency) hanya bersifat parsial saja (hanya tergantung pada sebagian dari primary key).
  • Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan.
Untuk itu, aku kasih video yang sudah saya upload di youtube.
Lanjutan dari materi diatas, bahwa tabel yang sudah ada tadi yang berisi atribut Nota No., Tanggal, Tuan, Alamat, Kota, Phone, Seri, Nama Barang, Jumlah, Harga, Satuan, Jumlah Harga, dan Total.
Kita dapat urai lagi menjadi beberapa tabel baru, sebagai contoh saya bagi tiga tabel baru. Untuk penamaannya terserah kita. Misalkan kita dapat pecah dengan nama Tabel NTT, Tabel TAKP, dan Tabel SNJHS-J seperti pada gambar berikut :

 






Dari ketiga tabel tersebut masih ada beberapa masalah yang muncul yakni masalah :
  • Lose-Less Decomposition
  • Dependency Preservation. Coba kita lihat pada tabel SNJHS-J, atribut Jumlah serta Jumlah Harga masih juga samar-samar jadi permasalahan yang muncul adalah Transitive Dependency. Maka perlu dilakukan langkah normalisasi bentuk ketiga (3NF).
4. Bentuk Normal Tahap Ketiga (3NF)
  • Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF, dan jika tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya,
  • Untuk setiap Functional Dependency dengan notasi X-->A, maka :
  • X harus menjadi superkey pada tabel tersebut.
  • Atau A merupakan bagian dari primary key pada tabel tersebut.
Coba kita lihat lagi tabel SNJHS-J, kita dapat memecah kembali tabel tersebut dengan membagi atribut Seri, Nama Barang, Harga, dan Satuan  menjadu satu tabel. Untuk Tabel NTT dan Tabel TAKP sudah tidak ada masalah lagi. Jadi sampai bentuk ketiga ini kita sudah memiliki 4 tabel baru.
Dengan tambahan dari pemecahan tabel SNJHS-J menjadi SNHS dan SJJ. Seperti pada gambar di bawah ini :


Apakah perlu dilakukan tahapan selanjutnya ke BCNF? Dari awal sudah ada penjelasan bahwa untuk Tahap Ketiga ini tabel-tabel sudah berkualitas baik. Kalau bisa dilakukan ke BCNF tidak masalah. OK...daripada bingung-bingung saya jelaskan langsung saja Apa itu BCNF.
5. Boyce-Code Normal Form (BCNF)
  • 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 sebagai bagian dari primary key.
6. Bentuk Normal Tahap Keempat (4NF) atau MVD dan PJNF
  • Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued attribute.
  • Untuk setiap  multivalued attribute (MVD) juga harus merupakan Functional Dependency
7. Bentuk Normal Tahap Kelima (5NF)
  • Bentuk normal 5NF terpenuhi jika memiliki sebuah loseloss decomposition menjadi tabel-tabel yang lebih kecil.
  • Jika 4 bentuk normal sebelumnya dibentuk 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 untuk membentuk tabel semula.
8. Overnormalisasi
Analisa Overnormalisasi diperlukan jika :
  • Database ini digunakan untuk sistem multi user
  • Tabel-tabel yang sudah normal ini digabungkan dengan fungsi lain yang ada di lapangan, misalnya; untuk fungsi retur, untuk fungsi inventori, untuk fungsi sales order maupun order pembelian, untuk fungsi keamanan database, dan lain-lain.
Untuk mengetahui semua materi ini, silahkan kunjungi blog-blog berikut :
1. Blognya ZUMALA zumazuma94.blogspot.com
2. Blognya DWI CAHYA
3. Blognya ANIQ BAIHAQI baihaqianiq.blogspot.com
4. Blognya IRAWAN LISWANTO irawan147.blogspot.com
5. Ini Blog SAYA (JOKO PURNOMO) yangkusuk.blogspot.com
6. Blognya SAEFUDIN AJI M. it-sae.blogspot.com

Semoga bermanfaat sobat....!!!!

BERSAHABATLAH DENGAN ADIL, TAK HANYA MENIKMATI KELEBIHAN SAHABATMU, ENGKAU PUN HARUS SIAP DENGAN KEKURANGANNYA, ITULAH PERSAHABATAN SEJATI