normalisasi basis data

advertisement
TUGAS II
NORMALISASI BASIS DATA
A. Tujuan
Tujuan dari materi nornalisasi basis data sebagai berikut:
1. Mampu menjelaskan istilah-istilah dalam normalisasi basis data
2. Mampu menjelaskan proses-proses dalam normalisasi basis data
3. Mampu mendesain basis data menggunakan teknik normalisasi basis data
B. Materi
Pengertian Normalisasi Basis Data
Normalisasi 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.
Anomali dan Redudansi
Alasan
utama
diperlukannya
normalisasi
karena
Permasalahan.
Redundansi Redundansi : Perulangan yang berlebihan Redundansi menyebabkan
:

Pemborosan ruang penyimpanan

Anomali pada saat insert (simpan), Update (edit/pembaharuan), Delete
(hapus)

Bisa menyebabkan inkonsistensi
Contoh Anomali
Contoh Redundansi: NIM, Nama, Alamat yang sama ditulis berulang-ulang
Jenis-jenis Anomali
Jenis-jenis anomali sebagai berikut

Anomali Insert (Penyisipan)
Keadaan yang tidak diingini atau munculnya masalah saat akan menyisipkan
data baru ke dalam relasi dengan struktur yang tidak lengkap. Data baru
bernama Rudi tetapi hobby belum tercatat…?

Anomali Update (Pembaharuan)
Keadaan di mana apabila satu nilai atribut perlu diperbaharui, jika lebih
daripada satu data yang terlibat yang disebabkan adanya pengulangan data
maka apabila tidak semua data diperbaharui akan menimbulkan inkonsistensi
data. Andi berpindah alamat…?

Anomali Delete (Penghapusan)
Keadaan di mana apabila satu data dihapuskan pada suatu relasi, terjadi
kehilangan data lain yang masih diperlukan. Data hobby bersepeda
dihilangkan, maka Data Antok ikut hilang
Penyebab Redundansi
Penyebab redundansi antara lain:

Perulangan fakta yang sama

Adanya atribut turunan, contoh:

Umur (diperoleh dari tgl lahir)

Subtotal (diperoleh dari Qty x Harga)

Solusi Redundansi

Penghilangan data turunan

Dekomposisi: pemecahan sebuah relasi menjadi 2 atau lebih relasi

Lossy decomposition/lossy-join decomposition (kehilangan informasi ketika
relasi dipecah menjadi relasi-relasi lain)

Lossless-join decomposition (tidak ada informasi yang hilang ketika relasi
dipecah menjadi relasi-relasi lain)
Depedensi (Ketergantungan)
Konsep dasar pada tahap normalisasi yang menjelaskan hubungan atribut
atau secara lebih khusus menjelaskan nilai suatu atribut yang menentukan
atribut lainnya.

Depedensi fungsional
Dependensi fungsional adalah Suatu atribut Y mempunyai depedensi
fungsional terhadap atribut X jika dan hanya jika setiap nilai X berhubungan
dengan sebuah nilai Y.

Depedensi fungsional sepenuhnya
Suatu atribut Y mempunyai dependensi fungsional sepenuhnya terhadap
atribut X, jika:


Y mempunyai dependensi fungsional terhadap X, dan

Y tidak memiliki dependensi terhadap bagian dari X.
Depedensi total
Suatu atribut Y mempunyai dependensi total terhadap atribut X jika:

Y memiliki dependensi fungsional terhadap X, dan

X mempunyai dependensi fungsional terhadap Y.
Dependensi seperti ini dinyatakan dengan notasi: X ← →Y

Depedensi transitif
Atribut Z mempunyai dependensi transitif terhadap X jika :

Y memiliki dependensi fungsional terhadap X.

