Mengenal DBMS

advertisement
BAB I
PENDAHULUAN
A. Deskripsi

Nama Modul

Ruang Lingkup :
Data Base Manajmen Sistem
1. DBMS dan Kegunaannya
2. Komponen Utama DBMS
3. Abstraksi Data
4. Model Basis Data
5. Macam-macam perintah DBMS
Kaitan Modul
Modul ini merupakan modul ketiga yang berfungsi
menyegarkan kembali pemahaman mahasiswa tentang konsep database
Modul ini akan mencapai sasaran pembelajaran secara lebih efektip jika
ditunjang dengan bacaan dengan fokus pada topik “Perancangan basis data”.
Pemahaman tentang konsep database diharapkan membentuk main set
mahasiswa tentang pentingnya taksonomi data dalam sistem organisasi
sebagai proses yang sangat menentukan kualitas sistem informasi.
B. Sasaran Pembelajaaran Modul
Setelah mempelajari modul ini mahasiswa diharapkan:
-
Dapat menjelaskankan konsep database dan merancang sistem
database organisasi sebagai infra struktur arsitektur sistem
informasi
42
BAB II
MATERI PEMBELAJARAN
1. DBMS dan Keuntungannya
Definisi DBMS pada sejumlah literatur sangatlah bervariasi. Secara umum,
DBMS diartikan sebagai suatu program komputer yang digunakan untuk
memasukkan, mengubah, menghapus, memanipulasi, dan memperoleh data
informasi dengan praktis dan efisien.
Dibandingkan dengan sistem yang berbasis kertas, DBMS memiliki 4
keunggulan:
o Kepraktisan: Sistem yang berbasis kertas akan menggunakan kertas yang
sangat
banyak
untuk
menyimpan
informasi,
sedangkan
DBMS
menggunakan media penyimpan sekunder yang berukuran kecil tetapi
padat informasi.
o Kecepatan : Mesin dapat mengambil atau mengubah data jauh lebih cepat
dari manusia.
o Mengurangi kejemuan : Orang cenderung menjadi bosan kalau
melakukan tindakan-tindakan berulang yang menggunakan tangan
(misalnya harus mengganti suatu informasi).
o Kekinian : Informasi yang tersedia pada DBMS akan bersifat mutakhir
dan akurat setiap saat.
Kekurangan sistem pemrosesan berkas yang diatasi dengan basis data telah
diuraikan pada bagian terdahulu. Secara lebih detail, keuntungan basis data terhadap
sistem pemrosesan berkas adalah dalam hal:
o Kemubaziran data terkurangi,
o Integritas data,
o Independensi data,
o Konsistensi data,
o Berbagi data,
o Sekuritas data, dan
o Penggunaan data lebih mudah.
43
Masalah kemubaziran data, integritas data, independensi data, berbagi data,
dan konsistensi data telah dijelaskan pada bagian terdahulu.
Kebanyakan DBMS menyediakan mekanisme pengaturan sekuritas terhadap
basis data berdasarkan wewenang pengguna. Sebagai contoh, si A hanya boleh
membaca suatu data, tetapi si B boleh mengubahnya. Sekuritas data sangat penting
pada basis data, yaitu untuk menghindari pengaksesan data sensitif oleh orang yang
tidak berhak.
Di dalam lingkungan basis data, data lebih mudah digunakan. Pada beberapa
DBMS tersedia fasilitas query yang memudahkan pengguna untuk memperoleh
informasi. Pengguna yang tidak memiliki kemampuan pemrograman pun dengan
mudah bisa menggunakan fasilitas query tersebut. Bagi pemrogram aplikasi,
pembuatan program aplikasi juga dapat dilakukan dengan mudah, jauh lebih mudah
dibandingkan dengan kalau menggunakan bahasa-bahasa konvensional seperti
COBOL dan PORTRAN. Alhasil, keadaan ini dapat meningkatkan produktivitas
pemrograman.
2. Komponen Utama DBMS
Komponen utama DBMS dapat dibagi menjadi 4 macam:
1. perangkat keras,
DBMS
2. data,
3. perangkat lunak, dan
4. pengguna.
Program
Aplikasi
Pengguna Akhir
Program
Aplikasi
Perangkat - lunak
Data
Perangkat - keras
Gambar 1 Komponen-komponen utama sistem basis data
44
Perangkat Keras
Perangkat keras berupa komputer dan bagian-bagian di dalamnya, seperti
prosesor, memori, dan harddisk. Komponen inilah yang melakukan pemrosesan
dan juga untuk menyimpan basis data.
Data
Data di dalam basis data mempunyai sifat terpadu (integrated) dan berbagi
(shared).
o Terpadu berarti bahwa berkas-berkas data yang ada pada basis data saling
terkait, tetapi kemubaziran data tidak akan terjadi atau hanya terjadi sedikit
sekali. Sebagai contoh, berkas PEGAWAI terdiri atas nama, alamat, bagian,
dan gaji pegawai, serta atribut-atribut lainnya dan berkas PELATIHAN
menyatakan kursus atau pelatihan yang diikuti oleh para pegawai.
PEGAWAI
PELATIHAN
NAMA
NAMA
ALAMAT
KURSUS
BAGIAN
GAJI
...
...
Gambar 2 Berkas-berkas pada basis data bersifat terpadu: duplikasi
terhindari
Pada saat mencatat pelatihan yang diikuti oleh seseorang, tentu saja data
seperti bagian tempat pegawai bekerja tidak perlu disertakan, karena informasi
mengenai hal ini bisa diperoleh dari tabel PEGAWAI. Dengan demikian,
kemubaziran dapat dihindari.
o Berbagi Data
Berbagi data berarti bahwa data dapat dipakai oleh sejumlah pengguna. Lebih
tegas lagi, sesuatu data dapat diakses oleh sejumlah pengguna dalam waktu
bersamaan. Sifat ini biasa terdapat pada sistem multiuser (kebalikan dari
sistem yaitu sistem single-user, yakni sitem yang hanya memungkinkan satu
orang yang bisa mengakses suatu data pada suatu waktu).
45
Perangkat Lunak
Perangkat lunak, dalam hal ini DBMS, berkududukan antara basis data
(data yang disimpan dalam harddisk) dan pengguna. Perangkat lunak inilah
yang berperan melayani permintaan-permintaan pengguna.
Pengguna
Pengguna dapat diklasifikasikan menjadi 3 kategori:
1. pengguna akhir
2. pemrogram aplikasi, dan
3. administrator basis data.
Pemrogram aplikasi adalah orang yang membuat program aplikasi yang
menggunakan basis data. Program aplikasi yang dibuat tentu saja sesuai dengan
kebutuhan pengguna.
Pengguna akhir dapat dibagi menjadi 2 macam:
1. pengguna aplikasi, dan
2. pengguna interaktif.
Pengguna aplikasi adalah orang yang mengoperasikan program aplikasi yang
dibuat oleh pemrogram aplikasi.
Pengguna interaktif adalah orang yang dapat memberikan perintah-perintah
berbasa tinggi pada antarmuka basis data yang tersedia (misalnya dengan
menggunakan perintah SELECT, INSERT dan sebagainya) atau melakukan
perintah-perintah melalui antarmuka berbasis menu.
Administrator basis data (DBA/Database Administrator) adalah orang yang
bertanggung-jawab terhadap pengelolaan basis data. Secara lebih detail tugas DBA
adalah sebagai berikut:
o Mengidentifikasi basis data
o DBA menentukan isi basis data
o Menentukan sekuritas basis data.
Setiap
pengguna diberi hak akses terhadap basis data secara tersendiri.
Tidak semua pengguna bisa menggunakan data yang bersifat sensitif. Penentuan
hak akses disesuaikan dengan wewenang pengguna dalam organsasi.
46
o Memantau kinerja sistem
Secara periodik DBA memantau kinerja DBMS. Termasuk dalam hal
ini adalah pemantauan waktu tanggapan selama beban puncak.
Informasi yang diperoleh dapat digunakan untuk menentukan perlu
tidaknya pengembangan sistem perangkat keras di masa mendatang
ataupun melakukan perubahan organisasi di dalam basis data.
o Merencanakan backup dan recovery
DBA-lah yang membuat panduan, prosedur serta standar untuk
melakukan pencadangan data (backup) terhadap basis data. Begitu juga
untuk proses pemulihan data (recovery) bila terjadi kerusakan data
pada sistem.
o Mengikuti perkembangan produk
DBA juga bertanggung jawab terhadap perkembangan produk (versi
DBMS yang baru, tool, dan perangkat pendukung) sehingga dapat
memberikan usulan kepada organisasi untuk melakukan hal-hal yang
dipandang perlu, seperti melakukan pelatihan kepada pemrogram
aplikasi.
3. Abstraksi Data
Untuk mendukung kepraktisan, DBMS menyediakan pandangan abastrak
terhadap data bagi pengguna. DBMS berusaha menyembunyikan detail tentang
bagaimana data disimpan dan dipelihara. Namun tentu saja hal ini dilakukan
dengan sedapat mungkin mengusahakan data agar dapat diakses secara efisien.
Abstraksi data dalam DBMS biasa dibagi menjadi tiga lapis, yaitu lapis
fisis,lapis, konseptual, dan lapis pandangan.

