bab5 studi kasus desain database

STUDI KASUS DESAIN DATABASE

Suatu database akan didesain bagi seorang sekretaris sebuah ldub bowling di
sebuah kota keeil. Sekretaris tersebut akan menyimpan semua data yang relevan
dengan klub tersebut dalam database itu. Dia juga akan akan membuat laporan
mingguan tentang klub tersebut dengan menggunakan DBMS. Laporan khusus akan
diuraikan pada akhir season. Database yang yang akan digunakan adalah dBASE III
dan R:base 5000. Uraian yang lengkap tentang data yang dikehendaki sekretaris
untuk laporan dijelaskan dalam paragrnf berikUl

5.1

DISKRIPSI MASALAH

Yang diperlukan oleh sekretaris bowling adalah nama, nomor telepon, alamat
dari masing-masing pemain dalam ldub tersebut. Oleh karena ldub tersebut terbatas
hanya untuk penduduk setempat, rilaka nama kota dan kode pos tidak diperlukan.
Nilai peI:tandinganmingguan yang diperoleh para pemain.sena rata-i'atanya merupakan hal yang akan dieari. Sekretaris memerlukan informasi tentang nama.team
dari seorang pemain, sena nama pemimpinnya. Di samping nama, sekretaris juga
mereneanakan membuat nomor khusus buat tiap-tiap team.
Rata-rata kemampuan masing-masing bowler diperlukan karena akan dipakai

untuk menentukan bowler yang mempunyai kemajuan pesat pada akhir season sena
untuk menentukan hambatannya pada minggu penama dari season itu. Seri sena
permainan yang bermutu tinggi diperlukan untuk ditampilkan-pada ~u.~:-season.
45

Sekretaris merencanakan untuk mencantumkan total permainan dan total
lencana tiap-tiap bowler dalam laporan mingguan. Hal ini diperlukan untuk menghitung rata-rata sena hambatan akhir. Hambatan tersebut yang dipakai oleh klub
adalah 75% dari perbedaan antara 200 dan rata-rata bowler tanpa hambatan negatif.
Jika hambatan tersebut mengakibatkan adanya pecahan maka pecahan tersebut akan
dipotong. Hambatan itu akan dihitung tiap minggu.
Penempatan jalur, yang menunjukkan jalur tiap-tiap klub untuk tiap-tiap
minggu diperlukan. Team yang mempunyai kembalian bola umum akan menjadi

lawan,sehinggainformasiini tidakperludisimpandalamdatabase.

.

Akhimyadatabase harus meliputi semuakebutuhan informasi untuk perhitungan kedudukan team. Suatu team dianggap menang dalam tiap-tiap permainan bila
team itu memperoleh lencana lebih banyak dibandingkan lawannya. Demikian juga
suatu team akan mengalami satu kekalahan untuk tiap-tiap permainan di mana team

tersebut memperoleh lebih sedikit lencana daripada lawannya. Suatu teamjuga akan
memperoleh satu kemenangan (kekalahan) yang disebabkan oleh adanya lencana
yang lebih (kurang) dibandingkan lawannya dalam tiga permainan dalam tiap-tiap
minggu. Jadi, empat nilai suatu team (baik menang maupun kalah) disimpan tiap
minggu dari season tersebut. Tiap-tiap team diberikan setengah kemenangan dan
setengah kekalahan dalam kasus seperti itu. Jika suatu team mempunyai lebih dari
dua anggota yang absen pada suatu sore, team tersebut dengan sendirinya mendapatkan empat nilai kekalahan, sedangkan lawannya memperoleh empat nilai
kemenangan. Team yang gagal tidak dapat memberikan lencana, bahkan jika bowler
yang akhir memperoleh kemenangan maka kemenangan tersebut hanya akan masuk
dalam record individu.

5.2

MENENTUKAN ATRIBUT RELASI YANG UNIVERSAL

Setelah diadakan beberapa pembicaraan dengan sekretaris, atribut berikut,
sena batasannya, dianggap sebagai atribut utama untuk relasi universaL Masingmasing atribut ditunjukkan dengan nama deskriptif yang sesuai dengan pemakaian
dalam database, sena dengan bentuk dua karakter yang dapat dipakai dalam diagram
FD. Dua versi karakter yang digunakan untuk membuat diagram FD tidak begitu
praktis, jika masih memakai bentuk mnemonic (yang membantu ingatan) di mana

atribut diambil.
Atribut
Nb: Tnumb
Tn: Tname

46

Keterangan
Nomor team. Team diberi nomor secara berurutan mulai dari
angka 1.
Nama team. Masing-masing teamdalam sebuah klub atau perkumpulan mempunyai nama, misalnya "PinBusters." Nama team unik
sifatnya.

