Selasa, 08 Desember 2009

Lingkungan database

LINGKUNGAN BASIS DATA




Pada bab ini akan diterangkan mengenai tiga arsitektur basis data dari ANSI-SPARC dan keuntungan yang diberikan olehnya. Dilanjutkan dengan bahasa yang digunakan di dalam suatu sistem basis data dengan menjelaskan konsep dari model data juga fungsi dari suatu sistem basis data. DBMS digunakan untuk multi pengguna sehingga pada bab ini akan dijelaskan secara singkat mengenai arsitektur multi pengguna yang dapat digunakan.

2.1. Arsitektur Basis Data

Ada 3 tingkat dalam arsitektur basis data, yang bertujuan membedakan cara pandang pengguna terhadap basis data dan cara pembuatan basis data secara fisik.









Tingkat Eksternal




Tingkat Konseptual




Tingkat Internal



Basis data dadata



Gambar 2.1 Data Fisik Organisasi


Setiap pengguna harus dapat mengakses data yang sama, tetapi dengan data view yang berbeda-beda kebutuhannya. Setiap pengguna dapat merubah data view tersebut dan perubahan ini tidak akan mempengaruhi pengguna yang lain dengan kata lain terdapat kemandirian data.

Pengguna tidak berhubungan dengan penyimpanan fisik, seperti proses indeks, hashing dan proses fisik lainnya.

DBA dapat merubah struktur basis data tanpa mempengaruhi data view pengguna.

2.1.1. Tingkat Eksternal

Tingkat eksternal merupakan cara pandang pengguna terhadap basis data. Pada tingkat ini menggambarkan bagian basis data yang relevan bagi seorang pengguna tertentu.

Tingkat eksternal terdiri dari sejumlah cara pandang yang berbeda dari sebuah basis data. Masing-masing pengguna merepresentasikan dalam bentuk yang sudah dikenalnya. Cara pandang secara eksternal hanya terbatas pada entitas, atribut dan relationship (hubungan antar entitas) yang diperlukan saja.

Sebagai tambahan, perbedaan pandangan diwujudkan pada data yang sama misalkan pada saat menuliskan data tanggal di dalam suatu form, ada yang berbentuk tanggal, bulan, tahun tetapi ada yang menuliskan tahun, bulan, tanggal.

2.1.2. Tingkat Konseptual

Tingkat konseptual merupakan kumpulan cara pandang terhadap basis data. Pada tingkat ini menggambarkan data yang disimpan dalam basis data dan hubungan antara datanya.

Hal-hal yang digambarkan dalam tingkat konseptual adalah

- semua entitas beserta atribut dan hubungannya

- batasan data

- informasi semantik tentang data

- keamanan dan integritas informasi

Semua cara pandang pada tingkat eksternal, berupa data yang dibutuhkan oleh pengguna harus sudah tercakup di dalam tingkat konseptual atau dapat diturunkan dari data yang ada. Deskripsi data dari entitas pada tingkat ini hanya terdiri dari jenis data dan besarnya atribut tanpa memperhatikan besarnya penyimpanan dalam ukuran byte.

2.1.3. Tingkat Internal

Tingkat internal merupakan perwujudan basis data dalam komputer. Pada tingkat ini menggambarkan bagaimana basis data disimpan secara fisik di dalam peralatan storage yang berkaitan erat dengan tempat penyimpanan fisik. Tingkat internal memperhatikan hal-hal berikut ini :

- Alokasi ruang penyimpanan data dan indeks

- Deskripsi record untuk penyimpanan (dengan ukuran penyimpanan untuk data elemen)

- Penempatan record

- Pemampatan data dan teknik enkripsi








External view 1 External view 2

NPM

NAMA

KDMK

SKS

KD_DOSEN


KDMK

NAMAMK

SKS

Tingkat Konseptual

NPM

NAMA

KDMK

NAMAMK

SKS

KD_DOSEN




Tingkat Internal

Struc JADWAL{

Int SKS;

Char KD_DOSEN[4];

Char NPM[8] ;

Char KDMK [9];

Char Nama [15];

Char NAMAMK [25];

Struct JADWAL * next; /* pointer to next MHS record*/

};

index NPM;index KDMK;index KD_DOSEN /* define indexes for Jadwal*/



Gambar 2.2 file Pegawai yang akan didefinisikan


2.2. Kemandirian Data