Lapis fisis merupakan lapis terendah dalam abstraksi data. Lapis ini
menjelaskan bagaimana data sesungguhnya disimpan. Pada lapis inilah
struktur data dijabarkan secara rinci.

Lapis konseptual bersifat lebih tinggi daripada lapis fisis. Lapis ini
menjabarkan data apa saja yang sesungguhnya disimpan pada basis data,
47
dan juga menjabarkan hubungan-hubungan antardata. Level ini biasa
dipakai oleh DBA.

Lapis pandangan merupakan lapis tertinggi pada abstraksi data. Pada
lapis ini pengguna hanya mengenal struktur data yang sederhana, yang
berorientasi pada kebutuhan pengguna. Data yang dikenal oleh masingmasing pengguna bisa berbeda-beda dan barangkali hanya mencakup
sebagian dari basis data.
Pandangan 1
Pandangan 2
Pandangan 3
Lapis
Konseptual
Lapis
Fisis
Gambar 3 Tiga lapis abstraksi data
Gambaran struktur data bertipe record seperti berikut:
Pegawai = RECORD
Nama : STRING;
Alamat
: STRING;
Bagian : STRING;
Gaji
: LongInt;
END:
Pada contoh ini rekaman bernama Pegawai berisi empat buah medan data
(Nama, Alamat, Bagian, dan Gaji). Setiap medan memiliki nama, dan setiap nama
memiliki tipe data.
Pada level fisis, Pegawai dapat dijabarkan sebagai blok data yang terletak
pada lokasi berurutan (dalam satuan byte). Pada lapis konseptual, masing-masing
rekaman dijabarkan dengan definisi tipe data. Pada lapis pandangan, pengguna
tertentu hanya boleh mengakses data tertentu. Sebagai contoh, seseorang yang
menangani penggajian tentu saja berhak megetahui gaji seseorang dan bahkan
mengubahnya, tetapi orang yang bekerja di bagian lain tentu tidak boleh melihatnya.
48
4. Model Basis Data
Model basis data menyatakan hubungan antar rekaman yang tersimpan dalam
basis data. Beberapa literatur menggunakan istilah struktur data logis untuk
menyatakan keadaan ini.
Model dasar yang paling umum ada 3 macam, yaitu:
1. hirarkis
2. jaringan, dan
3. relasional.
Model yang lebih baru dikembangkan oleh sejumlah periset, yang dapat
disebut sebagai sistem pascarelasional [3]. Beberapa di antaranya merupakan
pengembangan dari pendekatan relasional, sedangkan yang lain benar-benar
menggunakan pendekatan yang sama sekali berbeda. Beberapa nama yang sedang
dikembangkan oleh para periset, antara lain:

