Normalisasi dan Denormalisasi


BAB 1
NORMALISASI DATA
A.      Pengertian Normalisasi Data

Normalisasi adalah teknik atau proses untuk mengorganisasikan data agar lebih efisien dalam suatu database. Pengorganisasian ke dalam bentuk tabel-tabel dan fields dari suatu relational database untuk memmenuhi kebutuhan pemakai dan untuk meminimalkan redundancy dan dependency. Normalisasi biasanya melibatkan pembagian tabel tabel yang besar menjadi tabel tabel yang lebih kecil atau ringkas (mengurangi redundancy) dan mendefinisikan hubungan antar tabel. Tujuannya untuk mempermudah manipulasi data atau memodifikasinya, memudahkan pengelompokan atribut dari relasi agar membentuk suatu relasi yang lebih baik.

Menurut Edgar F. Codd, salah seorang perintis teknologi basis data. selain dipakai sebagai metodologi tersendiri untuk menciptakan struktur tabel 9relasi) dalam basis data (dengan tujuan utnuk mengurangi kemubaziran data)  , normalisasi terkadang hanya diipakai sebagai perangkat verifikasi terhadap tabel-tabel yang dihasilkan oleh metodologi lain ( misalnya E-R). Normalisasi memberikan panduan yang sangat membantu bagi pengembang untuk mencegah penciptaan struktur tabel yang kurang fleksibel atau mengurangi keflekxibelan.

Menurut Kroenke mendefinisikan normalisasi sebagai proses untuk mengubah suatu relasi yang memiliki masalah tertentu ke dalam dua buah relasi atau lebih yang tida memiliki masalah tersebut. Masalah yang dimaksud oleh kroenke ini sering disebut dengan istilah anomali.

B.      Tahapan Pada Normalisasi Data

a.      Sekilas Sejarah Normalisasi data
1970 – Edgar F. Codd, penemu model relasi, memperkenalkan konsep normalisasi yang sekarang kita kenal dengan First Normal Form (1NF)
1971 – Codd melanjutkan untuk menetapkan konsep normalisasi Second Normal Form (2NF) dan Third Normal Form (3NF)
1974 – Codd dan Raymond F. Boyce menetapkan Boyce-Codd Normal Form (BCNF)
1977 – Fourth Normal Form (4NF) diperkenalkan oleh Ronald Fagin
1979 – Fifth Normal Form (5NF) ditetapkan oleh Ronald Fagin
1981 – Domain Key Normal Form (DKNF) diperkenalkan oleh Ronald Fagin
1982 – C Zaniolo menetapkan Elementary Key Normal Form (DKNF)
2002 – C.J Date, Hugh Darwen and Nikos Lorentzos menetapkan Sixth Normal Form (6NF)

b.      Tahap-tahap Normalisasi Data
·         Bentuk normal kesatu (1NF) menentukan aturan-tauran yang paling dasar untuk suatu pengaturan database:
o   Menghilangkan duplikasi kolom-kolom dalam tabel yang sama
o   Membuat tabel terpisah untuk setiap grup data yang berhubungan dan mengidentifikasi setiap baris dengan suatu kolom yang unik atau sekumpulan kolom yang unik (primary key)
·         Bentuk normal kedua (2NF) selanjutnya memusatkan perhatian pada konsep menghilangkan duplikasi data:
o   Menemukan semua syaratsyarat bentuk normal kesatu
o   Hilangkan subset data yang diterapkan pada beberapa baris dari sebuah tabel dan letakkan kedalam tabel terpisah
o   Buatlah relasi antara tabeltabel baru dan tabeltabel pendahulunya melalui penggunaan Foreign Keys.
·         Bentuk normal ketiga (3NF) melakukan satu langkah besar selanjutnya:
o   Menemukan semua syaratsyarat bentuk normal kedua
o   Menghilangkan kolomkolom yang tidak secara langsung tergantung pada primary key.
·         Bentuk normal keempat (4NF) memiliki satu syarat tambahan:
o   Menemukan semua syaratsyarat bentuk normal ketiga
o   Suatu relasi adalah dalam bentuk normal keempat (4NF) jika relasi itu tidak memiliki ketergantungan banyak nilai (value)