Tujuan utama dari 3 tingkat arsitektur adalah memelihara data independence (kemandirian data) yang berarti perubahan yang terjadi pada tingkat yang lebih rendah tidak mempengaruhi tingkat yang lebih tinggi.

2.2.1. Kemandirian Data Secara Logik

Kemandirian data secara logik menyatakan bahwa skema konseptual dapat diubah oleh DBA tanpa mengganggu skema eksternal. Dengan kata lain kemandirian data secara logik menunjukkan kekebalan skema eksternal terhadap perubahan skema konseptual.

Perubahan pada skema konseptual, seperti penambahan atau penghapusan entitas baru, atribut atupun relasi, di mungkinkan tanpa harus merubah skema eksternal atau harus membuat lagi program aplikasi yang baru. Oleh karenanya pengguna yang akan melakukan perubahan harus mengetahui terlebih dahulu apa yang boleh dan yang tidak boleh di lakukan perubahan.






Gambar 2.2 Skema Kemandirian Data


2.2.2. Kemandirian Data Secara Fisik

Kemandirian data secara fisik menyatakan bahwa skema internal dapat diubah oleh DBA tanpa mengganggu skema konseptual. Dengan kata lain kemandirian data secara fisik menunjukkan kekebalan skema konseptual terhadap perubahan skema internal.

Perubahan pada skema internal seperti penggunaan organisasi file yang berbeda atau struktur penyimpanan, memodifikasi indeks atau scan disk dan defragment dapat dimungkinkan tanpa harus merubah skema konseptual dan eskternal.

2.2.3. Prinsip Kemandirian Data

Prinsip kemandirian data adalah salah satu hal yang harus diterapkan di dalam pengelolaan sistem basis data dengan alasan-alasan sbb:

· DBA dapat mengubah isi, lokasi, perwujudan dalam organisasi basis data tanpa mengganggu program-program aplikasi yang sudah ada.

· Pabrik/agen peralatan/software pengolahan data dapat memperkenalkan produk-produk baru tanpa mengganggu program-program aplikasi yang sudah ada.

· Untuk memudahkan perkembangan program-program aplikasi

· Memberikan fasilitas pengontrolan terpusat oleh DBA demi keamanan dan integritas data dengan memperhatikan perubahan-perubahan kebutuhan pengguna.

2.3. Bahasa Dalam DBMS

Database Management systems (DBMS) adalah kumpulan program yang mengkoordinasikan semua kegiatan yang berhubungan dengan basis data.

Dengan adanya berbagai tingkatan pandangan dalam suatu basis data maka untuk mengakomodasikan masing-masing pengguna maka dalam piranti lunak manajemen basis data biasanya terdapat bahasa-bahasa tertentu yang disebut Data Sub language.

Data sub language adalah subset bahasa yang dipakai untuk operasi manajemen basis data. Dalam penggunaan biasanya dapat ditempelkan (embedded) pada bahasa tuan rumah (Cobol, PL/1, dsb). Secara umum maka setiap pengguna basis data memerlukan bahasa yang dipakai sesuai tugas dan fungsinya.

2.3.1. Data Definition Language (DDL)

Data Definition Language (DDL) merupakan bahasa yang digunakan dalam mendefinisikan struktur atau kerangka dari basis data, di dalamnya termasuk record, elemen data, kunci elemen, dan relasinya.

Dengan penggunaan dari bahasa inilah pengguna dapat membuat sebuah tabel baru, membuat indeks, mengubah tabel dan sebagainya. Hasil kompilasi dari perintah DDL adalah kumpulan tabel yang sumpan dalam file khusus yang disebut dengan sistem katalog (Kamus data). Sistem katalog ini mengintegrasikan data dari data atau meta data yang menjelaskan data yang sesungguhnya dari data/objek yang di miliki oleh suatu basis data sehingga mempermudah untuk diakses ataupun untuk di manipulasi.

2.3.2. Data Manipulation Language (DML)

Data Manipulation Language (DML) merupakan bahasa yang digunakan untuk melakukan operasi manipulasi data di dalam suatu sistem basis data, fasilitas ini diperlukan untuk memasukkan, mengambil, mengubah data.

Operasi manipulasi data yang dilakukan seperti:

  • Pemasukan data baru ke dalam suatu basis data
  • Perubahan pada data yang sudah disimpan di dalam basis data
  • Pengambilan data
  • Penghapusan data

Ada 2 jenis DML :

    1. Procedural DML

