Archive for January 2020

sumber: Blog - TIK- SMAN 1 GARUT
     Pada artikel kali ini saya akan membahas mengenai teknik paling krusial dalam mengembangkan suatu database. Teknik ini bernama database normalization atau disebut teknik normalisasi. Lalu akan timbul sutau pertanyaan umum ketika membaca/mendengar teknik tersebut. Apa itu teknik normalisasi?

     Teknik normalisasi adalah teknik untuk mengorganisasikan data dengan cara membagi suatu tabel menjadi beberapa tabel yang saling berkaitan. Tujuan mengapa ada teknik normalisasi ini adalah untuk mengurangi atau meminimalisir data redudancy.

     Sekarang muncul isitlah baru, apa itu data reducancy? Data redudancy adalah keadaan di mana dalam suatu tabel terdapat data yang terus - menerus terulang sehingga menyebabkan kerangkapan data.

     Berikutnya ialah mengapa harus diminimalisir? Karena jika terjadi kerangkapan data maka akan terjadi masalah yang besar. Jika di klasifikasikan secara umum, masalah tersebut dapat dibagi atas dua faktor.

     Faktor pertama adalah dapat menyebabkan memori database meningkat dikarenakan terlalu banyak menyimpan data "sampah" yang tidak terlalu digunakan namun secara terus - menerus dituliskan.

     Faktor kedua sekaligus hal yang penting adalah menciptakan keadaan yang sulit untuk seseorang dalam melakukan operasi SIDU (Select, Insert, Delete, Update). faktor kedua ini sering dinamakan anomaly. Nama - nama anomaly tersebut adalah insert anomaly, delete anomaly, dan update anomaly.

     Misal dalam kasus insert anomaly kita melakukan pemasukan data ke suatu tabel, maka berapa kali kah data yang harus kita masukan dengan suatu parameter pada suatu field yang terus menerus ditulis ulang dalam suatu tabel? Mungkin jika parameter tersebut berjumlah sedikit terlihat seperti tidak ada masalah namun, jika ada 1000 data? saya jamin seorang DBA pun akan kualahan dalam mengatasi hal tersebut.

     Selanjutnya Jika kita ingin melakukan delete, dengan adanya data redudancy ini, kita tanpa sengaja dapat mendelete suatu record tetapi juga berarti dapat mendelete suatu record yang seharusnya tidak perlu di delete. Oleh karena itu, jika dibiarkan justru membahayakan database itu sendiri.

     Terakhir Jika kita ingin melakukan update, misal untuk mengganti seorang dosen lama dengan dosen yang baru. Maka seorang DBA harus melakukan pembaruan data untuk setiap recordnya. Jika tidak, kasus seperti delete anomaly di atas akan terjadi.

     Misal kasusnya ialah ada data mahasiswa, mata kuliah, dan nama dosen pengajar dalam satu tabel yang sama. Coba sekarang pembaca bisa membayangkan bagaimana cara melakukan SIDU secara spesifik. sulit bukan?

sumber: Studytonight

Kapan kita menggunakan teknik normalisasi ini dalam mengembangkan database?

     Jawabannya adalah pada saat kita pertama kali membuat database tersebut. Kita coba asumsikan kita menerapkannya pada pertengahan ataupun akhir pembuatan database. Pasti pembaca baru akan menyadari bahwa database yang anda buat tidaklah efisien. Lain cerita jika pembaca sudah merencanakan database anda dan langsung melaksanakan teknik normasisasi. Hasilnya? Anda tidak perlu lagi melakukan pemeriksaan lanjutan dan membuat database anda menjadi lebih optimum dari biasanya.

Tahapan Teknik Normalisasi

1. 1st Normal Form (1NF)

