DATABASE
ENVIRONMENT
Sasaran umum database system adalah menyediakan kepada pemakai
gambaran dari view-data menurut mereka dan bagaimana data itu disimpan dan
diolah. Barangkali, sebagai titik awal merancang database harus dimulai dari
membuat abstraksi dan uraian umum kebutuhan informasi dari suatu organiasasi
untuk dituangkan di dalam sebuah database.
Pada bab ini
akan dipelajari :
·
Macam-macam tiga tingkatan arsitektur database
·
Kandungan dari setiap tingkat : eksternal,
konseptual dan internal
·
Macam dari pemetaan tingkat eksternal ke dalam
konseptual dan konseptual/internal
·
Pengertian independensi data secra logis dan
secra fisik
·
Perbedaan antar DDL dan DML
·
Jenis serta pentingnya model konseptual
·
Fungsi utama dan layanan yang diharapkan dapat
diseiakan oleh DBMS
·
Komponen piranti lunak DBMS
·
Pengertian client server dan keuntungannya pada
arsitektur DBMS
·
Fungsi dan pemakaian dari pemantauan pemrosesan
transaksi (TP Monitor)
·
Fungsi dan pentingnya peran catalog system
Pada bab ini kita gunakan istilah
organisasi secara bebas, artinya organisasi secara keseluruhannya atau hanya
bagian dari suatu organisasi.
Contoh
dari suatu model database pada DreamHome :
□
Atribut yang menjelaskan entitity atau kualitas
dari tiap entity, misalnya : Staff mempunyai Name,Position, Salary;
□
Dunia nyata (the real world) disebut entity
yaitu : Staff, PropertyForRent,PrivateOwner dan Client
□
Hubungan atau relationship antara entity,
misalnya : Staff me-manage PropertyForRent
Selanjutnya berawal dari database sebagai
sumberdaya, tiap pemakai memerlukan pandangan
(view) data yang masing-masing berbeda dari setiap database. Untuk
memperoleh kebutuhan yang memuaskan maka arsitektur yang tersedia di pasaran
saat ini adalah arsitektur berdasarkan AnsiSparc. Karakteristiknya akan dibahas
pada bagian ini.
Struktur
dari Bab 2 ini sebagai berikut:
Pada bagian 2.1 membahas mengenai
AnsiSparc dihubungkan dengan pemanfaatannya. Sedangkan bagian 2.2 akan
menimbang berbagai jenis bahasa yang digunakan pada DBMS. Selanjutnya bagian
2.3 akan memperkenalkan konsep data model. Pada bagian 2.4 akan mendiskusikan
fungsi-fungsi yang ada di dalam suatu DBMS. Sedangkan bagian 2.5 dan 2.6
membahas secara rinci arsitektur internal database. Bab ini diakhiri dengan
bagian 2.7 yang akan membahas catalog database dan metadata. Contoh-contoh yang
disajikan pada DreamHome yang selanjutnya akan dibahas secara lengkap di bagian
10.4 dan Apendix A.
2.1
The Three Level Arsitektur
Yang
dimaksud dengan arsitektur AnsiSparc adalah mengidentifikasi tiga tingkatan
yang berbeda dari sebuah penggambaran data. Pada gambar 2-1 terdapat tiga bentuk tingkatan yaitu
eksternal, konseptual dan internal.
Tingkat
eksternal adalah menyatakan bagaimana pemakai merepresentasikan sebuah data.
Sedangkan tingkat internal menggambarkan bagaimana data tersebut secara nyata
disusun menggunakan suatu struktur data dan file yang terorganisasi. Tingkat
konseptual merupakan pemetaan yang memisahkan antara tingkat eksternal dan
tingkat internal.
Tujuan
dari tiga tingkat arsitektur AnsiSParc adalah memisahkan tiap-tiap pandangan
pemakai terhadap penyimpanan data secara fisik. Hal ini dilandasi beberapa
alasan, yaitu :
Ø
Setiap pemakai mungkin membaca data yang sama
untuk keperluan yang berbeda
Ø
Pemakai tidak langsung mengelola data secara
fisik
Ø
Administrator database (DBA) akan dapat mengubah
struktur data tanpa mempengaruhi pandangan user
Ø
Struktur internal data tidak terpengaruh oleh
perubahan berbagai aspek fisik seperti storage
Ø
Administrator database dapat mengubah struktur
konseptual tanpa mempengaruhi pandangan user
Mempelajari The Three-Level ANSI SPARC Architecture
merupakan dasar untuk memahami beberapa fungsi dan suatu DBMS. The Tree-Level
Architecture terdin dad external, conceptual, dan internal level. Bagaimana
user rnelihat data adalah external level. Bagaimana DBMS dan operating
system melihat data adalah internal level, dimana data secara aktual
disimpan dengan nienggunakan data stucture dan file organization. Conceptual
level merupakan penghubung dan juga pemisah antara external dan internal
level.
User
1 User 2 User
3
|
|
|
External
Level
|
Conceptual
Level
|
Internal
Level
Physical data
Organization database
Gambar 2-1 Arsitektur Three Level AnsiSparc
Tujuan dari The Three-Level Architecture ini adalah unutk
rnemisahkan tampilan database dan setiap user secara lisik. Pemisahan ini dilakukan
karena:
1.
Setiap user seharusnya dapat mengakses data yang sama,
tetapi dengan tampilan yang berbeda-beda. Setiap user seharusnya dapat mengubah
tampilan data dan perubahan tersebut tidak berpengaruh pada user lain.
2.
User seharusnya tidak berurusan langsung dengan detail
dan tempat penyimpanan database secara fisik, seperti indexing atau hashing.
Dengan kata lain, dalam berinteraksi dengan database, user tidak perlu
mempertimbangkan rnengenai tempat penyirnpanan database tersebut.
3.
Database Administrator (DBA) seharusnya dapat mengubah
struktur tempat penyirnpanan database tanpa memberikan pengaruh pada tarnpilan
yang dilihat user.
4.
Struktur internal dari suatu database seharusnya tidak
terpengaruh oleh perubahan aspek fisik dan tempat penyimpanan, contohnya jika
database dipindahkan ke tempat penyimpanan yang baru.
DBA seharusnya dapat merubah conceptual structure dan
database tanpa mempengaruhi semua user.
2.1.1
External Level
External level berisi cam
pandang user terhadap database. Level ini mendeskripsikan bagian database yang
relevan/sesuai untuk masing-masing user. External level terdiri dari sekumpulan
tampilan eksternal yang berbeda dan suatu database. Tampilan eksternal terdiri
dad entities, attributes, dan relationship yang berhubungan dengan seorang
user. Data lain yang tidak berhubungan user tersebut dapat juga terdapat di dalam
database, tetapi user tidak perlu memperdulikannya.
Tampilan yang berbeda dapat
memiliki representasi yang berbeda juga dari data yang sama. Sebagai contoh,
seorang user menampilkan data dalam bentuk (day,month,year) sedangkan user yang
lain menampilkannya dalarn bentuk (year,month,day). Suatu tampilan mungkin juga
didalamnya terdapat hasil perhitungan data: data tidak secara aktual tersimpan
dalam database, tetapi dibuat pada saat dibutuhkan
2.1.2
Conceptual Level
Conceptual level berisi
kumpulan view dalam database. Level ini mendeskripsikan data apa saja
yang tersimpan dalam database dan hubungan (relationship) antar data tersebut.
Dalam level ini terdiri dari
struktur logical database seperti yang dilihat oleh DBA. lni merupakan tampilan
lengkap dari data yang dibutuhkan oleh suatu organisasi tanpa terpengaruh dari
tempat penyimpanan secara fisik.
Conceptual level ini merepresentasikan
• Semua entity, attribute, dan relationship
• Constrains pada data
• lnformasi semantic mengenai data
• Security dan integrity information
Conceptual level mendukung
semua eksternal view. Sernua data yang disediakan untuk user tersedia di dalam
conceptual level, dan diturunkan dari conceptual level ini.
2.1.3
Internal Level
2.1.4
Schema, mapping and instances
Keseluruhan deskripsi dari
database disebut database schema. Berdasarkan level abstrak pada
three-level architecture terdapat 3 jenis schema. Pada level tertinggi terdapat
multiple external schema (disebut juga suhschemas) yang
berhubungan dengan tampilan yang berbeda-beda dan data. Pada conceptual level
terdapat conceptual schema yang mendeskripsikan semua entity, attribute
dan relationship bersama dengan integrity constrains. Pada level terbawah
terdapat internal schema yang memiliki desknipsi lengkap dar internal
model, termasuk didalamnya definisi stored records, metode representasi,
data fields, serta indexing dan hashing schema yang digunakan
jika ada. Dalam satu database hanya terdapat satu conceptual schema dan satu
internal schema.
DBMS melakukan pemetaan
terhadap tiga jenis schema ini. DBMS harus mengecek bahwa setiap external
schema diturunkan dari conceptual schema, dan harus menggunakan informasi pada
conceptual schema untuk memetakan setiap external schema dengan internal
schema.
2.1.5
Data Independence
Tujuan utama dari three-level
architecture adalah untuk menyediakan data independence, dimana level
yang diatas tidak akan terpengaruh oleh perubahan pada level dibawahnya.
Terdapat dua jenis data independence, yaitu:
1.
Logical Data Independence
Perubahan pada conceptual schema, seperti penambahan atau
pemindahan entity baru, attributes, atau relationship, seharusnya dapat
dilakukan tanpa merubah external schema yang telah ada atau tanpa harus menulis
ulang program aplikasi. User yang tidak berhubungan dengan data yang mengalami
perubahan tidak perlu mengetahui adanya perubahan.
2.
Physical Data Independence
Perubahan pada internal schema, seperti penggunaan file
organization yang berbeda, penggunaan tempat penyimpanan yang berbeda,
modifikasi pada indexes, atau algoritma hashing, seharusnya dapat
dilakukan tanpa merubah conceptual atau schema.
2.2 Database
Language
Bahasa
pemrograman database terdiri dua macam yaitu : DDL dan DML
DDL (data definition language) dipakai menyusun
skema database sedangkan DML (data manipulation language) digunakan untuk
membaca dan memuthakirkan isi dari database. Keduanya
disebut juga sublanguage karena tidak dipakai untuk melakukan pembentukan serta
perhitungan, juga perintah-perntah yang berulang seperti yang berlaku pada high-level
language. Beberapa DBMS dilengkapi dengan fasilitas high-level language seperti
Cobol, Fortran, Pascal, ADa, C, C++.
Pada
kasus-kasus ini disebut juga sebagai
Host-language.
Untuk operasi-operasi kompilasi, perintah-perintah
sublanguage tadi akan dihilangkan dan diganti dengan fungsi Call
Proses
awal biasanya dimulai dengan menghitung (compute), memindahnya menjadi bahasa
objek, selanjutnya disimpan di library sebagai fungsi program untuk
dieksekusi..
Suatu data sublanguages terdiri
dari 2 bagian yaitu : Data Definition Languages (DDL) dan Data Manipulation
Language (DML). DDL digunakan untuk menspesifikasi database schema dan
DML digunakan untuk membaca dan mengupdate database. DDL dan DML disebut data sublanguages
karena tidak dapat digunakan untuk perhitungan seperti conditional ataupun
iterative statement (perulangan) seperti yang dapat dilakukan oleh
bahasa pemrograman tingkat tinggi (high-level programming languages). Banyak
DBMS memiliki fasilitas untuk menggabungkan sublanguages pada bahasa
pemrograman tingkat tinggi seperti COBOL, Fortran, Pascal, Ada, C, C++, Java,
ataupun Visual Basic.
2.2.1
Data Definition Language
DDL adalah sebuah bahasa yang
memungkinkan DBA atau user untuk mendesknipsikan dan memberi nama entities,
attributes, dan relationship yang dibutuhkan untuk aplikasi, bersama dengan
semua integrity and security constrains yang berhubungan dengannya.
Database schema terspesifikasi
dari suatu kumpulan definisi yang diekspresikan oleh suatu bahasa spesial yang
disebut Data Definition Language. DDL digunakan untuk mendefinisikanlmembuat
sebuah schema atau memodifikasi schema yang sudah ada. DDL tidak dapat
digunakan untuk memanipulasi data.
Hasil kompilasi dari DDL
statement adalab sekumpulan table yang disimpan dalam koleksi file yang disebut
system catalog. System catalog mengintegrasikan meta-data. Meta-data
adalah data yang mendeskripsikan objek-objek dalam database dan menjadikan
data tersebut lebih mudah diakses dan dimanipulasi. Meta-data terdiri dari
definisi record-record, data items dan objek-objek lain yang menarik bagi user
atau dibutuhkan oleh DBMS.
2.2.2
Data Manipulation Language
DML adalah sebuah bahasa yang
menyediakan sejumlah operasi untuk mendukung operasi dasar manipulasi data pada
data yang tersedia dalam database. Operasi manipulasi data biasanya mencakup
penambahan data baru ke dalam database, modifikasi/perubahan data, pencarian,
dan penghapusan data dari database. Bagian DML yang digunakan untuk pencarian
data disebut query language. Berdasarkan cara pencarian data, DML dibagi
menjadi 2 jenis, yaitu procedural dan non-procedural.
Procedural DML
Procedural DML merupakan sebuah bahasa yang
memungkinkan user untuk memberitahu sistem data apa yang diperlukan dan
bagaimana rnendapatkan data tersebut.
Dengan procedural DML, user
atau biasanya programmer menspesifikasi data apa yang dibutuhkan dan bagaimana
mendapatkannya. Ini berarti bahwa user harus mendeklarasikan semua operasi
pengaksesan data yang digunakan untuk memanggil prosedur yang dimiliki untuk
mendapatkan informasi yang dibutuhkan. Procedural DML mencari sebuah record,
memprosesnya, dan berdasarkan hasil dari pemrosesan ini mencani record lain
yang akan diproses dengan cara yang sama, dan seterusnya. Proses pencarian ini
terus berlangsung hingga data yang diperlukan terkumpul. Biasanya procedural
DML digabungkan pada bahasa pemrograman tingkat tinggi yang memiliki fungsi
untuk melakukan perulangan dan menangani logika navigasi (navigational logic).
Jaringan dan hirarki DML pada umumnya adalah procedural.
Non-procedural DML
Non-procedural DML merupakan
sebuah bahasa yang memungkinkan user untuk menyatakan data apa yang diperlukan,
bukan bagaimana data tersebut diperoleh.
Non-procedural DML memungkinkan
data yang dibutuhkan untuk dispesifikasi dalam sebuah pernyataan pencarian atau
peng-update-an tunggal. Dengan non-procedural DML, user menspesifikasi data
yang dibutuhkan tanpa perlu menspesifikasi bagaimana data tersebut diperoleh.
DBMS rnenterjemahkan DML statement menjadi sebuah prosedur (atau sekumpulan
prosedur) yang memanipulasi sekumpulan record yang dibutuhkan. User tidak perlu
mengetahui bagaimana struktur data yang diimplementasikan dan algoritma apa
yang dibutuhkan untuk mencari data dan mentransformasikan data, hal ini merupakan
dukungan dari user dengan memperdulikan tingkat data independence.
Non-procedural language juga disebut declarative language. Dalam
Relational DBMS biasanya terdapat non-procedural language untuk manipulasi
data, biasanya SQL (Structured Query Language) atau QBE (Query By Example). Non-procedural
DML biasanya lebih mudah dipelajari dan digunakan daripada procedural DML,
lebih sedikit pekerjaan yang dikerjakan user dan lebih banyak yang dikerjakan
oleh DBMS.
2.2.3
Fourth Generation Language
Fourth generation languages merupakan bahasa pemrograman
yang hanya membutuhkan sedikit pengetikan perintah. Operasi yang membutuhkan
ratusan baris pada third-generation languages (3GLs seperti COBOL, biasanya membutuhkan jauh
lebih sedikit baris pada 4GL.
Dibandingkan dengan 3GL yang procedural, 4GL merupakan
nonprocedural: user mendefinisikan apa yang harus dilakukan, bukan bagaimana
melakukannya. 4GL diharapkan untuk bertumpu pada banyak komponen pada tingkat
yang lebih tinggi yang dikenal scbagai fourth-generation toolss. User
tidak perlu mendefinisikan langkah-langkah yang harus dilakukan program untuk
menjalankan suatu tugas, tetapi hanya mendefinisikan parameter kepada tools
yang kernudian akan menggunakannya untuk membuat suatu program aplikasi.
SQL dan QBE adalah query
languages yang merupakan contoh-contoh
dari 4GL. Beberapa tipe 4GL yang lain adalah:
1.
Forms generators
2.
Report generators
3.
Graphic generators
4.
Application generators
2.3 Data
Model dan Conceptual Model
Telah disinggung dimuka bahwa skema
ditulis menggunakan DDL. Kenyataannya pemakaian DDL hanya mampu menangkap
kebutuhan yang amat dasar atau pada tingkat low-level yang akibatnya tidak akan
memenuhi berbagai kebutuhan pemakai. Agar dapat melayani berbagai kebutuhan
pemakai, kita memerlukan deskripsi pada level yang lebih tinggi, yang disebut :
data model
Data
model adalah sekumpulan yang terintegrasi dari konsep-konsep yang menggambarkan
dan mengolah data, relasi diantara data dan batasan-batasan dari data yang ada
di dalam suatu organisasi.
Data
model terdiri dari tiga komponen yaitu :
·
A structural part
·
A manipulation part
·
Possibly a set of integrity rule
Sedangkan
pada arsitektur AnsiSparc dikenal tiga data model yang saling berhubungan yaitu
:
·
An external data model
·
A conceptual data model
·
An internal data model
Data model adalah kesatuan kumpulan konsep-konsep untuk
mendeskripsikan dan memanipulasi data, relationship antar data, dan constrains
pada data dalam suatu organisasi. Sebuah model merupakan representasi dari
objek dan kejadian pada dunia nyata, dan organisasinya. Model merupakan sesuatu
yang abstrak yang berkonsentrasi pada kebutuhan, kesatuan aspek dari suatu
organisasi dan tidak mengindahkan hal-hal yang tidak disengaja/kebetulan.
Sebuah data model merepresentasikan organisasi itu sendiri. Data model harus
menyediakan konsep dasar dan notasi yang akan memungkinkan database designer
dan end user berkomunikasi secara jelas dan akurat mengenai pengertian mereka
tentang data organisasi. Sebuah data model dapat terdiri dan 3 komponen berikut
ini :
• Sebuah structural
part, terdiri dari sekumpulan aturan sesuai dengan bagaimana database dapat
dibuat.
• Sebuah manipulative
part, mendefinisikan tipe-tipe operasi yang diijinkan pada data (termasuk
operasi yang digunakan untuk meng-update dan mencari data dari database dan
untuk merubah struktur database).
• Mungkin
juga, sekumpulan integrity rules yang memastikan bahwa data akurat.
Tujuan dari data model ini adalah untuk merepresentasikan
data dan membuat data tersebut dapat dimengerti. Jika hal ini dapat terjadi,
maka akan lebih mudah untuk merancang suatu database. Untuk merepresentasikan
three-level architecture, kita dapat mengidentiflkasi 3 data model yang
berhubungan:
• Sebuah
eksternal data model, untuk merepresentasikan masing-masing cara pandang (view)
user terhadap database, terkadang disebut juga Universe of Discourse (UoD,).
• Sebuah
conceptual data model, rnerepresentasikan logical (atau community) view bahwa
DBMS independent.
• Sebuah
internal data model, yang merepresentasikan conceptual schema dalarn berbagai
cara yang dimengerti oleh DBMS.
Oleh karena itu. muncul banyak data model untuk memenuhi
tujuan-tujuan tersebut. Pada akhirnya terdapat 3 kategoni : object-based,
record-based, dan physical data model. Object-based dan record-based data model
digunakan untuk mendeskripsikan data pada conceptual dan external level,
sementara physical data model mendeskripsikan data pada internal level.
2.3.1
Object Based Data Models
Object-based data model menggunakan konsep seperti
entities, attributes,
dan relationship. Sebuah entity adalah sebuah object
(seseorang, tempat, barang.
konsep, kejadian) dalam organisasi yang direpresentasikan
dalam database.
Sebuali attribute adalah suatu karakteristik atau
kepunyaan yang mendeskripsikan
beberapa aspek yang akan disimpan dalarn database. Suatu
relationship adalah
suatu hubungan antara entities. Beberapa tipe object-based
data model yang biasa
dipakai adalah:
1.
Entity-Relationship
2.
Semantic
3.
Functional
4.
Object-Oriented
2.3.2
Record Based Data Models
Pada record-based data model,
database terdiri dari sekumpulan records dengan format yang tetap, yang mungkin
dengan tipe yang berbeda-beda. Setiap record rnemiliki sejumlah fields (fixed)
yang telah ditetapkan, dimana rnasingmasing biasanya memiliki panjang yang
telah ditetapkan juga. Terdapat 2 tipe record-based logical data model
relational data model, network data model dan hierarchical data model.
Hierarchical data network data model dikembangkan hampir satu dekade sebelum
relational data model, oleh karena itu koneksi ke konsep traditional file
proccessing lebih jelas.
1.
Relational data model
direpresentasikan sebagai
sebuah tree graph, dengan record sebagai nodes atau disebut juga segments
dan himpunan sebagai edges Relational data model didasarkan pada
konsep hubungan matematika. Pada relational model ini, data dan relationship
direpresentasikan dengan table, yang masing-masing memiliki sejumlah kolom
dengan narna yang unik. Relational data model memerlukan hanya bahwa database
diterima user sebagai table. Bagaimanapun persepsi ini hanya diterapkan pada
logical structure dad database, yaitu pada external dan conceptual level dad
three-level architecture. Itu tidak diterapkan pada physical structure dad
database, dimana dapat diterapkan dengan berbagai macam storage structures.
2.
Network data model
Pada network, data direpresentasikan
sebagai kumpulan records, dan relationship direpresentasikan oleh suatu
himpunan (sets). Dibandingkan dengan relational data model, relationship
dimodelkan dengan lebih jelas melalui himpunan yang menjadi pointer pada
implementasinya. Record diatur sebagai struktur grafik biasa dengan records
sebagai nodes dan himpunan sebagai edges pada grafik.
3.
Hierarchical data model
Hierarchical
merupakan jenis network model yang terbatas. Kembali data direpresentasikan
sebagai records dan relationship sebagai himpunan (sets). Hierarchical model
mengijinkan sebuah node untuk memiliki hanya satu parent. Sebuah
hierarchical model dapat direpresentasikan sebagai sebuah three graph, dengan record
sebagai nodes atau disebut juga segments dan himpunan sebagai edges
2.3.3
Physical Data Models
Physical data model mendeskripsikan bagaimana data
disimpan dalam komputer, merepresentasikan informasi seperti structure record,
pengurutan record, dan access paths. Physical data model tidak sebanyak logical
data model, yang paling sering digunakan adalah unifying model dan frame
memory.
2.3.4
Conceptual Data Models
Conceptual schema mendukung
sernua external views dan didukung oleh internal schema. Internal schema
hanyalah implementasi fisik dan conceptual schema. Conceptual schema seharusnya
dapat secara lengkap dan akurat merepresentasikan data yang dibutuhkan
organisasi. Conceptual modeling atau conceptual database design adalah proses
pembuatan sebuah model dari informasi yang digunakan dalam organisasi terpisah
dad detail implementasi, seperti target DBMS, application program, programming
languages, atau pertimbangan flsik lainnya. Conceptual model juga menunjuk pada
logical model.
2.4 Fungsi-fungsi
DBMS
Bagian ini akan menguraikan berbagai jenis
fungsi dan layanan yang dapat diberikan sebuah DBMS
Codd
(1982) telah mengidentifikasikan terdapat sepuluh layanan DBMS sebagai berikut
1.
data storage, retrival dan update
2.
A user accessible catalog
3.
transaction support
4.
concurrency control services
5.
recovery service
6.
authorization services
7.
support for data communication
8.
integrity services
9.
services to promote data independence
10. Utility
services
Berikut ini adalah 8 futngsi DBMS dan 2 tambahan fungsi
1) Data
storage, retrieval and update
Sebuah DBMS harus mempu.nyai kemampuan untuk
rnenyimpan (store), mencari (retrieve), dan memperbaharui (update) data di
dalarn database. Ini merupakan fungsi dasar. Dalam menyediakan fungsi ini, DBMS
menyembunyikan detail mengenai implementasi fisik internal (file organization
dan storage structures) dari user.
2) A user
accessible catalog
Sebuah DBMS harus menyediakan
katalog dimana deskripsi dari data yang disimpan dan dapat diakses oleh user.
Kunci dari three-level architecture adalah mengidentifikasi suatu system
catalog yang terintegrasi untuk menyimpan data mengenai schemas, users,
applications, dan lain-lain. Catalog diharapkan dapat diakses oleh user sebaik
diakses oleh DBMS. Sebuah system catalog, atau data dictionary, adalah sebuah
tempat penyimpanan dari deskripsi informasi yang terdapat di dalam database
data mengenai data atau meta-data.
3) Transaction
support
Sebuah DBMS harus memiliki sebuah mekanisrne yang
akan memastikan bahwa semua pembaharuan (update) yang berhubungan dengan
transaksi yang diberikan terjadi atau tidak terjadi sama sekali. Sebuah transaksi
adalah sekumpulan aksi, dihasilkan oleh seorang user atau program aplikasi yang
mengakses/merubah isi dari database. Jika transaksi mengalami kegagalan pada
saat pelaksanaan, yang mungkin terjadi karena komputer crash, database akan
menjadi tidak konsisten. Oleh karena itu perubahan yang telah dibuat akan
dibatalkan dan kembali pada keadaan database yang konsisten.
4) Concurrency
control services
Sebuah DBMS harus memiliki sebuah mekanisme untuk
memastikan bahwa update pada database dilakukan secara benar ketika ada
beberapa user melakukan update secara bersamaan.
5) Recovery
services
Sebuah DBMS harus memiliki
sebuah mekanisme untuk pemulihan database pada saat database dalam keadaan
bahaya. Pada penjelasan mengenai “transaction support”, disebutkan bahwa jika
transaksi gagal maka database akan kembali pada keadaan konsisten semula. Hal
ini dapat mengakibatkan DBMS berhenti, maka harus ada mekanisme untuk
memulihkan database pada keadaan yang konsisten.
6) Authorization
services
Sebuah DBMS harus memiliki
sebuah mekanisme yang memastikan bahwa hanya user yang berhak dapat mengakses
database. Kita ingin melindungi database dari user yang tidak berhak
mengaksesnya. Istilah security menunjuk pada perlindungan data terhadap akses
yang seharusnya tidak terjadi baik sengaja maupun tidak.
7) Support
for data communication
Sebuah DBMS harus dapat berintegrasi dengan
communication software. Sebagian besar user mengakses database malalui
workstations yang terkadang terhubung secara langsung dengan komputer yang
menjadi host DBMS, terkadang berada pada jarak jauh dan workstations terhubung
melalui sebuah jaringan. DBMS rnenerima permintaan sebagai communication
messages dan memberikan tanggapan degan cara yang sama. Perlu bagi DBMS untuk
dapat berintegrasi dengan berbagai macam komunikasi data.
8) Integrity
services
Sebuah DBMS harus memiliki
sebuah mekanisme untuk memastikan baik data di dalam database dan perubahan
yang terjadi pada data mengikuti peraturan yang ada. Database integrity
menunjuk pada kebenaran dan konsistensi dan data yang disimpan. Ketika
integrity berhubungan dengan security maka integrity berkonsentrasi dengan
kualitas data. Integrity biasa dikenal dengan istilah constrains, yang rnenjadi
aturan konsistensi yang tidak boleh dilanggar oleh database.
9) Services
to promote data independence
Sebuah DBMS harus memiliki sebuah mekanisme untuk
mendukung kemandirian program-program dari struktur aktual database. Data
independence pada umumnya didapat dari view atau mekanisme subschema. Pada
beberapa sistem, beberapa tipe perubahan pada komponen yang telah ada pada
logical structure tidak diperbolehkan.
10)
Utility services
Utility program membantu DBA mengelola database
secara efektif.beberapa utility bekerja pada eksternal level, lainnya pada
internal level dan dapat disediakan oleh DBMS vendor. Contoh utility:
• Fasilitas impor, memanggil data dari flat files, dan fasilitas
ekspor untuk menutup data ke dalam flat files.
• Fasilitas monitoring, memonitor penggunaan database dan
operasinya.
• Statistical analisis program, rnengevaluasi kinerja atau
statistic penggunaan.
• Fasilitas index reorganization, mengatur ulang index dan
kelebihannya (overflow)
• Garbage collection and reallocation, memindahkan record yang
dihapus secara fisik dari tempat penyimpanan, mengkonsolidasi kapasitas yang
dilepaskan dan mengalokasikannya di tempat yang rnemerlukannya.
2.5 Komponen
DBMS
Sebuah
DBMS sangat komplek dan terdiri dari bagian-bagian piranti lunak yang amat
rumit agar dapat menyediakan berbagai layanan seperti telah dijelaskan dimuka.
Adalah sangat tidak mungkin membuat batasan yang sangat umum komponen dari DBMS
ini karena hal ini sangat bergantung pada berbagai variasi system computer yang
digunakan. Agar memperoleh gambaran yang lengkap dibawah ini akan diuraikan suatu
contoh komponen database ORACLE.
·
Query processor
·
Database manager
·
File manager DML processor
·
DDL compiler
·
Catalog manager
Sedangkan
beberapa komponen piranti lunak database manager adalah sebagai berikut :
·
Authorized control
·
Command processor
·
Integrity checker
·
Query optimizer
·
Transaction manager
·
Scheduler
·
Recovery manager
·
Buffer manager
Komponen-komponen
DBMS
DBMS sangatlah rumit dan merupakan bagian software yang
kompleks untuk menyediakan semua services yang telah dijelaskan. Bagaimanapun
sangatlah berguna ketika kita berusaha memahami sistem database, kita mencoba
melihat komponen komponen DBMS dan relasinya. DBMS dibagi menjadi beberapa
komponen software (modules), setiap bagiannya mengerjakan suatu operasi
khusus.walaupun fungsi DBMS didukung oleh sistem operasi, sistem operasi hanya
menyediakan fungsi dasar dari DBMS harus dibangun diatasnya. Oleh karena itu,
rancangan DBMS harus didasarkan pada hubungan/metode komunikasi antara DBMS dan
sistem operasi. Komponen DBMS:
• Query processor: merupakan komponen utama DBMS yang merubah query
menjadi sekumpulan instruksi level rendah yang ditujukan untuk manajer
database.
• Database manager (DM): DM menerima queries dan menguji skema
eksternal dan konseptual untuk menentukan catatan konseptual apa saja yang
dibutuhkan.
• File manager: file manager memanipulaasi file penyimpanan utama
dan mengatur lokasi penyimpanan dalam disk, juga membuat dan memelihara daftar
struktur dan index yang dijelaaskan dalam skema internal.
• DML preprocessor : modul ini mengubah pernyataan DML yang
tersimpan dalam program aplikasi, menjadi fungsi panggilan standar dalam host
language. Preprocessor DML harus berinteraksi dengan query processor untuk
menghasilkaan kode yang tepat.
• DDL compiler: megubah pernyataan DDL menjadi sekumpulan tabel
yang berisi meta-data. Taqbel ini kemudian disimpan di dalarn sistem katalog
ketika informasi kontrol disimpan didalam data file header.
• Catalog manager : memelihara dan mengatur akses ke sistem
katalog.
2.6 Arsitektur DBMS multiuser
Pada
bagian ini digambarkan beberapa arsitektur secara umum yang dipakai untuk implementasi database pada
sebuah jaringan multiuser.
2.6.1
Telleprocesing
2.6.2
File Server
2.6.3
Client Server
Multi-user DBMS
architecture
• Teleprocessing
Arsitektur tradisional untuk
sistem multy-user adalah teleprocessing, dimana ada 1 komputer dengan single
CPU dan beberapa terminal. Namun beberapa tahun terakhir mi, ada peningkatan
dalam perkembangan dari performance komputer dan jaringan, yaitu trend yang
mengarah pada downsizing, yaitu menggantikan computer mainframe yang mahal
dengan computer jaringan yang lebih murah namun dapat mencapai hasil yang sama
atau babkan lebih baik. Trend in memunculkan 2 arsitektur lain : file-server
dan client-server.
• File-server
File-server rnemiliki file-file
yang diperlukan oleh aplikasi dan DBMS. File server
bertindak hanya sebagai .shared
hard disk drive. DBMS di masing-msing workstation
mengirimkan permintaan ke
file-server untuk semua data yang diperlukan DBMS
yang disimpan dalam disk.
3 kerugiannya:
• Ada aliran
jaringan yang besar
• Diperlukan
seluruh salinan DBMS untuk setiap workstation
• Control
terhadap concurrency, recovery dan integritas lebih sulit karena banyak user
yang mengakses file yang sama.
• Client-server
Client-server
menunjuk pada suatu cara dimana suatu komponen software berinteraksi untuk
membuat suatu sistem.
Keuntungan dad arsitektur ini
• Memungkinkan
akses yang lebih luas ke database
• Meningkatkan
penampilan
• Mengurangi
biaya hardware
• Mengurangi
biaya komunikasi
• Meningkatkan
konsistensi
Fungsi client:
• Mengatur
tampilan user
• Menerima dan
mengecek sintak yang dimasukkan oleh user
• Memproses
logika aplikasi
• Meningkatkan
permintaan database dan dikirimkan ke server
• Memberikan
respon ke user
Fungsi server:
• Menerima dan
memproses permintaan database dari client
• Memeriksa
autorisasi
• Memastikaan
bahwa batasan integritas yang ada tidak dilanggar
• Menampilkaan
query/melakukan proses update dan mengirimkan respon ke klien
• Memeliharaa
sistem katalog
• Menyediakan akses
database yang dapat dilakukan bersama-sama
2.7 Katalog
Sistem
Adalah
sebuah tempat penyimpanan dari gambaran informasi pada suatu database, disebut juga metadata
atau “data tentang data’.
Sebuah
system catalog akan menyimpan :
·
Nama yang punya otoritas terhadap DBMS
·
Nama-nama data items dalam database
·
data item yang dapat diakses oleh pemakai
Sistem
catalog juga mempunyai fasilitas pengeditan, yang disebut integrity checker,
dengan fungsi-fungsi sbb :
·
nama-nama item di dalam database
·
jenis data dan panjang setiap elemen data
·
batasan yang ada pada setiap items data
0 komentar:
Posting Komentar