Digunakan untuk mendefinisikan data yang diolah dan perintah yang akan dilaksanakan.

Pengguna harus menuliskan sebuah prosedur yang akan mengakses semua data yang diperlukan untuk menghasilkan informasi yang diinginkan. DML terprosedur ini yang akan dituliskan biasanya ditempelkan pada bahasa pemrograman yang digunakan .

2. Non Procedural DML

Digunakan untuk menjabarkan data yang diinginkan tanpa menyebutkan bagaimana cara pengambilannya.

Non-prosedural DML ini biasanya disebut dengan declarative language (DML yang interaktif). Seperti halnya kalau pengguna menggunakan bahasa queri untuk memanipulasi suatu data. Pengguna memberikan perintah queri-nya maka DBMS akan langsung menghasilkan informasi yang diinginkan.

Secara khusus pengguna menggunakan berbagai bahasa :

- Programmer aplikasi menggunakan bahasa-bahasa seperti Cobol, Informix, dan lain-lain (host language) yang ditempelkan dengan bahasa yang dipakai dalam DBMS.

- Pemakai terminal menggunakan bahasa Queri, misalnya SQL atau menggunakan program aplikasi (yang dirancang oleh programmer).

- Sedangkan DBA lebih banyak menggunakan bahasa DDL dan DML yang tersedia dalam DBMS.

DBMS mempunyai tugas untuk menangani semua bentuk akses kepada basis data, secara konsep :

1. Pengguna menyatakan permintaan akses menggunakan DBMS

2. DBMS menangkap dan menginterpretasikan

3. DBMS mencari :

- pemetaan eksternal / konseptual

- skema konseptual

- pemetaan konseptual / internal

- skema internal

4. DBMS melaksanakan operasi yang diminta terhadap basis data tersimpan.

Proses 1 sampai dengan 4 dapat dilakukan secara interaktif atau dikompilasi terlebih dulu.

2.4. Model Data

Model data adalah kumpulan konsep yang terintegrasi yang menggambarkan data, hubungan antara data dan batasan-batasan data di dalam suatu organisasi. Fungsi dari sebuah model data untuk merepresentasikan data sehingga data tersebut mudah dipahami.

Untuk menggambarkan data pada tingkat eksternal dan konseptual digunakan model data berbasis objek atau model data berbasis record.

2.4.1. Model Data Berbasis Objek

Model data berbasis objek menggunakan konsep entitas, atribut dan hubungan antar entitas. Beberapa jenis model data berbasis objek yang umum adalah

1. entity-relationship (ER)

2. semantic (semantik)

3. functional (fungsional)

4. object-oriented (berorientasi objek)

2.4.2. Model Data Berbasis Record

Pada model data berbasis record, basis data terdiri dari sejumlah record dalam bentuk yang tetap yang dapat dibedakan dari bentuknya.

Ada 3 macam jenis model data berbasis record, yaitu :

1. relational (relasional)

2. hierarchical (hirarki)

3. network (jaringan)

2.4.2.1. Model Data Relasional

Model data ini berdasarkan konsep relasi matematika, data dan relasi di gambarkan sebuah tabel, yang mempunyai kolom dan baris dimana kolom–kolom tersebut mempunyai nama yang unik. Selanjutnya akan dijabarkan pada bab 3.

2.4.2.2. Model Data Jaringan

Pada model data ini, data di deskripsikan sebagai kumpulan dari record, dan relasi di deskripsikan dengan set. Di bandingkan dengan model data relasional, relasi lebih terlihat sebagai model dari suatu set yang digunakan sebagai penunjuk atau pointer di dalam implementasinya.




0938

ANNA

DEPOK


KK045210

PBD

2

3













KK045104

Prak AP1

1

1

0523

RICKY

DEPOK




KK045305

Graf

3

5



Gambar 2.3 Model data jaringan


2.4.2.3. Model Data Hirarki

Pada model data ini, berasal dari model data jaringan dimana data di deskripsikan sebagai kumpulan dari record, dan relasi di deskripsikan dengan set. Tetapi pada model hirarki ini hanya mempunyai satu parent . Model Hirarki dapat digambarkan seperti graph pohon, record muncul sebagai nodes disebut segment dan sets disebut dengan edges.





Gambar 2.4. Model data hirarki


2.4. Fungsi DBMS

Layanan-layanan yang sebaiknya disediakan oleh DBMS adalah :

