DATA BASE, RELASI, DAN DATABASE RELASIONAL 1.1 KONSEP DASA,R Suatu database mungkin didefinisikan sebagai kumpulan data yang disatukan dalam. suatu organisasi. Suatu organisasi dapat berupa company, departemen company, bank, sekolah dan lain-lain. Maksud dari database untuk menyimpan semua data yang diinginkan kepada satu lokasi, sehingga penyimpanan data redundant di dalam organisasi tersebut dapat dieliminasi. Ketika terjadi pengkopian data berulang-ulang disimpan pada lokasi yang berbeda dalam suatu organisasi, perbedaan akan muncul antara kumpulan data yang secara identik telah diakui.Pada maksud tersebut, adalah tidak mungkin untuk menentukan yang mana dari dua perbedaan kumpulan data tersebut adalah betul. Pada database yang terdesain dengan balk, data redundant dapat tereleminasi dan kemungkinan penyimpanan data yang tidak konsistem dapat diperkecil. Pada komputer mainframe, data pada database dapat diakses secara bersamasarna oleh lebih dari beberapa ratus user. Data base dapat terdiri dari lebih ratusan field. yang dibutuhkan untuk informasi. Data pada sistem mikro komputer dengn skala yang lebih rendah, menggunakan database tunggal yang biasanya digunakan untuk mengakses hanya dengan seorang user pad satu waktu, tiap data base hanya memenuhi sebagian data suatu organisasi.
3
Suatu database mungkin dapatdikembangkan untuk melayani infonnasi keuangan, dan database kedua dikembangkan untuk memenuhi data personal. Apakah database yang telah dikembangkan di simpan pada mainframe atau mikro, fungsi database management system(DBMS) adalah sarna. DBMS merupakan hardware dan software untuk membuat data dapat diakses oleh pemakai (user). Pada gambar 1. 1.software pada DBMS dapat digunakan untuk memanggil data base manajer yang digunakan secara bergiliran antara satu dan lain user dan database. Manajerdatabase menyediakan alat software yang dibutuhkan untuk operasi-operasi create, load, query, update data pada data base. Database manajer juga dapat menghandle semua I/O dan memori manajemen direlasikan ke database, pada sistem yang lebih besar dengan sistem handle security dan problema user secara bersama. DBMS yang baik akan menyediakan software dan memperrnudah komunikasi antara user dan database. Pada kesamaan diantara DBMS besar dan kecil keduanya harus mempunyai desain yng baik dan keseluruhan bentuk yang tepat. Maksud tulisan ini adalah menyajikan beberapa dasar dari prosedur untuk tipe dari sturktur database, sebutlah database relasional. Contoh tulisan ini dengam asumsi pada user yang akan mengimplemantasikan database pada sistem komputer mikro yang bagaimana didesain dengan langkah-Iangkah yang sarna pada database untuk komputer besar.
DBMS DBMS mengkoordinasikan semua aktivitas ter-relasi ke database.
Database Manager Memenuhi semua permintaan ke database
Database
Gambar 1. 1 Pandangan dari sebuah arsitektur DBMS 4
1.2
DEFINISI SEBUAH RELASI
Secara matematika, definisi dari relasi adalah : Diberikan "N "himpunan D 1, D2, ..., DN, R merupakan relasi dari himpunan tersebut, jika R merupakan himpunan dengan anggota n-tupel dari
, di mana dl elemen dari Dl, d2 elemen dari D2 dan dn elemen dari DN. Dl, D2, D3, ..., DN disebut domain dari R. Ani dari definisi ini dapat dengan mudah dilukiskan dengan representasi secari grafik, pada gambar 1.2.Di sini ada empat domain. D 1 himpunan integer, D2 himpunan karakter string atau nama dari sesuatu, D3 himpunan dari karakter string warna dan D4 merupakan himpunan lain dari suatu integer. Pada relasi ini menunjukkan enam tupel. Setiap tupel mempunyai empat elemen yang terpilih dari elemen pada domain yang berbeda. Catatan order elemen pada tupel adalah penting. Elemen pertama pada setiap tupel berasal dari D 1. Elemen kedua dari tupel berasal dari elemen D2, dan seterusnya. Suatu pandangan "data processing" dari sebuah relasi yang diberikan pada gambar 1.3. Di .sini kita dapat melihat empat domain pada gambar 1.2 yang mempunyai relasi untuk empat kata item: Pno, Pnama, Pwarna, dan Pberat. Sekarang relasi dapat dilihat pada tabel dan file serta tupel dapat dilihat pada baris dari tabel atau record dalam file. Pnama pada kolom yang disebut data processing memanggil filed dari record, dinamakan dengan atribut dan nilai-nilai individu yang muncul dari tupel disebut nilai atribut 101mengambil dari domain Pno. Pada buku ini mengikuti kumpulan istilah sebgai berikut : 1. Relasi, tabel & file. 2. Tupel, baris & record. 3. Atribut, kolom & field. Domain D 1 Domain D2 Domain D3 Domain D4
101 102 Sebuah Relasi
-1103 104
Sebuah Tupel
. I( 105
106
Gambar
"
bolt nut carn screw
black blue red green
3 9 11 4
nut bolt
red orange
13 ) 21
1. 2 Pandangan secara matematika dari sebuah relasi
5
sebuah atribut dari entitas (field di dalam record)
"Dunia nyata" entitas (nama sebuah file )
PART
't
pnum
pname
color
weight
101 102 103
bolt nut cam
black blue red
screw nut bolt
green red
3 9 11 4 13 21
Saturecordl 104 105 106
orange
I
File
Sebuah Nilai atribut (Sebuah nilai field dalam sebuah record) Gambar 1.3 Pandangan pemrosesan data dari sebuah relasi Perbedaan antara definisi secara matematika pada relasi dan penyimpanan yang aktual dalam data base di sistem mikro komputer adalah tidak berharga. Dari definisi, relasi tidak dapat mempunyai dua tupel yang identik sekalipun pada sistem DBMS yang besar, biasanya tidak mengizinkan penyimpanan tupel/record yang identik pada suatu relasi/file. Banyak. DBMS pad a mikro komputer yang memungkinkan, kecuali bila pada teknik pemrograman yang khusus.
1.3 DEFINISI DATABASE RELASIONAL Database relasional tidak saja terdiri dari koleksi relasi dan semua informasi yang disimpan pada database. Pada gambar 1.4 merupakan contoh suatu relasi yang sangat kecil database relasional, yang dinamakan suplier part database. Database ini menyimpan tiga informasi tentang perusahaan konstruksi, yaitu : 1. Informasi pada suplier sebagai supplay part pada organisasi. Ini termasuk suplier number yang mana berbentuk unik dan nama suplier, status dan kota yang ketiganya tidak unik. Ini merupakan suatu Sup relasi. 2. Informasi -pada part yang digunakan pada organisasi ini termasuk Pnama, Pwarna, dan .Pberat yang semuanya tidak unik. Ini merupakan Part relasi.
6
3. lnfonnasi padapart numberdan kuantitaspada setiappartyang disuplayoleh setiap suplier. lni merupakan relasi SP. Setiap relasi dalam disimpan sebagai file tersendiri. Struktur file yang dipakai untuk menyimpan relasi tentu sederhana, karena setiap record dalam file pasti dalam fonnat sarna. PadaDBMS yang besar setiap relasi disimpan secara indeks file. Di mana indeks adalah atribut atau himpunan dari atribut yang dibuat secara khusus oleh pembuat database denga suatu relasi. Himpunan atribut yang digunakan untuk indeks disebut primary key dari kumpulan atribut yang dapat digunakan untuk menentukan keunikan suatu tupel dalam suatu relasi dengan relasi yang lain. Sebuah relai key tentu tidak mempunyak atribut tambahan. lni berarti bahwa jika suatu sembarang atribut dikeluarkan dari primary key maka atribut sisanya tidak cukup untuk mengidentifIkasi suatu tupel dapat unik dari yang lain. 5P
PART pnum
pname
color
101
bolt
black
102
nut
103
snum
pnum
qyt
3
51
101
blue
9
102
carn
red
11
51 51
9 4
103
2
104
screw
51 52
106
3
105
101
3
nut
green red
13
52
102
8
106
bolt
orange
21
52
105
11
52
106
9
53
101
7
53
102
13
53
103
6
53
104
1
4
SUP snum
sname
status
city
Sl
Smith
20
London
53
105
2
S2
Jones
15
Detroit
53
106
5
S3
Adder
10
54
Chicago
103
7
54
106
13
S4
House
30
Paris
55
103
8
S5
Blake
20
Paris
55
104
9
Gambar 1. 4 Dataabase SuppliecPart
7
Pada database Supplier-Part, primary key untuk relasi Sup adalah <snum>, primary key untuk relasi Pan adalah dan primary key untuk relasi SP adalah <snum, pnum>. Pembaca akan puas dengan sendirinya, karena setiap primary key adalah cukup untuk emngidentifikasi setiap tupel secara unik dalam suatu relasi. Dalam hal ini pada relais SP. Jika snum = 'SI' dan pnum = 101, di sini seharnsnya lebih dari satu tupel yang dapat diketahui. Nilai dari atribut pada gambar 1.4 tupel dengannilai (SI, 101,9). Jika tupel yang lain dengan primary yang sarna, dikatakan (SI, 101, 11) disimpan dalam relasi. Didapat suatu hasil yang membingungkan karena relasi itu tidak diketahui apakah S1 dengan supplay 9 atau 11 pada pan 101 (atau mungkin 20?). PadaDBMS relasional yang berkembang bila ada pesan yang salah akan dihasilkan jika seorang pemakai/user memcoba menyimpan sebuah tupel yang mempunyai sebuah primary key yang sarna dengan yang ada di relasi. Pada banyak mikro komputerimplementasi tupel DBMS dengan primary key yang identik dankeadaan tupel yang identik dapat disimpan dalam suatu relasi tanpa suatu kesalahan. Ini merupakan suatu kelebihan dan dapat ditunjukkan untuk problem yang sarna akan ditunjukkan pada bahasan yang barn pada buku ini. Pada banyak DBMS, indeks suatu file yang berisi relasi tidak dapat dibuat otomatis dan user harns melaksanakan sebuah perintah INDEX untuk membuat sebuah index. Pengindeksan sebuah file mempercepat pelaksanaan atas beberapa perintah. Adalah mungkin memasukkan sebuah indeks ke dalam suatu relasi dengan menggunakan atribut lain dari pada menggunakan primary key. Tipe dari indeks file ini disebut secondary indeks dan digunakan untuk mengurangi waktu akses ketika penempatan data dalam relasi. Contoh yang sederhana dari sebuah file indese ada pada gambar 1. 5. Catatan bahwa relasi antar dirinya sendiri adalah tidak disonir dalam sembarang order & akan menghasilkan baris yang salah, dimana tupel-tupel telah dihapus, tetapi index file disortir. File index mempunyai beberapa struktur & biasanya disusun sebagai struktur pohon sehingga dapat ditelusuri dengan cepat. Supx (File Index)
Sup (File Data)
Record No.
snum
Sup File Record No.
Record No.
snum
sname
status
city
000 1
SI
0006
000 1
S4
House
30
Paris
0002
S2
0004
0002
S5
Blake
20
Paris
0003
S3
0003
0003
S3
Adder
10
0004
S4
0001
0004
S2
Jones
15
Chicago Detroit
0005
S5
0002
0005
Record ini telah dihapus 20 SI Smith
London
0006
Gambar 8
1. 5 Contoh sederhana dari sebuah file index
Database Name: Supplier_Part. Attributes and type: snum char(3), sname char(6), status integer, city char(lO), pnum integer, pname char(6), color char(6), weight integer, qty integer. Relations and : Sup(snum, sname, status, city) <snum>, SP(snum, pnum, qty) <snum, pnum>, Part(pnum, pname, color, weight) .
Gambar 1.6 Model konsepsual dari database SuppliecPart
. CREATE ENTER FILENAME: B:Sup ENTER RECORD STRUCfURE AS FOLLOWS: FIELD NAME,TYPE,WIDTH,DECIMAL PLACES 001 snum,c,3 002 sname,c,6 003 status,n,2 004 city,c,lO 005 INPUT DATA NOW? N
.
USE B:Sup INDEX ON snum TO B:Supx
Gambar 1.7
Pembuatan sebuah relasi dan file index untuk relasi tersebut dalam dBASE II
Banyaknya relasi pada suatu database & atribut khusus yang berhubungan dengan setiap relai tenentu selama proses desain. Tentunya, proses desain memerlukan waktu yang lama. Walaupun begitu, apabila desain telah selesai, pembuatan dtabasedengan suatuDBMSdapatdisusun secaracepat. Dalamdaiabase supplier_Part, struktur database disusun secara lengkap dengan kumpulan statement yang pendek, seperti pada gambar 1. 6. Gambaran singkat dari suatu database disebut model konsepsual dari database dan memenuhi semua informasi yang cukup untuk mem9
buat struktur database yang lengkap. Gambar 1. 7 adalah sebuah contoh bagaimana relasi sup dibuat dalam dBASEII, selama indese file untuk Sup di mana indese berlaku atas primary key. Setiap relasi Supplier_Part database akan dibuat secara similar. Catatan bahwa semua informasi yang diperlukan untuk membuat Sup dikandung dalam model konsepsual. Setelah sebuah relasi terbuat, disebut tidak populer (unpopulated), dan harus memuat tupel pada suatu waktu dengan menggunakan perintah penyimpanan yang cepat. Dalam melihat isi relasi atau semua relasi dalam database, seperti relasi pada SP database yang ditunjukkan dalam gambar 1.4, gagasan atau pikiran pada gambar relasi. Apa yang dapat dilihat akan mengingatkan kita pada isi semua relasi yang dinamis, karena tupel dapat dijumlahkan, dihapus, dimodifikasi selama pembentukkan relasinya. Suatu instance dari suatu relasi adalah penyajian sebagian dari sembarang relasi pada suatu waktu tertentu. Suatu primary key yang terdefinisi untuk suatu relasi adalah juga signifikan, berarti bahwa atribut atau kumpulan atribut, yang membentuk primary key biasanya dicatat jika bentuk matematik dari relasi telah terturlis. Dalam naskah ini atributatribut sebagai primary key, biasanya akan ditulis dengan garis bawah. Sebagai contoh, relasi SP terdefinisi pada gambar 1.6 akan ditulis sebagai SP(snum, pnum, qty), menunjukkan bahwa pasangan dari atribut <snum, pnum> adalah primary key relasi tersebut.
10