PENERAPAN FASILITAS DATA DEFINITION LANGUAGE PAD A ATTRIBUTE TEMPORAL DATABASE MANAGEMENT SYSTEM Sutrisno1), Aditya Rama Mitra2), dan Virginia Ravenska3' Abstract Attribute Temporal DBMS (ATDBMS) is a database management system that is defined to support temporal database at attribute level. A temporal database simply is one that maintains both past and current data. Regarding to its architecture, an ATDBMS consists of 8 layers. One of its layers is database engine, which facilitates DDL (Database Definition Language) and DML (Database Manipulation Language) components. DDL facilitates database structure definition, which is creating, modifying and deleting database structure. This thesis focuses on the development of DDL facilities prototype that supports ATDBMS. In this research, most of those facilities are dealt with, i.e. database structure creation, database structure opening, database structure deletion, entity and attribute creation, entity and attribute deletion, and entity and attribute opening. 1. PENDAHULUAN Model basis data relasional snapshot {snapshot relational database) adalah model basis data yang sedemikian populer di kalangan pengembang aplikasi basis data. Sekalipun demikian, basis data tipe ini memiliki beberapa kelemahan, antara lain: a. Data masa kini dan data masa lalu tidak dapat dipertahankan secara bersamasama. Pemutakhiran (update) data berarti penghapusan data sebelumnya (past data). Akibatnya, tidak ada pengertian atas query terhadap data masa lalu. b. Atribut waktu yang ditambahkan pada basis data relasional untuk mengakomodasi pencatatan waktu suatu data ternyata memunculkan masalah baru, yaitu sulitnya menentukan primary key, tabel menjadi lebih banyak dan besar, dan query lebih rumit. Basis data relasional dengan atribut waktu ini disebut basis data relasional yang diperluas. Dengan adanya kelemahan pada model basis data relasional di atas, maka dibutuhkan model basis data yang mampu mengelola data masa lalu dan data masa kini. Basis data dimaksud adalah basis data temporal beserta sistem pengelolanya (DBMS). Secara khusus, basis data yang dikaji dalam penelitian ini berurusan secara dominan pada pengelollaan data di aras atribut, yang diperkenalkan dengan sebutan Attribute Temporal Database (ATDBMS). Penelitian dibatasi pada pembangunan sebagian fasilitas Attribute Temporal DBMS untuk mendukung basis data temporal, meliputi lapisan mesin basis data (database engine) dan sebagian besar lapisan pengelola basis data temporal (temporal database manager), khususnya fasilitas DDL. Fasilitas ini digunakan untuk mendefinisikan struktur basis data. Di samping itu, perancangan dibatasi pada sebuah sistem yang berdiri sendiri (stand alone). ' Sutrisno, Dosen Tetap pada Fakultas llmu Komputer, UPH Aditra Rama Mitra, Dosen Tetap pada Fakultas llmu Komputer, UPH 3) Virginia Ravenska, Alumni Jurusan Teknik Informatika Fakultas llmu Komputer, UPH 2) Penerapan Fasilitas Data Definition...(Sutrisno, Aditya R. Mitra, Virginia Ravenska) 141 2. RANCANGAN KONSEPTUAL, TEMPORAL DBMS (ATDBMS) LOGIKAL DAN FISIKAL ATTRIBUTE Attribute Temporal DBMS memuat sejumlah lapisan (lihat Gambar 1) yang saling terkait, memiliki fungsi dan tugasnya masing-masing dalam mengelola basis data temporal. Query Processor API Processor Transaction Manager M Concurrency Control Manager V TG r I Security Control Manager eS Integrity Control Manager Temporal Database Manager °ff t Database Engine Gambar 1. Lapisan Attribute Temporal DBMS Masing-masing lapisan atau komponen pada Gambar 1 di atas mempunyai tugas masing-masing sebagai berikut: lapisan teratas, Query Processor, bertanggung 142 Jurnal llmiah llmu Komputer, Vol. 2 No. 2 April 2004:141 -148 jawab atas pengolahan dan pengenalan secara sintaktik (parsing) perintah SQL; lapisan API Processor menangani pengelolaan, penginventarisasian dan pengklasifikasian fungsi-fungsi yang ada; lapisan Transaction Manager bertanggung jawab atas jalannya inventarisasi semua transaksi yang diinisiasi klien; lapisan Concurrency menangani akses yang terjadi secara simultan untuk menjaga konkurensi data; lapisan Security Control, untuk alasan sekuriti data, bertanggung jawab melakukan pemeriksaan otentikasi klien terhadap data yang diaksesnya; lapisan berikutnya, Integrity Control, bertanggung jawab untuk menjamin terjaganya integritas data yang ada; lapisan Temporal Database Manager bertanggung jawab untuk menangani semua tabel dan data yang digunakan oleh klien; lapisan Database Engine bertanggung jawab terhadap penulisan dan pengambilan data dari dan ke disk. Selain komponen utama yang disebutkan di atas terdapat beberapa komponen pendukung lainnya seperti Log Manager yang bertanggung jawab untuk melakukan pencatatan setiap Iangkah transaksi yang terjadi selama sistem aktif; Recovery Manager yang bertanggung jawab untuk melakukan operasi pemulihan sistem (recovery) dalam hal terjadi crash; Buffer Manager yang bertanggung jawab untuk mengelola buffer bagi kebutuhan transaksi. ATDBMS memiliki terminologi sebagai berikut: atribut temporal, tuple temporal dan entitas temporal. Atribut temporal adalah identifikasi dari obyek/benda yang dapat membedakannnya dari obyek/benda lain disertai dengan adanya timestamp. Tuple temporal merupakan kumpulan dari nilai atribut, id dari tuple berserta timestamp. Dalam perancangannya, ATDBMS memiliki sejumlah kelas (lih. Gambar 3) untuk mendukung operasi fasilitas yang tersedia. Kelas-kelas tersebut disusun berdasarkan atas desain proxyfj], yaitu keadaan dimana user tidak akan berhubungan langsung dengan kelas-kelas dalam ATDBMS dan data fisik melainkan dengan satu kelas perantara, yaitu kelas STemporai. Prototip Fasilitas DDL dari Attribute Temporal DBMS mengambil bentuk package yang berisi fungsi-fungsi dari fasilitas yang disediakan oleh prototip. Untuk dapat menggunakan fungsi-fungsi dari package ATDBMS (dalam penelitian ini, package dari ATDBMS disebut dengan package ddlfunction) dipehukan suatu aplikasi interaksi yang terpisah dari prototip ATDBMS (lihat Gambar 2). User cukup melakukan "import package ATDBMS untuk dapat menggunakan fasilitas dari ATDBMS. Attribute Temporal DBMS Aplikasi Interaksi User Gambar 2. Pandangan Cara Akses Secara Umum Penerapan Fasilitas Data Definition...(Sutrisno, Aditya R. Mitra, Virginia Ravenska) 143 Aplikasi interaksi dari user hanya berhubungan dengan kelas STemporai yang memfasilitasi penggunaan fungsi serta hasil {output) dari penggunaan fungsi yang disediakan oleh lapisan database engine seperti terlihat pada Gambar 2. STemporai akan berhubungan dengan SEntityBag dan commArea. Kelas sEntityBag mewakili satu basis data dan memfasilitasi fungsi-fungsi yang diperlukan untuk mengelola suatu basis data. Dalam tugasnya untuk mengelola suatu basis data, kelas SEntityBag didukung oleh kelas s E n t i t y s e t dan kelas sDBinstance. Kelas SEntityset mewakili satu entitas dan memfasilitasi fungsifungsi yang diperlukan untuk mengelola suatu entitas dari basis data. Dalam tugasnya untuk mengelola entitas dari suatu basis data, kelas ini didukung oleh kelas-kelas lain pada ATDBMS seperti terlihat pada Gambar 3. SAssoc ration SAssoc iati onM ember r eoid SDBhstartce SErtity S Schema Version Register esid SAttribute 1 f SII ember Ertity STuple Index Sunk Attribute SErtity Bag CommArea I STemporai Gambar 3. Rancangan Kelas Attribute Temporal DBMS 144 Jumal llmiah llmu Komputer, Vol. 2 No. 2 April 2004: 141 -148 Berikut ini adalah daftar kegunaan masing-masing kelas pada ATDBMS: a. STemporal: sebagai proxy [1] antara aplikasi user dengan kelas-kelas dalam Attribute Temporal DBMS. Kelas ini akan berhubungan dengan kelas S E n t i t y B a g d a n CommArea. b. CommArea : mendefiniskan status transaksi (misal error) yang terjadi. c. SEntityBag: mewakili satu basis data; berhubungan dengan SEntitySet dan SDBInstance. d. SEntitySet: mewakili satu entitas; berhubungan dengan kelas SEntity. e. SDBInstance: mengelola operasi-operasi pada basis data, misalnya membentuk basis data. f. SEntity: mengelola entitas beserta daftar atribut yang dimiliki oleh entitas. g. SEntityMember: mengelola anggota entitas dari suatu basis data. h. sschemaversion: mengelola pengubahan yang terjadi pada versi skema entitas. i. SAt t r i b u t e : mengelola infonmasi mengenai atribut dari suatu entitas. j. STupieindex: mengelola header dari informasi yang menunjukkan indeks dari lokasi tuple pada tuple schema. k. sTupieLink: kelas ini digunakan untuk mengelola informasi yang menunjukkan indeks lokasi tuple pada tuple schema. I. SBucket: kelas ini digunakan untuk mengelola header dari informasi mengenai penyimpanan nilai dari tuple ke disk fisik. m. SBucketvalue: kelas ini digunakan untuk mengelola infonmasi mengenai penyimpanan nilai dari tuple ke disk fisik. n. STupie: kelas ini digunakan untuk mengelola header dan informasi mengenai tuple serta lokasi tuple pada bucket schema. o. STupieData: kelas ini digunakan untuk mengelola informasi mengenai tuple. p. SLinkAttribute: kelas ini digunakan untuk mengelola informasi mengenai lokasi tuple pada bucket schema. q. SAssociation: kelas ini digunakan untuk mengelola header dari informasi mengenai relasi/asosiasi yang terjadi antara 2 entitas. r. SAssociat ionMember: kelas ini digunakan untuk mengelola informasi mengenai relasi/asosiasi yang terjadi antara 2 entitas. s. DateTime: kelas ini digunakan untuk mengelola pencatatan dan pengambilan data waktu dari disk. Tepatnya, kelas-kelas diatas digunakan untuk mengelola struktur basis data temporal yang sesungguhnya terdiri dari beberapa komponen. Komponen struktur basis data dimaksud beserta fungsinya masing-masing adalah sebagai berikut: a. Database Instance: mencatat informasi mengenai basis data. b. Entity Schema: mencatat informasi mengenai entitas. c. Tuple Schema: mencatat infonmasi mengenai tuple. Penerapan Fasilitas Data Definition.. (Sutrisno, Adrtya R. Mitra, Virginia Ravenska) 145 d. Tuple Index Schema: mencatat informasi mengenai indeks tuple pada Tuple Schema. e. Bucket Schema: mencatat nilai dari tuple serta lokasi dari nilai tersebut ditampung pada disk fisik. 3. RANCANGAN FASILITAS DDL PADA ATTRIBUTE TEMPORAL DBMS Attribute Temporal DBMS, khususnya pada lapisan database engine, menyediakan salah satunya fasilitas DDL, yaitu fasilitas untuk mendefinisikan struktur dari basis data dan mengelola setiap pengubahan yang terjadi pada struktur entitas. Fasilitas DDL yang disediakan antara lain: 1. Pendefinisian struktur basis data a. Membuka basis data dan entitas-entitas dari basis data tersebut b. Menutup basis data dan entitas-entitas dari basis data tersebut c. Membentuk kerangka basis data i. Membentuk basis data ii. Membentuk entitas dari suatu basis data iii. Membentuk atribut dari suatu entitas d. Menghapus basis data, entitas dan atribut 2. Pengelolaan setiap pengubahan yang terjadi pada struktur entitas. Struktur basis data dapat berubah, misalnya jumlah atribut yang bertambah dan pengubahan struktur atribut. Dalam basis data temporal yang dikelola oleh Attribute Temporal DBMS, setiap pengubahan yang terjadi pada struktur basis data dicatat ke dalam basis data sebagai satu urutan historis. Proses pengubahan struktur basis data ini disebut dengan evolusi/perkembangan skema (schema evolution) seperti terlihat pada Gambar 4. Versi Skema 1 Atribut 1 )>- Atribut 2 Versi skema 1 dari suatu entitas dengan kumpulan atribut yang dimiliki Versi Skema 2 Atribut 1 Atribut 2 P^ Versi skema 2 dari suatu entitas dengan kumpulan atribut yang dimiliki Atribut 3 Schema Evolution: perkembangan > skema entitas J Gambar 4. Schema Evolution - 4. IMPLEMENTASI PROTOTIP ATTRIBUTE TEMPORAL DBMS Implementasi prototip fasilitas DDL dari Attribute Temporal DBMS dalam penelitian ini merupakan implementasi tunggal dan belum terintegrasi dengan bagian prototip Attribute Temporal DBMS khususnya yang menangani fasilitas DML. Adapun cara 146 Jumal llmiah llmu Komputer, Vol. 2 No. 2 April 2004: 141-148 implementasi yang dilakukan dalam prototip Attribute Temporal DBMS ini antara lain: 1. 2. Menggunakan lingkungan pengembangan berbasis Java 2 SDK 1.4.1. Menggunakan kelas Gregorian Calendar [3] yang telah disediakan Java untuk mengimplementasi kelas DateTime yang digunakan untuk mengelola data waktu. 3. Instansisasi kelas menjadi obyek dilakukan dengan 2 cara, yaitu instansisasi langsung dan instansisasi satu per satu kemudian dimasukkan ke dalam vektor. 4. Penyimpanan data dilakukan dalam bentuk random access file dengan menggunakan kelas RandomAccessFile yang telah disediakan oleh Java. 5. Penyimpanan berkas basis data dilakukan dalam direktori berbeda berdasarkan nama dari basis data. 5. PENGUJIAN PROTOTIP FASILITAS DDL DARI ATTRIBUTE TEMPORAL DBMS (ATDBMS) Pengujian prototip fasilitas DDL dari ATDBMS dilakukan dengan teknik white box testing [2], dimana pengembang membangun sebuah aplikasi penguji berbasis teks untuk keperluan tersebut. Tepatnya, aplikasi pengujian tersebut menguji fasilitasfasilitas DDL pada prototip ATDBMS dengan meng-import package prototip ATDBMS. 6. KESIMPULAN Dari pembahasan sebelumnya dapat disimpulkan bahwa rancangan sistem yang matang (well design) sangat diperlukan khususnya dalam hal integrasi sistem yang dikerjakan secara kolaboratif (collaborative works). Salah satu kasus, sebagaimana terkait dengan laporan ini, ialah integrasi DDL dengan fasilitas DML. Selain itu, hasil pengujian menunjukkan bahwa prototip yang dibangun berkemampuan menyediakan berbagai fasilitas dasar DDL seperti telah disebutkan dalam bahasan di atas. 7. SARAN Sejumlah saran yang dapat dikemukakan berkenaan dengan pembangunan prototip penyedia fasilitas DDL adalah sebagai berikut: 1. Koordinasi dan integrasi yang lebih baik antara prototip fasilitas DDL dan prototip fasilitas DML. 2. Implementasi fasilitas penanganan kesalahan (error handling) (prototip versi 2) 3. Implementasi rancangan fasilitas sinkronisasi waktu. Saran lanjut adalah bahwa sinkronisasi waktu dirancang sedemikian rupa untuk dapat bekerja secara otomatis. 4. Implementasi Multiple Database Instance yang memungkinkan satu user untuk berinteraksi dengan satu obyek hasil instansiasi sTemporai, dimana obyek tersebut mempunyai kemampuan mengelola beberapa database instance dalam satu saat (prototip versi 2). Penerapan Fasilitas Data Definition...(Sutrisno, Aditya R. Mitra, Virginia Ravenska) 147 5. Peningkatan kualitas contoh aplikasi interaksi user dengan ATDBMS menjadi lebih baik dan beralih dari aplikasi berbasis teks ke aplikasi berbasis GUI (Graphical User Interface) (prototip versi 2). 6. Penyempurnaan dan optimasi fungsi dan fasilitas yang telah dibangun pada prototip ini. DAFTAR PUSTAKA [FRP2001] Frank Buschmann, Regine Meunier, Peter Sommerlad, Pattern Oriented Software Architecture: A System of Patterns, John Wiley & Sons, 2001. [Rog2001] Roger S. Pressman, Software Engineering: Approach, 5th Edition, McGraw-Hill, 2001. [Sun 2002] Sun Microsystem, Java 2 Standart Edition 1.4 API Reference, Sun Microsystem, 2002. 148 Jumal llmiah llmu Komputer, Vol. 2 No. 2 April 2004:141 -148 A Practitioner's