1. Penyimpanan, pengambilan dan perubahan data

Sebuah DBMS harus menyediakan kemampuan menyimpan, mengambil dan merubah data dalam basis data.

2. Katalog yang dapat diakses pengguna

menyediakan sebuah katalog yang berisi deskripsi item data yang disimpan dan diakses oleh pengguna.

3. Mendukung transaksi

Menyediakan mekanisme yang akan menjamin semua perubahan yang berhubungan dengan transaksi yang sudah ada atau yang akan dibuat.

4. Melayani kontrol konkurensi

Sebuah DBMS harus menyediakan mekanisme yang menjamin basis data ter-update secara benar pada saat beberapa pengguna melakukan perubahan terhadap basis data yang sama secara bersamaan.

5. Melayani recovery

Menyediakan mekanisme untuk mengembalikan basis data ke keadaan sebelum terjadinya kerusakan pada basis data tersebut.

6. Melayani autorisasi

Sebuah DBMS harus menyediakan mekanisme untuk menjamin bahwa hanya pengguna yang berwenang saja yang dapat mengakses basis data.

7. Mendukung komunikasi data

Sebuah DBMS harus mampu terintegrasi dengan software komunikasi.

8. Melayani integritas

Sebuah DBMS bertujuan untuk menjamin semua data dalam basis data dan setiap terjadi perubahan data harus sesuai dengan aturan yang berlaku.

9. Melayani kemandirian data

Sebuah DBMS harus mencakup fasilitas untuk mendukung kemandirian program dari struktur basis data yang sesungguhnya.

10. Melayani utilitas

Sebuah DBMS sebaiknya menyediakan kumpulan layanan utilitas.

2.6. Komponen DBMS

Keterangan dari gambar 2.6. dijelaskan sebagai berikut:

1. Query Processsor

Komponen yang merubah bentuk queri ke dalam instruksi tingkat rendah ke basis data manager



Gambar 2.6 Komponen DBMS


2. Database Manager

Basis data manager menerima queri dan menguji skema eksternal dan konseptual untuk menentukan apakah record-record dibutuhkan untuk memenuhi permintaan. Kemudian DM memanggil file manager untuk menyelesaikan permintaan.

3. File Manager

Memanipulasi penyimpanan file dan mengatur alokasi ruang penyimpanan pada disk.

4. DML Preprocessor

Modul yang merubah perintah DML embedded ke dalam program aplikasi dalam bentuk fungsi-fungsi yang memanggil dalam host language.

5. DDL Compiler

Merubah statement DDL menjadi kumpulan tabel yang berisi metadata.

6. Dictionary Manager / Catalog Manager

Mengatur akses dan memelihara data dictionary. Data dictionary diakses oleh komponen DBMS yang lain.

Komponen software utama basis data manager seperti pada gambar 2.7. adalah

1. Authorization Control

Modul yang memeriksa apakah pengguna mempunyai wewenang untuk menyelesaikan operasi

2. Command Processor

Memeriksa apakah pengguna mempunyai wewenang untuk menyelesaikan operasi

3. Integrity Checker

Untuk semua operasi yang merubah basis data, integrity checker memeriksa operasi yang diminta memerlukan batasan integritas.

4. Query Optimizer

Modul ini menentukan strategi yang optimal untuk eksekusi queri

5. Transaction Manager

Modul ini mengerjakan proses-proses yang dibutuhkan operasi yang diterima transaksi

6. Scheduler

Modul ini bertanggung jawab untuk menjamin operasi secara bersamaan terhadap basis data sehingga berjalan tanpa ada masalah antara yang satu dengan yang lain.

7. Recovery Manager

Modul ini menjamin basis data tetap konsisten walaupun terjadi kerusakan.

8. Buffer Manager

Modul ini bertanggung jawab terhadap pemindahan data antara main memory dan secondary storage, seperti disk dan tape.

2.7. Data Dictionary

Data dictionary adalah tempat penyimpanan informasi yang menggambarkan data dalam basis data. Data dictionary biasa disebut juga dengan metadata atau data mengenai data.

Modul pengontrol autorisasi menggunakan data dictionary untuk memeriksa apakah seorang pengguna perlu mempunyai wewenang

Untuk mengerjakan pemeriksaan tersebut, data dictionary menyimpan

· nama-nama pengguna yang mempunyai wewenang untuk menggunakan DBMS

· nama-nama item data yang ada dalam basis data

