MACAM-MACAM PENYIMPANGAN (ANOMALI)
Dibawah ini akan diberikan contoh Anomali sbb:
Dibawah ini akan diberikan contoh Anomali sbb:
No pasien
|
Kode obat
|
Harga obat
|
P001
|
Kd 01
|
2000
|
P002
|
Kd 02
|
4500
|
P003
|
Kd 03
|
2000
|
• Anomali Penyisipan(Insertion Anomaly)
Yaitu error atau kesalahan yang terjadi sebagai akibat operasi menyisipkan tuple/record pada sebuah relasi.
Contoh: Jika ada obat baru yang akan dimasukkan/disisipkan, maka obat tersebut tidak dapat disisipkan ke dalam relasi sampai ada pasien yang mengambil jenis obat tersebut.
• Anomali Penghapusan(Deletion Anomaly)
Yaitu error atau kesalahan yang terjadi sebagai akibat operasi penghapusan terhadap tuple/record dari sebuah relasi.
Contoh: Jika pasien yang memiliki No_Pasien P001 membatalkan tidak jadi menebus resep obat tersebut, maka jika record tersebut dihapus akan menyebabkan hilangnya informasi tentang Kode_Obat Kd01.
• Anomali Peremajaan(Update Anomaly)
Yaitu error atau kesalahan yang terjadi sebagai akibat operasi perubahan tuple/record dari sebuah relasi.
Contoh: Jika harga obat untuk kode_obat Kd01 dinaikkan menjadi 5000, maka harus dilakukan beberapa kali modifikasi terhadap record-record pasien yang menebus kode_obat Kd01, agar data selalu tetap konsisten.
7
Langkah Pembentukan Normalisasi :
1. Bentuk Tidak Normal (Unnormalized Form)
Merupakan kumpulan dari data yang akan direkam, tidak ada keharusan mengikuti suatu format tertentu, dapat saja data tidak lengkap atau terduplikasi, data dikumpulkan apa adanya sesuai dengan kedatangannya.
2. Bentuk Normal Kesatu (1NF / First Normal Form)
Menghilangkan beberapa elemen yang berulang agar menjadi suatu bernilai tunggal yang berinterigasi diantara setiap baris dan kolom pada suatu tabel.
3. Bentuk Normal Kedua (2NF / Second Normal Form)
Normalisai bentuk kedua telah memenuhi normalisasi bentuk pertama, setiap atribut bukan kunci haruslah bergantung secara fungsi pada kunci utama (primary key), sehingga untuk membentuk normal kedua harus sudah ditentukan kunci field, kunci field haruslah unik dan tetap mewakili atribut yang lain yang menjadi anggotanya.
4. Bentuk Normal Ketiga (3NF / Third Normal Form)
Untuk menjadi normal ketiga maka relasi haruslah dalam bentuk normal kedua dan semua atribut bukan primer tidak punya hubungan yang transitif dengan kata lain, setiap atribut bukan kunci haruslah bergantung pada primary key dan pada primary key secara seluruh.
5. Boyce-Code Normal Form (BCNF)
Bentuk yang mempunyai paksaan yang lebih kuat dari bentuk normal ketiga. Untuk menjadi BCNF, relasi dalam bentuk normal kesatu dan setiap atribut harus bergantung fungsi pada atribut super key.
6. Bentuk Normal Keempat (4NF / Fourth Normal Form)
Relasi R adalah bentuk normal keempat dan hanya relasi tersebut termasuk BCNF dan semua tergantung multi value adalah ketergantungan fungsional.
7. Bentuk Normal Kelima (5NF / Fifth Normal Form)
Berisi PJNF (Projection Join Normal Form) dan 4NF dilakukan dengan menghilangkan ketergantungan join yang bukan merupakan kunci kandidat.
1. Bentuk Tidak Normal (Unnormalized Form)
Merupakan kumpulan dari data yang akan direkam, tidak ada keharusan mengikuti suatu format tertentu, dapat saja data tidak lengkap atau terduplikasi, data dikumpulkan apa adanya sesuai dengan kedatangannya.
2. Bentuk Normal Kesatu (1NF / First Normal Form)
Menghilangkan beberapa elemen yang berulang agar menjadi suatu bernilai tunggal yang berinterigasi diantara setiap baris dan kolom pada suatu tabel.
3. Bentuk Normal Kedua (2NF / Second Normal Form)
Normalisai bentuk kedua telah memenuhi normalisasi bentuk pertama, setiap atribut bukan kunci haruslah bergantung secara fungsi pada kunci utama (primary key), sehingga untuk membentuk normal kedua harus sudah ditentukan kunci field, kunci field haruslah unik dan tetap mewakili atribut yang lain yang menjadi anggotanya.
4. Bentuk Normal Ketiga (3NF / Third Normal Form)
Untuk menjadi normal ketiga maka relasi haruslah dalam bentuk normal kedua dan semua atribut bukan primer tidak punya hubungan yang transitif dengan kata lain, setiap atribut bukan kunci haruslah bergantung pada primary key dan pada primary key secara seluruh.
5. Boyce-Code Normal Form (BCNF)
Bentuk yang mempunyai paksaan yang lebih kuat dari bentuk normal ketiga. Untuk menjadi BCNF, relasi dalam bentuk normal kesatu dan setiap atribut harus bergantung fungsi pada atribut super key.
6. Bentuk Normal Keempat (4NF / Fourth Normal Form)
Relasi R adalah bentuk normal keempat dan hanya relasi tersebut termasuk BCNF dan semua tergantung multi value adalah ketergantungan fungsional.
7. Bentuk Normal Kelima (5NF / Fifth Normal Form)
Berisi PJNF (Projection Join Normal Form) dan 4NF dilakukan dengan menghilangkan ketergantungan join yang bukan merupakan kunci kandidat.
Contoh
Kasus
Proses perancangan database dapat
dimulai dari dokumen dasar yang dipakai dalam sistem, contoh:
PT. TEMPO, TBK
|
|
FAKTUR PEMBELIAN BARANG
|
||
JALAN KHATIB SULAIMAN 60
|
|
|
|
|
PADANG
|
|
|
|
|
|
|
|
|
|
Kode Supplier
|
: S02
|
|
Tanggal
|
: 22/04/2005
|
Nama Supplier
|
: Hitachi
|
|
Nomor
|
: 779
|
KODE
|
NAMA
BARANG
|
QTY
|
HARGA
|
JUMLAH
|
R02
|
RICE COOKER CC3
|
10
|
150.000
|
1.500.000
|
TOTAL FAKTUR
|
1.500.000
|
|||
Jatuh Tempo Faktur : 26/05/2005
|
PT. TEMPO, TBK
|
|
FAKTUR PEMBELIAN BARANG
|
||
JALAN KHATIB SULAIMAN 60
|
|
|
|
|
PADANG
|
|
|
|
|
|
|
|
|
|
Kode Supplier
|
: G01
|
|
Tanggal
|
: 24/04/2005
|
Nama Supplier
|
: Gobel Nusantara
|
|
Nomor
|
: 998
|
KODE
|
NAMA
BARANG
|
QTY
|
HARGA
|
JUMLAH
|
A01
|
AC SPLIT ½ PK
|
10
|
1.350.000
|
13.500.000
|
A02
|
AC SPLIT 1 PK
|
5
|
2.000.000
|
10.000.000
|
TOTAL FAKTUR
|
23.500.000
|
|||
Jatuh Tempo Faktur : 26/05/2005
|
Step
I bentuk Unnormalized
Bentuklah menjadi tabel unnormalized,
dengan mencantumkan semua field yang ada. Tuliskan semua data yang akan
direkam, bagian yang double tidak perlu dituliskan
Nofak
|
Kode Supp
|
Nama Supplier
|
Kode Brg
|
Nama Barang
|
Tanggal
|
Jatuh Tempo
|
QTY
|
Harga
|
Jumlah
|
Total
|
779
|
S02
|
HITACHI
|
R02
|
RICE COOKER CC3
|
22/04/2005
|
26/04/2005
|
10
|
150000
|
1500000
|
1500000
|
998
|
G01
|
GOBEL NUSANTARA
|
A01
|
AC SPLIT ½ PK
|
26/04/2005
|
26/04/2005
|
10
|
1350000
|
13500000
|
23500000
|
998
|
G01
|
GOBEL NUSANTARA
|
A02
|
AC SPLIT 1 PK
|
26/04/2005
|
26/04/2005
|
5
|
2000000
|
10000000
|
|
Step II bentuk Normal Kesatu
Bentuklah menjadi bentuk normal kesatu
dengan memisah-misahkan data pada field-field yang tepat dan bernilai atomic,
juga seluruh record harus lengkap adanya. Bentuk file adalah flat file. Dengan
bentuk normal kesatu ini telah dapat dibuat satu entity dengan 11 atribut
yaitu:
Nofak
|
Kode Supp
|
Nama Supplier
|
Kode Brg
|
Nama Barang
|
Tanggal
|
Jatuh Tempo
|
QTY
|
Harga
|
Jumlah
|
Total
|
779
|
S02
|
HITACHI
|
R02
|
RICE COOKER CC3
|
22/04/2005
|
26/04/2005
|
10
|
150000
|
1500000
|
1500000
|
998
|
G01
|
GOBEL NUSANTARA
|
A01
|
AC SPLIT ½ PK
|
26/04/2005
|
26/04/2005
|
10
|
1350000
|
13500000
|
13500000
|
998
|
G01
|
GOBEL NUSANTARA
|
A02
|
AC SPLIT 1 PK
|
26/04/2005
|
26/04/2005
|
5
|
2000000
|
20000000
|
20000000
|
Namun bentuk normal kesatu ini masih
banyak kelemahan yaitu:
Inserting / penyisipan
Kita tidak dapat memasukkan kode dan
nama supplier saja tanpa ada transaksi pembelian, sehingga supplier baru dapat
masuk apabila ada transaksi pembelian
Deleting / Penghapusan
Bila satu record diatas dihapus
misalnya nomor faktur 779 maka berakibat pula penghapusan data supplier S02
(Hitachi), padahal data supplier tersebut masih dibutuhkan.
Updating / Pengubahan
Kode dan nama supplier terlihat
ditulis berkali-kali, bila suatu ketika
terjadi perubahan nama supplier misalnya maka harus mengganti disemua record
yang mengandung hal tersebut. Bila ada yang terlewat maka membuat data tidak
konsisten lagi.
Redudancy
Field jumlah dan total diatas
merupakan redudancy, karena setiap kali harga dikalikan dengan quantitas akan
menghasilkan jumlah. Maka field tersebut dapatlah dibuang, bila tidak dibuang
maka mengakibatkan tidak konsisten. Tidak konsisten disini diakibatkan karena
bila ada perubahan harga, hanya data harga yang diubah, data jumlah tidak maka
nilai jumlah tidak sama dengan quantity kali harga.
Step III bentuk Normal Kedua
Pembentukan bentuk normal kedua dengan
mencari kunci field yang dapat dipakai sebagai patokan dalam pencarian dan
sifatnya unik. Melihat kondisi dari permasalahan faktur diatas dapat diambil
kunci kandidat yaitu:
no faktur
kode supplier
kode barang
bentuklah
tiga tabel dengan kunci tersebut, lihatlah ketergantungan fungsional
field-field lain terhadap field kunci, maka didapat tabel sbb:
Dengan pemecahan seperti diatas maka
sebagian dari pertanyaan pengujian pada bentuk normal kesatu yaitu inserting,
deleting, updating, dapat terjawab. Kode dan nama supplier baru dapat masuk
kapanpun tanpa harus ada transaksi pada tabel nota, cukup dibuka tabel supplier
dan disisipkan satu record baru. Demikian pula pada saat updating dan delete
baik untuk tabel supplier dan juga tabel barang
Namun permasalahan masih ada yaitu
pada tabel nota:
field qty pada tabel tersebut tidak
bergantung penuh pada kunci primer nomor nota, ia juga bergantung pada kode
barang. Hal ini disebut sebagai kebergantungan yang transitif dan haruslah
dipisahkan dalam dua tabel.
Masih terdapat redudancy yaitu setiap
kali satu nota terdiri dari 5 macam barang yang dibeli maka 5 kalipula di
tuliskan no nota, tanggal nota, tempo. Ini harus pula dipisahkan bila terjadi
penggandaan tulisan berulang-ulang.
Step IV bentuk Normal Ketiga
Bentuk normal ketiga mempunyai syarat
setiap tabel tidak mempunyai field yang bergantung transitif, harus bergantung
penuh pada kunci utama.
Maka terbentuklah tabel sbb:
Step V Pengujian
dengan Contoh
Pengujian disini untuk memastikan
kebenaran isi tabel dan hubungan antara tabel tersebut. Ujilah bahwa setiap tabel
haruslah punya hubungan dengan tabel yang lainnya. Bila tidak ada hubungan
antar tabel maka dapat dikatakan perancangan untuk membuat satu database adalah
gagal.
Tabel
Supplier
|
Tabel
Barang
|
||||||||||||||||||
|
|
||||||||||||||||||
Tabel Nota
|
|||||||||||||||||||
|
|
||||||||||||||||||
Tabel transaksi
|
|||||||||||||||||||
|
|
Step VI Hubungan Relasi antar Tabel
Gambarkan hubungan relasi antar entity
yang ada :
satu supplier punya banyak nota
satu nota punya beberapa transaksi
barang
satu barang terjadi beberapa kali
transaksi pembelian
Sejauh
mana Normalisasi Harus Dilakukan
Pertanyaan ini sering muncul atau
dilontarkan oleh para mahasiswa dan praktisi-praktisi basis data. Tidak ada
patokan dasar untuk itu. Pada dasarnya, kita harus terus melakukan
langkah-langkah normalisasi sehingga kita tidak menemukan lagi anomali-anomali
(baik anomali peremajaan, penyisipan dan penghapusan). Pada kenyataannya,
normalisasi hingga ke 3NF seringkali sudah cukup memadai untuk menghilangkan
anomali-anomali. Hanya kadang-kadang saja kita melangkah terus hingga ke BCNF
dan 4NF, 5NF. Tetapi tidak ada standar baku sampai sejauh mana kita perlu
melaksanakan langkah-langkah normalisasi. Pada prinsipnya lakukan normalisasi
hingga anomali-anomali (peremajaan, penyisipan dan penghapusan) tidak ditemukan
lagi.
Tidak ada komentar:
Posting Komentar