Bn: BnaII1e
Av: Bavg
Hk: Hndk
Bg: Bgame
Wn: Wins
Ls: Loss
Tp: Tpins

Ln: Lane

Cp: Captn
Ph: Phone'
St: Street

Bp: Bpins
Sa: Stavg
Hg: Higam
Hs: Hiser
Wk: Week
G 1: Game 1
G2: Game 2
G3: Game 3

Nama bowler. Oleh karena perkumpulan ini kecil maka dianggap
tidak ada dua nama bowler yang sarna persis.
Rata-rata seorang bowler. Ini adalah rat.a-ratalencana/permainan
untuk semua permainan yang dijadwalkan. Rata-rata tersebut akan
dikurangi dengan angka keseluruhan.

'Hambatan permainan 'seorangbowler. Ini merupakan nilai integer
yang dihitung tiap-tiap minggu.
Angka to~alpermainan yang telah dipermainkan seorang bowler.
Seorang bowler biflsanyamain tiga kali dalam satu malam.
Total angka kemenangan team dalam suatu season.
Total angka kekalahan team dalam suatu season.
Total angka lencana (pin) team dalam suatu season.
Angka lane (jalur) suatu team dalam seminggu. Angka ini juga
menunjukkan lawan dalam minggu tersebut. Team yang berada
pada lane 1 dan 2lawannya adalah team dalam lane 3 dan 4, dst.
Nama kapten suatu team. Hanya terdapat seorang kapten dalam
sebuah team.
Nomor telepon dari seorang bowler. Lebih dari 'seorang bowler
boleh hanya menggunakan satu nomor telepon.
Alamat jalan seorang bowler. Semua alamat berada dalam satu
kota. Satu orang atau lebih mungkin tinggal dalam alamat yang
sarna.
Total dari semua lencana yang diperoleh seorang bowler dalam
satu season.
Rata-rata yang diperoleh seorang bowler dalam permulaan suatu

season. Ini merupakan nilai integer.
Nilai dari sebuah permainan terbaik yang dilakukan oleh seorang
bowler dalam satu season.
Nilai dari tiga seri permainan yang terbaik yang dilakukan seorang
bowler dalam suatu season.
lumlah minggu dalam satu season. Nilai ini mulai dari 1 dan
bertambah I untuk tiap-tiap minggu dari suatu'season.
Nilai permainan pertama dalam satu minggu oleh seorang pemain.
Nilai permainan kedua dalam satu minggu oleh seorang pemain.
Nilai permainan ke tiga dalam satu minggu oleh seorang pemain.

Setelah dipertimbangkan maka diputuskan bahwa beberapa'atribut tidak akan
disimpan dalam database; Atribut yang dihilangkan adalah Bavg, Bgame, Wins,
Loss, Tpins, Bpins, Hndk, Higam, dan Hiser. Meskipun atribut ini akan dipakai
dalam laporan mingguan maupun tahunan, nilai suatu atribut dapat dihitung dari
atribut lain yang disimpan dalam database.
47

Jika item yang kita hilangkan tersebut disimpan dalam database, maka akan
terdapat informasi yang berulang-ulang. Sebagai contoh, misalnya semua bagian

yang dihilangkantersebutbenar-benardisimpandalam database,makaakan ditemukan
dalam memasukkan nilai seorang bowler. Suatu perubahan nilai seorang pemain
akan mengakibatkan perubahan tertentu dalam Bpins dan Tpins, dengan kemungkinan perubahan dalam item lain yang dihilangkan. Jika perubahan sekunder
ini tidak dibuat, maka database akan menjadi tidak konsisten. Oleh karena itu bagian
yang akan dihilangkan tersebut tidak disimpan dalam databse, namun akan dihitung
dari data dalam database jika suatu laporan diperlukan. Perhitungan ini akan dibuat
dengan menggunakan program aplikasi software yang akan ditulis dengan
menggunakan bahasa makro DBMS. Bahasa makro ini akan dibahas dalam bab 9
dan 10.
Langkah 1dari algoritma desain yang telah direvisi terdapat dalam bagian 4.5.
Algoritma ini merupakan penentuan dari relasi universal database yang sedang
didesain. Jika daftar akhir atributdipakai dalam database sekretaris bowling dikelompOkkanmenjadi satu relasi, maka relasi universal dapat ditentukan sebagai berikut:

R(Nb~Tn, En, Ln, Cp,Ph, St, Sa, Wk, Gl, G2, G3)

5. 3

.

DIAGRAM KETERGANTUNGAN FUNGSIONAL