Petunjuk normalisasi ini adalah bersifat komulatif. Untuk suatu database menjadi bentuk normal kedua (2NF), pertama harus terpenuhi dahulu seluruh kriteria bentuk normal kesatu (1NF).
Sebuah tabel dikatakan baik (efisien) / normal jika memenuhi 3 kriteria sbb :
1.      Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (Lossless – Join - Decomposition). Artinya,  setelah tabel tersebut diuraikan / didekomposisi menjadi tabel – tabel baru, tabel – tabel baru tersebut bisa menghasilkan tabel semula dengan nama yang sama persis.
2.      Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation).
3.      Tidak melanggar Boyce – Codd Normal Form (akan dijelaskan kemudian)

C.      Tujuan Normalisasi Data
1.      Untuk Menghilangkan Kerangkapan Data
2.      Untuk Mengurangi Kompleksitas
3.      Untuk Mempermudah Pemodifikasian Data

D.      Proses Normalisasi
-        Data diuraikan 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 sampai memenuhi bentuk yang optimal.



BAB II
DENORMALISASI DATA
A.      PENGERITAN DENORMALISASI DATA
Denormalisasi database adalah pelanggaran aturan normalisasi atau menjabarkan suatu tataan database yang telah normal untuk meningkatkan performa pengaksesan data pada database. Database yang telah normal disini dimaksudkan database yang redundansi datanya minim sehingga data yang disimpan tidak mengalami kerancuan dalam proses pengaksesan.
Apakah perbedaan normalisasi dan denormalisasi? perbedaan normalisasi dan denormalisasi adalah terletak pada redundansi data dan kompleksitas query. Pada redundansi data normalisasi lebih strik atau harus dihilangkan sebisa mungkin sehingga mengakibatkan apabila kita akan mengakses data dalam suatu database membutuhkan query yang kompleks. Berbeda dengan denormalisasi, denormalisasi disini tidak terlalu memikirkan tentang data yang redundan sehingga dalam mengakses data lebih cepat.
Mengapa Denormalisasi begitu penting?

Apabila kita menilik lebih lanjut tentang proses pengaksesan yang dilakukan database sewaktu data yang berada dalam suatu tabel ada 1000 baris dengan 100 juta baris. Hal itu akan terasa sangat beda proses kita menunggu untuk dapat melihat data. Itupun apabila kita mengaksesnya dari beberapa tabel yang setiap tabel berisikan jutaan data dan kita hanya menginginkan sebagian saja. Dari situ denormalisasi diperlukan, untuk menjaga kestabilan performa suatu sistem.
Bagaimanakah cara melakukan denormalisasi? Kita dapat melakukan denormalisasi dalam 2 jenis :
  1. melalui pembuatan kolom baru pada tabel / mengabungkan kolom pada tabel satu dengan yang lain.
  2. melalui pembuatan tabel baru.
Cara yang pertama dilakukan apabila data yang didenormalisasi hanya kecil dan digunakan untuk mempermudah pengaksesan data apabila diakses dalam satu tabel. Sedangkan yang kedua dilakukan apabila data yang terdapat dalam tabel tersebut merupakan rangkuman / rekapitulasi dari satu atau beberapa tabel yang pengaksesannya terpisah dari tabel yang ada.
contoh :
denormalisasi pertama : total sks yang telah diambil seorang mahasiswa. ini dibentuk dari jumlah sks matakuliah yang pernah diambil.
denormalisasi kedua : pembuatan tabel jumlah kehadiran mahasiswa dalam satu semester. data ini dibentuk dari penjumlahan data harian mahasiswa.
B.      BENTUK – BENTUK DENORMALISASI
-  Atribut yang terderivasi (atribut turunan)
Atribut yang nilainya bisa diperoleh dari nilai – nilai yang sudah ada pada atribut lain
-  Atribut yang berlebihan
1.       Atribut Terkodekan (encoded attribute)
Atribut yang memiliki kode tambahan yang menunjukkan beberapa kondisi lainnya.
Contoh : id_mk di tabel matakuliah yang didalamnya sudah terkandung data program studi. Data origram studi ini sebenarnya tidak diperlukan lagi karena sudah ada atribut prog_studi di tabelkuliah

