Diberdayakan oleh Blogger.
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
Basis data adalah penyimpanan kumpulan informasi secara sistematik dalam sebuah komputer sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (database management system, DBMS). Sedangkan sistem adalah sebuah tatanan yang terdiri atas sejumlah komponen fungsional yang saling berhubungan dan secara bersama-sama bertujuan untuk memenuhi suatu proses pekerjaan. Sehingga bisa dikatakan bahwa sistem basis data adalah sistem yang terdiri atas kumpulan file-file yang saling berhubungan dan sekumpulan program (DBMS) yang memungkinkan beberapa pemakai dan atau program lain untuk mengakses dan memanipulasi data tersebut.                                                                                                                                                                                                                                                                                                                                                 Komponen Sistem Basis Data

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 :

CREATE TABLE nama_tabel
( nama_field_1 tipe_data,
nama_field_2 tipe_data,
………,
[ CONSTRAINT nama_constraint PRIMARY KEY
(nama_field)
]
[ CONSTRAINT nama_constraint FOREIGN KEY
(nama_field) REFERENCE nama_table (nama_field)
ON DELETE CASCADE
]
);

                                                                                                                                                                                                                                                                                                                                   










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 :


INSERT INTO nama_tabel [(nama_field1, nama_field2, ….)] VALUES (nilai1, nilai2, …);

 





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'

0 komentar: