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 :
- melalui
pembuatan kolom baru pada tabel / mengabungkan kolom pada tabel satu dengan
yang lain.
- 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 lebih normal dari database dimaksudkan
untuk pengolahan analisis online (OLAP).
Aplikasi OLTP ditandai
dengan volume tinggi transaksi
kecil seperti memperbarui rekor penjualan di
counter kasir supermarket.
Harapannya adalah bahwa setiap transaksi akan meninggalkan database dalam keadaan konsisten. Sebaliknya, database dimaksudkan
untuk operasi OLAP terutama "membaca sebagian
besar" database. Aplikasi
OLAP cenderung untuk
mengambil data historis yang telah
terakumulasi selama jangka waktu yang
panjang. Untuk database tersebut,
berlebihan atau "denormalized"
data dapat memfasilitasi aplikasi bisnis intelijen. Secara khusus, tabel dimensi
dalam skema bintang sering mengandung data denormalized. Data denormalized atau
berlebihan harus hati-hati dikontrol
selama ekstrak, mengubah, beban (ETL) pengolahan,
dan pengguna tidak diijinkan untuk melihat data sampai
dalam keadaan konsisten. Alternatif
dinormalisasi dengan skema bintang adalah skema
kepingan salju. Dalam banyak kasus, kebutuhan untuk denormalization telah berkurang sebagai komputer dan RDBMS
perangkat lunak telah menjadi lebih kuat,
tapi karena volume data yang umumnya meningkat
seiring dengan hardware dan
kinerja perangkat lunak, database
OLAP seringkali masih
menggunakan skema denormalized.
Denormalization juga digunakan untuk meningkatkan kinerja pada komputer yang lebih kecil seperti pada perangkat cash-register dan mobile komputerisasi, karena ini dapat 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.5NF) adalah bentuk normal
yang digunakan dalam normalisasi database.
Ini adalah versi yang
sedikit lebih kuat dari bentuk
normal ketiga (3NF). BCNF dikembangkan pada
tahun 1974 oleh Raymond F.
Boyce dan Edgar
F. Codd untuk
mengatasi beberapa jenis anomali
tidak ditangani 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 1971. Tanggal menulis:
"Sejak definisi yang mendahului definisi sendiri Boyce dan Codd oleh beberapa tiga tahun, tampaknya bagi saya bahwa BCNF harus dengan hak untuk dipanggil Heath bentuk normal. Tapi itu tidak."
Jika skema relasional dalam BCNF maka semua redundansi berdasarkan ketergantungan fungsional telah dihapus, meskipun jenis lain redundansi mungkin masih ada. Sebuah skema relasional R dalam Boyce-Codd bentuk normal jika dan hanya jika untuk setiap satu yang dependensi X → Y, setidaknya salah satu dari kondisi berikut berlaku:
-
X →
Y adalah ketergantungan fungsional sepele (Y
⊆ X)
-
X adalah
superkey untuk skema
R
mengapa untuk OLAP digunakan konsep denormalisasi ketimbang konsep normalisasi pada model relasional
ReplyDelete