Tahap kedua dari algoritma ini adalah penentuan semua FD yang berhubungan
dengan atribut dalam relasi universal. Gambar 5.1 menunjukkan diagram ketergantungan fungsional untuk relasi universal yang diambil dari masalah bowling di atas.
Tahap ke tiga dalam algoritma ini menuntut adanya penghilangan semua FD
yang berulang-ulang dari set FD bagi relasi universal, untuk memperoleh cover
minimal. Secara diagramatis FD ini dijelaskan dalam Gambar 5.1. FD ini berisikan
beberapa ketergantungan t;ransitif. (Ketergantungan transitif lainnya dapat secara
mudah diuraikan dalam set asli FD. Ketergantungan transitif yang khusus yang
mungkinmuncul dicantumkan dalam Gambar 5.1. Ketergantungan ini tidak
meliputi diagram FD yang khusus untuk kemudahan tampilan. Ketergantungan yang
berulang-ulang ini dapat dihilangkan.)

48

Original Set of
Design Fd's
Tn H Nb
Tn H Cp
Cp H Nb
Bn ~ Nb,

Bn, Wk, ~
Ln, Wk ~
Wk, Nb ~

St, Ph, Sa
GI, G2, G3, Ln
Nb
Ln'

Transitive Dependencies
Already Eliminated
Bn
Bn
Ln, Wk
Ln, Wk

~
~
~
~


Tn
Cp
Cp
Tn

Gambar 5. 1 Diagram FD penama untuk database sekretaris bowling

49

Situa~i ketergantungan redanden transitif mencakup "set lingkaran yang saling
mempunyai ketergantungan" antara ke tiga atribut yaitu Cp,Nb, dan Tn:.