sumber: Studytonight

     Tahapan pertama dalam melakukan teknik normalisasi adalah first normal form  atau disingkat 1NF. Dalam tahapan satu ini, pembuat database harus memenuhi 4 aturan dasar dalam membuat database. Jika tidak, maka seorang pembuat database tersebut sama saja tidak pernah atau tidak perlu menggunakan database sama sekali.

     Empat aturan yang dimaksud adalah:
  1. Setiap kolom (field) harus diisi oleh maksimal satu value data saja. Misal ada field hobi, maka kita tidak boleh memasukan semua hobi seseorang dalam satu field tersebut.
  2. Setiap data yang diisi pada field harus sesuai tipe datanya. Misal jika anda memberikan tipe data date untuk tanggal lahir, maka gunakan format pengisian tipe date bukan dengan seenaknya mengisi 30 febuari 2020 (misal).
  3. Setiap field harus mempunyai nama yang unik (maksudnya berbeda) dari field yang lain dalam sebuah tabel. Coba bayangkan jika ada field dengan nama yang sama? pasti DBMS yang digunakan pun akan bingung maksud field yang dituju berada di mana.
  4. Urutan penyimpanan data tidaklah penting. Artinya jika anda ingin memasukan data tersebut secara sembarang urut, maka hal tersebut diizinkan

     Untuk lebih lengkapnya, anda bisa menyaksikan video di atas sebagai acuan referensi belajar pembaca sekalian.

2. 2nd Normal Form (2NF)

sumber: Studytonight

     Tahapan kedua adalah melakukan second normal form atau sering disingkat 2NF. Pada tahap ini, seorang pembuat database harus memenuhi dua syarat. Syarat pertama adalah tabel yang digunakan sudah harus melewati tahapan pertama (1NF). Berikutnya tabel tersebut juga sudah harus tidak melakukan partially depedency. Untuk lebih memahaminya, saksikan video di atas.

3. 3rd Normal Form (3NF)

sumber: Studytonight

     Pada tahap ketiga ini dinamakan third normal form disingkat 3NF. Pada tahap ini, pembuat database harus sudah memenuhi 2 dua syarat. Pertama adalah tabel yang digunakan sudah harus melewati fase kedua (2NF). Berikutnya, dalam tabel tersebut tidak boleh mengandung unsur Transitive depedency (Keadaan di mana sebuah field bergantung kepada field lain yang bukan primary key). Detil penjelasan ada video yang terlampir di atas.

4. Boyce-codd Normal Form (BCNF)

sumber: Studytonight

     Pada tahap keempat ini disebut Boyce-codd normal form disingkat BCNF. Sedikit sama seperti tahap - tahap sebelumnya, seorang pengembang database harus memenuhi dua syarat dalam melakukan tahap BCNF ini. Syarat pertama adalah database yang digunakan harus sudah lolos tahap 3NF. Syarat kedua berlaku untuk semua dependecy, artinya setiap hubungan A -> B, A harus menjadi super key. Misal, kita mempunyai dua foreign key dalam suatu tabel. Kedua foreign key ini digunakan untuk dapat mengakses data di tabel tersebut, namun sebenarnya isi dari tabel tersebut juga dapat merujuk ke dalam salah satu foreign key yang ada. Nah ini tidak boleh terjadi. Lebih detilnya ada di video di atas.

5. 4th Normal Form

sumber: Studytonight

     Tahap keempat ini disebut fourth normal form atau disingkat 4NF. Untuk mencapai 4NF ini, seorang pengembang database harus memenuhi dua syarat. Syarat pertama adalah tabel - tabel yang digunakan harus sudah memenuhi BCNF. Syarat berikutnya yaitu setiap tabel tidak boleh memiliki multi-valued depedency yaitu keadaan ketika sebuah primary key mempunyai dua value yang dirujuk dan bersifat independen. Biasanya ini terjadi pada tabel yang mempunyai lebih dari dua kolom. Lebih lengkapnya ada di video di atas ya.

5. 5th Normal Form

