BAB 10
Designing Database Table 2
Selain cara pada bab sebelumnya, (bab 9) metodologi tersendiri untuk menciptakan
struktur table (relasi) dalam basis data (analisis peracangan sistem) dengan tujuan
untuk mengurangi kemubaziran data, normalisasi terkadang hanya dipakai sebagai
perangkat verifikasi terhadap table-tabel yang dihasilkan oleh metodologi ERD.
Normalisasi memberikan panduan yang sangat membantu bagi pengembang untuk
mencegah penciptaan struktur table yang kurang fleksibel atau mengurangi
ketidakefisienan.
Kroenke Mendefinisikan normalisasi sebagai proses untuk mengubah suatu relasi yang
memiliki masalah kedalam dua buah relasi atau lebih yang tak memiliki masalah
tersebut. Masalah yang dimaksud olek kroenke ini sering disebut dengan istilah
anomaly.
ANOMALI
Yaitu proses pada database yang memberikan efek samping yang tidak diharapkan
(misalnya menyebabkan ketidakkonsistenan data atau membuat sesuatu data menjadi
hilang ketika data lain dihapus).
1. ANOMALI PEREMAJAAN
Anomali ini terjadi bila terjadi pengubahan pada sejumlah data yang mubazir, tetapi
tidak seluruhnya diubah. Sebagai contoh, terdapat relasi ORDER yang mengandung
data Pemasok dan kota yang menyatakan lokasi pemasok, barang dan jumlah yang
menyatakan nama barang dan jumlah barang yang dipesan.
11
Analisis Dan Perancangan Sistem
( Systems Analysis And Design)
Bandung. Mana yang benar ? keadaaan inilah yang menyatakan adanya ketidak
konsistenan.
2. ANOMALI PENYISIPAN
Anomali penyisipan terjadi jika pada saat penambahan hendak dilakukan ternyata ada
elemen yang masih kosong dan elemen data tersebut justru menjadi kunci. Sebagai
contoh, terdapat relasi yang berisi tiga buah atribut. NM-MTK, GEDUNG, KELAS
Masalahnya, bagaimana caranya meyimpan fakta bahwa F 1.1 yang terdapat pada
gedung F ?. Penyisipan tidak dapat dilakukan mengingat tak informasi NM-MTK yang
menggunakan tersebut. Kasus serupa dapat dilihat pada relasi berikut ini :
Relasi diatas mencatat kursus-kursus yang dikuti oleh siswa (misalnya 200401
mengambil kursus English class, merakit computer, Microsoft office, service monitor)
selain juga menyatakan biaya kursus (misalnya biaya kursus English class adalah
100000). Masalah akan timbul apabila dibuka kursus baru, misalnya Bahasa Rakitan
dengan biaya sebesar 80000, akan tetapi untuk sementara belum seorang pun yang
mengambil kursus ini. Akibatnya, data kursus baru itu tidak dapat dicatat.
3. ANOMALI PENGHAPUSAN
12
Analisis Dan Perancangan Sistem
( Systems Analysis And Design)
Anomali penghapusan terjadi sekiranya sesuatu baris (tuple) yang tak terpakai dihapus
dan sebagai akibatnya data lain yang hilang. Dengan mengambil contoh relasi kursus
diatas, apa yang terjadi seandainya data bahwa siswa dengan identitas 200403 yang
mengambil kursus Networking dihapus ? Data yang menyatakan biaya kursus
networking sebesar 175000 juga akan terhapus.
DEPENDENSI (KETERGANTUNGAN)
Dependensi merupakan konsep yang mendasari normalisasi. Dependensi menjelaskan
hubungan antara attibut 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.
1. DEPENDENSI FUNGSIONAL
Adalah macam dependensi yang banyak diulas pada literature Database.
Dependensi Fungsional didefinisikan Sebagai berikut :
Suatu atribut mempunyai dependensi fungsional terhadap atribut X jika dan hanya
jika setiap nilai X berhubungan dengan sebuah nilai Y
Pada contoh diatas, pembeli secara fungsional menentukan Kota, sebab terlhat
bahwa untuk pembeli yang sama, Kotanya juga sama dengan demikian :
PEMBELI KOTA
Contoh yang lain :
13
Analisis Dan Perancangan Sistem
( Systems Analysis And Design)
• Bagian yang terletak disebelah kiri panah biasa disebut penentu (determinan)
dan bagian yang terletak disebelah kanan panah disebut yang tergantung
(dependen)
• Tanda { } biasa digunakan kalau ada lebih dari satu atribut, baik pada penentu
maupun yang tergantung.
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).
3. DEPENDENSI TOTAL
Pengertiannya adalah :
14
Analisis Dan Perancangan Sistem
( Systems Analysis And Design)
4. DEPENDENSI TRANSITIF,
Contoh :
Sebagai contoh, dependensi fungsional pada relasi yang terdapat conoth diatas, dapat
disajikan dalam diagram dependensi fungsional sebagaimana berikut ini :
GEDUNG KELAS
NM-MTK
WAKTU
Pada proses normalisasi seringkali terjadi pemecahan sebuah relasi menjadi dua relasi
atau lebih. Proses pemecahan seperti ini biasa disebut dengan 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. Contoh
Bentuk relasi awal
15
Analisis Dan Perancangan Sistem
( Systems Analysis And Design)
RELASI -1 RELASI - 2
NOBP NAMA NOBP PROG-STUDI
200401 DICKY 200401 AKT
200402 NIA 200402 AKT
200403 DIDIT 200403 MNJ
200404 DICKY 200404 MNJ
200405 RINDU 200405 EP
BENTUK NORMAL
Aturan-aturan normalisasi dinyatakan dalam istilah bentuk normal. Bentuk normal
adalah suatu aturan yang dikenakan pada relasi-relasi dalam database dan harus
dipenuhi oleh relasi-relasi tersebut pada level-level normalisasi. Suatu relasi dikatakan
berada dalam bentuk normal tertentu jika memenuhi kondisi-kondisi tertentu.
Suatu relasi dikatakan dalam bentuk normal pertama jika dan hanya jika setiap
attribut bernilai tunggal untuk setiap baris.
Bentuk normal pertama dikenakan pada table yang belum ternormalisasi. Tabel
yang belum ternormalisasi adalah table yang memiliki attribute yang berulang.
Sebagai contoh berikut ini data dalam keadaan belum ternormalisasi.
16
Analisis Dan Perancangan Sistem
( Systems Analysis And Design)
COBOL 8
200402 AMSAL ANALYST SENIOR SYS. ANALYST 10
DESIGN SYS 8
200403 SUMIJAN PROGRAMMER COBOL 10
VISUAL BASIC 5
BORLAND C++ 4
Data yang tak ternormalisasasi pada data diatas dapat diubah ke dalam bentuk
normal pertama dengan cara membuat setiap baris berisi kolom dengan jumlah
sama dan setiap kolom hanya mengandung satu nilai. Data yang ada diatas perlu
diubah menjadi relasi 1 NF.
Dirubah jadi 1 NF
NO-PES TGL-PES ITEM TOTAL
S01 01/04/04 P1 99000
S01 01/04/04 P2 99000
S01 01/04/04 P3 99000
S01 01/04/04 P4 99000
S02 01/04/04 P3 120000
S02 01/04/04 P5 120000
17
Analisis Dan Perancangan Sistem
( Systems Analysis And Design)
Suatu relasi berada dalam bentuk normal kedua jika dan hanya jika :
• Suatu relasi berada dalam bentuk normal pertama
• Semua attribut bukan kunci memiliki dependensi sepenuhnya terhadap kunci
primer
Atribut bukan kunci adalah atribut yang tidak merupakan bagian kunci primer
Dalam ungkapan yang lebih praktis, bentuk normal kedua mensyaratkan setiap attirbut
bergantung kepada kunci primer. Relasi dari contoh diatas tidak tergolong sebagai
bentuk normal kedua, meskipun memenuhi persyaratan bentuk 1 NF. Perhatikan bahwa
NAMA dan JABATAN mempunyai dependensi sepenuhnya terhadap NIM (sebab untuk
setiap nilai NIM yang sama , NAMA dan JABATAN juga sama). Namun tidak demikian
halnya dengan KEAHLIAN dan LAMA.
Untuk mengubah suatu relasi yang tergolong sebagai bentuk normal pertama ke bentuk
2 NF perlu dilakukan dekomposisi terhadap relasi tersebut. Proses dekomposisi dapat
dilakukan dengan menggambarkan diagram dependensi fungsional terlebih dahulu.
Berdasarkan diagram ini, relasi dalam bentuk 1 NF dipecah menjadi sejumlah relasi.
Contoh
NAMA
NIM
LAMA
JABATAN
KEAHLIAN
18
Analisis Dan Perancangan Sistem
( Systems Analysis And Design)
Pada kedua relasi diatas, tanda garis bawah digunakan untuk menyatakan kunci primer
masing-masing relasi. Dengan pendekomposisian seperti diatas, isi kedua relasi
tersebut akan berupa sebagaimana hasil berikut ini.
RELASI-1
NIM NAMA JABATAN
200401 IDWAR ANALYST YUNIOR
200402 AMSAL ANALYST SENIOR
200403 SUMIJAN PROGRAMMER
RELASI-2
NIM KEAHLIAN LAMA (TH)
200401 DATABASE 5
200401 COBOL 8
200402 SYS. ANALYST 10
200402 DESIGN SYS. 8
200403 COBOL 10
200403 VISUAL BASIC 5
200403 BORLAND C++ 4
Untuk menggambarkan proses dekompisisi relasi yang tergolong dalam bentuk normal
pertama ke bentuk normal kedua adalah :
R ( A, B, C, D)
Kunci Primer (A, B)
A --Æ D
19
Analisis Dan Perancangan Sistem
( Systems Analysis And Design)
R2 ( A, B, C )
KUNCI Primer ( A, B)
KUNCI TAMU ( A ) Referensi R1
Dalam hal ini NO-PES bertindak ebagai kunci primer ORDER-1 dan gabungan NO-PES
dan ITEM bertindak sebagai kunci primer pada ORDER-2. Pada ORDER-2, NO-PES
menjadi kunci tamu yang mereferensi ke ORDER-1.
ORDER-1
NO-PES TGL-PES TOTAL
S01 01/04/04 99000
S02 01/04/04 120000
S03 04/04/04 77000
ORDER-2
NO-PES ITEM
S01 P1
S01 P2
S01 P3
S01 P4
S02 P3
S02 P5
S02 P6
S03 P1
S03 P2
20
Analisis Dan Perancangan Sistem
( Systems Analysis And Design)
RELASI-1 dan RELASI-2 pada contoh sebelumnya memenuhi criteria definisi, sehingga
kedua relasi tersebut masuk ke dalam bentuk normal ketiga. Begitu juga halnya dengan
ORDER-1 dan ORDER-2
Contoh suatu relasi yang memenuhi bentuk normal kedua tetapi tidak memenuhi bentuk
normal ketiga dapat dilihat pada contoh berikut :
NO-PES NO-URUT KD-ITEM NM-ITEM
S01 01 P1 CD-ROOM
S01 02 P2 KEYBOARD
S01 03 P3 MOUSE
S01 04 P4 SPEAKER
S02 01 P3 MOUSE
S02 02 P5 FLASH DISK
S02 03 P6 ZIP
S03 01 P1 CD-ROOM
S03 02 P2 KEYBOARD
Tabel ini memenuhi bentuk 2 NF, tapi tidak memenuhi bentuk 3 NF
Pada contoh diatas, kunci primer relasi berupa gabungan NO-PES dan NO-URUT. Baik
KD-ITEM maupun NM-ITEM mempunyai dependensi fungsional terhadap kunci primer
tersebut. Namun perlu diperhatikan bahwa bila KD-ITEM bernilai sama, NM-ITEM juga
bernilai sama. Hal ini menunjukan adanya suatu dependensi diantara kedua atribut
tersebut. Lalu manakah yang memjadi penentu. ? Apakah Kd-ITEM bergantung pada
NM-ITEm atau sebaliknya ? Suatu item bisa saja memiliki nama sama, tetapi
mempunyai karakteristik yang berbeda. Sebagai contoh, dua mobil bisa saja diberi
nama sama, tetapi masing-masing mempunyai warna tersendiri. Pada keadaan seperti
ini tidaklah bisa dikatakan bahwa NM-ITEM yang menentukan KD-ITEM. Lebih tepat
kalau KD-ITEM yang menjadi penetu. Jadi NM-ITEM memiliki dependensi fungsional
terhadap KD-ITEM. Adanya dependensi NM-ITEM terhadap KD-ITEM pada relasi ini
menunjukan bahwa NM-ITEM tidak memiliki dependensi secara lansung terhadap kunci
21
Analisis Dan Perancangan Sistem
( Systems Analysis And Design)
primer (Gabungan NO-PES dan NO-URUT). Dengan kata lain NM-ITEM memiliki
dependensi transitif terhadap kunci primer.
Agar relasi dari tabel diatas memenuhi Bentuk normal 3 NF maka diperlukan langkah
normalisasi dengan mengikuti pendekatan :
R1 ( B, C )
Kunci Primer ( B )
R2 ( A, B )
Kunci Primer ( A )
Kunci Tamu ( B ) Referensi R1
Dengan menggunakan pendekatan diatas, maka relasi pada tabel diatas dapat
didekomposisi menjadi 2 relasi sebagaimana diperlihatkan pada hasil berikut ini :
R1
NO-PES NO-URUT KD-ITEM
S01 01 P1
S01 02 P2
S01 03 P3
S01 04 P4
S02 01 P3
S02 02 P5
S02 03 P6
S03 01 P1
S03 02 P2
R2
KD-ITEM NM-ITEM
P1 CD-ROOM
P2 KEYBOARD
P3 MOUSE
P4 SPEAKER
P5 FLASH DISK
P6 ZIP
Dekomposisi yang menghasilkan relasi-relasi bentuk 3 NF
22
Analisis Dan Perancangan Sistem
( Systems Analysis And Design)
BCNF merupakan bentuk normal sebagai perbaikan terhadap 3 NF. Suatu relasi yang
memenuhi BCNF, tetapi tidak untuk sebaliknya. Suatu relasi yang memenuhi 3NF
belum tentu memenuhi BCNF. Dalam banyak literature disebutkan bahwa BCNF adalah
perbaikan dari 3 NF, karena bentuk normal ketigapun mungkin masih mengandung
anomaly sehingga masih perlu dinormalisasi lebih lanjut. Lihat contoh sbb :
NM-MHS NM-MTK DOSEN
KIA ANALYSIS AMSAL
KIA MIS IDWAR
MAWAR ANALYSIS AMSAL
VERI MIS SARJON
Relasi TABEL diatas yang memenuhi 3 NF tapi tidak memenuhi BCNF
Relasi TABEL memenuhi Bentuk 3 NF. Mengapa ? seab tak ada dependensi transitif
pada relasi tersebut. Namun relasi TABEL tidak memenuhi BCNF, karena adanya
diterminan DOSEN ( yang menentukan NM-MTK) dan determinan ini tidak berdiri
sebagai kunci kandidat.
NM-MHS
DOSEN
NM-MTK
23
Analisis Dan Perancangan Sistem
( Systems Analysis And Design)
24
Analisis Dan Perancangan Sistem
( Systems Analysis And Design)
Masalah relasi yang memenuhi BCNF sebagaimana kasus diatas sebenarnya dapat
dipecahkan melalui dekomposisi. Hal ini disebabkan adanya kenyataan bahwa antara
dosen dan materi tida ada ketergantungan. Solusi yang tepat terhadap masalah ini
dapat diselesaikan dengan konsep dependensi nilia banyak.
Secara umum, dependensi nilai banyak muncul pada relasi yang paling tidak memiliki 3
atau 2 diantaranya bernilai banyak dan nilai-nilainya tergantung hanya pada atribut
ketiga.
Pada suatu relasi R dengan attribute 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
• Tak tergantung pada nilai C
NM-MTK DOSEN
Comp. Science IDWAR
Comp. Science ZULHENDRA
MIS IDWAR
A --- >> B
NM-MTK MATERI
Comp. Science Pengenalan computer
Comp. Science Word processing
Comp. Science Spreadsheet
MIS CBIS
MIS E-Commerce Technology
A --- >> C
25
Analisis Dan Perancangan Sistem
( Systems Analysis And Design)
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 diatas dinyatakan dengan notasi :
Perlu diketahi bahwa gabungan dari dua pryeksi diatas bisa jadi menghasilkan relasi
antara yang mengandung baris yang salah. Namun gabungan ketiga proyeksi akan
menghasilkan relasi yang sesuai dengan aslinya.
26
Analisis Dan Perancangan Sistem
( Systems Analysis And Design)
Gabungan
Untuk memahami pengertian tersirat pada kunci kandidat, perhatikan relasi berikut :
27