DBMS deduktif,

DBMS pakar,

DBMS semantik,

DBMS berorientasi objek,

DBMS relasional universal.
Beberapa produk sistem berorientasi objek telah beredar di pasar, antara lain
OpenODB (Hewlett-Packard Corporation) dan ObjectStore (Object Design
Corporation). Beberapa produk di lingkungan PC juga menuju ke arah ini.
4.3
Model Hirarkis
Model hirarkis biasa disebut model pohon, karena menyerupai pohon yang
dibalik. Model ini menggunakan pola hubungan orangtua-anak. Setiap simpul (biasa
dunyatakan dengan lingkaran atau kotak) menyatakan sekumpulan medan. Simpul
yang terhubung ke simpul pada level di bawahnya disebut orang tua. Setiap
orangtua bisa bisa memiliki satu (hubungan 1:1) atau beberapa anak (hubungan
1:M), tetapi setiap anak hanya memiliki satu orangtua. Simpul-simpul yang
dibawahi oleh simpul orangtua disebut anak. Simpul orangtua yang tidak memiliki
orangtua disebut akar. Simpul yang tak memiliki anak disebut disebut daun.
49
A
B
C
F
D
G
H
E
I
J
K
L
M
Adapun hubungan antara anak dan orangtua disebut cabang. Gambar 4
memperlihatkan contoh model hirarkis, yang terdiri atas 4 level dan 13 simpul.
Level 1 ................................................
Level 2 ..........
Level 3 ................
Level 4 ............................................................................................
Gambar 4 Contoh model hirarkis.
Pada contoh di atas, A berkedudukan sebagai akar, dan berkedudukan sebagai
orangtua dari simpul B, C, D, dan E. Keempat simpul yang disebutkan belakangan
ini disebut sebagai anak simpul A. C juga bisa berkedudukan sebagai orangtua,
yaitu orangtua F dan G. Adapun simpul F, G, H, I, J, L, dan M disebut sebagai daun.
Contoh yang lebih konkret dapat dilihat pada Gambar 5. Gambar ini
memperlihatkan hubungan dosen dan kelas yang diampu, serta mahasiswa yang
mengikuti kelas masing-masing.
Dosen
Siti
Nurbaya
Pengantar
Basis Data
Rud
i
Asti
Dosen
Ashadi
Pemrogram
an
COBOL
Din
a
Din
a
Edi
Matematik
a1
Ita
Edi
Gambar 5. Contoh model hirarkis
50
Contoh produk DBMS
yang menggunakan model hirarkis adalah IMS
(Information Management System), yang dikembangkan oleh dua perusahaan IBM
dan Rockwell International Corporation.
4.2. Model Jaringan
Model jaringan distandarisasikan pada tahun 1971 oleh Data Base Task Group
(DBTG). Itulah sebabnya disebut model DBTG.Model ini juga disebut model
CODASYL (Conference on Data Systems Languages), karena DBTG adalah bagian
dari CODASYL.
Model ini menyerupai model hirarkis, dengan perbedaan suatu simpul anak
bisa memiliki lebih dari satu orangtua. Oleh karena sifatnya yang demikian, model
ini bisa menyatakan hubungan 1:1 (satu orangtua punya satu anak), 1:M (satu
orangtua punya banyak anak), maupun N:M (Beberapa anak bisa mempunyai
beberapa orangtua).
Pada model jaringan, orangtua disebut pemilik dan anak disebut anggota.
Gambar 6 merupakan model jaringan yang didasarkan oleh model hirarkis
pada Gambar 5.
Dosen
Siti
Nurbaya
Pengantar
Basis Data
Rud
i
Asti
Dosen
Ashadi
Pemrograman
COBOL
Din
a
Edi
Matematika 1
Ita
Ita
Gambar 6. Model jaringan
Pada produk DBMS yang menggunakan model jaringan adalah CAIDMS/DB, dari Computer Associates International Inc. (sebelumnya dikenal sebagai
51
IDMS – Integrated Database Management System – yang dikembangkan oleh
Cullinet Software Inc.).
4.3 Model Relasional
Model relasional merupakan model yang paling sederhana sehingga mudah
digunakan dan dipahami oleh pengguna, serta merupakan yang paling populer
saat ini. Model ini menggunakan sekumpulan tabel berdimensi dua (yang disebut
relasi atau tabel), dengan masing-masing relasi tersusun atas tupel atau baris dan
atribut. Relasi dirancang sedemikian rupa
sehingga dapat menghilangkan
kemubaziran data dan menggunakan kunci tamu untuk berhubungan dengan relasi
lain. Contoh produk DBMS yang menggunakan model jaringan adalah CAIDMS/DB, dari Computer Associates International
Inc. (sebelumnya dikenal
sebagai IDMS – Integrated Data base Management System – yang dikembangkan
oleh Cullinet Software Inc.)
DBMS yang bermodelkan relasional biasa disebut RDBMS (Relational Database
Management System).
Gambar 7 memperlihatkan istilah relasi, dan atribut dan padanannya dengan
istilah-istilah lain yang populer di kalangan pemrograman dan sejumlah pengguna
(terutama yang bekerja dengan SQL).
Model Relasional
Pemrograman
Pengguna
Relasi
Berkas
Tabel
Tupel (baris)
Rekaman
Baris
Atribut
Medan
Kolom
Gambar 7. Padanan istilah relasi, tupel dan atribut.