Kode kuliah SBD : ST022


2.       Atribut Gabungan (concatenated attribute)
Atribut dalam domain komposit
Contoh : atribut nim di tabel mahasiswa merupakan gabungan dari tahun masuk / angkatan dengan prigram studi dan no urut mahasiswa. Dengan demikian atribut ini sebenarnya tidak atomik karena masih bisa dibagi lagi
     NIM : 09.51.0062
Ket : angkatan.jurusan.no urut
3.       Atribut Tumpang tindih (overlapping attribute)
Atribut dengan nilai yang tidak spenuhnya ekslusif
Contoh :
Atribut semester di tabel kuliah berisikan :
1.       : matakuliah ganjil
2.       : matakuliah genap
3.       : matakuliah ganjil dan genap
Nilai 3 mencakup semester genap dan ganjil sekaligus (jadi tidak ekslusif)
4.       Atribut Bermakna Ganda (Alternate attribute)
Atribut yang memiliki arti berbeda tergantung kelompok entitasnya

-  Tabel Rekapitulasi (summary table)
Laporan hasil rekapitulasi akan selalu merupakan hasil pengolahan datri semua tabel yang ada, pengolahan tersebut meilbatkan banyak tabel sebhingga akan membutuhkan waktu yang lama. Jika hal tersebut sering diakses dan diperlukan, maka perlu dibuat tabel khusus untuk menyimpan data hasil rekapitulasi tersebut.

C.      TAHAPAN DENORMALISASI
Database dimaksudkan untuk proses transaksi online (OLTP) biasanya lebihnormal dari database dimaksudkan untuk pengolahan analisis online (OLAP). AplikasiOLTP ditandai dengan volume tinggi transaksi kecil seperti memperbarui rekorpenjualan di counter kasir supermarketHarapannya adalah bahwa setiap transaksiakan meninggalkan database dalam keadaan konsistenSebaliknyadatabasedimaksudkan untuk operasi OLAP terutama "membaca sebagian besardatabase.Aplikasi OLAP cenderung untuk mengambil data historis yang telah terakumulasi selama jangka waktu yang panjangUntuk database tersebutberlebihan atau"denormalized" data dapat memfasilitasi aplikasi bisnis intelijenSecara khusustabeldimensi dalam skema bintang sering mengandung data denormalizedDatadenormalized atau berlebihan harus hati-hati dikontrol selama ekstrakmengubah,beban (ETL) pengolahan, dan pengguna tidak diijinkan untuk melihat data sampaidalam keadaan konsistenAlternatif dinormalisasi dengan skema bintang adalah skemakepingan saljuDalam banyak kasuskebutuhan untuk denormalization telah berkurang sebagai komputer dan RDBMS perangkat lunak telah menjadi lebih kuat,tapi karena volume data yang umumnya meningkat seiring dengan hardware dankinerja perangkat lunakdatabase OLAP seringkali masih menggunakan skemadenormalized.

Denormalization juga digunakan untuk meningkatkan kinerja pada komputer yang lebih kecil seperti pada perangkat cash-register dan mobile komputerisasikarena inidapat menggunakan data untuk melihat-up saja (lookup harga misalnya).Denormalization juga dapat digunakan ketika tidak ada RDBMS ada untuk platform(seperti Palm), atau tidak ada perubahan yang harus dibuat untuk data dan respon cepat sangat penting.

Non-pertama Bentuk normal (NF ² atau N1NF)