Nb1(

Cp.

Tn 1(

. Cp


. Tn
. Nb

Jika salah satu dari ketiga unsur di 3t11S
dihilangkan, maka dua unsur lainnya
tidak akan redanden. Dalam kasus seperti ini maka tidak ada masalah unsur mana
yang akan dihilangkan. Hal ini disebabkan ketiga atribut Cp,Nb, dan Tn masih tetap
dapat berakhir dengan relasi yang sarna meskipun tanpa mempertimbangkan unsur
mana yang akan dihilangkan. Ketergantungan yang dihilangkan adalah
Cp 1(
. Tn.

R(Nb, Bn, Ln, Cp, Ph, St, Sa, Wk, GI, G2, G3)
FD's :

Nb.

Nb.

Wk,Ln,
Bn, Wk
Bn

~Tn
~ Cp
~ Nb
~ GI, G2, G3.
~ Nb, St, Ph, Sa

Gambar 5. 2 Diagram FD Cover Minimal untuk basisdata sekretaris bowling
FD redanden kedua yang terdapat dalam Gambar 5.1 disebabkan oleh
transitivitas y~ng palsu. Karena Bn ->Nb dan Nb,Wk ->Ln, maka akan mengikuti
transitivitas palsu yaitu Bn,Wk ->Ln. Ini ber;u-tibahwaFD terakhir adalah redanden
sehingga dapat dihilangkan. Oalam Gambar 5.1. tidak terdapat redanden FD. Diagram FD untuk cover minimal terdapat dalam Gambar 5.2.
50

5.4

PENGURANGAN PADA SET RELASI BCNF

Tahap keempat dari proses desain mencakup pengurangan relasi universal ke
dalam satu set relasi BCNF. Jika atribut yang bakal dipakai (candidate keys) dan
detenninan pada R dibandingkan, maka ditemukan bahwa determinan dan kunci
tersebut tidak identik.
Detenninants in R
Candidate keys in R





R1 harus dikurangi. Pada tahap ini proses dan ketelitian pengurangan harus
diambil sesuai dengan atribut Nb. Nb merupakan atribut dependen dalam R 1 yang
mempunyai dua detenninan yang berbeda. Seperti yang dibicarakan dalam sub bab
3.7,jika proyeksi salah maka kita dapat menghilangkan FD. Kenyataannya, kita tidak
dapat membuat proyeksi tanpa menghilangkan FD, yang berani bahwa selain
dekomposisi metoda desain harus dipenimbangkan.

(a) RI(Bn, Wk, Ln, Nb, St, Ph, Sa, Gl, G2, G3)

FD's
Nb H Tn
Nb H Cp
(b) R2(Nb, Tn, Cp)

Gambar 5.3. Hasil Proyeksi R2 dari R.
51

Carnyang benaruntuk mengurangi R1adalah dengan memproyeksikan FD Nb,
Wk ~ Ln ke dalam R3 dan R4 seperti pada Gambar 5.4. Dengan demikian maka
FD dengan Nb sebagai bagian dependen dalam database: Bn ~ Nb dalam R3, dan
Ln,Wk ~ Nb dalam R4. R4 terdapat pada BCNF, tetapi R3 tidak.
Candidate Keys dalam R3
Determinan dalam R3



R3 dapat diuraikan dengan memproyeksikan semua FD dengan Bn sebagai
determinan. Set FD ini adalah Bn ~ Nb,St,Pn,Sa. Proyeksi ini memberikan
hubungan R5 dan R6 seperti pada Gambar 5.5 (p.56). Baik R5 maupun R6 dapat
ditunjukkan dalam BCNF. Jadi relasi desain akhir adalah R2, R4, R5 dan R6.

Nb

G
(a) R3(!!n, Wk, Nb, St, Ph, Sa, G1, G2, G3)

FD's
Wk,Ln ~ Nb
Wk,Nb ~ Ln

(b) R4iliQ, Wk, Ln)

Gambar 5. 4 HasHdari Proyeksi R4 dari Rl.
52

5.5

EVALUASI RELASI DESAIN BCNF

Set relasi BCNF tersebut diuraikan dengan algoritma desain dekomposisi yang
telah direvisi, dimulai dengan relasi R dalam Oambar 5.1 adalah
R2(Nb,
R4(Nb,
R5(Bn,
R6(Bn,

Cp,Tn)
WK,Ln)
Wk, 01, 02, 03)
Nb, St, Ph, Sa)

FD's:
Bk, Wk ~ GI, G2, G3

(a) R5(fu!, Wk, GI, G2, G3)

FD's:
Bk ~ Nb, St, Ph, Sa.

Nb

(b) R6(fu!, Nb, St, Ph, Sa)

Oambar 5.5 HasiI dari Proyeksi R6 dari R3.
di mana kunci utama dari tiap relasi diberi garis bawah. (R2dan R4 mempunyai lebih
dari satu kunci kandidat) Set ini akan dicek untuk masalah-masalah yang mungkin.
Jika FD ditemukan dalam diagram FD untuk tiap-tiap relasi individu maka
daftar yang diperoleh sebagai berikut:
53

Relasi

Gambar No

FD

R2

5.3

Tn H

Nb

Cp H

Nb

R4

5.4

Wk, Ln
Wk, Nb

R5
R6

5.5
5.5

Bn, Wk
G I ,G2,G3
Bn
Nb, St, Ph, Sa

Nb
Ln

Dua hal yang perlu diperhatikan: 1) tidak ada FD yang muncullebih dari satu
kali; dan 2) set FD sarna dengan set FD yang dijumpai dalam cover minimal pada
Gambar 5.2
Jika empat relasi dianalisis, maka tidak ada relasi yang dapat ditemukan di
mana semua atributnya muncul sebagai cut set dari atribut dalam relasi lainnya. Perlu
diperhatikan bahwa tidak terdapat cara lain untuk menggabungkan ketiga relasi
desain yang dapat menguraikan semua atribut dalam relasi keempat. Jadi dalam relasi
keempat tersebut tidak ada yang redanden.
Jika nama-nama atribut yang lebih panjang digunakan dalam tempat model
karakter dua yang lebih pendek maka relasinya adalah sebagai berikut :
R2(Tnumb, Captn, Tname)
R4(Tnumb, Week, Lane)
R5(Bname, Week, Gamel, Game2, Game3)
R6(Bname, Tnumb, Phone, Stret,S tavg)
Dengan melihat atribut yang terdapat pada masing-masing relasi, dapat kita
ketahui bahwa masing-masing relasi menyajikan sebuah set data yang padu, yaitu:
R2 :. Informasi tentang team
R4 : ladwal season
R5 : Informasi penilaian bowler individu
R6 : Informasi personal bowler
Dilihat dari sudut kepraktisan, maka relasi tersebut sangat masuk akal.
Meskipun masalah di atas tidak nampak dalam contoh ini, namun dalam proses
desain, kita sering mengelompokkan atribut-atribut ke dalam relasi-relasi yang agak
kita buat-buat. Desain akhir harus selalu diperiksa agar tidak terjadi hal yang

54

demikian. Masalah ini yang paling sering muncul jika singkatan yang dipakai sangat
pendek sehingga kita (desiner) tidak tahu lagi kepanjangan suatu singkatan. Seorang
desainer yang baik tentu akan memperhatikan atribut tersebut serta berusaha
memvisuali sasikan nya.
Database sekretaris yang dipakai adalah dBASEIII, dalam bab 9, dan R:base
5000 dalam bab 10. Modul program sampel digunakan untuk menguraikan laporan
yang diperlukan oleh sekretaris tersebut.

5. 6

TUGAS UNTUK BAB 5

1. Desain kembali database sekretaris bowling dengan asumsi bahwa atribut yang
akan disimpan dalam database adalah Bavg, Bgame, Losses, Tpins, Bpins, Hndk,
Higam, dan Hiser!
2.

Jika database pada nomor satu di atas dilaksanakan, bagaimana caranya agar
sekretaris tidak membuat kesalahan atribut yang telah dihitung dalam memasukkan data?

55