Meskipun relasi dikatakan sama dengan tabel, relasi pada sejumlah literatur sering
disebut saat membicarakan struktur logis dan tabel adalah nama yang sering
disebut pada basis data fisi.
Pada buku ini, istilah tabel terkadang digunakan untuk menggantikan relasi, atau
sebaliknya.
52
Gambar 8. merupakan bentuk relasional berdasarkan contoh model hirarkis
dan jaringan di depan.
Nama_Dosen
Kelas
Mahasiswa
Siti Nurbaya
Pengantar Basis Data
Rudi
Siti Nurbaya
Pengantar Basis Data
Asti
Siti Nurbaya
Pengantar Basis Data
Dina
Siti Nurbaya
Pemrograman COBOL
Dina
Siti Nurbaya
Pemrograman COBOL
Edi
Ashadi
Matematika I
Ita
Ashadi
Matematika I
Edi
Gambar 8. Model relasional
Pada prakteknya, relasi pada Gambar 8. akan dinormalisasikan sehingga akan
berbentuk beberapa tabel yang saling terhubung. Contoh model relasional seperti ini
dapat dilihat pada Gambar 9. Pada gambar ini terdapat sebuah relasi. Relasi yang
terbawah menggunakan kunci tamu berupa mahasiswa (NO_MHS) dan kode
matakuliah (KODE_MK) untuk menghubungkan diri ke kedua relasi di atasnya.
Dengan kata lain, berdasarkan data pada relasi terbawah, informasi seperti nama
mahasiswa (NAMA_MHS) dan matakuliah (NAMA_MK) bisa diperoleh.
NO_MHS
NAMA_MHS
55
Ahmadi
56
Rina
57
Budi
KODE_MK
NAMA_MK
DB001
Pengantar Basis Data
DB002
Basis Data Lanjut
PI001
Teknik Multimedia
NO_MHS
KODE_MK
NILAI
55
DB001
A
55
PI001
B
56
DB001
B
57
DB001
A
57
DB002
A
Gambar 9 Beberapa relasi pada model relasional
53
Ada beberapa sifat yang melekat pada suatu relasi:
5. Tak ada tupel (baris) yang kembar.
6. Urutan tupel tidaklah penting (tupel-tupel dapat dipandang dalam sebarang
urutan)
7. Setiap atribut memiliki nama yang unik
8. Letak atribut bebas (urutan atribut tidak penting)
9. Setiap atribut memiliki nilai tunggal dan jenisnya sama untuk semua tupel.
Pada model relasional, jumlah tupel suatu relasi disebut kardinalitas dan
jumlah atribut suatu relasi disebut derajat (degree) atau terkadang disebut arity.
Relasi yang berderajat dua disebut binary dan relasi yang berderajat tiga disebut
ternary. Relasi yang berderajat n disebut n-ary.
Istilah lainnya yang terdapat pada model relasional adalah domain. Domain
adalah himpunan nilai yang berlaku bagi suatu atribut.
Sebagaimana dikatakan di depan, tupel-tupel yang terdapat pada suatu relasi
tidak ada yang kembar. Sesungguhnya bagian yang menyebabkan tidak adanya tupel
yang kembar adalah yang disebut kunci primer. Sebagai contoh, pada relasi yang
terlihat pada Gambar 10, kunci primer adalah gabungan dari atribut NO_MHS dan
KODE_MK. Kunci gabungan semacam ini disebut kunci komposit.
54
Domain NILAI
A
B
C
D
E
Relasi
NO_MHS
KODE_MK NILAI
55
DB001
A
55
PI001
B
56
DB001
B
57
DB001
A
57
DB002
A
Kardinalitas
Sebuah Tupel
Atribut
Gambar 10. Relasi tupel, atribut, dan berbagai istilah lainnya.
Contoh produk DBMS terkenal yang menggunakan model relasional antara
lain adalah:

