Normalisasi


Normalisasi adalah teknik perancangan yang banyak digunakan sebagai pemandu dalam merancang basis data relasional. Pada dasarnya, normalisasi adalah proses dua langkah yang meletakkan data dalam bentuk tabulasi dengan menghilangkan kelompok berulang lalu menghilangkan data yang terduplikasi dari tabel relasional.

Teori normalisasi didasarkan pada konsep bentuk normal. Sebuah tabel relasional dikatakan berada pada bentuk normal tertentu jika tabel memenuhi himpunan batasan tertentu. Ada lima bentuk normal yang telah ditemukan.

Beberapa pengertian normalisasi :
Ø  Normalisasi merupakan proses pengelompokan elemen data menjadi tabel–tabel yang menunjuk-kan entity dan relasinya.
Ø  Normalisasi adalah proses pengelompokan atributeatribute dari suatu relasi sehingga membentuk WELL STRUCTURE RELATION. 

Well Structure Relation adalah sebuah relasi yang jumlah kerangkapan datanya sedikit (minimum Amount Of Redundancy), serta memberikan kemungkinan bagi user untuk melakukan INSERT, DELETE, dan  MODIFY terhadap baris-baris data pada relation tersebut, yang tidak berakibat terjadinya ERROR atau INKONSESTENSI DATA, yang disebabkan oleh operasi-operasi tersebut

Pada waktu menormalisasikan basis data, ada empat tujuan yang harus dicapai yaitu :
1.      Mengatur data dalam kelompok-kelompok sehingga masing-masing kelompok hanya menangani bagian kecil sistem
2.      Meminimalkan jumlah data berulang dalam basis data
3.      Membuat basis data yang datanya diakses dan dimanipulasi secara  cepat dan efisien tanpa melupakan integritas data
4.      Mengatur data sedemikian rupa sehingga ketika memodifikasi data, anda hanya mengubah pada satu tempat

Bentuk Normal Kedua (2NF)
Definisi bentuk normal kedua menyatakan bahwa tabel dengan kunci utama gabungan hanya dapat berada pada 1NF, tetapi tidak pada 2NF. Sebuah tabel relasional berada pada bentuk normal kedua jika dia berada pada kunci utama. Ini setiap kolom bukan kunci yang sepenuhnya tergantung pada seluruh kolom yang membentuk kunci utama Tabel pemasok berada pada 1NF, tetapi tidak pada 2NF karena status dari kota tergantung secara fungsional hanya pada kolom p# dan kunci gabungan (p#, b#). Ini dapat digambarkan dengan membuat daftar ketergantungan fungsional.
            p# = kota, status
            kota = status
            (p#,b#) =qty
Proses mengubah tabel 1NF ke 2NF adalah :
1.      Tentukan sembarang kolom penentu selain kunci gabungan dan kolom-kolom yang ditentukannya
2.      Buat dan beri nama tabel baru untuk masing-masing penentu dan kolom-kolom yang ditentukannya
3.      Pindahkan kolom-kolom yang ditentukan dari tabel asal ke tabel baru penentu akan menjadi kunci utama pada tabel baru
4.      Hapus kolom yang baru dipindahkan dari tabel asal, kecuali penentu yang akan berfungsi sebagai kunci tamu
5.      Tabel asal bisa diberi nama baru

Keuntungan dari normalisasi yaitu : 
1.      Meminimalkan ukuran penyimpanan yang diperlukan untuk menyimpan data.
2.      Meminimalkan resiko inkonsistensi data pada basis data
3.      Meminimalkan kemungkinan anomali pembaruan
4.      Memaksimalkan stabilitas struktur data

ANOMALY merupakan penyimpangan-penyimpangan atau Error atau inkonsistensi data yang terjadi pada saat dilakukan proses insert, delete maupun update. 
Terdapat 3 jenis Anomaly :
1.       Insertion Anomaly  Error yang terjadi sebagai akibat operasi insert record/tuple pada sebuah relation
2.      Deletion Anomaly  Error yang terjadi sebagai akibat operasi delete record/tuple pada sebuah relation
3.      Update Anomaly  Error yang terjadi sebagai akibat inkonsistensi data yang terjadi sebagai akibat dari operasi update record/tuple dari sebuah relation

Problem-Problem Pada Relation yang Sudah Dinormalisasi
Ø  Performance problem  Masalah terhadap performa database
Ø  Referential Integrity Problem  Masalah yang timbul terhadap referensi antar data-data diantara dua tabel atau lebih   BEBERAPA KONSEP YANG HARUS DIKETAHUI: 
a.  Field/ Atribut Kunci
b.  Kebergantungan Fungsi  

Atribut Kunci (Field)
Key Field / atribute kunci dalam database: 
Ø  Super key  Yaitu himpunan dari satu atau lebih entitas yang digunakan untuk mengidentifikasikan secara unik sebuah entitas dalam entitas set. 
Ø  Candidate key   Yaitu satu attribute atau satu set minimal atribute yang mengidentifikasikan secara unik suatu kejadian yang spesifik dari entity.
Ø  Primary key  Yaitu satu atribute atau satu set minimal atribute yang tidak hanya mengidentifikasikan secara unik suatu kejadian yang spesifik tapi juga dapat mewakili setiap kejadian dari suatu entity 
Ø  Alternate key   Yaitu kunci kandidat yang tidak dipakai sebagai primary key 
Ø  Foreign key   yaitu satu atribute (atau satu set atribute) yang melengkapi satu relationship (hubungan yang menunjukkan ke induknya.

Kebergantungan Kunci
1.       Ketergantungan Fungsional (Fungsional Dependent)  Keterkaitan antar hubungan antara 2 atribute pada sebuah relasi. Dituliskan dengan cara : A -> B, yang berarti :  Atribute B fungsionality Dependent terhadap atribute A atau   Isi (value) atribute A menentukan isi atribute B  Definisi dari functional dependent :  Diketahui sebuah relasi R, atribute Y dari R adalah FD pada atribute X dari R ditulis R.X -> R.Y jika dan hanya jika tiap harga X dalam R bersesuaian dengan tepat satu harga Y dalam R 
2.      Fully Functionaly Dependent (FFD)  Suatu rinci data dikatakan fully functional dependent pada suatu kombinasi rinci data jika functional dependent pada kombinasi rinci data dan tidak functional dependent pada bagian lain dari kombinasi rinci data.  Definisi dari  FDD:  Atribute Y pada relasi R adalah FFD pada atribute X pada relasi R jika Y FD pada X tida FD pada himpunan bagian dari X   Contoh:  PersonID,project,Project­­_budget -> time_spent_byperson_onProject (bukan FFD)
PersonID,project -> time_spent_byperson_onProject (FFD).

Komentar

Postingan populer dari blog ini

Seven Layers OSI

Bahasa Query Formal