Denormalization adalah kata kebalikan dari normalisasi. Dalam pengakuan bahwa denormalization dapat disengaja dan berguna, bentuk non-normal pertama adalah definisi dari desain database yang tidak sesuai dengan bentuk normal pertama, dengan memungkinkan "set dan set set menjadi atribut domain" (Schek 1982). Bahasa yang digunakan untuk query dan memanipulasi data dalam model harus diperluas sesuai untuk mendukung nilai-nilai tersebut.

Salah satu cara untuk melihat hal ini adalah dengan mempertimbangkan nilai-nilai terstruktur seperti menjadi jenis khusus nilai (domain), dengan mereka sendiri domain-spesifik bahasa. Namun, apa yang biasanya dimaksud dengan non-1NF model adalah pendekatan di mana model relasional dan bahasa yang digunakan untuk query itu diperluas dengan mekanisme umum untuk struktur tersebut, misalnya, model relasional bersarang mendukung penggunaan hubungan sebagai domain nilai-nilai, dengan menambahkan dua operator tambahan (sarang dan unnest) ke aljabar relasional yang dapat membuat dan meratakan hubungan bersarang, masing-masing.

Bentuk Pertama
Orang                 Favorite Colour
Bob                     Blue
Bob                     Red
Jane                    Green
Jane                    Yellow
Jane                    Red


Asumsikan seseorang memiliki beberapa warna favorit.  Jelas, warna favorit terdiri dari satu set warna, dimodelkan oleh tabel yang diberikan. Untuk mengubah 1NF ke dalam tabel ² NF ("sarang” Operator) diperlukan sesuatu yang memperluas aljabar relasional dari bentuk normal yang lebih tinggi. Menerapkan ("sarang" operator) untuk tabel 1NF menghasilkan tabel berikut NF ²:
Non Bentuk Pertama

Orang                 Favorite Colour
Bob                     Blue, Red
Jane                    Green, Yellow,Red

Untuk mengubah ini kembali NF ² tabel menjadi 1NF suatu “perombakan”, Operator diperlukan untuk memperluas aljabar relasional dari bentuk normal lebih tinggi. Unnest, dalam hal ini, akan membuat "warna" ke dalam tabel sendiri.

Meskipun "perombakan" adalah invers matematika untuk "sarang", operator "sarang" tidak selalu kebalikan matematis "unnest". Kendala lain yang dibutuhkan adalah untuk operator untuk menjadi bijektif, yang ditutupi oleh Bentuk Normal partisi (PNF).



BAB III
BOYCE – CODD NORMAL FORM

Boyce-Codd bentuk normal (atau BCNF atau 3.5NFadalah bentuk normal yang digunakan dalam normalisasi database. Ini adalah versi yang sedikit lebih kuatdari bentuk normal ketiga (3NF). BCNF dikembangkan pada tahun 1974 oleh Raymond F. Boyce dan Edgar F. Codd untuk mengatasi beberapa jenis anomali tidakditangani oleh 3NF sebagai awalnya didefinisikan.

Tanggal Chris telah menunjukkan bahwa definisi dari apa yang sekarang kita kenal sebagai BCNF muncul dalam sebuah makalah oleh Ian Heath tahun 1971Tanggalmenulis:

     "Sejak definisi yang mendahului definisi sendiri Boyce dan Codd oleh beberapa tiga tahuntampaknya bagi saya bahwa BCNF harus dengan hak untuk dipanggil Heathbentuk normalTapi itu tidak."

Jika skema relasional dalam BCNF maka semua redundansi berdasarkanketergantungan fungsional telah dihapusmeskipun jenis lain redundansi mungkin masih adaSebuah skema relasional R dalam Boyce-Codd bentuk normal jika danhanya jika untuk setiap satu yang dependensi X  Ysetidaknya salah satu dari kondisiberikut berlaku:

-          X  Y adalah ketergantungan fungsional sepele ( X)
-          X adalah superkey untuk skema R

Tidak ada komentar:

Posting Komentar