DB2 (IBM),

Rdb/VMS (Digital Equipment Corporation),

Oracle (Oracle Corporation),

Informix (Informix Corporation),

Ingres (ASK Group Inc.),

Sybase (Sybase Inc.),

Di lingkungan PC, produk-produk berbasis relasional yang cukup terkenal
antara lain adalah:

Keluarga R:Base (Microrim Corporation), antara lain berupa R:base 5000,

Keluarga dBASE (Ashton-Tate, sekarang bagian dari Borland International),
antara lain dBASE III Plus, dBASE IV, serta Visual dBASE.

Microsoft SQL (Microsoft Corporation).

Visual FoxPro (Microsoft Corporation).
55
5. Macam Perintah DBMS
Semua DBMS paling tidak mempunyai dua macam perintah yang digunakan
untuk mengelola dan mengorganisasikan data, yaitu:
1. Bahasa Definisi Data (DDL/Data Definition Language), dan
2. Bahasa Manipulasi Data (DML/Data Manipulation Language).
Selain kedua macam perintah di atas, pada kebanyakan DBMS sekarang juga
terdapat perintah yang tergolong DCL (Data Control Language) yang berkaitan
denga pengaturan sekuritas terhadap basis data.
5.1 Bahasa Definisi Data
DDL adalah perintah-perintah yang biasa digunakan oleh administrator basis
data (DBA) untuk mengidentifikasikan skema ke DBMS. Skema adalah deskripsi
lengkap tentang struktur medan, rekaman, dan hubungan data pada basis data. Tugas
utama skema adalah menjabarkan struktur basis data kepada DBMS.
Secara lebih detail, beberapa hal yang perlu dijabarkan pada DBMS:

