KULIAH 6-7 BASIS DATA 1
NORMALISASI
NORMALISASI
Pengertian Normalisasi Anomali Dependensi (Ketergantungan) Diagram Dependensi Fungsional Dekomposisi Tak Hilang Bentuk Normal Overnormalisasi
1. PENGERTIAN NORMALISASI Istilah normalisasi berasal dari E.F. Codd, salah seorang perintis teknologi basis data. Selain dipakai sebagai metodologi tersendiri untuk menciptakan struktur tabel (relasi) dalam basis data (dengan tujuan untuk mengurangi kemubaziran data), normalisasi terkadang hanya dipakai sebagai perangkat verifikasi terhadap tabel-tabel yang dihasilkan oleh metodologi lain (misal E-R). Normalisasi memberikan panduan yang sangat membantu untuk mencegah penciptaan struktur tabel yang kurang fleksibel atau mengurangi ketidakefisienan. Kroenke mendefinisikan normalisasi sebagai proses untuk mengubah suatu relasi yang memiliki masalah tertentu ke dalam dua buah relasi atau lebih yang tak memiliki masalah tersebut. Masalah yang dimaksud ini sering disebut dengan istilah anomali. Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data / database, teknik pengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi).
2. ANOMALI Anomali adalah proses pada basis data yang memberikan efek samping yang tidak diharapkan (misalnya menyebabkan ketidakkonsistenan data atau membuat sesuatu data menjadi hilang ketika data lain dihapus). Macam anomali ada 3 jenis, yaitu : Anomali Peremajaan, Anomali Penghapusan, dan Anomali Penyisipan.
Anomali Peremajaan Anomali ini terjadi bila terjadi pengubahan pada sejumlah data yang mubazir, tetapi tidak seluruhnya diubah. Sebagai contoh, terdapat relasi PESANAN_BELI yang mengandung data PEMASOK dan KOTA yang menyatakan lokasi pemasok, BARANG, dan JUMLAH yang menyatakan nama barang dan jumlah barang yang dipesan.
Anomali Peremajaan (lanj.)
Anomali Peremajaan (lanj.)
Anomali Penyisipan Anomali penyisipan terjadi jika pada saat penambahan hendak dilakukan ternyata ada elemen data yang masih kosong dan elemen data tersebut justru menjadi kunci. Sebagai contoh, terdapat relasi yang berisi tiga buah atribut : KULIAH RUANG TEMPAT
Anomali Penyisipan (lanj.)
Anomali Penyisipan (lanj.)
Anomali Penghapusan Anomali penghapusan terjadi sekiranya sesuatu baris (tupel) yang tak terpakai dihapus dan sebagai akibatnya terdapat data lain yang hilang. Dengan mengambil contoh relasi KURSUS di depan, apa yang terjadi seandainya data siswa dengan identitas 20 yang mengambil kursus bahasa Jepang di hapus ? Data yang menyatakan bahwa biaya kursus bahasa Jepang sebesar 65.000 juga akan terhapus !
4. DEPENDENSI (KETERGANTUNGAN) Dependensi merupakan konsep yang mendasari normalisasi. Dependensi menjelaskan hubungan antar atribut, atau secara lebih khusus menjelaskan nilai suatu atribut yang menentukan nilai atribut lainnya. Dependensi ini kelak menjadi acuan bagi pendekomposisian data ke dalam bentuk yang paling efisien. Macam dependensi : dependensi fungsional, dependensi fungsional sepenuhnya, dependensi total, dan dependensi transitif.
Dependensi Fungsional Dependensi Fungsional adalah macam dependensi yang banyak diulas pada literatur basis data. Dependensi fungsional didefinisikan sebagai berikut : Suatu atribut Y mempunyai dependensi fungsional terhadap atribut X jika dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y. Definisi di atas biasa dituangkan dalam bentuk notasi sebagai berikut : X Y (dibaca ”X secara fungsional menentukan Y” atau terkadang cukup dibaca ”X panah Y”). Sebagai contoh, terdapat relasi PESANAN_JUAL yang dinotasikan dengan : PESANAN_JUAL (PEMBELI, KOTA, BARANG, JUMLAH) Yang artinya bahwa relasi PESANAN_JUAL mengandung atribut PEMBELI, KOTA, BARANG, dan JUMLAH. Sampel data pada relasi ini diperlihatkan pada gambar 5.
Dependensi Fungsional (lanj.)
Dependensi Fungsional (lanj.) Pada contoh ini, PEMBELI secara fungsional menentukan KOTA, sebab terlihat bahwa untuk PEMBELI yang sama, KOTA-nya juga sama. Dengan demikian : PEMBELI KOTA Contoh yang lain : { PEMBELI, BARANG } JUMLAH { PEMBELI, BARANG } KOTA { PEMBELI, BARANG } { JUMLAH, KOTA } Catatan : Bagian yang terletak di sebelah kiri panah biasa disebut penentu (determinan) dan bagian yang yang terletak di sebelah kanan panah disebut yang tergantung (dependen). Tanda { } biasa digunakan kalau ada lebih dari satu atribut, baik pada penentu maupun yang tergantung.
Dependensi Fungsional Sepenuhnya Definisi dependensi fungsional sepenuhnya adalah sebagai berikut : Suatu atribut Y mempunyai dependensi fungsional penuh terhadap atribut X jika : Y mempunyai dependensi fungsional terhadap X Y tidak memiliki dependensi terhadap bagian dari X. Sebagai contoh, terdapat relasi PELANGGAN : PELANGGAN (KODE_PELANGGAN, NAMA, KOTA, NOMOR_FAX) Pada relasi ini : {KODE_PELANGGAN, KOTA} NOMOR_FAX KODE_PELANGGAN NOMOR_FAX
Dependensi Fungsional Sepenuhnya (lanj.) Mengingat bahwa NOMOR_FAX bergantung pada { KODE_PELANGGAN, KOTA } (kondisi 1) dan juga bergantung pada KODE_PELANGGAN (kondisi 2), yang tidak lain adalah bagian dari { KODE_PELANGGAN, KOTA }, maka NOMOR_FAX tidaklah mempunyai dependensi fungsional sepenuhnya terhadap { KODE_PELANGGAN, KOTA }. Dengan kata lain, NOMOR_FAX hanya mempunyai dependensi fungsional sepenuhnya terhadap KODE_PELANGGAN. Catatan : Berkaitan dengan hal ini terdapat istilah irreducible dependent atau dependensi yang tak dapat dibagi lagi. Istilah ini identik dengan dependensi fungsional sepenuhnya (full functional dependent) atau terkadang hanya disebut dependensi sepenuhnya (fully dependent).
Dependensi Total Definisi dependensi total adalah sebagai berikut : Suatu atribut Y mempunyai dependensi total terhadap atribut X jika : Y memiliki dependensi fungsional terhadap X X mempunyai dependensi fungsional terhadap Y Dependensi seperti ini dinyatakan dengan notasi : XY
Dependensi Total (lanj.)
Dependensi Transitif Definisi dependensi transitif adalah sebagai berikut : Atribut Z mempunyai dependensi transitif terhadap X bila : Y memiliki dependensi fungsional terhadap X Z memiliki dependensi fungsional terhadap Y
Sebagai contoh, terdapat relasi sebagaimana diperlihatkan pada gambar 7 sebagai berikut ini :
Dependensi Transitif (lanj.)
Dependensi Transitif (lanj.) Pada relasi ini : KULIAH { RUANG, WAKTU } RUANG TEMPAT Terlihat bahwa : KULIAH RUANG TEMPAT Dengan demikian TEMPAT mempunyai dependensi transitif terhadap KULIAH.
4. DIAGRAM DEPENDENSI FUNGSIONAL 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. Sebagai contoh, dependensi fungsional pada relasi yang terdapat pada gambar 7. dapat disajikan dalam diagram dependensi fungsional sebagaimana terlihat pada gambar 8 :
4. DIAGRAM DEPENDENSI FUNGSIONAL (lanj.) KULIAH { RUANG, WAKTU } RUANG TEMPAT Digambarkan :
5. DEKOMPOSISI TAK HILANG Pada proses normalisasi seringkali terjadi pemecahan sebuah relasi menjadi dua relasi atau lebih. Proses pemecahan seperti ini biasa disebut dengan istilah 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. Gambar 9 memperlihatkan sebuah relasi dan dua macam dekomposisi :
DEKOMPOSISI TAK HILANG (lanj.)
DEKOMPOSISI TAK HILANG (lanj.) Pada dekomposisi di atas : Pada kasus (a), dekomposisi bersifat tak hilang. Berdasarkan kedua relasi hasil dekomposisi (terkadang disebut proyeksi), relasi semula bisa diperoleh kembali. Sebagai contoh, berdasarkan kedua relasi hasil dekomposisi, informasi bahwa nomor 95001 bernama ALI dengan program studi berupa EKONOMI dapat diperoleh kembali. Begitu juga untuk nomor 95002 dan 95003. Pada kasus (b) terdapat suatu kerancuan. Nama yang bernomor 95001 memang betul adalah ALI (Relasi : NIM_NAMA ), tetapi si ALI yang bernomor 95001 ini mengambil program studi EKONOMI atau FISIKA (Relasi NAMA_PROG, karena ada dua nama ALI) ? Dekomposisi yang menghasilkan relasi NIM_NAMA dan NAMA_PROG ini merupakan contoh dekomposisi hilang.
6. BENTUK NORMAL Aturan-aturan normalisasi dinyatakan dalam istilah bentuk normal. Bentuk normal adalah suatu aturan yang dikenakan pada relasi-relasi dalam basis data dan harus dipenuhi oleh relasi-relasi tersebut pada level-level normalisasi. Suatu relasi dikatakan berada dalam bentuk normal tertentu jika memenuhi kondisi-kondisi tertentu. Misalnya, suatu relasi berada dalam bentuk normal pertama (biasa disebut 1NF) jika dan hanya jika setiap atribut bernilai tunggal untuk setiap baris. Beberapa level yang biasa digunakan pada normalisasi adalah : Bentuk normal pertama (1NF), Bentuk normal kedua (2NF), Bentuk normal ketiga (3NF), Bentuk normal Boyce-Codd (BCNF), Bentuk normal keempat (4NF), Bentuk normal kelima (5NF).
BENTUK NORMAL (lanj.) Bentuk normal pertama hingga ketiga (dibuat oleh E.F. Codd) merupakan bentuk normal yang umum dipakai. Artinya bahwa pada kebanyakan relasi, bila ketiga bentuk normal tersebut telah dipenuhi, maka persoalan anomali tidak akan muncul lagi. Bentuk normal Boyce-Codd merupakan revisi terhadap bentuk normal ketiga. Bentuk 4NF dan 5NF (dikemukan oleh Fagin) hanya dipakai pada kasus-kasus khusus, yakni pada relasi yang mengandung dependensi nilai banyak. Bentuk-bentuk normal sering digambarkan sebagaimana terlihat pada gambar 10.
BENTUK NORMAL (lanj.)
Bentuk Normal Pertama (1NF) Bentuk normal pertama biasa dikenakan pada tabel yang belum ternormalisasi. Tabel yang belum ternormalisasi adalah tabel yang memiliki atribut yang berulang. Sebagai contoh, berikut adalah data dalam keadaan belum ternormalisasi :
Bentuk Normal Pertama (1NF) (lanj.)
Bentuk Normal Pertama (1NF) (lanj.) Pada contoh di atas, KEAHLIAN menyatakan atribut yang berulang (misalnya, FIKA memiliki tiga keahlian, dan ILHAM memiliki dua keahlian). Bentuk seperti ini perlu diubah menjadi bentuk normal pertama, dengan cara yang akan dijelaskan berikutnya : Definisi bentuk normal pertama adalah sebagai berikut : Suatu relasi dikatakan dalam bentuk normal pertama jika dan hanya jika setiap atribut bernilai tunggal untuk setiap baris. Data yang tak ternormalisasi pada gambar 11 dapat diubah ke dalam bentuk normal pertama dengan cara membuat setiap baris berisi kolom dengan jumlah yang sama dan setiap kolom hanya mengandung satu nilai. Data pada gambar 11 perlu diubah menjadi relasi sebagaimana terlihat pada gambar 12 berikut :
Bentuk normal pertama (1NF) (lanj.)
Bentuk Normal Pertama (1NF) (lanj.)
Bentuk Normal Pertama (1NF) (lanj.) Bentuk semacam itu banyak dipakai oleh pengembang yang barangkali tidak mengenal konsep normalisasi. Sejumlah item ditulis berdiri sebagai kolom tersendiri. Tentu saja rancangan seperti ini tidak praktis. Berapa jumlah kolom yang disediakan untuk menyediakan macam item yang dipesan oleh seseorang ?. Barangkali jumlah sebanyak 20 dirasakan cukup untuk mewakili macam item yang mungkin dipesan oleh seseorang, namun bagaimana jika banyak pesanan yang terdiri atas 2 macam ? Bukankah banyak kolom yang tidak digunakan ? Bagaimana pula seandainya pada kasus tertentu ada seseorang yang memesan lebih dari 20 item ? Bentuk sebagaimana pada gambar 13 perlu diubah menjadi relasi yang diperlihatkan pada gambar 14 berikut :
Bentuk Normal Pertama (1NF) (lanj.)
Bentuk Normal Pertama (1NF) (lanj.) Relasi yang memenuhi bentuk normal pertama umumnya memiliki berbagai masalah. Masalah yang timbul secara umum adalah disebabkan oleh adanya kemubaziran. Kemubaziran (perhatikan baris-baris dengan NOMOR_PESANAN sama dengan 50001 pada gambar 14. TGL_PESANAN dan TOTAL merupakan contoh kemubaziran) yang dapat mengakibatkan ketidakkonsistenan, yakni bila ada perubahan data yang tidak lengkap terhadap data yang mubazir (misalnya TGL_PESANAN pada gambar 14). Selain itu, sekalipun ketidakkonsistenan misalnya tidak terjadi, namun terjadi ketidakefisienan sewaktu mengubah data. Berbagai persoalan yang menyangkut anomali (baik anomali peremajaan, maupun anomali penyisipan dan anomali penghapusan) biasanya juga muncul pada relasi yang hanya memenuhi bentuk normal pertama.
Bentuk Normal Kedua (2NF) Bentuk normal kedua didefinisikan berdasarkan dependensi fungsional : Suatu relasi berada dalam bentuk normal kedua jika dan hanya jika : – –
Berada pada bentuk normal pertama Semua atribut bukan kunci memiliki dependensi sepenuhnya terhadap kunci primer
Catatan : Atribut bukan kunci adalah atribut yang tidak merupakan bagian kunci primer. Dalam ungkapan yang lebih praktis, bentuk normal kedua mensyaratkan setiap atribut bergantung kepada kunci primer. Relasi pada gambar 12 tidak tergolong sebagai bentuk normal kedua, meskipun memenuhi persyaratan bentuk normal pertama. Perhatikan bahwa NAMA dan JABATAN mempunyai dependensi sepenuhnya terhadap NIP (sebab untuk setiap nilai NIP yang sama, NAMA dan JABATAN juga sama). Namun tidak demikian halnya dengan KEAHLIAN dan PENGALAMAN.
Bentuk Normal Kedua (2NF) (lanj.) 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. Sebagai contoh, salah satu relasi yang dibahas di depan ditulis ulang pada bagian berikut ini.
Bentuk Normal Kedua (2NF) (lanj.)
Bentuk Normal Kedua (2NF) (lanj.) Diagram dependensi fungsional di atas menjelaskan bahwa : NAMA dan JABATAN memiliki dependensi fungsional terhadap NIP. LAMA mempunyai dependensi fungsional terhadap gabungan NIP dan KEAHLIAN Berdasarkan diagram dependensi fungsional tersebut, pendekomposisiannya menghasilkan dua buah relasi, yang katakanlah saja disebut NNJ dan NKP. Kedua relasi tersebut adalah sebagai berikut : NNJ ( NIP, NAMA, JABATAN ) NKP ( NIP, KEAHLIAN, LAMA ) Pada kedua relasi di atas, tanda garis bawah digunakan untuk menyatakan kunci primer masing-masing relasi. Dengan pendekomposisian seperti di atas, isi kedua relasi tersebut akan berupa sebagaimana yang diperlihatkan pada gambar 16 :
Bentuk Normal Kedua (2NF) (lanj.)
Bentuk Normal Kedua (2NF) (lanj.) C.J. Date menggambarkan proses dekomposisi relasi yang tergolong dalam bentuk normal pertama ke bentuk normal kedua seperti berikut : 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 Bila rumusan diatas dikenakan pada relasi berikut :
Bentuk Normal Kedua (2NF) (lanj.)
Bentuk Normal Kedua (2NF) (lanj.) Maka akan diperoleh dua relasi : PESANAN1 ( NOMOR_PESANAN, TANGGAL_PESANAN, TOTAL ) PESANAN2 ( NOMOR_PESANAN, ITEM )
Dalam hal ini NOMOR_PESANAN bertindak sebagai kunci primer PESANAN1 dan gabungan NOMOR_PESANAN dan ITEM bertindak sebagai kunci primer pada PESANAN2. Pada PESANAN2, NOMOR_PESANAN menjadi kunci tamu yang mereferensi ke PESANAN1. Berikut adalah isi masing-masing relasi PESANAN1 dan PESANAN2 :
Bentuk Normal Kedua (2NF) (lanj.)
Bentuk Normal Ketiga (3NF) Definisi bentuk normal ketiga : Suatu relasi dikatakan dalam bentuk normal ketiga (3NF) jika : Berada dalam bentuk normal kedua Setiap atribut bukan kunci tidak memiliki dependensi transitif terhadap kunci primer. Relasi NNJ dan NKP pada contoh di depan memenuhi kriteria di atas, sehingga kedua relasi tersebut masuk ke dalam bentuk normal ketiga. Begitu juga halnya dengan relasi PESANAN1 dan PESANAN2. Contoh suatu relasi yang memenuhi bentuk normal kedua tetapi tidak memenuhi bentuk normal ketiga dapat dilihat pada gambar 17 :
Bentuk Normal Ketiga (3NF) (lanj.)
Bentuk Normal Ketiga (3NF) (lanj.) Pada contoh di atas, kunci primer relasi berupa gabungan NOMOR_PESANAN dan NOMOR_URUT. Baik KODE_ITEM maupun NAMA_ITEM mempunyai dependensi fungsional terhadap kunci primer tersebut. Namun perlu diperhatikan bahwa bila KODE_ITEM bernilai sama, NAMA_ITEM juga bernilai sama. Hal ini menunjukkan adanya suatu dependensi di antara kedua atribut tersebut. Lalu manakah yang menjadi penentu ? apakah KODE_ITEM bergantung pada NAMA_ITEM, atau sebaliknya ? Suatu item bisa saja memiliki nama sama, tetapi mempunyai karakteristik yang berbeda. Sebagai contoh, dua buah mobil bisa saja diberi nama sama, tetapi masing-masing mempunyai warna tersendiri. Pada keadaan seperti ini tidaklah bisa dikatakan bahwa NAMA_ITEM-lah yang menentukan KODE_ITEM. Lebih tepat kalau KODE_ITEM yang menjadi penentu. Jadi NAMA_ITEM memiliki dependensi fungsional terhadap KODE_ITEM. Adanaya dependensi NAMA_ITEM terhadap KODE_ITEM pada relasi ini menunjukkan bahwa NAMA_ITEM tidak memiliki dependensi secara langsung terhadap kunci primer (gabungan NOMOR_PESANAN dan NOMOR_URUT). Dengan kata lain, NAMA_ITEM memiliki dependensi transitif terhadap kunci primer.
Bentuk Normal Ketiga (3NF) (lanj.) Agar relasi pada gambar 17 memenuhi bentuk normal ketiga maka diperlukan langkah normalisasi dengan mengikuti pendekatan berikut : Bila terdapat relasi R seperti berikut : R ( A, B, C ) KUNCI PRIMER (A) BC Maka relasi R dapat digantikan dengan dua proyeksi R1 dan R2, dengan bentuk sebagai berikut : R1 ( B, C ) KUNCI PRIMER ( B ) R2 ( A, B ) KUNCI PRIMER (A) KUNCI TAMU (B) REFERENSI R1 Dengan menggunakan pendekatan di atas, maka relasi pada gambar 17 dapat didekomposisi menjadi dua relasi sebagaimana diperlihatkan pada gambar 18 :
Bentuk Normal Ketiga (3NF) (lanj.)
Bentuk Normal Boyce-Codd (BCNF) Definisi bentuk normal Boyce-Codd : Suatu relasi disebut memenuhi bentuk normal BoyceCodd jika dan hanya jika semua penentu (determinan) adalah kunci kandidat (atribut yang bersifat unik). BCNF merupakan bentuk normal sebagai 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 ketiga pun mungkin masih mengandung anomali sehingga masih perlu dinormalisasi lebih lanjut. Untuk melukiskan relasi yang tergolong sebagai 3NF tetapi tidak memenuhi BCNF, terlihat pada relasi SKT gambar 19 :
Bentuk Normal Boyce-Codd (BCNF) (lanj.)
Bentuk Normal Boyce-Codd (BCNF) (lanj.) Relasi di atas didasarkan oleh fakta : Seseorang siswa dapat mengambil sejumlah kursus bahasa. Setiap tutor hanya mengajar pada sebuah kursus bahasa (misalnya, Pierre hanya mengajar bahasa Perancis) Setiap siswa pada setiap kursus bahasa hanya diajar oleh seorang tutor (misalnya, tutor bahasa Inggeris pada kelas Anwar hanyalah Richard) Suatu kursus bahasa yang sama bisa saja memiliki lebih dari satu tutor (misalnya, ada kelas bahasa Inggeris yang diajar oleh Richard dan ada kelas bahasa Inggeris yang lain yang diajar oleh Suzanne). Pada keadaan ini, kunci relasi SKT berupa gabungan : SISWA dan KURSUS, serta SISWA dan TUTOR. Relasi SKT memenuhi bentuk normal ketiga. Mengapa ? Sebab tak ada dependensi transitif pada relasi tersebut. Namun relasi SKT tidak memenuhi BCNF lataran adanya determinan TUTOR (yang menentukan KURSUS) dan determinan ini tidak berdiri sebagai kunci kandidat. Gambar 20 menunjukkan diagram dependensi fungsional pada relasi SKT.
Bentuk Normal Boyce-Codd (BCNF) (lanj.)
Bentuk Normal Boyce-Codd (BCNF) (lanj.) Relasi SKT masih menimbulkan anomali. Sebagai contoh, bila baris yang berisi siswa bernama Cecep dihapus maka informasi yang menyatakan bahwa Suzanne adalah tutor bahasa Inggris akan ikut hilang. Cara mengkonversi relasi yang telah memenuhi bentuk normal ketiga ke BCNF adalah : d.Carilah semua penentu e.Bila terdapat penentu yang bukan berupa kunci kandidat, maka : f.Pisahkan relasi tersebut, dan g.Buat penentu tersebut sebagai kunci primer. Itulah sebabnya, agar memenuhi BCNF, relasi SKT perlu didekomposisi menjadi : ST (SISWA, TUTOR) TK (TUTOR, KURSUS) Komposisi data kedua relasi di atas diperlihatkan pada gambar 21 berikut :
Bentuk normal Boyce-Codd (BCNF) (lanj.)
Dependensi Nilai Banyak dan Bentuk Normal Keempat (4NF) 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. Contoh hubungan satu ke banyak dapat dilihat pada gambar 22 :
Bentuk Normal Keempat (4NF) (lanj.)
Untuk memahami konsep dependensi nilai banyak, perhatikan tabel berikut ini :
Bentuk Normal Keempat (4NF) (lanj.)
Bentuk Normal Keempat (4NF) (lanj.)
Bentuk Normal Keempat (4NF) (lanj.) Relasi pada gambar 24 merupakan contoh relasi yang memiliki kemubaziran dan tentu saja membawa kemungkinan terjadinya berbagai anomali. Salah satu contoh, bila matakuliah Matematika I diajar oleh seorang dosen baru maka ada dua baris yang diciptakan. Baris pertama untuk menyatakan ISI Diferensial dan baris kedua untuk menyatakan ISI integral. Contoh lain, bila Fitria tidak lagi mengajar Matematika 1 (gambar 24) maka informasi bahwa isi Matematika adalah Diferensial dan Integral ikut menghilang. Meskipun demikian, relasi ini memenuhi persyaratan BCNF. Hal ini disebabkan kunci primer relasi ini berupa gabungan MATAKULIAH, DOSEN, dan ISI. Masalah relasi yang memenuhi BCNF sebagaimana kasus di atas sebenarnya dapat dipecahkan melalui dekomposisi. Hal ini disebabkan adanya kenyataan bahwa antara DOSEN dan ISI tidak ada ketergantungan. Solusi yang tepat terhadap masalah ini diajukan oleh R. Fagin melalui konsep dependensi nilai banyak.
Bentuk Normal Keempat (4NF) (lanj.) 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 Tak tergantung pada nilai C. Hubungan di atas dinyatakan dengan : A →〉 B (dibaca : ”A menentukan banyak nilai B” atau ”B multidependen terhadap A”). Teorema Fagin yang berkaitan dengan dependensi nilai-banyak : Bila R (A, B, C) merupakan suatu relasi, dengan A, B, C adalah atributatribut 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 : A →〉 B | C Berdasarkan teorema Fagin di atas, relasi pada gambar 24 dapat didekomposisi menjadi dua relasi sebagaimana terlihat pada gambar 25 berikut :
Bentuk Normal Keempat (4NF) (lanj.)
Dependensi Gabungan dan Bentuk Normal Kelima (5NF) 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 subhimpunan dari atribut-atribut R. Dependensi gabungan sesuai dengan definisi di atas dinyatakan dengan notasi : *(A, B, ...,C) Dengan A = XY, B = YZ, C = ZX Sebagai contoh, terdapat hubungan dealer yang mengageni suatu perusahaan distributor kendaraan. Dalam hal ini distributor memiliki sejumlah produk kendaraan.
Bentuk Normal Kelima (5NF) (lanj.)
Bentuk Normal Kelima (5NF) (lanj.) Bentuk normal kelima (5NF), yang terkadang disebut PJ/NF (Projection Join/Normal Form), menggunakan acuan dependensi gabungan. Suatu relasi berada dalam 5NF jika dan hanya jika setiap dependensi gabungan dalam R tersirat oleh kunci kandidat relasi R. Secara praktis dapat dikatakan bahwa suatu relasi R berada dalam 5NF jika data yang ada padanya tak dapat lagi dedekomposisi menjadi relasi-relasi yang lebih kecil dengan kunci kandidat relasi-relasi yang lebih kecil ini ridak sama dengan kunci kandidat relasi. Relasi seperti DEAL_DIST, DIST_KEND, dan DEAL_KEND memenuhi 5NF, sedangkan relasi DDK tidak memenuhi bentuk normal kelima.
Bentuk Normal Kelima (5NF) (lanj.)
Bentuk Normal Kelima (5NF) (lanj.)
7. OVERNORMALISASI Tabel-tabel yang memenuhi 5NF terkadang didekomposisi lagi. Prosesnya dikenal dengan sebutan overnormalisasi. Tujuannya adalah untuk meningkatkan kinerja. Caranya adalah dengan memperhatikan permintaan terhadap data yang sering dilakukan. Kolom-kolom data yang sering diperlukan diletakkan pada tabel tersendiri, terpisah dengan kolom-kolom 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 pendekomposisian 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 terjadi penggabungan data (misalnya untuk penyajian laporan).
TUGAS 4