ahan ajar
sistem basis data ini membahas konsep dan implmentasi normalisasi basis data. Bahasan materi
sistem basis data meliputi:
- Definisi/Pengertian Normalisasi
- Tujuan/manfaat Normalisasai
- Anomali
- Depemdensi
- Diagram Dependensi Fungsional (Diagram DF)
- Bentuk Normalisasi
Istilah Normalisasi berasal dari E. 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.
Kroenke mendefinisikan normalisasi sbagai proses untuk mengubah suatu
relasi yang memiliki masalah tertentu ke dalam dua buah relasi atau
lebih yang tida memiliki masalah tersebut. Masalah yang dimaksud olej
kroenke ini sering disebut dengan istilah anomali.
( Pada beberapa literatur, istilah relasi yang digunakan pada bab ini
terkadang digantikan dengan tabel. Istilah relasi digunakan pada bab
ini dikarenakan definisi tentang normalisasi memang menggunakan istilah
relasi).
- Untuk menghilangkan kerangkapan data
- Untuk mengurangi kompleksitas
- Untuk mempermudah pemodifikasian data
Anomali adalah proses pada basis data yang
memberikan efek samping yang tidak diharapkan ( misalnya menyebabkan
ketidakonsistenan data atau membuat suatu data menjadi hilang ketika
data dihapus)
Macam Anomali terdiri dari
- Anomali peremajaan,
- Anomali Penghapusan, dan
- Anomali penyisipan
Anomali peremajaan
Anomali ini terjadi bila ada perubahan pada sejumlah data yang mubazir, tetapi tidak seluruhnya diubah. Contoh : Tabel Pesanan
Pemasok |
Kota |
Barang |
Jumlah |
Kartika |
Jakarta |
Mouse |
5 |
Citra |
Bandung |
Monitor |
2 |
Yudi |
Medan |
CPU |
2 |
Citra |
Bandung |
Printer |
1 |
Seandainya Citra dengan kota Bandung pindah ke Bogor maka pengubahan
data hanya dilakukan pada data pertama menjadi : Tabel Pesanan
Pemasok |
Kota |
Barang |
Jumlah |
Kartika |
Jakarta |
Mouse |
5 |
Citra |
Bogor |
Monitor |
2 |
Yudi |
Medan |
CPU |
2 |
Citra |
Bandung |
Printer |
1 |
Di sini terlihat bahwa data tentang pemasok Citra tidak sama yang menyebabkan ketidakkonsistenan data.
Anomali Penyisipan
Anomali ini terjadi pada saat penambahan data ternyata ada elemen
yang kosong dan elemen tsb justru menjadi key. Contoh : Tabel Kursus
NoSiswa |
Kursus |
Biaya |
10 |
Bhs.Inggris |
60000 |
10 |
Bhs.Perancis |
80000 |
10 |
Bhs.Jepang |
70000 |
15 |
Bhs.Inggris |
60000 |
20 |
Bhs.Jepang |
70000 |
Misalnya akan dibuka kursus baru yaitu Bhs.Jerman dengan biaya 75000
akan tetapi belum ada seorangpun yang ikut kursus ini, shg data menjadi :
Tabel Kursus
NoSiswa |
Kursus |
Biaya |
10 |
Bhs.Inggris |
60000 |
10 |
Bhs.Perancis |
80000 |
10 |
Bhs.Jepang |
70000 |
15 |
Bhs.Inggris |
60000 |
20 |
Bhs.Jepang |
70000 |
|
Bhs.Jerman |
75000 |
Anomali penghapusan
Anomali ini terjadi apabila dalam satu baris/ tuple ada data yang
akan dihapus sehingga akibatnya terdapat data lain yang hilang. Contoh
pada table kursus data NoSiswa 20 akan dihapus karena sudah tidak ikut
kursus lagi sehingga akibatnya data kursus bhs jepang dan biaya 70000
akan ikut terhapus.
Konsep dasar pada tahap normalisasi yang menjelaskan hubungan atribut
atau secara lebih khusus menjelaskan nilai suatu atribut yang
menentukan atribut lainnya.
Macam-macam dependensi, yaitu :
Dependensi fungsional
Definisi : Suatu atribut Y mempunyai dependensi fungsional terhadap
atribut X jika dan hanya jika setiap nilai X berhubungan dengan sebuah
nilai Y.
Notasi : X –> Y (X secara fungsional menentukan Y)
Contoh : Tabel Pesanan
Pembeli |
Kota |
Barang |
Jumlah |
P1 |
Yogya |
B1 |
10 |
P1 |
Yogya |
B2 |
5 |
P2 |
Jakarta |
B1 |
4 |
P2 |
Jakarta |
B2 |
7 |
P3 |
Solo |
B3 |
6 |
P3 |
Solo |
B4 |
6 |
Pembeli secara fungsional menentukan kota, sebab setiap pembeli yang
sama mempunyai kota yang sama, dengan demikian : Pembeli –> Kota
contoh lain : {Pembeli, Barang} –> Jumlah
Keterangan:
- Bagian yang terletak disebelah kiri tanda panah biasa disebut
DETERMINAN / PENENTU dan bagian yang terletak di sebelah kanan panah
disebut DEPENDENSI / YANG TERGANTUNG.
- Tanda {} biasanya digunakan untuk menentukan lebih dari satu atribut sebagai penentu atau sebagai yang tergantung.
Dependensi fungsional sepenuhnya
Definisi : Suatu atribut Y mempunyai dependensi fungsional penuh terhadap X jika
- Y mempunyai dependensi fungsional terhadap X dan/atau
- Y tidak memiliki dependensi terhadap bagian dari X
Contoh : Pembeli –> Kota
{Pembeli, Barang} –> Jumlah
Intinya : Kota mempunyai dependensi fungsional terhadap Pembeli
atau {Pembeli, Barang} tapi kota mempunyai dependensi fungsional
sepenuhnya terhadap pembeli bukan barang.
Dependensi Total
Definisi : Suatu atribut Y mempunyai dependensi total terhadap atribut X jika
- Y memiliki dependensi fungsional terhadap X dan
- X memiliki dependensi fungsional terhadap Y
Notasi : X<–> Y
Contoh : Tabel Pemasok
KodePemasok |
NamaPemasok |
Kota |
K1 |
Kartika |
Jakarta |
C1 |
Citra |
Bandung |
C2 |
Candra |
Jakarta |
Pada kasus ini KodePemasok <–>NamaPemasok, karena setiap kode tidak mempunyai nama yang sama.
Dependensi Transitif
Definisi : Atribut Z mempunyai dependensi transitif terhadap X bila :
- Y memiliki dependensi fungsional terhadap X
- Z memiliki dependensi fungsional terhadap Y
Contoh :
Kuliah |
Ruang |
Tempat |
Waktu |
Jarkom |
Merbabu |
Gedung Utara |
Senin |
Basis Data |
Arjuna |
Gedung Selatan |
Selasa |
Matematika |
Merapi |
Gedung Barat |
Rabu |
Fisika |
Merbabu |
Gedung Timur |
Kamis |
Relasi :
- Kuliah –> {Ruang, Waktu}
- Ruang –> Tempat
Terlihat bahwa : Kuliah –> Ruang –> Tempat
Dengan demikian Tempat mempunyai dependensi transitif terhadap kuliah
Diagram Dependensi Fungsional (Diagram DF) Adalah
diagram yang digunakan untuk menggabarkan dependensi fungsional.
Diagram ini menunjukkan hubungan antara atribut yang menjadi penentu
atribut lainnya, dengan hubungan yang dinyatakan dengan tanda panah.
Seperti contoh diatas dapat digambarkan diagram DF sebagai berikut :
Dekomposisi
Pada tahap normalisasi sering kali terjadi pemecahan table kedalam
bentuk dua atau lebih relasi. Proses pemecahaan ini disebut dengan
dekomposisi. Syarat : Tidak ada informasi yang hilang ketika suatu
relasi dipecah menjadi relasi-relasi lain. Contoh : Terdapat suatu
relasi awal sebagai berikut :
Nim |
Nama |
Program Studi |
95001 |
Andi |
Ekonomi |
95002 |
Vira |
Teknik |
95003 |
Andi |
Fisika |
Akan dibentuk kedalam dekomposisi tak hilang menjadi :
Nim |
Nama |
|
Nim |
Program Studi |
95001 |
Andi |
|
95001 |
Ekonomi |
95002 |
Vira |
|
95002 |
Teknik |
95003 |
Andi |
|
95003 |
Fisika |
Pada relasi awal dapat diketahui informasi sebagai berikut :
95001 adalah
ANDI program studi
Ekonomi. Setelah proses dekomposisi tak hilang hasilnya adalah sama
95001 adalah
ANDI dan
95001 program studi
Ekonomi. Contoh dekomposisi hilang adalah
Nim |
Nama |
|
Nama |
Program Studi |
95001 |
Andi |
|
Andi |
Ekonomi |
95002 |
Vira |
|
Vira |
Teknik |
95003 |
Andi |
|
Andi |
Fisika |
95001 bernama ANDI, tetapi ANDI dengan program studi Ekonomi atau Fisika?
Bentuk normalisasi pertama (1NF)
Dikenakan pada tabel yang sama sekali belum ternomalisasi. Tabel yang
belum ternomalisasi adalah tabel yang mempunyai atribut berulang.
Contoh : terdapat suatu data sebagai berikut :
NIP |
Nama |
Jabatan |
Keahlian |
Lama Kerja |
107 |
Ilham |
Analis Senior |
Cobol |
6 |
|
|
|
Oracle |
1 |
109 |
Ryan |
Analis Junior |
Cobol |
2 |
|
|
|
C++ |
2 |
120 |
Fika |
Programmer |
Dbase |
3 |
|
|
|
Sybase |
1 |
|
|
|
Cobol |
1 |
Pada contoh di atas, keahlian mempunyai atribut yang berulang. Untuk
itu akan dibentuk ke normal 1NF. Syarat Normal 1NF adalah suatu relasi
dikatakan dalam bentuk normal pertama jika dan hanya jika setiap atribut
bernilai tunggal dalam satu baris.
NIP |
Nama |
Jabatan |
Keahlian |
Lama Kerja |
107 |
Ilham |
Analis Senior |
Cobol |
6 |
107 |
Ilham |
Analis Senior |
Oracle |
1 |
109 |
Ryan |
Analis Junior |
Cobol |
2 |
109 |
Ryan |
Analis Junior |
C++ |
2 |
120 |
Fika |
Programmer |
Dbase |
3 |
120 |
Fika |
Programmer |
Sybase |
1 |
120 |
Fika |
Programmer |
Cobol |
1 |
Tabel di atas sudah memenuhi bentuk normal 1NF
Bentuk Normal 2NF
Bentuk ini didefinisikan berdasarkan dependensi fungsional dengan syarat adalah :
- Berada pada bentuk normal pertama
- Semua atribut bukan kunci memiliki dependensi sepenuhnya terhadap kunci primer
Contoh :
- Nama dan jabatan mempunyai dependensi fungsional terhadap NIP
- Lama mempunyai dependensi fungsional terhadap NIP dan keahlian
- Bentuk tabelnya adalah : NNJ (NIP, Nama, Jabatan) dan NKL (NIP, Keahlian, Lama Kerja)
NIP |
Nama |
Jabatan |
107 |
Ilham |
Analis Senior |
109 |
Ryan |
Analis Junior |
120 |
Fika |
Programmer |
NIP |
Keahlian |
Lama Kerja |
107 |
Cobol |
6 |
107 |
Oracle |
1 |
109 |
Cobol |
2 |
109 |
C++ |
2 |
120 |
Dbase |
3 |
120 |
Sybase |
1 |
120 |
Cobol |
1 |
Bentuk Normal 3NF
- Berada dalam bentuk normal 2 NF
- Setiap atribut bukan kunci tidak memiliki dependensi transitif terhadap kunci primer
Contoh di atas sudah memenuhi normal 3NF karena : Tidak memiliki dependensi transitif, yaitu
NIP –> {Nama, Jabatan}
{NIP, Keahlian} –> Lama Kerja
Bentuk Normal boyce-codd (BCNF)
Bentuk ini dilakukan jika dan hanya jika semua penentu (determinan)
adalah kunci kandidat (atribut yang bersifat unik). BCNF merupakan
perbaikan dari 3NF. Relasi yang memenuhi BCNF pasti memenuhi 3NF tetapi
tidak sebaliknya. Contoh : Tabel SKT
Siswa |
Kursus |
Tutor |
Anwar |
Bhs. Perancis |
Pierre |
Anwar |
Bhs. Inggris |
Richard |
Budi |
Bhs. Perancis |
Pierre |
Cecep |
Bhs. Inggris |
Suzanne |
Tabel di atas adalah suatu relasi yang memenuhi 3NF tetapi tidak memenuhi BCNF. Relasi diatas didasarkan oleh fakta :
- Seorang siswa dapat mengambil sejumlah kursus
- Setiap tutor hanya mengajar satu kursus bahasa
- Setiap siswa dalam satu kursus diajar oleh satu tutor
- Suatu kursus bisa dipegang oleh beberapa tutor
Pada keadaan tersebut di atas dapat digambarkan sebagai berikut : Siswa & Kursus dan Siswa & Tutor.
Memenuhi bentuk 3NF karena tidak ada dependensi transitif pada relasi
tersebut. Tetapi tidak memenuhi BCNF karena adanya determinan Tutor
yang berdiri sebagai kunci kandidat. Realsi SKT menyebabkan anomali
karena baris Cecep dihapus maka Suzane sebagai tutor jug akan terhapus.
Cara konversi dari 3NF ke BCNF adalah :
- Carilah semua penentu
- Bila terdapat penentu yang bukan kunci kandidat, maka :
- Pisahkan relasi tersebu
- Buat penentu sebagai kunci primer
- Dekomposisi berupa : ST (Siswa, Tutor) dan TK (Tutor, Kursus)
Siswa |
Tutor |
Anwar |
Pierre |
Anwar |
Richard |
Budi |
Pierre |
|
|
|
|
Download pdf:
Klik Disini
Source :
http://fairuzelsaid.wordpress.com/2010/01/24/sistem-basis-data-normalisasi/
Tidak ada komentar:
Posting Komentar
WARNING !
Komentar anda tidak boleh mengandung unsur:
1.Penghinaan, Rasis dan Pelecehan
2.Spamming (Spam Comments)
3.Link Iklan, ads etc
Terima Kasih.
Jika ada request ato laporan tentang :
1.Request Software atau Tutorial
2.Bad Link & Re-active link (akibat broken link)
Silakan comment di bawah atau kirim pesan ke saya via facebook >> Akunku : Adhieresthenes Hier Banu Arfakhshad