KEBUTUHAN PERENCANAAN DATABASE
2.1
TUJUAN PERENCANAAN
Sebelum melihat pada masalah-masalah perencanaan khusus dan algoritma, yang terbaik adalah menentukan beberapa tujuan perencanaan. Pada kenyataannya, apa yang diinginkan hasil akhir dari proses perencanaan database relasional? Meskipun beberapa tujuan perencanaan dapat disusun, tujuan berikut yang dianggap jadi lebih penting, yaitu : 1. 2. 3. 4.
Memiliki kemampuan menyimpan seluruh data yang berguna dalam database. Meniadakan kerangkapan data (redundant). Mengusahakan banyaknya relasi di dalam database minimum. Mempunyai relasi yang dinormalkan, sebagaimana untuk problema meminimumkan pembaharuan dan penghapusan. Setiap tujuan ini akan dibicarakan dengan singkat.
Tujuan 1 : Kemampuan menyimpan seluruh data yang berguna dalam database. Tujuan ini jarangjelas, tetapi ini paling penting. Database dianggap dapat memenuhi semua data yang menarik untuk organisasi sehingga database hams direncanakan dalam suatu cara sehingga suatu tempat untuk sebuah data dapat
11
ditemukan dalam database. Tingkat pertama didalam proses perencanaan adalah menetapkan semua atribut yangditempatkan dalam database. Suatu saat atribut telah diidentifikasi, perencana dapat mulai untuk bingung mengenai bagaimana beberapa relasi akan diperlukan,dan atribut yang mana akan dimasukkan ke dalam relasi tenentu. Di dalam sebuah database untuk mikrokomputer, di sini ada problema tambahan yaitu apakah data yang akan disimpam harns direncanakan sebagai hasil di dalam satu database, atau mungkin dua atau beberapa database. E_S
E_S
Supr
Emp* 125
Jones
Empt* 125
138
Smith
138
195
smith
195
200
Jones
200
I
I
I
I
supe Jones
I
Smith
(a) (b) Gambar 2.1. Data rangkap yang tidak rangkap
Tujuan 2: Meniadakan kerangkapan data. Percabangan dari tujuan ini tidak jelas untuk perencana database pemula. Kunci untuk mengerti tujuan ini adalah menyadari bahwa ada suatu perbedaan yang nyata antara data yang rangkap dan kerangkapan data yang rangkap.Sebagai contoh, lihat relasi E_S pada gambar 2.1(a). Relasi ini mempunya 2 atribut, Emp#(nomor pegawai) dan Supr(pengawas).Relasi memenuhi data yang menunjukkan pengawas yang bersangkutan dari setiap pegawai di dalam perusahaan. Nama-nama dari para pengawas dapat ditunjukkan beberapa kali dalam relasi. Dalam kenyataan, sebuah nama pengawas akan muncul lagi untuk setiap pegawai yang diawasi. Catatan, meskipun 'Jones'dan 'Smith' keduanya muncul dua kali di dalam hal E_S diberikan di dalam gambar 2.1(a), tidak ada nama-nama rangkap yang dinamakan kerangkapan. Alasan mereka bukan kerangkapan yang adalah jika satu dari nama-nama itu tak ada dari relasi, maka informasi hHang.Contoh gambar 2.1(b), menunjukan suatu hal dari E_Sakan terlihat sepeni dengan nama rangkap dihapus. Dalam alasan ini, tidak ada tujuan mengetahui nama-nama pengawas pegawai #195 dan #200.
12
Emp;t
Supr
Spone
125
Jones
135
Emp;t
Supr
Sphone
3051
125
Jones
3051
Smith
2222
135
Smith
2222
195
Smith
2222
195
Smith
-
200
Jones
3051
200
Jones
-
I
(a)
(b)
E_S
S_P
Supr
Emp;t I
Supr I
Sphone I
I
125
Jones
Jones
3051
138
Smith
Smith
2222
196
Smith
200
Jones
I
Gambar 2. 2 (c)
Meniadakan kerangkapan data (data redundant)
Gambar 2.2(a) adalah contoh dari sebuah relasi yang mempunyai redundant atas data yang rangkap. Relasi E_S_P Similar dengan relasi E_S tetapi memasukkan atribut Sphone, yang mana adalah nomor telephone dari pengawas (Diasumsikan bahwa setiap pengawas hanya mempunyai sebuah nomor telephone). Dalam hal ini nomor telephone untuk Jones dan Smith muncullebih dari sekali, dan informasi yang rangkap pada nomor telephone adalah redundant. Alasan nomor-nomor yang rangkap adalah kerangkapan jika, katakan, satu dari nomor-nomor telephone Jones ditiadakan, nomor telephone Jones adalah model yang tersedia di dalam tupel yang lain dalam relasi. Gambar 2.2(b) adalah sebuah contoh bagaimana relasi E_S_P akan terlihatjika nomor-nomor telephone yangrangkap diganti dengan 'null' .Catatan bahwa nomor-nomor telephone untuk Jones dan Smith tidak akan hilang,sejak nomor-nomor itu setiap muncul d( dalam satu tupel dalam relasi. Metode ini .
pedomankerangkapandatayangtidakmemuaskanuntuk 2 alasan.Pertama,tempat kosong dalam basisdata harns dihindarkan, sejak program tambahan dikehendaki untuk menghitung apa ani dari null yang sebenamya. Dalam hal ini,jika tupel ketiga, ( 195,Smith,_), yang dibaca dari relasi,nomor telephone Smith akan tidak diketahui. Pemakai akan mempunyai cukup pengetahuan untuk melihat tupel yang lain dalam
13
relasi yang dipunyai Smith sebagai nilai atribut Supr dan tidak ada nilai null untuk Sphone. Kedua, dan lebih kritis, relasi dalam gambar 2.2(b) dibentuk seperti itu masalah penghapusan yang sukar dapat terjadi. Jika pegawai dengan E# = 125 meninggalkan enterprise, dan tupel (125,Jones,3051) dihapus dari relasi untuk mengambil kenyataan ini kedalam hitungan, nomor telephone untuk Jones hHang, sejak tidak muncul dimanapun selain di dalam relasi. Gambar 2(c) terlihat sebagai jalan terbaik meniadakan kerangkapan nomornomor telephone. Disini relasi E_S_P akan berubah tempat dengan 2 relasi, satu pedoman informasi dalam nomor-nomor pegawai dan nama-nama pengawas, dan satu pedoman informasi dalam nomor-nomor telephone pengawas. Ini akan menjadi terlihat didalam pasal berikutnya yang membagi relasi-relasi sebagai suatu cara perencanaan baku, tetapi harus dilakukan dibawah keyakinan yang pasti. Catatan dalam gambar 2.2(c) bahwa pegawai #125 dapat segera dihapus dari relasi E_S tanpa kehilangan nomor-nomor telephone pegawai-pegawai pengawas yang tadi, yang disimpan dalam relasi S_P. . Tujuan 3 : Memelihara nomor dari relasi untuk suatu minimum. Tujuan ini perjanjian dengan kenyataan bahwa meskipun membagi satu relasi kedalam dua atau lebih relasi yang lebih kecil boleh menjadi yang diinginkan untuk ketiadaan masalah-masalah keyakinan, terlalu banyak relasi dalam basisdata bisa membuatnya tidak praktis untuk menggunakan suatu angka yang siap dari pemakai. Demikian, relasi-relasi nomor tidak dapat menjadi boleh tumbuh dalam suatu cara yang tidak terbatas. 'Tujuan 4 : Mempunyai relasi yang dinormalkan. Tujuan 4 perjanjian dengan kenyataan relasi-relasi pasti adalah lebih susceptible untuk masalah penghapusan dan perubahan, seperti kehilangan nomor telephone pengawas dibicarakan dalam tujuan dua yang tersebut diatas, daripada relasi yang lain. Perencana harus belajar untuk menandai ini dengan kesanggupan relasi yang berbahaya dan menormalkannya dengan membaginya dalam suatu gaya tulisan. Normalisasi adalah menguraikan satu relasi kedalam dua atau lebih relasi mengikuti suatu cara yang khusus untuk menentukan pembagian. Normalisasi akan dibicarakan dalam pasal 3. Suatu masalah dengan rencana tujuan tiga dan empat adalah yang mereka kerjakan didalam kebalikan untuk setiap yang lain. Tujuan tiga akan mempunyai kompromi untuk mempertemukan ujuan empat atau,membicarakan ,tujuan empat akan mempunya kompromi unttuk mempertemukan tujuan tiga. Ini akan menjadi bagiandari keputusan rencana akhir.
14
2.2
RELASI UNIVERSAL
Anggap bahwa suatu basisdata keeil akan menjadi reneana untuk seorang penasehat universitas. Penasehat mempunyai beberapa mahasiswa yang dinasehati, semua yang tinggal di kampus, dan semua yang ada dalam departemen utama yang sarna. Langkah pertama dalam cara pereneanaan adalah penentuan dari semua atribut yang penasehat inginkan untuk dimiliki dalam basisdata, dan bagaimana atribut dihubungkan ke setiap yang lain. Informasi adalah tempatdi dalam pembiearaan oleh penasehat, membuat pasti bahwa penasehat tahu apakah data akan di dalal.1basisdata, bagaimana basisdata akan dipergunakan, dan apakah informasi penasehat mengharapkan untuk memperoleh dari basisdata. Setelah beberapa pertemuan oleh penasehat, nama-nama, keadaan-keadaan pada atribut disimpan yang ditentukan menjadi: Snum-nomor mahasiswa, suatu integer yang mempunyai nilai yang unik untuk setiap mahasiswa dalam universitas. Sname-nama mahasiswa, setiap mahasiswa hanya mempunyai satu nama, tetapi ini mungkin bahwa lebiiih dari satu mahasiswa mempunya nama yang sarna. Rnum-nomor kamar asrama kampus. Setiap mahasiswa tinggal dalam kampus dan diberi sebuah kamar. Lebih dari satu mahasiswa yang mungkin diberi pada spbuah kamar tunggal. Pnum-nomor telephone mahasiswa. Setiap kamar asrama kampus mempunyai satu telephone yang dipakai oleh semua mahasiswa dalam kamar. Class-nomor kelas. Ini adalah nomor petunjuk sebuah kelas yang diambil oleh seorang mahasiswa yang sebenarnya. Sebagai eontoh adalah MTH122. Penasehat hanya akan menyimpan datadalam kelas-kelas yangmempunyai kelengkapan oleh seorang mahasiswa yang memberi. Term-waktu kuliah. Ini waktu kuliah yang mana sebuah kelas yang diberikan dilengkapi oleh mahasiswa. Ini mungkin bahwa seorang mahasswa yang diberi boleh mengambil banyak kursus yang sarna dalam waktu yang berbeda. Grade-tingkatan kelas. Tingkatan seorang mahasiswa yang diberi diterima dalam sebuah kelas yang sebenarnya dalam suatu waktu yang diberi. Sebuah eontoh data yang penasehat reneanakan sebagai yangakan disimpan dalam basisdata diperlihatkan dalam gambar 2.3. Meskipun gambar ini sebuah eontoh tabular dari data bahwa mungkin akan ada di dalam basisdata pada beberapa saat pada waktu, tabel bukan suatu relasi.
15
ADVISOR
Snum
Sname
Rnum
Pnum
3215
Jones
120 DH
2136
3462
3567
4756
SmithA
HowesJ
AlexK
238VH
120DH
345VH
2344
2136
3321
Class
Tenn
Grade
MTH 122
F84
1.6
SCIl20
F84
2.4
PHY230
W85
2. 1
MTH 120
W85
2. 3
MTH 122
W84
2. 3
MTH123
W85
3. 5
PSY220
W85
3. 7
SCI239
W84
3. 3
EGR171
F84
3.5
PHY141
F84
1.8
MUS389
F83
4.0
Gambar 2. 3 Data yang diinginkan oleh penasehat. 3215
JonesG
120DH
2136
MTH122
F84
1.6
SCIl20
F84
2.4
PHY230
W85
2. 1
MTH 122
W85
2. 3
Gambar 2.4. Satu 'baris' dari tabel dalam gambar 3. Untuk melukiskan mengapa tabel dalam gambar 2.3 bukan sebuah relasi, satu 'baris' akan dikeluarkan dalam gambar 2.4. Dalam gambarini, nilai field-field dalam empat field Snum, Sname, Rnum dan Pnum adalah semua nilai-nilai tunggal, sementara nilai-nilai dalam field-field Class, Term dan Grade mempunyai nilai-nilai jamak. 'Baris' ini dibedakan denganjelas dari bentuk tuple yang diberikan dalam relasi-relasi sederhana yang telah dibicarakan terlebih dahulu. Perbedaan itu adalah semua field-field dalam baris tidak melakuka~ pengisian atribl1tbernilai tunggal. Untuk menentukan data dalam gambar 2.3 kedalam bentuk sebuah relasi, data hams menjadi tempat akhir juga bahwa setiap tuple mempunyai suatu hal bernilai tunggal dalam tiap-tiap elemem dari tuple. Ini dapat selalu dilakukan oleh suatu cara pemasukan sederhana, dengan hasil dalam hal itu menjadi gambar 2.5. Cara yang mungkin penambahan dari sejumlah besar data rangkap, tetapi kerangkapan akan dijadikan pemindahan yang dibelakang dalam cara rencana.
16
Tabel dalam gambar 2.5 sekarang adalah suatu hal dari sebuah relasi yang sah. Ini ditunjuk sebagai relasi universal dari basisdata menjadi direneanakan. Relasi universal mempunyai semua atribut dari tempat yang menarik kedalam satu relasi, dan dapat menyimpan semua data yang akan menjadi tempat dalam basisdata pada suatu waktu yang akan datang. Untuk basisdata yang keeil (sesuatu dengan tidak lebih dari 15-20 atribut) relasi universal akan dapat dipergunakan dengan efektif sebagai hal pemula dari reneana basisdata.
2.3
MASALAH-MASALAH DENGAN MENGGUNAKAN SEBUAH RELASI TUNG GAL
ADVISOR Snum
Sname
Rnum
Pnum
Class
Tenn
Grade
32]5
JonesG
]20DH
2]36
MTH] 22
F84
1.6
32]5
JonesG
]20DH
2136
SCI120
F84
2.4
3215
JonesG
]20DH
2136
PHY230
W85
2. 1
3215
JonesG
]20DH
2136
MTH 122
W85
2. 3
3462
SmithA
238VH
2344
MTH 122
W84
2. 3
3462
SmithA
238VH
2344
MTH]23
W85
3.5
3462
SmithA
238VH
2344
PHY220
W85
3. 7
3567
HowesJ
]20DH
2136
SCI239
W84
3.3
3567
HowesJ
]20DH
2136
ERG]71
F84
3.5
3567
HowesJ
120DH
2136
PHY] 41
F84
1.8
4756
AlexK
345VH
3321
MUS389
F83
4.0
Gambar 2.5. Data dari tabel dalam gambar 2.3 ditempatkan dalam sebuah relasi yang berlaku. Suatu permulaan pereneana akan digoda untuk menggunakan relasi ADVISOR dalam gambar 2.5 sebagai basisdata yang lengkap. Kelihatannya untuk menjadi sesuatu yang terus didepannya untuk melakukan. Mengapa pemutusan ADVISOR kedalam beberapa relasi yang lebih keeil, ketika dia dapat pedoman semua data akan dia sendiri ? Adalah beberapa alasan mengapa relasi yang sebenarnya ini tidak harus digunakan sebagai hanya satu di dalam basisdata. Ini akan dapat ditemukan oleh penglihatan bagaimana basisdata akan dipergunakan, dan bagaimana data dalam ADVISOR akan dipengaruhi oleh operasi-operasi basisdata yang pasti. Pembiearaan pusat bawah pada tiga masalah-masalah khusus: Satu dihubungkan untuk 17
pembahaman (atau modifikasi) dari data dalam basisdata; satu meliputi penghapusan sebuah tuple dan yang lainnya meliputi penyisipan sebuah tuple baru. Masalahmasalah diluar yang dengan umumnya dihubungi untuk sebagai penyisipan, penghapusan, dan perubahan penyimpangan, dimana sebuah penyimpangan adalah suatu variasi dari nonna. Masalah penyisipan : Jika penasehat menentukan sebuah nasehat barn, satu siapa yang harus belum melengkapi sebuah kelas, sebuah tuple untuk mahasiswa akan mempunyai penempatan didalam basisdata dengan null untuk nilai atribut Class, Tenn, dan Grade. Sebagai catatan beberapa waktu, nilai null hams dihindari. Demikian, mahasiswa bam tidak dapat ditambahkan pada basisdata sampai sesudah sebuah kelas menjadi lengkap . Gambar 2.6(a) adalah sebuah contoh dari apakah ADVISOR akan terlihat seperti jika seorang mahasiswa yang tidak hams melengkapi beberapa kelas dikuatkan kedalam relasi menggunakan dBase II. Untaian karakter null memperlihatkan sebagai tempat kosong (dalam Class dan Tenn). Sementara nilai bilangan null dalam tempat Grade diterjemahkan oleh dBase II sebagai sebuah 0.0. Gambar 2.6(b) memperlihatkan sebuah kemungkinan akibat dari kemunculan 0.0 dalam tempat kosong. Disini sebuah cara penyelesaian pada Query "Daftar Snums dan Snames dari semua mahasiswa yang diizinkan pada sisa satu tingkatan mengatakan suatu 2.0" akan dilaksanakan. HomerH didaftar sebagai bagian mahasiswa, tetapi HomerH tidak dilengkapi sebuah kelas tunggal. USE ADVISOR
·List 0000 1
3215
JonesG
120DH
2136
MTH122
F84
1.6
00002
3215
JonesG
1200H
2136
SCI 120
F84
2.4
00003
3215
JonesG
1200H
2136
PHY230
W85
2. 1
00004
3215
JonesG
1200H
2136
MTH 122
W85
2. 3
00005
3462
SmithA
238VH
2344
MTH 122
W84
2. 3
00006
3462
SmithA
238VH
2344
MTH123
W85
3.5
00007
3462
SmithA
238VH
2344
PHY220
W85
3. 7
00008
3567
HowesJ
120DH
2136
SCI239
W84
3.3
00009
3567
HowesJ
120DH
2136
ERG171
F84
3.5
00010
3567
HowesJ
120DH
2136
PHY141
F84
1.8
00011
4756
AlexK
345VH
3321
MUS389
F83
4.0
00012
7890
HOwerH
121VH
7619 (a)
18
0.0
. display off Snum, Sname for Grade < 20 3215
JonesG
3567
HowesJ
7890
I HowerH (b)
Gambar 2.6
(a) hasil penyisipan sebuah record dengan tempat kosong. (b) kesalahan rangkap Query untuk tempat kosong.
Masalah Memperbarui : Ini adalah sejumlah besar kerangkapan data dalam ADVISOR. Kerangkapan data selalu tanda kemungkinan dari perubahan hanya sebagian keinginan data selama sebuah operasi pembaharuan. ADVISOR mempunyai kedua penjelasan, dan tidak terlalu jelas, kerangkapan. Penjelasan kerangkapan adalah suatu pemberian nama mahasiswa, nomor kamar dan nomor telephone akan didaftar beberapa kali. Dalam hal ADVISOR diberikan dalam gambar 2.5 nomor kamar Ms.G Jones muncul tiga kali. Jika dia dihubungi penasehatnya dan mengatakan bahwa nomor kamarnya akan dirubah, Penasehat harus membuat pasti bahwa perubahan dibuat dalam seluruh tiga tuple atau data akan menjadi tidak tetap. Suatu kerangkapan yang tidak terlalujelas adalah nomor telephone.yang sarna memperlihatkan untuk semua mahasiswa yang tinggal dalam kamar yang sarna. Dalam gambar 2.5 nomor telephone untuk nomor 120DH muncul keduanya oleh JonesG dan HowesJ. Anggap MS.G.Jonesmenceritakan penasehatnya bahwa nomor telephonenya akan dirubah ke 777, tetapi lalai untuk menceritakan penasehat bahwa dia mempunyai seorang pasangan kamar. .
Jika penasehathanya merubahnomor telephonedalam tuple-tupleitu yang
dipunyai nomor mahasiswa JonesG didalamnya, lalu nomor telephone yang benar untuk telephone yang benar untuk telephone itu yang dinomor ka,mar 120DH tidak akan diketahui, sejak 2 perbedaan nomor untuk telephone dalatn kamar ini akan menjadi dalam relasi. Gambar 2.7 melukiskan penyimpangan pembaharuan yang telah lalu. Dalstm gambar 2.7(a) nomor telephone JonesG dirubah ke 7777. Gambar 2.7(b) memberikan dBase IIjawaban untuk Query "Daftar nomor telephone dalam kamar 120DH". Dua nomor yang didaftar dalam jawaban untuk Query, yang mana adalah kesalahan sejak setiap kamar hanya mempunyai satu telephone dan ~atu nomor telephone. Catatan bahwa jawaban yang rangkap untuka Query dicetak dengan dBase II. Nomor telephone 2136 dan 777 setiap muncul dalam tiga tuple berbeda dalam hal relasi ADVISOR dibawah pembicaraan, dan semua nilai enam memperoleh cetakan dengan DBMS diprogram untuk menyelesaikan kerangkapan jawaban untuk Query, jika tidak adalah permohonan yang khusus.
19
Masalah penghapusan : Dalam hal ADVISOR memberikan gambar 2.5, sebuah tuple dengan Snum =4756 muncul hanya sekali dalam relasi. Tuple ini adalah untuk seorang mahasiswa yang mempunyai nama AlexK. Anggap bahwa penasehat menemukan bahwa mahasiswa ini tidak mengambil kelas MUS389 sebagaimana ditunjukkan, dan penghapusan tuple ini dari relasi. Sejak ini hanya tuple yang menggabungkan beberapa relasi informasi untuk mahasiswa ini, penghapusan ini akan meniadakan mahasiswa dari basisdata. Jika penaseha mengikuti penghapusan ini dengan suatu permohonan untuk suatu pendaftaran nama-nama semua nasehat dari ADVISOR, nama AlexK tidak akan didaftar. -list off 3215
JONESG
120DH
2136
MTH 122
F84
1.6
3215
JONESG
120DH
2136
SCIl20
F84
2.4
3215
JONESG
120DH
2136
PHY230
W85
2. 1
3215
JONESG
120DH
2136
MTH 122
W85
2.3
3462
SMITHA
234YH
2344
MTH 122
W84
2.3
3462
SMITHA
234YH
2344
MTH123
W85
3.5
3462
SMITHA
234YH
2344
PSY220
W85
3. 7
3567
HOWESJ
120DH
2136
SCI239
W84
3.3
3567
HOWESJ
120DH
2136
EGR171
F84
3.5
3567
HOWESJ
120DH
2136
PHY141
F84
1.8
4756
ALEXK
345YH
3321
MUS389
F83
4.0
7890
HOWERH
121YH
7619
-
replace Pnum with 7777 for Sname
00004 REPLACEMENT
0.0
= 'JONESG'
(S)
(a)
20
. display offPnum
for Rnum = '120DH' 7777
7777 7777 7777 2136 2136 2136 Gambar 2.7
(b) (a) Merubah satu nomor telephone mahasiswa (b) Kesalahan query mengikuti perubahan nomor telephone.
SOAL LATIHAN 1. Pada relasi ADVISOR sesuai gambar 2.5, manakah yang merupakan primary key (kunci utama) ? 2. Pada relasi ADVISOR sesuai gambar 2. 5, identifikasikan pada data tersebut
yang mengalamiduplikasi& redudan.
.
3. Pada relasi ADVISOR sesuai gambar 2. 5, idemifikasikan pada data tersebut yang mengalami duplikasi tetapi tidak redudan 4. Relasi PHONE dibuat untuk memberikaninformasi mengenai nama Pegawai, Nomor TeleponRumah, Nomor Telepon untuk pesawat di kantor. Diasumsikan bahwa * Nama Pegawai unik, satu rumah dengan satu telepon & mungkin mempunyai telepon dengan pesawat yang berbeda-beda. * Setiap Pegawai beberapa karyawan mempergunakan telepon secara pararel secara khusus relasi PHONE disajikan pada gambar 2. 8
21
PHONE NAMA JONESKK
TELEPON RUMAH
PESAWAT 3167
JONESKK
345 - 1121 345-1121
KROFf AD
345 - 9898
4000
MARTZLK
348 -4512
3167
MARTZLK
348 - 4512
3168
RALSTONTI
345 -7766
4001
RALSTONTI
345 - 7766
4002
3168
Gambar 2. 8 Relasi PHONE Pertanyaan: (a) Diskusikan bahwa data relasi PHONE di atas yang redudan. (b) Bagaimana relasi PHONE diatas diubah sehingga data redudan hilang. (c) Gambarkan relasi dari relasi PHONE setelah menghilangkan data yang redudan.
22