Lamporan Ke VII - Normalisasi
Sekarang udah menginjak praktikum Ke 7 modulnya sih masih ke enam. berbeda dengan praktikum sebelumnya disini kita akan membahas tentang apa yang namanya normalisasi dan pentingnya apa sih normalisasi itu hehehe. kalau pengen tau silahkan baca di di bawah ini tujuan dari normalisasi
A. Landasan Teori
·
Pengertian Normalisasi
Menurut Janner Simarmata & Iman Peryudi (2005)
”Normalisasi adalah teknik perancangan yang banyak digunakan sebagai pemandu
dalam merancang basisdata 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 (www.utexas.edu).
Teori normalisasi didasarkan pada konsep bentuk normal.
Sebuah tabel relasional dikatakan berada pada bentuk norml tertentu jika tabel
memenuhi himpunan batasan tertentu.
Normalisasi juga bisa diartikan merupakan
teknik analisis data yang mengorganisasikan atribut-atribut data dengan cara
mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan
fleksible
Normalisasi
dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk
menentukan apakah relasi itu sudah baik, yaitu dapat dilakukan proses insert, update,
delete, dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi
integritas data dalam relasi tersebut.
·
Konsep Dasar
Menurut Janner Simarmata & Iman Peryudi (2005)
“Normalisasi adalah bagian perancang basisdata”. Tanpa normalisasi, system
basisdata menjadi tidak akurat, lambat, tidak efisien, serta tidak memberikan
data yang diharapkan (www.microsoft-accessolutions.co.uk).
Pada waktu menormalisasi basisdata, ada empat tujuan yang harus
dicapai, yaitu :
Mengatur data dalam kelompok-kelompok sehingga masing-masing
kelompok hanya menangani bagian kecil sistem.
Meminimalkan jumlah data yang berulang dalam basisdata.
Membuat basisdata yang datanya diakses dan dimanipulasi
secara cepat dan efisien tanpa melupakan integrasi data.
Mengatur data sedemikian rupa sehingga ketika memodifikasi
data, anda hanya mengubah pada suatu tempat.
Perancangan basisdata terkadang menyebut keempat tujuan
dengan istilah integrasi data, integritas referensial, dan pengaksesan data.
·
Tujuan Normalisasi
Tujuan normalisasi adalah membuat kumpulan tabel relasional
yang bebas dari data berulang dan dapat memodifikasi secara benar dan
konsisten. Ini berarti bahwa semua tabel pada basisdata relasional harus berada
pada bentuk normal ketiga (3NF). Sebuah tabel relasional berada pada 3NF jika
dan hanya jika semua kolom bukan kunci adalah (a) saling independen dan (b)
sepenuhnya tergantung pada kunci utama. Saling independen berarti bahwa tidak
ada kolom bukan kunci yang tergantung pada sembarang kombinasi kolom lainnya.
Dua bentuk normal pertama adalah langkah antara untuk mencapai tujuan, yaitu
mempunyai semua tabel dalam 3NF (Stephens and Plew, 2000).
·
Aturan Normalisasi
1.
Berikut
adalah aturan-aturan normalisasi :
2.
Hilangkan
kelompok berulang, buat tabel terpisah untuk setiap himpunan atribut yang
berhubungan dan tentukan kunci utama pada masing-masing tabel.
3.
Hilangkan
data berulang, jika sebuah atribut hanya tergantung pada sebagian kunci utama
gabungan, pindahkan atribut ke tabel lain.
4.
Hilangkan
kolom yang tidak tergantung pada kunci, jika atribut tidak tergantung pada
kunci, pindahkan atribut ke tabel lain.
5.
Pisahkan relasi majemuk,
tidak ada tabel yang bias mengandung dua atau lebi relasi 1:n atau n:m yang
tidak berhubungan langsung.
6.
Pisahkan
relasi majemuk yang berhubungan secara semantik, ada batasan pada informasi
yang memperbolehkan pemisahan relasi many-to-many yang berhubungan secara
logis.
7.
Bentuk
normal optimal, sebuah model hanya dibatasi oleh fakta sederhana.
8.
Bentuk
normal domain-key, sebuah model harus terbebas dari semua anomaly
(www.datamodel.org).
1. BENTUK TIDAK NORMAL
(UNNORMALIZED FORM)
Bentuk
ini merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikukti
format tertentu, dapat saja data tidak lengkap atau terduplikasi.
Data dikumpulkan apa adanya sesuai dengan saat menginput.
Untuk
mentransformasikan tabel yang belum ternomalisasi di atas menjadi tabel yang
memenuhi kriteria 1NF adalah kita harus merubah seluruh atribut yang multivalue
menjadi atribut single value, dengan cara menghilangkan repeating group pada
tabel di atas.
Repeating Group
(elemen data berulang) adalah (No_Property, Alamat_Property,Tgl_Pinjam,
Tgl_Selesai, Biaya, No_Pemilik, Nama_Pemilik)
2. BENTUK NORMAL KE SATU (FIRST
NORMAL FORM / 1 NF)
Pada
tahap ini dilakukan penghilangan beberapa group elemen yang berulang
agar menjadi satu harga tunggal yang berinteraksi di antara setiap baris
pada suatu tabel, dan setiap atribut harus mempunyai nilai data yang atomic
(bersifat atomic value). Atom adalah zat terkecil yang masih memiliki sifat
induknya, bila terpecah lagi maka ia tidak memiliki sifat induknya.
Syarat normal ke satu (1-NF) antara lain:
1.
setiap data dibentuk dalam flat file, data dibentuk
dalam satu record demi satu record nilai dari field berupa “atomic value”.
2.
tidak ada set atribute yang berulang atau bernilai
ganda.
3.
telah ditentukannya primary key untuk tabel / relasi
tersebut.
4.
tiapatribut hanya memiliki satu pengertian.
Langkah pertama
yang dilakukan pada Tabel Pelanggan Biaya (pada Tabel 9.3) tersebut adalah
menghilangkan elemen data yang berulang dengan data-data Pelanggan yang
sesuai pada setiap baris. Hasil dari tabel yang telah memenuhi bentuk
normal pertama dapat dilihat pada Tabel 9.4. kita dapat mengidentifikasi
primary key untuk relasi Pelanggan_Biaya yang masih memiliki composite key
(No_Pelanggan, No_Property). Pada kasus ini kita akan memperoleh primary
key yang bersifat composite key. Relasi Pelanggan_Biaya dapat
didefinisikan sebagai berikut. Pelanggan_Biaya =(No_Pelanggan, No_Property,
Nama, Alamat_Property, Tgl_Pinjam, Tgl_Selesai, Biaya,No_Pemilik, Nama_Pemilik)
3. BENTUK NORMAL KE DUA (SECOND NORMAL
FORM / 2 NF)
Bentuk normal
kedua didasari atas konsep full functional dependency (ketergantungan
fungsional sepenuhnya) yang dapat didefinisikan sebagai berikut. Jika A
adalah atribut-atribut dari suatu relasi, B dikatakan full functional
dependency (memiliki ketergantungan fungsional terhadap A, tetapi tidak secara
tepat memiliki ketergantungan fungsional dari subset (himpunan bagian) dari A.
Syarat normal kedua (2-NF) sebagai berikut.
1.
Bentuk data telah memenuhi kriteria bentuk normal
kesatu.
2.
Atribute bukan kunci (non-key) haruslah memiliki
ketergantungan fungsional sepenuhnya (fully functional dependency) pada
kunci utama / primary key.
Tabel Tabel Pelanggan Biaya dalam bentuk normal kedua (2-NF)
4. BENTUK NORMAL KE TIGA (THIRD
NORMAL FORM / 3 NF)
Walaupun
relasi 2-NF memiliki redudansi yang lebih sedikit dari pada relasi 1-NF, namun
relasi tersebut masih mungkin mengalami kendala bila terjadi anomaly peremajaan
(update) terhadap relasi tersebut.
Misalkan kita akan
melakukan update terhadap nama dari seorang Pemilik (pemilik), seperti Durki
(No_Pemilik: CO93), kita harus melakukan update terhadap dua baris dalam relasi
Property_Pemilik (lihat Tabel 9.5, (c) relasi Property_Pemilik). Jika kita hanya
mengupdate satu baris saja, sementara baris yang lainnya tidak, maka data
didalam database tersebut akan inkonsisten / tidak teratur. Anomaly update ini
disebabkan oleh suatu ketergantungan transitif (transitive dependency). Kita
harus menghilangkan ketergantungan tersebut dengan melakukan normalisasi ketiga
(3-NF).
Syarat normal ketiga (Third
Normal Form / 3 NF) sebagai berikut.
1.
Bentuk data telah memenuhi kriteria bentuk normal
kedua.
2.
Atribute bukan kunci (non-key) harus tidak memiliki
ketergantungan transitif, dengan kata lain suatu atribut bukan kunci (non_key)
tidak boleh memiliki ketergantungan fungsional (functional dependency) terhadap
atribut bukan kunci lainnya, seluruh atribut bukan kunci pada suatu relasi
hanya memiliki ketergantungan fungsional terhadap priamry key di relasi itu
saja. Seluruh atribut non-primary key pada relasi Pelanggan dan Biaya di
atas terlihat memiliki ketergantungan fungsional (functional dependency)
terhadap primary key dari masing-masing tabel / relasi. Relasi / tabel
Pelanggan dan Biaya di atas tidak memiliki ketergantungan transitif
(transitive dependency), sehingga tabel tersebut telah memenuhi kriteria
normal ketiga (3-NF).
Seluruh atribut
non-primary key pada relasi Property_Pemilik di atas terlihat memiliki
ketergantungan fungsional (functional dependency) terhadap primary
key, kecuali Nama_Pemilik yang masih memiliki ketergantungan fungsional
(functional dependency) terhadap No_Pemilik. Inilah contoh ketergantungan
dari transitif (transitive dependency), yang terjadi ketika atribut
non-primary key (Nama_Pemilik) bergantung secara fungsi terhadap satu atau
lebih atribut non-primary key lainnya (No_Pemilik). Kita harus
menghilangkan ketergantungan transitif (transitive dependency) tersebut
dengan menjadikan relasi Property_Pemilik menjadi 2 relasi / tabel dengan
format / bentuk sebagai berikut.
-
Relasi / Tabel
Property_Untuk_Pemilik yang terdiri dari atribut-atribut:
No_property â Alamat_Property, Biaya, No_Pemilik
{No_property sebagai primary key}
-
Dan relasi Pemilik yang terdiri dari atribut-atribut:
No_Pemilik â Nama_Pemilik
{No_Pemilik sebagai primary key}
Hasil
akhir normalisasi tabel Pelanggan_Biaya sampai ke bentuk normal ketiga adalah
sebagai
berikut:
Seluruh
atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional
terhadap primary key di relasi itu saja.
5. Boyce-Codd Normal
Form (BCNF)
BCNF
mempunyai paksaan yg lebih kuat dari bentuk normal ketiga. Untuk menjadi BCNF,
relasi harus dalam bentuk normal ketiga dan setiap atribut harus bergantung
fungsi pada atribut superkey.
BCNF
merupakan bentuk normal sebagai perbaikan terhadap 3NF atau dapat juga
dikatakan sebagai bentuk normal 3NF revisi.
Suatu
relasi yang memenuhi BCNF selalu memenuhi 3NF, tetapi tidak untuk sebaliknya,
dimana suatu relasi yang memenuhi 3NF belum tentu memenuhi BCNF.
6. BENTUK NORMAL
KE-EMPAT (4NF/FOURTH NORMAL FORM)
Relasi
R dikatakan mempunyai bentuk 4NF, jika dan hanya jika relasi tersebut juga
termasuk BCNF dan semua ketergantungan multivalue adalah juga ketergantungan
fungsional.
7. BENTUK NORMAL
KE-LIMA (5NF/FIFTH NORMAL FORM)
Disebut
juga PJNF (Projection Join Normal Form) dari 4NF dilakukan dengan menghilangkan
ketergantungan join yang bukan merupakan kunci kandidat
B. Hasil Praktikum
Seperti yang di jelasin di atas buat praktikum kali ini agak aneh sama praktikum yang kemarin pasalnya disini kita gak makek prosgre atau mysql melainkan makek excel hehehehekata bapaknya sih biar lebih mudah ya pakek excel aja
ya sudah karena anik murid yang baik jadi ya menurut aja wes ...
Dan ini hasilnya
Pasti bingung kan disuruh ngapain.!!! la kita disuruh buat unnormalisasi, 1 NF, 2NF, 3NF nya 4,5 NF gak usah
1. Bentu Unnormalisasi
2. Bentuk 1 NF
3. Bentuk 2 NF
Bagan ERDnya
4. Bentuk 4 NF
Bagan ERDnya
soalnya sama di suruh nyari unnormalisasinya, 1NF, 2NF dan 3 NF
yeee akhir nya selesai juga ini bentuk jawaban dari soal di atas fersi anik si hahaha
1. Unnormalisasi
2. 1 NF
3. 2 NF
ERDnya ...
4. 3 NF
Erdnya ...
Sebenarnya di laporan ini juga membahasa tentang 4NF dan 5NF namun anik selaku penulis kurang begitu menjelaskan karena 4NF dan 5NF ini di tujuan pada database yang sangat kompleks dan ketika di normalasisasi 3NF masih ada anomali. Sedangkan database kampus saja biasanya masih menggunakan 2NF untuk proses normalisasi.
C. Kesimpulan
Pembahasan
tentang normalisasi seolah-olah mampu memberikan solusi yang tidak akan pernah
mengakibatkan efek samping.
Jika tabel di normalisasi kita akan dengan mudah menambahkan field field yang kita inginkan
Jika tabel di normalisasi kita akan dengan mudah menambahkan field field yang kita inginkan
Pada
kenyataannya, normalisasi juga mengakibatkan beberapa efek samping yang tidak
diharapkan, seperti masalah aturan baku dalam sistem database dan
ketidakefisienan (inefisiensi) dalam menampilkan kembali data tersebut.
D. Kritik Dan Saran
Mungkin perlu penjelasan lagi untuk tabel yang lebih kompleks contohnya database sebuah jaringan yang lebih besar dan penjelasan-penjelasan tentang bagaimana menormalisasi apakah harus pada 3 NF bolehkan berhenti di 2 NF. trus apa ada tabel yang gak bisa di normalisasi ya ?E. Daftar Pustaka
http://komparkompor.blogspot.com/p/normalisasi-1nf-2nf-3nf.htmlhttp://slatuheru.mhs.uksw.edu/2013/04/normalisasi.html
http://informatika.web.id/normalisasi.htm
http://jewyner.wordpress.com/2013/03/05/92/
Comments
Post a Comment