sumber: Studytonight

     Pada tahap kelima ini, kemungkinan pembaca bingung akan sedikit besar, Tahap ini diberi nama Fifth Normal Form (5NF) dan menjadi langkah terakhir dalam melakukan teknik normalisasi. Terdapat dua syarat yang harus dipenuhi untuk mencapai normalisasi sempurna. Syarat pertama adalah tabel yang digunakan sudah harus lolos tahap 4NF. Syarat kedua adalah tabel 4NF tersebut tidak boleh memiliki Join Depedency.

    Maksud dari join dependency? Yaitu keadaan di mana jika ada sebuah tabel yang sebenarnya dapat dipecah (decomposed) menjadi beberapa tabel kecil, maka ketika dilakukan operasi join, hasilnya akan sama persis dengan tabel sebelum di pecah.

    Artinya untuk lolos tahap 5NF ini. Tabel 4NF yang telah dibuat, harus tidak bisa dipecah lagi menjadi tabel - tabel yang lebih kecil. Jika iya, maka kita telah melanggar peraturan 5NF itu sendiri. Untuk lebih jelasnya, anda bisa menonton video ini dan membuka link referensi berikut ini,


Penerapan Sederhana Teknik Normalisasi Contoh Kasus: Perpustakaan


     Sekarang akan saya mencoba satu contoh sederhana untuk menerapkan teknik normalisasi sesuai tahapannya. Namun dalam contoh kasus kali ini saya hanya memberikan 3 step conton sederhana. Dikarenakan sebenarnya dalam mengembangkan database, syarat minimal normalisasi yang harus dipenuhi umumnya hanya mencapai 3 step saja. Namun, akan lebih baik jika anda mau melakukannya hingga tahap terakhir

1. 1st Normal Form

     Perhatikan tabel bernama bookList berikut ini:
Source: Dokumen Penulis

     Mari kita seleksi menggunakan 4 aturan yang telah kita pelajari, kira - kira di mana letak kesalahaannya?

     Iya! letak kesalahannya adalah penggunaan tipe data yang invalid. Pada kolom publishDate seharusnya menggunakan tipe data date dengan format yaitu antara yyyy/mm/dd atau dd/mm/yyyy namun pada record kedua tertulis 1-Apr-17 yang merupakan tipe string. Oleh karena itu, data tersebut harus diperbaiki menjadi 01/04/2017 atau 2017/04/01 (tergantung default dari DBMS yang digunakan).

     Berikut adalah revisinya:
Source: Dokumen Penulis

2. 2nd Normal Form

     Misal, saya membuat tabel baru bernama libMem seperti
Source: Dokumen Penulis
     Maka kita sudah memiliki dua tabel, sekarang kita akan membuat hubungan antara tabel bookList dengan libMem dan menghasil sebuah tabel bernama borrowList

Source: Dokumen Penulis

     Apakah tabel borrowList sudah memenuhi kaidah 2NF? jawabannya adalah sudah dikarenakan setiap kolomnya tidak ada unsur partial dependency dengan asumsi: borrowID sebagai primary key tabel borrowList, libID sebagai foreign key libMem, bookID sabagai foreign key bookList, dan responsibleStaff serta borrowDate bergantung kepada borrowID.

3. 3rd Normal Form

     Mari kita lihat tabel borrowList di bawah ini:

Source: Dokumen Penulis

     Apakah tabel di atas sudah memenuhi kaidah 3NF? jawabannya adalah iya, dikarenakan selain sudah lolos tahap 2NF tabel di atas tidak memiliki unsur transitive dependency yaitu salah satu kolom tidak bergantung kepada primary key inti. Dari kasus ini, semua justru berpaku kepada primary key, dengan asumsi bahwa borrowID merupakan kombinasi dari libID + bookID.


Penutup

     Sekian dari saya dalam memberikan sedikit ilmu yang saya tahu dalam artikel ini. Sebagai penulis, saya tidak luput dari kesahalan oleh karena itu, tolong benarkan saya di kolom komentar sehingga ilmu yang saya sampaikan ini dapat memberikan manfaat kepada pembaca sekalian. Terima kasih telah membaca. Sampai jumpa di artikel berikutnya.

Teknik Normalisasi (Database Normalization)

Posted by : Raindeca Dzulikrom Haqqu
Thursday, January 30, 2020
0 Comments

- Copyright © 2013 Eucliwood Hellscythe's Blog - Shiroi - Powered by Blogger - Designed by Johanes Djogan -