Nama basis data,

Nama seluruh berkas pada basis data,

Nama rekaman dan medan,

Deskripsi berkas, rekaman, dan medan,

Nama medan kunci,

Nama indeks dan medan yang menjadi indeks.
Indeks merupakan suatu mekanisme yang lazim digunakan pada basis data, yang
memungkinkan pengambilan data dapat dilakukan dengan cepat.
Hal-hal lain seperti penentuan:

ukuran basis data, dan

rutin validasi dan penyunting yang dilekatkan pada berkas dalam basis
databersifat spesifik terhadap DBMS yang digunakan.
56
DDL juga dipakai untuk mendefinisikan subskema. Subskema adalah
pandangan (view) bagi pengguna terhadap basis data. Subskema merupakan
himpunan bagian dari skema. Dengan kata lain, subskema bisa mencakup sebagian
atau seluruh bagian skema. Bila suatu item tak tercantum dalam subskema seseorang
pengguna, maka item tersebut tak tersedia bagi pengguna bersangkutan. Subskema
dapat menjadi mekanisme, pengamanan sistem basis data, yakni dengan mengatur
hak pengaksesan item-item dalam basis data.
DDL juga digunakan untuk menciptakan, mengubah, dan menghapus basis
data.
Skema dapat dibayangkan sebagai suatu kerangka yang tidak tergantung nilai.
Berbagai nilai yang valid dapat diterapkan pada kerangka. Skema bersifat relatif tetap,
sementara nilai-nilainya dapat berubah dari suatu saat ke saat yang lain.
Skema
NAMA
ALAMA
T
Subskema
NAMA
BAGIAN
BAGIAN
GAJI
Gambar 11. Subskema adalah himpunan bagian dari skema
Basis
Data
Skema
Subskem
a
Subskem
a
Pengguna 1
Pengguna 2
Subskem
a
Pengguna N
.....
57
Gambar 12.Basis data beserta skema dan sejumlah subskema
Sebuah basis data hanya bisa mempunyai sebuah skema, tetapi bisa memiliki banyak
subskema, tergantung oleh jumlah pengguna basis data, sebagaimana diperlihatkan
Gambar 12.
5.2 Bahasa Manipulasi Data (DML)
DML
adalah
perintah-perintah
yang
digunakan
untuk
mengubah,
memanipulasi, dan mengambil data pada basis data. Tindakan seperti mengahpus,
mengubah, dan mengambil data menjadi bagian dari DML. DML pada dasarnya
dibagi menjadi dua:

Prosedural, yang menuntut pengguna data apa saja yang diperlukan
dan bagaimana cara mendapatkannya.

