Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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