Z memiliki dependensi fungsional terhadap Y.
atau dapat dituliskan : X → Y → Z
Tahap Normalisasi
Pada proses normalisasi terhadap tabel pada database dapat dilakukan
dengan tiga tahap normalisasi antara lain :

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. Misalkan terdapat
dokumen dasar sebagai berikut,
Berdasarkan bentuk nota tersebut dapat dibuat bentuk tidak normalnya sebagai
berikut:

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. tiap atribut hanya memiliki satu pengertian.
Bentuk Normal Pertama
Masalah yang muncul : Duplication, Inconsistency, Data Isolation, dan UnEfficiency
Contoh Lain:
Contoh Lain Bentuk Normal Kesatu
Contoh lainnya:
Contoh Bentuk Normal Kesatu

Bentuk Normal Kedua (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.
Contoh Bentuk Normal Kedua

Bentuk Normal Ketiga (Third Normal Form / 3 NF)
Walaupun relasi 2-NF memiliki redudansi yang lebih sedikit dari pada relasi 1NF, namun relasi tersebut masih mungkin mengalami kendala bila terjadi
anomaly peremajaan (update) terhadap relasi tersebut.
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.
3. 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

Bentuk Normal Ke Tiga (Third Normal Form / 3 NF)
Walaupun relasi 2-NF memiliki redudansi yang lebih sedikit dari pada relasi 1NF, namun relasi tersebut masih mungkin mengalami kendala bila terjadi
anomaly peremajaan (update) terhadap relasi tersebut.
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.
3. Selruh atribut bukan kunci pada suatu relasi hanya memiliki
ketergantungan fungsional terhadap primary key di relasi itu saja.
Contoh Bentuk Normal Ketiga

Boyce-Code Normal Form (BCNF)
Suatu relasi disebut memenuhi bentuk normal Boyce-Codd jika dan hanya
jika semua penentu (determinan) adalah kunci kandidat (atribut yang bersifat
unik). BCNF merupakan bentuk normal sebagian perbaikan terhadap 3NF.
Suatu relasi yang memenuhi BCNF selalu memenuhi 3NF, tetapi tidak untuk
sebaliknya
Suatu relasi yang memenuhi 3NF belum tentu memenuhi BCNF. Dalam
banyak literatur disebutkan bahwa BCNF adalah perbaikan dari 3NF, karena
bentuk normal ketigapun mungkin masih mengandung anomali sehingga
masih perlu dinormalisasi lebih lanjut.
BCNF memiliki ketentuan yaitu :

Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap Functional
Dependency terhadap setiap atribut atau gabungan atribut dalam bentuk
: X –> Y maka X adalah Super Key.

Tabel tersebut harus di dekomposisi berdasarkan Functional Dependency
yang ada, sehingga X menjadi super key dari tabel-tabel hasil
dekomposisi.

Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum
tentu termasuk BCNF. Perbedaannya, untuk Functional Dependency X–>
A, BCNF tidak membolehkan A sebagai bagian dari primary key.
Properti penting BCNF adalah relasi tidak memiliki informasi yang redundan.
Perbedaan BCNF dengan 3NF :

Pada BCNF suatu atribut yang bergantung secara fungsional terhadap
kunci primer, mungkin saja merupakan kunci primer bagi atribut yang
lain.

Pada 3NF hal ini bisa saja terjadi dan tidak menjadi masalah.
Contoh Tidak Memenuhi BCNF
Relasi di atas memenuhi 3NF tetapi tidak memenuhi BCNF, Karena :

Seorang mahasiswa dapat mengambil sejumlah mata kuliah.

Setiap dosen hanya mengajar pada sebuah mata kuliah.

Setiap mahasiswa pada setiap mata kuliah hanya diajar oleh seorang
dosen.

Suatu mata kuliah yang sama bisa memiliki lebih dari satu dosen.
Mahasiswa, Mata Kuliah –>Dosen
Mahasiswa, Dosen –> Mata Kuliah
Cara mengkonversi relasi yang telah memenuhi 3NF ke BCNF:

Carilah semua penentu

Bila terdapat penentu yang bukan berupa kunci kandidat,
maka:


Pisahkan relasi tersebut, dan

Buat penentu tersebut sebagai kunci primer.
Bentuk Normal Keempat (4NF)
Syarat:
1. Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi
bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah
multivalued attribute.
Untuk setiap multivalued attribute (MVD) juga harus merupakan
Functional Dependency

Multivalued dependency (MVD).
Dependensi ini pertama kali diperkenalkan oleh R.Fagin pada tahun 1977,
dipakai pada bentuk normal keempat (4NF). Dependensi ini dipakai untuk
menyatakan hubungan satu ke banyak.
Secara umum, dependensi nilai banyak muncul pada relasi yang paling tidak
memiliki tiga atribut dan dua di antaranya bernilai banyak, dan nilainilainya
tergantung hanya pada atribut ketiga.
Bila R(A,B,C) merupakan suatu relasi, dengan A, B, C adalah atribut – atribut
relasi tersebut, maka proyeksi dari R berupa (A, B) dan (A, C) jika R memenuhi
MVD: A –>> B | C
Perlu diketahui, bila terdapat:
A —>> B
A —>> C
Maka keduanya dapat ditulis menjadi:
A —>> B | C
Misalnya, pegawai ditugaskan ke banyak proyek dan ia mempunyai banyak
keahlian.

Jika kita mencatat info ini pd satu tabel, ketiga atribut harus digunakan
sbg kunci

Hubungan antara pegawai dan proyek mrp ketergantungan multivalue
krn untuk setiap pasang nilai pegawai/ahli pd tabel, himp nilai proyek yg
berhub hanya ditentukan oleh pegawai dan tidak tergantung pada

Hubungan antara pegawai &ahli mrp ketergantungan multivalue,karena
himpunan nilai ahli untuk pasangan pegawai/proyek selalu hanya
tergantung pd pegawai

untuk mengubah sebuah tabel dg ketergantungan multivalue ke dlm 4NF,
pindahkan masing2 pasangan MVD ke tabel baru.

Bentuk Normal Tahap Kelima (5NF)
Bentuk normal 5NF terpenuhi jika memiliki sebuah loseloss decomposition
menjadi tabel-tabel yang lebih kecil.
Jika 4 bentuk normal sebelumnya dibentuk berdasarkan Functional
Dependency, 5NF dibentuk berdasarkan konsep Join Dependence. Yakni
apabila sebuah tabel telah di dekomposisi menjadi tabel-tabel lebih kecil,
harus bisa digabungkan lagi untuk membentuk tabel semula.
C. Latihan dan Tugas
Normalisasilah Dokumen Dasar berikut ini
RENTAL MOBIL RAHAYU
No.Nota
Tanggal sewa
Kasir
: N0001
: 20/3/2017
: Koko
No.Plat
Type Mobil
AB 123 A
AB 234 B
Avanza
Innova
Harga Sewa
Nama Pelanggan
Alamat
Telepon
No. KTP
Lama Sewa
300.000
400.000
1
2
Total
: David
: Sleman
: 0899-9999-8888
: 123 456
Jumlah Harga
300.000
800.000
1.100.000
RENTAL MOBIL RAHAYU
No.Nota
Tanggal sewa
Kasir
: N0002
: 20/3/2017
: Koko
No.Plat
Type Mobil
AB 456 A
AB 789 B
AB 567 C
Avanza
Innova
Innova
Harga Sewa
Nama Pelanggan
Alamat
Telepon
No. KTP
Lama Sewa
300.000
400.000
400.000
1
1
1
Total
: Hasan
: Sleman
: 0812-2222-3333
: 123 456
Jumlah Harga
400.000
400.000
400.000
1.200.000
RENTAL MOBIL RAHAYU
No.Nota
Tanggal sewa
Kasir
: N0003
: 21/3/2017
: Firda
No.Plat
Type Mobil
AB 123 A
Avanza
Harga Sewa
Nama Pelanggan
Alamat
Telepon
No. KTP
Lama Sewa
300.000
3
Total
: David
: Sleman
: 0899-9999-8888
: 123 456
Jumlah Harga
1.200.000
1.200.000
Download