Download download

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
BAB II
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
External
Level
Conceptual
Level
Internal
Level
View 1
User 2
View 2
User 3
View 3
Conceptual schema
Internal schema
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 berbedabeda 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 lainlain. 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
implementasi database pada sebuah jaringan multiuser.
yang dipakai untuk
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