TUGAS BASIS DATA
NORMALISASI
DOSEN PEMBIMBING : Ir. DES SURYANI, M.Sc
DI SUSUN OLEH :
1. ISLAHUDIN
2. HERRY PRASTOWO
ANDRIANTO
3. MUH SAUDI
TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS ISLAM RIAU
T.P. 2013/14
KATA PENGANTAR
Puji
syukur kita panjatkan kehadirat Allah SWT yang telah memberikan rahmat serta
karunia-Nya kepada kita. Pertama-tama,
kami mengucapkan terima kasih kepada semua pihak khususnya
pada kakak senior dan juga kepada asisten dosen yang telah membimbing dan
mengarahkan kami dalam penyusunan makalah ini.
Makalah
ini yang berisikan pembahasan tentang penyesesaian normalisasi pada sebuah data
base.Selanjutnya tujuan kami membuat makalah ini adalah
untuk memenuhi tugas
database yang diberikan oleh dosen.
Kami
sadar bahwa makalah ini masih jauh dari sempurna, karena itu kritik/saran sangat diharapkan agar kami dapat terus menyempurnakan isi
makalah kami ini.
Kami sebagai penulis berharap agar makalah ini
selain sebagai pemenuhan persyaratan untuk mengikuti ujian algoritma praktek
pada semester pertama, namun makalah ini dapat menjadi pembelajaran bagi siapa saja yang
membacanya.
Pekanbaru,
29 November 2013
Wassalam,
Penulis
Kasus:
Sebuah perputakaan
memiliki banyak buku yang dapat di pinjamkan ke pada anggota perpustakaan dengan
menggunakan kartu peminjaman. Setiap anggota kartu peminjaman memiliki 1 kartu
dan dapat meminjam beberapa buku. Data
nya terdiri dari id kartu peminjaman, nama peminjam, jumlah hari pinjam, biaya
peminjaman, id buku, nama buku, penerbit buku, tahun terbit buku.
Id_pinjam
|
Nm_peminjam
|
Jm_hr_pj
|
Biaya_pinjam
|
Id_buku
|
Nm_buku
|
Penerbit
|
Thn_terbit
|
pj001
|
Boediyono
|
3
|
Rp.6000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj002
|
Mulyadi
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
pj003
|
Burhan
|
5
|
Rp.9000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj001
|
Boediyono
|
1
|
Rp.2000
|
Bk003
|
Visual basic
|
Gramedia
|
2012
|
pj004
|
Alex
|
3
|
Rp.6000
|
Bk004
|
Jaringan
|
Penebar
swadaya
|
2008
|
pj003
|
Burhan
|
1
|
Rp.2000
|
Bk005
|
Struktur data
|
Smart book
|
2011
|
pj005
|
Suparman
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
Ada beberapa anomali yang terjadi pada
table berikut, yaitu:
ü Anomali
Peremajaan
Contoh:
Jika terjadi
perubahan nama peminjam dengan id pinjam menjadi “Burhanudin”, maka perubahan
harus dilakukan sebanyak 2x. Kalau dilakukan hanya 1x, maka data menjadi tidak konsisten (tidak sesuai)
Id_pinjam
|
Nm_peminjam
|
Jm_hr_pj
|
Biaya_pinjam
|
Id_buku
|
Nm_buku
|
Penerbit
|
Thn_terbit
|
pj001
|
Boediyono
|
3
|
Rp.6000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj002
|
Mulyadi
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
pj003
|
Burhanudin
|
5
|
Rp.9000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj001
|
Boediyono
|
1
|
Rp.2000
|
Bk003
|
Visual basic
|
Gramedia
|
2012
|
pj004
|
Alex
|
3
|
Rp.6000
|
Bk004
|
Jaringan
|
Penebar
swadaya
|
2008
|
pj003
|
Burhan
|
1
|
Rp.2000
|
Bk005
|
Struktur data
|
Smart book
|
2011
|
pj005
|
Suparman
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
Id_pinjam yang sama pj003 mempunyai nama
yang berbeda, hal ini disebut anomali peremajaan)
ü Anomali
Penyisipan
Misalnya:
Jika terjadi penambahan buku baru, misalnya: Bk006, Algoritma
Pemrograman, Mizan Pustaka, 2012. Dengan penambahan buku baru mengakibatkan
terjadi kekosongan nilai pada
atribut : Id_pinjam, Nm_peminjaman, Jm_hr_pl, dan biaya_punjam ( anomali
penyisipan)
Id_pinjam
|
Nm_peminjam
|
Jm_hr_pj
|
Biaya_pinjam
|
Id_buku
|
Nm_buku
|
Penerbit
|
Thn_terbit
|
pj001
|
Boediyono
|
3
|
Rp.6000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj002
|
Mulyadi
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
pj003
|
Burhan
|
5
|
Rp.9000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj001
|
Boediyono
|
1
|
Rp.2000
|
Bk003
|
Visual basic
|
Gramedia
|
2012
|
pj004
|
Alex
|
3
|
Rp.6000
|
Bk004
|
Jaringan
|
Penebar
swadaya
|
2008
|
pj003
|
Burhan
|
1
|
Rp.2000
|
Bk005
|
Struktur data
|
Smart book
|
2011
|
pj005
|
Suparman
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
kosong
|
kosog
|
Kosong
|
kosong
|
Bk006
|
Algoritma Pemrograman
|
Mizan Pustaka
|
2012
|
ü Anomali
penghapusan
Jika Id pinjam pj002 membatalkan peminjaman dengan nama buku Basis
data
Id_pinjam
|
Nm_peminjam
|
Jm_hr_pj
|
Biaya_pinjam
|
Id_buku
|
Nm_buku
|
Penerbit
|
Thn_terbit
|
pj001
|
Boediyono
|
3
|
Rp.6000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj002
|
Mulyadi
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
pj003
|
Burhan
|
5
|
Rp.9000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj001
|
Boediyono
|
1
|
Rp.2000
|
Bk003
|
Visual basic
|
Gramedia
|
2012
|
pj004
|
Alex
|
3
|
Rp.6000
|
Bk004
|
Jaringan
|
Penebar
swadaya
|
2008
|
pj003
|
Burhan
|
1
|
Rp.2000
|
Bk005
|
Struktur data
|
Smart book
|
2011
|
pj005
|
Suparman
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
Dengan penghapusan record
tersebut mengakibatkan hilangnya
datajm_hr_pj terhadap Biaya pinjam (Anomali penghapusan)
Berdasarkan beberapa anomali di
atas, maka tabel/relasi tersebut harus didekomposisi (dipisahkan) berdasarkan
dependensinya:
Table peminjaman
Id_pinjam
|
Nm_peminjam
|
Jm_hr_pj
|
Biaya_pinjam
|
Id_buku
|
Nm_buku
|
Penerbit
|
Thn_terbit
|
pj001
|
Boediyono
|
3
|
Rp.6000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj002
|
Mulyadi
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
pj003
|
Burhan
|
5
|
Rp.9000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj001
|
Boediyono
|
1
|
Rp.2000
|
Bk003
|
Visual basic
|
Gramedia
|
2012
|
pj004
|
Alex
|
3
|
Rp.6000
|
Bk004
|
Jaringan
|
Penebar
swadaya
|
2008
|
pj003
|
Burhan
|
1
|
Rp.2000
|
Bk005
|
Struktur data
|
Smart book
|
2011
|
pj005
|
Suparman
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
ü Dependensi
Fungsional
1.
Id_pinjam è Nm_peminjam
2.
Id_buku è {Nm_buku, Penerbit, Thn_terbit}
3.
{Id_pinjam,
Id_buku} è {Jm_hr_pj, Biaya_Pinjam}
ü Dependensi
Fungsional sepenuhnya
1.
Id_pinjam è Nm_peminjam
2.
Id_buku è {Nm_buku, Penerbit, Thn_terbit}
3.
{Id_pinjam,
Id_buku} è {Jm_hr_pj, Biaya_Pinjam}
ü Dependensi
Transitif
Pada dependensi 3) terdapat
Dependensi transitif :
{Id_pinjam, Id_buku} è {Jm_hr_pj, Biaya_pinjam}
X Y
Jm_hr_pjèBiaya_pinjam
Y Z
Berdasarkan dependensi diatas, diperoleh 4 tabel :
1.
Id_pinjam è Nm_peminjam
Table peminjam
Id_pinjam
|
Nm_peminjam
|
pj001
|
Boediyono
|
pj002
|
Mulyadi
|
pj003
|
Burhan
|
pj004
|
Alex
|
pj005
|
Suparman
|
2.
Id_buku è {Nm_buku, Penerbit, Thn_terbit}
Table buku
Id_buku
|
Nm_buku
|
Penerbit
|
Thn_terbit
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
Bk003
|
Visual basic
|
Gramedia
|
2012
|
Bk004
|
Jaringan
|
Penebar
swadaya
|
2008
|
Bk005
|
Struktur data
|
Smart book
|
2011
|
3.
Jm_hr_pj è Biaya_pinjam
Table biaya
peminjaman
Jm_hr_pj
|
Biaya_pinjam
|
1
|
Rp.2000
|
2
|
Rp.4000
|
3
|
Rp.6000
|
5
|
Rp.9000
|
4.
{Id_pinjam,
Id_buku} è {Jm_hr_pj}
Tabel jumlah hari peminjaman
Id_pinjam
|
Id_buku
|
Jm_hr_pj
|
pj001
|
Bk001
|
3
|
pj002
|
Bk002
|
2
|
pj003
|
Bk001
|
5
|
pj001
|
Bk003
|
1
|
pj004
|
Bk004
|
3
|
pj003
|
Bk005
|
1
|
pj005
|
Bk002
|
2
|
Table UNF (UnNormalized Form)
Adalah suatu kondisi
dimana sebuah table yang memiliki rangkap atau data yang terduplikasi
Id_pinjam
|
Nm_peminjam
|
Jm_hr_pj
|
Biaya_pinjam
|
Id_buku
|
Nm_buku
|
Penerbit
|
Thn_terbit
|
pj001
|
Boediyono
|
3
1
|
Rp.6000
Rp.2000
|
Bk001
BK003
|
Matematika
Visual basic
|
Erlangga
Gramedia
|
2010
2012
|
pj002
|
Mulyadi
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
pj003
|
Burhan
|
1
5
|
Rp.2000
Rp.9000
|
Bk005
Bk001
|
Struktur data
Matematika
|
Smart book
Erlangga
|
2011
2010
|
pj004
|
Alex
|
3
|
Rp.6000
|
Bk004
|
Jaringan
|
Penebar
swadaya
|
2008
|
pj005
|
Suparman
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
Bentuk
normalisasi pertama:
Id_pinjam
|
Nm_peminjam
|
Jm_hr_pj
|
Biaya_pinjam
|
Id_buku
|
Nm_buku
|
Penerbit
|
Thn_terbit
|
pj001
|
Boediyono
|
3
1
|
Rp.6000
Rp.2000
|
Bk001
BK003
|
Matematika
Visual basic
|
Erlangga
Gramedia
|
2010
2012
|
pj002
|
Mulyadi
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
pj003
|
Burhan
|
1
5
|
Rp.2000
Rp.9000
|
Bk005
Bk001
|
Struktur data
Matematika
|
Smart book
Erlangga
|
2011
2010
|
pj004
|
Alex
|
3
|
Rp.6000
|
Bk004
|
Jaringan
|
Penebar
swadaya
|
2008
|
pj005
|
Suparman
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
Pada table
diatas Jm_hr_pj, Biaya_pinjam, Id_buku, Nm_buku, penerbit, dan tahun menyatakan
atribut yang berulang (misal boediyono meminjam 2 buku yang berbeda). Bentuk
seperti ini perlu diubah menjadi bentuk normal pertama.
Sesuai dengan
konsep normal pertama yaitu : “suatu relasi dikatakan dalam bentuk normal
pertama jika dan hanya jika setiap atribut bernilai tunggal untuk setiap
baris”.
Berikut
adalah table yang sudah di normalisasi pertama:
Id_pinjam
|
Nm_peminjam
|
Jm_hr_pj
|
Biaya_pinjam
|
Id_buku
|
Nm_buku
|
Penerbit
|
Thn_terbit
|
pj001
|
Boediyono
|
3
|
Rp.6000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj001
|
Boediyono
|
1
|
Rp.2000
|
Bk003
|
Visual basic
|
Gramedia
|
2012
|
pj002
|
Mulyadi
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
pj003
|
Burhan
|
5
|
Rp.9000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj003
|
Burhan
|
1
|
Rp.2000
|
Bk005
|
Struktur data
|
Smart book
|
2011
|
pj004
|
Alex
|
3
|
Rp.6000
|
Bk004
|
Jaringan
|
Penebar
swadaya
|
2008
|
pj005
|
Suparman
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
Bentuk normalisasi kedua:
Ketentunan
bentuk normal ke dua yaitu: “ suatu realasi berada dalam bentuk normal kedua
jika dan hanya jika.
a.
Berada
pada bentuk normal pertama
b.
Semua
atribut bukan kunci memiliki depedensi sepenuhnya terhadap kunci primer
Pada table
diatas dapat digambarkan diagram depedensi fungsional, seperti berikut ini:
Id_pinjam
|
Nm_peminjam
|
Nm_buku
|
penerbit
|
Thn_terbit
|
Id_buku
|
Jm_hr_pj
|
Biaya_pinjam
|
Diagram
depedensi fungsional diatas menjelaskan bahwa:
a.
Nm_pinjam
memiliki dependensi fungsional terhadap Id_pinjam.
b.
Nm_buku,
penerbit, Thn_terbit memiliki dependensi fungsional terhadap Id_buku.
c.
Biaya_pinjam
dan Jm_hr_pj mempunyai dependensi fungsional terhadap Id_pinjam dan Id_buku.
Berdasarkan
diagram dependensi fungsional tersebut, pendekompossisinya menghasilkan tiga
buah relasi, yaitu:
a.
(Id_pinjam,
Nm_pinjam)
Table peminjam
Id_pinjam
|
Nm_peminjam
|
pj001
|
Boediyono
|
pj002
|
Mulyadi
|
pj003
|
Burhan
|
pj001
|
Boediyono
|
pj004
|
Alex
|
pj003
|
Burhan
|
pj005
|
Suparman
|
b.
(Id_buku,
Nm_buku, penerbit, Thn_trbit)
Table buku
Id_buku
|
Nm_buku
|
Penerbit
|
Thn_terbit
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
Bk003
|
Visual basic
|
Gramedia
|
2012
|
Bk004
|
Jaringan
|
Penebar
swadaya
|
2008
|
Bk005
|
Struktur data
|
Smart book
|
2011
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
c.
(Id_pinjam,
Id_buku, Jm_hr_pj, Biaya_pinjam)
Table Jumlah dan
biaya peminjaman
Id_pinjam
|
Id_buku
|
Jm_hr_pj
|
Biaya_pinjam
|
pj001
|
Bk001
|
3
|
Rp.6000
|
pj002
|
Bk002
|
2
|
Rp.4000
|
pj003
|
Bk001
|
5
|
Rp.9000
|
pj001
|
Bk003
|
1
|
Rp.2000
|
pj004
|
Bk004
|
3
|
Rp.6000
|
pj003
|
Bk005
|
1
|
Rp.2000
|
pj005
|
Bk002
|
2
|
Rp.4000
|
Bentuk normalisasi ketiga
Jm_hr_pj
mempunyai dependensi fungsional terhadap Id_pinjam dan Id_buku. Serta
Biaya_pinjam mempunyai dependensi fungsional terhadap Jm_hr_pinjam.
Id_pinjam
|
Id_buku
|
Jm_hr_pj
|
Biaya_pinjam
|
pj001
|
Bk001
|
3
|
Rp.6000
|
pj002
|
Bk002
|
2
|
Rp.4000
|
pj003
|
Bk001
|
5
|
Rp.9000
|
pj001
|
Bk003
|
1
|
Rp.2000
|
pj004
|
Bk004
|
3
|
Rp.6000
|
pj003
|
Bk005
|
1
|
Rp.2000
|
pj005
|
Bk002
|
2
|
Rp.4000
|
Dengan
menggunakan pendekatan dari bentuk normalisasi ketiga maka relasi pada bagian c
diatas dapat didekomposisi menjadi 2 relasi :
1.
(Id_pinjam,
Id_buku, Jm_hr_pj)
Tabel
jumlah hari pinjam
Id_pinjam
|
Id_buku
|
Jm_hr_pj
|
pj001
|
Bk001
|
3
|
pj002
|
Bk002
|
2
|
pj003
|
Bk001
|
5
|
pj001
|
Bk003
|
1
|
pj004
|
Bk004
|
3
|
pj003
|
Bk005
|
1
|
pj005
|
Bk002
|
2
|
2.
(Jm_hr_pj,
Biaya_pinjam)
Tabel biaya
Jm_hr_pj
|
Biaya_pinjam
|
1
|
Rp.2000
|
2
|
Rp.4000
|
3
|
Rp.6000
|
5
|
Rp.9000
|
0 comments:
Post a Comment