· item data yang dapat diakses oleh pengguna dan jenis akses yang diijinkan, misalnya : insert, update, delete atau read

· Selain itu, untuk memeriksa integritas data, data dictionary menyimpan

· nama-nama item data dalam basis data

· jenis dan ukuran item data

· batasan untuk masing-masing item data

Sistem data dictionary dapat dibedakan atas sistem aktif dan pasif. Sistem aktif selalu konsisten dengan struktur basis data karena secara otomatis dikerjakan oleh sistem. Sebaliknya, sistem pasif tidak konsisten terhadap perubahan basis data yang dilakukan oleh pengguna.



Gambar 2.7 Komponen software utama basis data manager


2.8. Arsitektur DBMS Multi Pengguna

Pada seksi ini akan di jelaskan mengenai arsitektur yang biasanya digunakan untuk mengimplementasikan sistem basis data yang multi user, yaitu teleprocessing, file server dan client server.

2.8.1. Teleprocessing

Arsitektur tradisional untuk sistem multi pengguna adalah teleprocessing, dimana satu komputer dengan sebuah CPU dan sejumlah terminal seperti pada gambar 2.8. di bawah ini.






Gambar 2.8 Arsitektur Teleprocessing


Semua pemrosesan dikerjakan dalam batasan fisik komputer yang sama. Terminal untuk pengguna berjenis 'dumb', yang tidak dapat berfungsi sendiri dan masing-masing dihubungkan ke komputer pusat. Terminal-terminal tersebut mengirimkan pesan melalui subsistem pengontrol komunikasi pada sistem operasi ke program aplikasi, yang bergantian menggunakan layanan DBMS. Dengan cara yang sama, pesan dikembalikan ke terminal pengguna. Arsitektur ini menempatkan beban yang besar pada komputer pusat yang tidak hanya menjalankan program aplikasi tetapi juga harus menyelesaikan sejumlah pekerjaan pada terminal seperti format data untuk tampilan di monitor.

2.8.2. File-Server

Proses didistribusikan ke dalam jaringan, sejenis Local Area Network (LAN). File server mengendalikan file yang diperlukan oleh aplikasi dan DBMS. Meskipun aplikasi dan DBMS dijalankan pada masing-masing workstation, tetapi tetap meminta file dari file server jika diperlukan (perhatikan gambar di bawah ini). Dengan cara ini, file server berfungsi sebagai sebuah hard disk yang digunakan secara bersamaan. DBMS yang ada pada setiap workstation meminta data ke file server untuk semua data yang diinginkan oleh DBMS.



Gambar 2.9 Arsitektur File Server


Kerugian arsitektur file-server adalah

· Terdapat lalulintas jaringan yang besar

· Masing-masing workstation membutuhkan copy DBMS

· Kontrol terhadap konkurensi, recovery dan integritas menjadi lebih kompleks karena sejumlah DBMS mengakses file secara bersamaan

2.8.3. Client Server

Untuk mengatasi kelemahan arsitektur-arsitektur di atas maka dikembangkan arsitektur client-server. Client-server menunjukkan cara komponen software berinteraksi dalam bentuk sistem. Sesuai dengan namanya, ada sebuah pemroses client yang membutuhkan sumber dan sebuah server yang menyediakan sumbernya. Tidak ada kebutuhan client dan server yang harus diletakkan pada mesin yang sama. Secara ringkas, umumnya server diletakkan pada satu sisi dalam LAN dan client pada sisi yang lain.






Gambar 2.10 Arsitektur Client Server


Dalam konteks basis data, client mengatur interface berfungsi sebagai workstation tempat menjalankan aplikasi basis data. Client menerima permintaan pengguna, memeriksa sintaks dan generate kebutuhan basis data dalam SQL atau bahasa yang lain. Kemudian meneruskan pesan ke server, menunggu response dan bentuk response untuk end pengguna. Server menerima dan memproses permintaan basis data kemudian mengembalikan hasil ke client. Proses-proses ini melibatkan pemeriksaan autorisasi, jaminan integritas, pemeliharaan data dictionary dan mengerjakan query serta proses update. Selain itu juga menyediakan kontrol terhadap concurrency dan recovery.

Ada dua macam implementasi sistem client server yaitu sistem client server sederhana (2 tier) seperti terlihat pada gambar 2.11. dan sistem client server kompleks (3 tier).






Gambar 2.11 Arsitektur Client Server 2 Tier