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 com-pany, 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 beru-lang-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 bersama-sarna 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.
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 meru-pakan 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 meng-implemantasikan 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
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 him-punan dengan anggota n-tupel dari <dl, d2, ..., dn>, 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 menunjuk-kan 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 mempu-nyai 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 101 mengambil 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 bolt black 3
102 nut blue 9
Sebuah Relasi -1103 carn red 11
104 screw green 4 Sebuah Tupel
.
I(
105 nut red 13 )106 bolt orange 21 "
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.
"Dunia nyata" entitas sebuah atribut dari entitas (nama sebuah file ) (field di dalam record)
PART
't
pnum pname color weight
101 bolt black 3
102 nut blue 9
103 cam red 11
Saturecordl 104 screw green 4 I File
105 nut red 13
3. lnfonnasi padapartnumberdan kuantitaspada setiappartyangdisuplayoleh
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.
PART
pnum pname color
SUP
5P
Gambar 1. 4 Dataabase SuppliecPart
101 bolt black 3 102 nut blue 9 103 carn red 11 104 screw green 4 105 nut red 13 106 bolt orange 21
snum sname status city
Sl Smith 20 London
S2 Jones 15 Detroit
S3 Adder 10 Chicago
S4 House 30 Paris
S5 Blake 20 Paris
snum pnum qyt
51 101 9 51 102 4 51 103 2 51 106 3 52 101 3 52 102 8 52 105 11 52 106 9 53 101 7 53 102 13 53 103 6 53 104 1 53 105 2 53 106 5 54 103 7 54 106 13 55 103 8 55 104 9
Pada database Supplier-Part, primary key untuk relasi Sup adalah <snum>, primary key untuk relasi Pan adalah <pnum> 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 siniseharnsnya 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 mem-bingungkan 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 Sup File Record
No. snum Record No. 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 Chicago
0004 S4 0001 0004 S2 Jones 15 Detroit
0005 S5 0002 0005 Record ini telah dihapus
0006 SI Smith 20 London
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 <Primary Keys>:
Sup(snum, sname, status, city) <snum>, SP(snum, pnum, qty) <snum, pnum>, Part(pnum, pname, color, weight) <pnum>.
Gambar 1.6 Model konsepsual dari database SuppliecPart
.
CREATEENTER 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 memer-lukan 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
mem-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 pembentuk-kan 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 atribut-atribut 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.