Rabu, 28 November 2012
DATABASE
A. PENGANTAR DASAR DATABASE
Dalam kehidupan sehari-hari kita sering
membahas mengenai data dan informasi. Informasi berasal dari kumpulan data
yang disimpan secara terstruktur pada sebuah sistem yang dikenal dengan basis
data (database). Pada bab awal ini akan dibahas tentang definisi,
komponen sistem basis data, sistem file, abstraksi data, bahasa basis data,
database administrator dan struktur sistem
|
DEFINISI
Komponen-komponen pada sebuah sistem basis data
antara lain:
·
Perangkat keras
·
Sistem operasi
·
Basis data
·
DBMS (Database Management System)
·
Pemakai
·
Aplikasi lain
Sistem
Basis Data dan Sistem File
Pada
sebuah institusi, data merupakan salah satu hal yang sangat penting. Setiap
bagian/divisi dari institusi memiliki data sendiri-sendiri. Tapi setiap bagian
pun membutuhkan sebagian data dari bagian yang lain. Hal ini yang biasa dikenal
sebagai “shared data”. Setiap divisi memiliki aplikasi sendiri-sendiri dalam
melakukan manipulasi dan pengambilan data tersebut. Setiap aplikasi memiliki
file-file dalam sistem operasi yang digunakan untuk menyimpan data-data.
Seiring dengan berkembangnya institusi, bertambahnya bagian/divisi, bertambah
pula data dan aplikasi yang digunakan. Bertambahnya aplikasi, bertambah pula
file-file yang dibuat.
Gaya sistem pemrosesan-file tersebut menyebabkan setiap
data disimpan dalam bentuk record dalam berbagai macam file, dan diperlukan
aplikasi yang berbeda dalam melakukan pengambilan record dari, dan penambahan
record ke dalam file. Hal ini berlaku pada masa sebelum adanya Sistem Basis
Data (DBMS).
Menyimpan data dalam bentuk file yang berbeda-beda,
memiliki kekurangan-kekurangan:
·
Data
redundancy dan inconsistency.
Dikarenakan programer yang berbeda membuat file dan
aplikasi masing-masing, menyebabkan beragam format dan aplikasi yang dibuat.
Bahkan, aplikasi pun dibuat menggunakan bahasa pemrograman yang berbeda-beda.
Lebih jauh lagi, data atau informasi yang sama bisa terdapat dalam beberapa
file yang berbeda. Ini yang disebut dengan redundancy. Redundancy data ini lama
kelamaan akan menyebabkan inconsystency dari data.
·
Kesulitan
dalam pengaksesan data.
Dikarenakan setiap aplikasi memiliki file tersendiri
untuk penyimpanan dan pengambilan data, maka jika suatu bagian dari institusi
membutuhkan data dari bagian lain, akan menemui kesulitan. Hal ini dikarenakan
aplikasi yang dimiliki bagian tersebut, tidak dapat membaca file yang terdapat
di bagian lain.
·
Isolasi
data.
Dikarenakan data tersebar dalam berbagai macam file,
dan file tersebut dalam beragam format, pembuatan aplikasi baru akan terasa
sulit ketika harus membaca format dari masing-masing file tersebut.
·
Masalah
integritas.
Data yang disimpan harus memenuhi hal yang dinamakan
dengan consistency constraint. Jika sebuah constraint berubah, maka seluruh
aplikasi yang digunakan harus mengakomodasinya. Masalah akan muncul, jika
constraint melibatkan beberapa data dari file yang berbeda-beda.
·
Masalah
keamanan.
Tidak semua pengguna dari
basis data dapat mengakses semua data. Hal ini akan sulit dilakukan jika
menggunakan gaya penyimpanan data dalam file.
·
Abstraksi Data
Tujuan
utama dari sistem basis data adalah untuk menyediakan fasilitas untuk view data
secara abstrak bagi penggunanya. Namun bagaimana sistem menyimpan dan mengelola
data tersebut, hanya diketahui oleh sistem itu sendiri. Abstraksi data
merupakan level dalam bagaimana melihat data dalam sebuah sistem basis data.
Berikut ini tiga level abstraksi data:
1. Level
fisik
Merupakan
level terendah pada abstraksi data yang menunjukkan bagaimana sesungguhnya data
disimpan. Pada level ini pemakai melihat data sebagai gabungan dari struktur
dan datanya sendiri.
2. Level
lojik
Merupakan
level berikutnya pada abstraksi data, menggambarkan data apa yang disimpan pada
basis data dan hubungan apa saja yang ada di antara data tersebut.
3. Level
view
Merupakan
level tertinggi dari abstraksi data yang hanya menunjukkan sebagian dari basis
data. Banyak user dalam sistem basis data tidak akan terlibat dengan semua data
atau informasi yang ada atau yang disimpan. Para user umumnya hanya membutuhkan
sebagian data atau informasi dalam basis data yang kemunculannya di mata user
diatur oleh aplikasi end user.
1)
Database Administrator
Salah satu alasan dari
pemanfaatan DBMS adalah untuk mendapatkan kontrol yang terpusat atas data dan
program yang mengakses data tersebut. Orang yang memiliki kontrol atas sistem
seperti yang telah disebutkan tersebut adalah database administrator (DBA).
Fungsi-fungsi
DBA antara lain:
§ Definisi
skema
§ Definisi
struktur penyimpanan dan metode akses
§ Modifikasi
skema dan organisasi fisik
§ Memberikan
otorisasi untuk akese data
§ Spesifikasi
integritas constraint
·
Struktur Sistem
Sebuah sistem
basis data terbagi ke dalam beberapa modul yang masing-masing mempunyai
tanggung jawab dalam membentuk struktur sistem secara keseluruhan. Beberapa fungsi
dari sistem basis data mungkin telah diberikan oleh sistem operasi. Tetapi
dalam sebagian besar kondisi, sistem operasi hanya menyediakan servis-servis
dasar dan sistem basis data harus dibangun di atasnya.
Gambar 1-1 Struktur Sistem Basis Data
Komponen-komponen
fungsional dari sebuah sistem basis data dibagi menjadi dua, yaitu komponen query
processor dan komponen storage manager.
Query
processor terdiri atas:
·
DML
compiler,
menerjemahkan perintah DML pada suatu query ke dalam instruksi level rendah
yang dimengerti oleh mesin evaluasi query. Dengan kata lain, DML compiler
berusaha mengubah suatu permintaan user menjadi bentuk yang ekivalen namun
lebih efisien sekaligus juga menentukan sebuah strategi yang tepat untuk
mengeksekusi query tersebut.
·
Embedded
DML precompiler,
mengkonversi perintah DML yang embed pada sebuah program aplikasi ke procedure
call yang normal dalam bahasa host. Precompiler ini harus
nerinteraksi dengan DML compiler untuk menghasilkjan kode yang sesuai.
·
DDL
interpreter,
menginterpretasikan perintah DDL dan mencatatnya dalam sekumpulan tabel yang
mengandung metadata.
·
Query
evaluation engine,
mengeksekusi instruksi level rendah yang dihasilkan oleh DML compiler.
Komponen
storage manager menyediakan antarmuka antara data level rendah yang tersimpan
dalam basis data dan program aplikasi serta query yang diberikan ke sistem.
Yang termasuk komponen ini adalah:
·
Manajer
otorisasi dan integritas,
menguji integritas dari constraint yang ada serta otoritas user untuk
mengakses data.
·
Manajer
transaksi,
meyakinkan basis data tetap pada kondisi konsisten (benar) saat terjadi
kegagalan sistem serta meyakinkan bahawa eksekusi dari transaksi yang konkuren
(terjadi “bersamaan”) berlangsung tanpa adanya konflik.
·
Manajer
file, mengelola
alokasi ruang pada disk penyimpanan struktur data yang digunakan untuk mewakili
informasi yang disimpan pada disk.
·
Manajer
buffer,
bertanggung jawab untuk mengambil data dari disk penyimpanan ke dalam memori
utama serta menetukan data yang mana yang akan ditempatkan di memory
·
Bahasa Basis Data
Sebuah
sistem basis data menyediakan dua macam bahasa yang berbeda. Pertama untuk
menspesifikasikan skema basis data (DDL) dan yang kedua untuk melakukan
perubahan dalam basis data (DML). Selain itu juga ada select statement (query)
yang digunakan untuk mengambil data yang ada di dalam database.
I.
Data Definition Language (DDL)
Data Definition Language ini Berfungsi untuk mendefinisikan struktrur
sebuah tabel, tipe data setiap field dan constraint yang berlaku pada data yang
tersimpan di dalam sebuah tabel. Hasil dari kompilasi DDL adalah kumpulan tabel
yang tersimpan pada sebuah file khusus yang disebut dengan kamus data (data
dictionary) atau data directory.
Kamus data merupakan sebuah file yang berupa metadata,
yaitu data tentang data. Kamus data ini akan selalu diakses pada suatu operasi
basis data sebelum suatu file data yang sesungguhnya diakses.
DDL terdiri dari CREATE,
ALTER, dan DROP yang akan dijelaskan sebagai berikut :
Membuat tabel
(CREATE TABLE)
Query untuk membuat tabel (create
table) adalah :
|
Keterangan :
nama_field1,
nama_field2 adalah nama kolom (field) yang akan ada di
dalam tabel.
tipe_data adalah tipe data yang bisa ditampung oleh field.
tipe_constraint adalah batasan yang menentukan suatu field.
Tanda [ ] menyatakan bahwa yang didalamnya boleh ada atau tidak.
Macam – macam tipe
constraint yang mungkin adalah :
·
NULL atau NOT NULL
Constraint
NOT NULL ini berfungsi untuk menjamin field harus diisi sedangkan constraint
NULL memperbolehkan suatu field untuk dikosongi
·
UNIQUE
Constraint
ini berfungsi untuk menjamin bahwa nilai pada setiap record di dalam sebuah
tabel adalah unik
o
PRIMARY KEY
o
FOREIGN KEY
o
CHECK
Constraint ini
berfungsi untuk menjamin bahwa nilai yang akan dimasukkan ke dalam sebuah field
sudah sesuai dengan aturan yang dibuat
Contoh : pembuatan tabel mahasiswa dengan
atribut nim bertipe char(9) dan nama bertipe varchar(20) yang tidak boleh
kosong.
Sintaks :
CREATE TABLE mahasiswa
(
Nim
char(9),
Nama
varchar(20) not null,
CONSTRAINT
pk_mhs PRIMARY KEY (Nim)
);
·
Memanipulasi tabel (ALTER
TABLE)
Sebuah struktur tabel
yang sudah didefinisikan dapat dimodifikasi dengan menggunakan perintah ALTER
TABLE.
Ada beberapa jenis modifikasi pada
tabel :
1. Menambahkan constraint baru untuk sebuah tabel
Query
:
ALTER
TABLE nama_tabel
ADD
CONSTRAINT nama_constraint_baru
(definisi_constraint);
Contoh
: (misal pada tabel mahasiswa belum ada primary key)
SQL > ALTER TABLE mahasiswa
ADD CONSTRAINT pk_mhs PRIMARY
KEY (Nim);
2. Menghapus sebuah constraint di dalam tabel.
Query
:
ALTER
TABLE nama_tabel
DROP
CONSTRAINT nama_constraint;
Contoh
:
SQL
> ALTER TABLE mahasiswa
DROP
CONSTRAINT pk_ mhs;
3. Manambahkan field baru pada sebuah tabel.
Query
:
ALTER
TABLE nama_tabel
ADD(nama_field
tipe_data [definisi_konstraint]);
Contoh
:
SQL > ALTER TABLE mahasiswa
ADD(alamat varchar(50) NOT
NULL);
4. Mengubah definisi field yang telah ada pada sebuah tabel.
Query
:
ALTER
TABLE nama_tabel
MODIFY(nama_field
tipe_field definisi_konstraint);
Contoh
:
SQL > ALTER TABLE mahasiswa MODIFY(alamat varchar(25) not
null);
·
Menghapus tabel (DROP TABLE)
Query untuk menghapus
tabel (drop table) adalah :
DROP TABLE nama_table
[CASCADE CONSTRAINT];
CASCADE CONSTRAINT :
akan menghapus semua
constraint yang terhubung dengan tabel yang dihapus.
Contoh :
SQL > DROP TABLE buku;
II.
Data Manipulation Language (DML)
Level
abstraksi yang telah dibahas sebelumnya tidak hanya berlaku pada definisi atau
struktur data tetapi juga pada manipulasi data. Manipulasi data itu sendiri
dapat berupa:
Ø
Pemasukan informasi baru ke dalam basis data (insert)
Ø
Penghapusan informasi dari basis data (delete)
Ø
Modifikasi informasi yang tersimpan pada basis data (update)
DML
merupakan bahasa yang memungkinkan user untuk mengakses atau memanipulasi data
sebagaimana telah direpresentasikan oleh model data. Terdapat dua macam DML,
yaitu:
v
Prosedural, mengharuskan user untuk menentukan data apa yang dibutuhkan dan
bagaimana untuk mendapatkan data tersebut.
v
Nonprosedural, mengharuskan pemakai untuk menentukan data apa yang dibutuhkan
tanpa menyebutkan bagaimana mendapatkan data tersebut.
Sintaks-sintaks pada DML antara lain :
§
INSERT RECORD
Insert digunakan untuk menyisipkan sebuah record ke dalam sebuah
tabel.
Query :
|
Perlu
diperhatikan bahwa nama_field1, nama_field2, … dapat dihilangkan. Hal ini dapat
dilakukan bila nilai yang dimasukkan user, urutan sesuai dengan urutan field di
dalam tabel tersebut, dan jumlah nilai yang dimasukkan juga harus sama dengan
jumlah field pada tabel. Selain itu, proses penyisipan juga harus mematuhi
aturan constraint yang telah didefinisikan pada sebuah tabel
Contoh
:
insert into mahasiswa
values('30108001', 'paijo',
'skp');
atau
insert into mahasiswa
(nim,nama,alamat)
values('30108001', 'paijo'
Langganan:
Posting Komentar (Atom)
0 komentar:
Posting Komentar