Menurut E.F. Codd: Normalisasi dipakai untuk membuat struktur tabel (relasi) dalam basis data mengurangi kemubaziran data; Kadang dipakai sebagai perangkat verifikasi terhadap tabel-tabel yang dihasilkan metodologi lain; Memberikan panduan yang sangat membantu bagi pengembang untuk mencegah penciptaan struktur tabel yang kurang atau mengurangi ketidakefisienan. Menurut Kroenke: Sebagai proses untuk mengubah suatu relasi yang memiliki masalah tertentu ke dalam dua buah relasi atau lebih yang tidak memiliki masalah tersebut anomali.
Proses pada basis data yang memberikan efek samping yang tidak di-harapkan, macamnya: Anomali peremajaan; Anomali penghapusan, dan Anomali penyisipan.
IV.2.1. Anomali Peremajaan Terjadi jika pada saat pengubahan pada sejumlah data yang mubazir, tetapi tidak seluruhnya ikut berubah
Pemasok
Kota
Barang
Jumlah
Agus
Jakarta
Monitor
12
Citra
Bogor
Cd
10
Anto
Bandung
CPU
12
Citra
Bogor
CPU
3
Seandainay pemasok citra berpindah tempat yogya, dan perubahan dilakukan pada data pertama, maka akan terjadi anomali peremajaan Pemasok
Kota
Barang
Jumlah
Agus
Jakarta
Monitor
12
Citra
Yogya
Cd
10
Anto
Bandung
CPU
12
Citra
Bogor
CPU
3
Terjadi jika pada saat penambahan hendak dilakukan ternyata ada elemen data yang masih kosong dan elemen data tersebut justru menjadi kunci Contoh : Relasi ini menyatakan : Kuliah mengguunakan ruang tertentu. Suatu ruang berada pada tempat tertentu ( misal ruang meerapi ada pada gedung utara.
kuliah
ruang
tempat
Jarkom
Merapi
Gedung utara
Pbd
Merbabu
Gedung selatan
Matematika
Rama
Gedung selatan
Sistem Pakar
Shinta
Gedung utara
Akan terjadi kelsulitan ketika ingin menambahkan ruangan bau karena informasi kuliah yang menggunakan ruangan tersebut tidak ada
Terjadi
sekiranya suatu baris (tupel) yang tidak terpakai dihapus dan sebagai akibatnya terdapat data lain yang hilang
1) 2) 3) 4)
Merupakan konsep yang mendasari normalisasi; Menjelaskan hubungan antar atribut atau secara lebih khusus menjelas-kan nilai suatu atribut yang menentukan nilai atribut lainnya, macamnya: Dependensi fungsional; Dependensi fungsional sepenuhnya; Dependensi total, dan Dependensi transitif.
Suatu atribut Y mempunyai dependensi fungsional terhadap atribut X, jika dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y. XY secara istilah: penentu (determinan) yang tergantung (dependen)
Pada contoh ini pembeli secara fungsional menentukan kota, sebab terlihat bahwa untuk pembeli yang sama kotanya juga sama,dengan demikian : pembeli - kota
Pembeli
Kota
Barang
Jumlah
P1
Yogya
B1
10
P1
Yogya
B2
5
P2
Bandung
B1
6
P2
Bandung
B2
7
P2
Bandung
B3
8
P3
Jakarta
b1
4
contoh lain : ( pembeli, barang )- jumlah. (pembeli, barang ) kota. (pembeli, barang ) (jumlah, Kota ).
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. Berkaitan dengan hal ini terdapat istilah irreducible dependent atau depen-densi yang tidak dapat dibagi lagi. Istilah ini identik dengan dependensi fungsional sepenuhnya (full functional dependent) atau terkadang hanya disebut dependensi sepenuhnya (fully dependent).
Sebagai contoh pada relasi pelanggan ; Pelanggan(kd_pelanggan, nama, kota,nm_fax ). Pada relasi ini : 1). (kd_pelanggan,kota) nm_fax. 2).(kd_pelanggan)nm_fax
Dengan kata lain bahwa nm_fax memmpunyai dependensi fungsional terhadap kd_pelanggan
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 Contoh : Misalnya relasi seperti gambar berikut :
Kd_pemasok
Nama_pemasok
Kota
A1
Citra
Bogor
B1
Anto
Bandung
K1
Arif
jakarta
Kode_pemasok < -- > nama_pemasok
Atribut Z mempunyai transitif adalah sebagai berikut: Y memiliki dependensi fungsional terhadap X Z memiliki dependensi fungsional terhadap Y. atau dapat dituliskan XYZ Contoh :
kuliah
ruang
tempat
Waktu
Jarkom
Merapi
Gedung utara
Senis, 08 :00
Pbd
Merbabu
Gedung selatan
Rabu, 09:00
Matematika
Rama
Gedung selatan
Selasa, 08:00
Sistem Pakar
Shinta
Gedung utara
Rabu, 12:00
Pada relasi ini : Kuliah (ruang,waktu). Kuliah tempat Terlihat bahwa kuliah ruang waktu Dengan demikian tempat mempunyai dependensi transitif terhadap kuliah
Diagram dependensi fungsional (diagram DF) adalah diagram yang digunakan untuk menggambarkan dependensi fungsional; Diagram ini menunjukkan hubungan antara atribut yang menjadi penentu atribut lainnya dengan hubungan yang dinyatakan dengan tanda panah. CONTOH RUANG KULIAH
WAKTU
TEMPAT
Pada proses normalisasi seringkali terjadi pemecahan sebuah relasi mejadi dua relasi atau lebih dekomposisi; Secara lebih khusus, macam dekomposisi yang dilakukan adalah dekomposisi tak hilang, yang artinya bahwa tak ada informasi yang hilang ketika relasi dipecah menjadi relasi-relasi lain.
Bentun relasi semula Nim
Nama
Program_studi
90001
anto
Mi
90002
Ali
TI
90003
Hendra
MI
Dekomposisi tak hilang Nim
Nama
Nim
Program_studi
90001
anto
90001
Mi
90002
Ali
90002
TI
90003
Hendra
90003
MI
Dekomposisi hilang Nama
Program_studi
Nim
Nama
anto
Mi
90001
anto
Ali
TI
90002
Ali
Hendra
MI
90003
Hendra
Bentuk normal adalah suatu aturan yang dikenakan pada relasi-relasi dalam basis data dan harus dipenuhi oleh relasi-relasi tersebut dalam level-level normalisasi; Suatu relasi dikatakan berada dalam bentuk normal tertentu jika memenuhi konsidi-kondisi tertentu; Beberapa level yang biasa digunakan pada normalisasi adalah: Bentuk normal pertama (1NF); Bentuk normal kedua (2NF); Bentuk normal ketiga (3NF); Bentuk normal Boyce-Cood (BCNF); Bentuk normal keempat (4NF); Bentuk normal kelima (5NF);
Bentuk normal pertama hingga ketiga (dibuat oleh E. F Cood) merupakan bentuk normal yang umum dipakai. Artinya bahwa pada kebanyakan relasi, bila ketiga tersebut terpenuhi, maka persoalan anomali tidak akan muncul lagi. Bentuk normal Boyce-Cood merupakan revisi terhadap bentuk normal ketiga.
Relasi Umum 1NF 2NF
3NF
BCNF
4NF
5NF
Gambar di atas menjelaskan bahwa setiap normalisasi bergantung pada level sebelumnya. Semakin dalam levelnya, relasi mempunyai kecenderungan lebih baik dalam artian memiliki problem yang lebih kecil ataupun sama sekali tak memiliki permasalahan anomali.
Bentuk normal pertama biasa dikenakan pada tabel yang belum ternormalisasi. Tabel yang belum ternomalisasi adalah tabel yang memiliki atribut yang berulang; Suatu relasi dikatakan dalam bentuk normal pertama jika dan hanya jika setiap atribut bernilai tunggal untuk setiap baris;
Nip
Nama
Jabatan
Keahlisn
Lama kerja
107
Ani
Analis senior
Cobol Oracle
6 2
108
Anto
Analis Senior Cobol DBaseIII+
2 3
110
anti
Programmer
2 4 1
Cobol Dbase Pascal
Pada contoh diatas Keahlian menyatakan atribut yang berulang., bentuk seperti ini dapat dirubah kedalam bentuk normal pertama, menjadi
Nip
Nama
Jabatan
Keahlisn
Lama kerja
107
Ani
Analis senior
Cobol
6
107
Ani
Analis senior
Oracle
2
108
Anto
Analis Senior
Cobol
2
108
Anto
Analis Senior
DBaseIII+
3
110
anti
Programmer
Cobol
2
110
anti
Programmer
Dbase
4
110
anti
Programmer
Pascal
1
Relasi dalam bentuk normal pertama
Suatu relasi berada dalam bentuk normal kedua jika dan hanya jika:
Berada pada bentuk normal pertama Semua atribut yang bukan kunci memiliki dependensi se-penuhnya terhadap kunci primer
Atribut yang bukan kunci adalah atribut yang bukan merupakan bagian kunci primer. Dalam ungkapan yang lebih praktis, bentuk normal kedua mensyarat-kan setiap atribut bergantung kepada kunci primer;
Untuk mengubah suatu relasi yang tergolong sebagai bentuk normal pertama ke bentuk normal kedua perlu dilakukan dekomposisi terhadap relasi tersebut; Proses dekomposisi dapat dilakukan dengan menggambarkan diagram dependensi fungsional terlebih dahulu; Berdasarkan diagram ini, relasi dalam bentuk normal pertama dipecah ke dalam sejumlah relasi.
Nip
Nama
Jabatan
Keahlisn
Lama kerja
107
Ani
Analis senior
Cobol
6
107
Ani
Analis senior
Oracle
2
108
Anto
Analis Senior
Cobol
2
108
Anto
Analis Senior
DBaseIII+
3
110
anti
Programmer
Cobol
2
110
anti
Programmer
Dbase
4
110
anti
Programmer
Pascal
1
Diagram dependensi fungsional untuk relasi diatas dapat digambarkan sebagai beikut : Nama
Nip Lama
Jabatan
keahlian
Dari diagram dependensi fungsional diatas, dapat dilakukan dekomposisi menjadi :
Nip
Nama
Jabatan
107
Ani
Analis senior
108
Anto
Analis Senior
110
anti
Programmer
Nip
Keahlisn
Lama kerja
107
Cobol
6
107
Oracle
2
108
Cobol
2
108
DBaseIII+
3
110
Cobol
2
110
Dbase
4
110
Pascal
1
Terdapat relasi R: R(A,B,C,D) KUNCI PRIMER (A,B) AD R dapat digantikan dengan dua proyeksi R1 dan R2: R1(A,D) KUNCI PRIMER (A) R2(A,B,C) KUNCI PRIMER (A,B) KUNCI TAMU (A) REFERENSI R1 Masalah yang sering terjadi pada relasi yang tergolong pada bentuk normal kedua diakibatkan oleh adanya dependensi transitif.
Suatu relasi dikatakan dalam bentuk ketiga (3NF) jika:
Berada pada bentuk normal kedua Semua atribut bukan kunci tidak memiliki transitif terhadap kunci primer;
Nm_PSN
Nm_Urut
Kd_Item
Nm_Item
9001
0001
P1
Pensil
9001
0002
P2
Buku tulis
9001
0003
P3
Penggaris
9001
0004
P4
Penghapus
9002
0001
P3
Penggaris
9002
0002
P5
Pulpen
9002
0003
P6
Spidol
9003
0001
P1
Pensil
9003
0002
P2
Buku tulis
Bila terdapat relasi R sbb : R(A,B,C) KUNCI PRIMER (A) BC Maka relasi R dapat digantikan dengan dua proyeksi R1 dan R2: R1(B,C) KUNCI PRIMER (B) R2(A,B) KUNCI PRIMER (A) KUNCI TAMU (B) REFERENSI R1
Nm_PSN
Nm_Urut
Kd_Item
Kd_Item
Nm_Item
9001
0001
P1
P1
Pensil
9001
0002
P2
P2
Buku tulis
9001
0003
P3
P3
Penggaris
9001
0004
P4
P4
Penghapus
9002
0001
P3
P5
Pulpen
9002
0002
P5
P6
Spidol
9002
0003
P6
9003
0001
P1
9003
0002
P2
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.
Misalkan ada tabel SKT : Siswa
Kursus
Tutor
Anwar
Bahasa Inggris
Pierre
Anwar
Bahasa Inggris
Pierre
Budi
Bahasa Inggris
Richard
Cecep
Bahasa Inggris
suzanne
Pada relasi SKT diatas merupakan gabungan dari : Siswa dan Kursus, serta Siswa dan Tutor. Siswa Kursus
Tutor
Siswa Anwar Anwar Budi Cecep
Tutor Pierre Pierre Richard suzanne
Kursus Bahasa Inggris Bahasa Inggris Bahasa Inggris
Tutor Pierre Richard suzanne
Dependensi nilai banyak merupakan terjemahan dari 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 nilai-nilainya tergantung hanya pada atribut ketiga.
Pada suatu relasi R dengan atribut A, B, C atribut B dikatakan bersifat multidependen terhadap A jika: Sekumpulan nilai B yang diberikan pada pasangan (A, C) hanya tergantung pada nilai A, dan Tidak tergantung pada nilai C.
Hubungan di atas dinyatakan dengan A --->> B 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 Secara praktis, suatu relasi memenuhi bentuk normal keempat jika: telah berada pada BCNF, dan tidak mengandung dua atribut atau lebih yang bernilai bany
Dependensi gabungan mendasari bentuk normal kelima. Suatu relasi R (X, Y, ..., Z) memenuhi dependensi gabungan jika gabungan dari proyeksi A, B, ..., C dengan A, B, ..., C merupakan sub-himpunan dari atributatribut R. Dependensi gabungan sesuai dengan definisi di atas dinyatakan dengan notasi: * (A, B, ..., C) dengan A = XY, B = YZ, C= ZX.
Tabel-tabel yang menenuhi 5NF terkadang didekomposisi lagi overnormalisasi. Tujuannya adalah untuk meningkatkan kinerja. Caranya adalah dengan memperhatikan permintaan terhadap data yang sering dilakukan. Kolom-kolom data yang sering diperlakukan diletakkan pada tabel tersendiri, terpisah dengan kolomkolom data yang jarang diperlukan. Alasan yang lain, tabel yang terlalu banyak memiliki kolom dapat menimbulkan persoalan yang disebut deadlock (saling mengunci) pada pengaksesan yang serentak (sejumlah pengguna mengakses baris yang sama).
Namun perlu juga diperhatikan bahwa tidak selamanya pendekom-posisian terhadap tabel yang telah memenuhi 5NF dapat meningkatkan kinerja. Pada kenyataannya, tabel yang terlalu pendek (sedikit memiliki kolom) juga menimbulkan persoalan peningkatan waktu CPU dan juga memerlukan banyak I/O disk ketika penggabungan data (misalnya untuk penyajian laporan).