Nonprosedural, yang menuntut pengguna menentukan data apa saja
yang diperlukan, tetapi tidak perlu menyebutkan cara mendapatkannya.
DML nonprosedural menawarkan kemudahan bagi pengguna dalam
mempelajarinya dan juga dalam menggunakannya daripada DML prosedural.
Namun, karena pengguna tidak tahu cara mendapatkan data, DML non prosedural
terkadang kurang efisien dibandingkan DML prosedural, untuk masalah tertentu.
Ada dua cara untuk mengakses data pada basis data. Pertama, dengan
mengetikkan perintah yang ditujukan kepada DBMS untuk memanipulasi suatu
rekaman atau suatu data. Biasanya, DBML yang digunakan bersifat nonprosedural.
Kedua, melalui program aplikasi yang menerbitkan instruksi-instruksi internal
(disebut pernyataan melekat/embedded statement) ke DBMS untuk mengambil data
dan memberikan hasil ke program. Pada bentuk kedua ini, bahasa perograman yang
digunakan bisa saja berupa bahasa-bahasa pemrograman konvensional seperti C,
COBOL, dan FORTRAN yang menggunakan pendekatan prosedural, atau
menggunakan bahasa yang spesifik terhadap DBMS.
Bahasa pemrograman seperti COBOL, C, dan FORTRAN yang digunakan
untuk membuat aplikasi dapat mengakses data pada basis data disebabkan oleh
58
tersedianya antarmuka bahasa host (yang merupakan bagian DBMS). Model
antarmuka ini diperlihatkan pada Gambar 13.
Program
Aplikasi
COBOL
DBMS
Antarmuka
Bahasa host
Basic
data
Gambar 13 Antarmuka bahasa host
Instruksi yang merupakan bagian dari DML dikodekan pada program dan
kelak dikonversikan oleh antarmuka bahasa host ke dalam suatu kode khusus . Kode
khusus inilah yang menjadi penghubung antara program aplikasi dan DBMS. Kode
berikut memperlihatkan contoh program dalam bahasa host yang berupa COBOL
pada lingkungan VAX/VMS (Digital equipment Corporation) yang menggunakan
pernyataan melekat (embedded statement) – pernyataan yang diawali kata EXEC
SQL – untuk mengakses data pada basis data Rdb/VMS.
IDENTIFICATION DIVISION.
PROGRAM-ID.TESSQL.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
*
EXEC SQL INCLUDE SECTION.
*
EXEC SQL INCLUDE SQLCA END-EXEC.
*
01 NIP
PIC X(6).
01 NAMA
PIC X(25).
01 ALAMAT
PIC X(35).
01 KOTA
PIC X(15).
01 SAKLAR
PIC 9.
88 AKHIR
VALUE 1.
*
PROCEDURE DIVISION.
PROGRAM-UTAMA.
EXEC SQL DECLARE DATABASE FILENAME SQL_PEGAWAI ENDEXEC.
EXEC SQL WHENEVER NOT FOUND GO TO AKHIR-DATA END-EXEC.
*
59
DISPLAY ‘NIP – NAMA – ALAMAT – KOTA’
EXEC SQL DECLARE TMP CURSOR FOR SELECT NIP,
NAMA, ALAMAT, KOTA FROM PEGAWAI END-EXEC.
EXEC SQL OPEN TMP END-EXEC.
PERFORM AMBIL-DATA UNTIL AKHIR.
AMBIL-DATA.
EXEC SQL FETCH TMP INTO :NIP, :NAMA,
:ALAMAT, :KOTA END-EXEC.
DISPLAY NIP, ‘ ‘, NAMA, ALAMAT, KOTA.
AKHIR-DATA.
DISPLAY ‘*** Akhir data’
STOP RUN.
Secara khusus, bagian DML ada yang disebut dengan DQL (Dalam literatur
terkadang DQL dibedakan dengan DML). DQL sering hanya disebut bahasa query.
DQL adalah fasilitas yang memungkinkan pengguna dengan pengetahuan komputer
yang terbatas ataupun tidak mengetahui bahasa pemrograman dapat meminta
informasi terhadap basis data. Sebagai contoh, pengguna dapat memberikan
perintah:
SELECT NIP, NAMA, ALAMAT, TGL_MASUK FROM KARYAWAN ;
WHERE TGL_MASUK < “01/01/1983”
Untuk memperoleh informasi NIP, NAMA, ALAMAT, TGL_MASUK pada tabel
KARYAWAN, khusus untuk rekaman dengan TGL_MASUK kurang dari 1 Januari
1983. Perlu diketahui, contoh di atas berlaku pada Visual dBASE dan Visual
FoxPro, sedangkan pada DBMS lain ada kemungkinan sedikit berbeda (dalam hal
tata aturan penulisan perintahnya).
Bahwa query jauh lebih efisien daripada bahasa-bahasa pemrograman
Query sesungguhnya berarati pertanyaan atau permintaan. Istilah ini tetap dipertahankan dalam
bentuk asli, karena telah populer di kalangan pengguna DBMS di Indonesia.
konvensional seperti COBOL, C, dan BASIC, karena jumlah instruksi yang
diperlukan lebih sedikit. Sebagai perbandingan, kode setara dengan perintah query
di atas dalam bahasa COBOL adalah seperti berikut
60
OPEN INPUT KARYAWAN
BACA_BERULANG.
READ KARYAWAN
IF TGL _MASUK GREATER THAN OR EQUAL “01/01/1983”
GO TO BACA –BERULANG.
DQL juga dapat berupa suatu antarmuka yang memudahkan pengguna dalam
memperoleh informasi dari basis data. Salah satu antarmuka DQL adalah QBE
(query by example), sebagaimana diperlihatkan pada gambar 13.
Gambar 13. Salah satu model query by example
Contoh di depan menggunakan fasilitas query milik Visual dBASE 5.5.
Dengan mengisikan data seperti pada gambar di atas (yaitu <{01/01/1983}) pada
kolom TGL_MASUK, maka akan didapatkan rekaman-rekaman dengan isi
TGL_MASUK kurang dari tanggal 1 Januari 1983. Dengan kata lain, query di atas
dipakai untuk memperoleh data pegawai yang masuk ke perusahaan sebelum tanggal
1 Januari 1983. Dengan menggunakan antarmuka seperti ini, pengguna tidak perlu
tahu kaidah perintah SELECT, sebagaimana pada contoh di depan.
61
Contoh program Visual FoxPro yang memperlihatkan penggunaan DDL,
DML, dan DQL dapat dilihat di bawah ini. Perlu diketahui, pernyataan yang di awali
dengan simbol * merupakan komentar.
* --------------------------------------------------------------------------------------* Program: TESSQL.PRG
*
* Contoh program yang menggunakan DDL, DML dan DQL
*
* Perangkat lunak: Visual FoxPro
* --------------------------------------------------------------------------------------* Mematikan konfirmasi
SET SAFETY OFF
* DDL – Menciptakan basis data bernama AKADEMIS
CREATE DATABASE AKADEMIS
* DML – Membuka basis data
OPEN DATABASE AKADEMIS
* DDL – Menciptakan tabel MAHASISWA
CREATE TABLE MAHASISWA (;
NIM CHAR (6), ;
NAMA CHAR (25), ;
TGL_LAHIR DATE, ;
KODE_JUR CHAR (2) )
* DDL – Menciptakan tabel JURUSAN
CREATE TABLE JURUSAN (;
KODE_JUR CHAR (2), ;
NAMA_JUR CHAR (20))
* DML – Menambahkan empat baris data ke MAHASISWA
INSERT INTO MAHASISWA ;
VALUES (‘950001’, ‘RIDWAN SAIDI’, {06/01/1977}, ‘TK’)
62
INSERT INTO MAHASISWA ;
VALUES (‘950002’, ‘ASTI PRATIWI’, {12/07/1977}, ‘TK’)
INSERT INTO MAHASISWA
VALUES (‘950003’, ‘SITA DIAN UTAMI’, {05/03/1978}, ‘TI’)
INSERT INTO MAHASISWA
VALUES (‘950004’, ‘FARDI EFENDI’, {01/01/1977}, ‘TK’)
* DML- Menambahkan dua baris data ke JURUSAN
INSERT INTO JURUSAN ;
VALUES (‘TI’, ‘Teknik Informatika’)
INSERT INTO JURUSAN ;
VALUES (‘TK’, ‘Teknik Komputer’)
* DQL – Menampilkan isi seluruh tabel MAHASISWA dan
*
dilengkapi dengan nama jurusan yang diambil
*
dari tabel JURUSAN
SELECT NIM, NAMA, TGL_LHR, NAMA_JUR ;
FROM MAHASISWA, JURUSAN;
WHERE MAHASISWA. KODE_JUR = JURUSAN.KODE_JUR
* DML: Menutup basis data MAHASISWA
CLOSE DATABASES
* DDL – Menghapus basis data AKADEMIS dan seluruh tabel
*
yang terkait
DELETE DATABASE AKADEMIS DELETETABLES
* --- Akhir TESSQL.PRG
63
Download