FASILITAS DATA MANIPULATION LANGUAGE PADA ATTRIBUTE TEMPORAL DATABASE MANAGEMENT SYSTEM Sutrisno1', Irene Astuti Lazarusli2), dan Martin Phineas3' Abstract This thesis discusess building a prototype of Data Manipulation Language for Attribute Temporal Database Management System for maintaining temporal data. In this thesis, Data Manipulation Language is built as Application Programming Interface form. Temporal Database is defined as a database, which have capability to retain current data and previous data. Data Manipulation Language support temporal operations are insert, update, retrieve, inactive, activate, and delete operation. In Attribute Temporal Database, the operations can support both current and previous data through attribute level. This prototype is fully functional and provides support for insert, update, retrieve, inactive, activate, and delete operation. These facilities will satisfy the main purpose of Data Manipulation Language for Attribute Temporal Database Management System. 1.PENDAHULUAN Basis data temporal mampu menyimpan data terbaru (current) dengan mempertahankan data masa lalu {historical data) yang dipandang sebagai versi data yang berlaku pada rentang waktu tertentu. Basis data temporal juga dapat menyimpan perubahan skema (schema evolution) dengan tetap mempertahankan data yang ada dengan beberapa penyesuaian [5]. Database Management System (DBMS) Temporal terdiri dari beberapa lapisan (Gambar 1), dari atas ke bawah yaitu: Query Processor sebagai parser yang akan membaca query SQL, API Processor yang melakukan proses dan membagi perintah-perintah, Transaction Manager sebagai pengendalian komunikasi antara client dengan database, Concurrency Control Manager untuk menjaga konsistensi saat akses simultan, Security Control Manager sebagai pengendali hak akses tiap pengguna data atau transaksi, Integrity Control Manager yang menjaga integritas (akurasi) data sesuai dengan aturan yang berlaku pada sistem, Temporal Data Manager bertugas untuk menangani manajemen data pada aspek temporalnya, dan Database Engine yang melakukan penulisan dan pembacaan ke dan dari media penyimpanan (disk). DBMS dilengkapi juga dengan pencatatan transaksi (Log Manager), lapisan DBMS untuk menangani upaya pemulihan sistem bila mengalami crash (Recovery Manager), dan lapisan penyimpanan sementara (Buffer Manager). Pembuatan sebuah piranti lunak sistem manajemen data (DBMS) merupakan sebuah proyek besar. Penelitian ini melakukan proses rancang bangun fungsi-fungsi utama Data Manipulation Language (DML) yaitu fasilitas dari database engine untuk manipulasi data temporal. Penelitian ini hanya membahas lapisan Database Engine dan lapisan Temporal Data Manager. DML (Data Manipulation Language) bertanggung jawab dalam melakukan manipulasi data yaitu menampilkan, menambah, mengurangi, dan mengubah data (select, insert, delete, dan update) tanpa mengubah struktur database.
2) 3)
Sutrisno, Dosen Tetap pada Fakultas llmu Komputer, UPH Irene A. Lazarusli, Asisten Dosen Tetap pada Fakultas llmu Komputer, UPH Martin Phineas, Alumni Jurusan Teknik Informatika Fakultas llmu Komputer, UPH
Fasilitas Data Manipulation...(Sutrisno, Irene A. Lazarusli, Martin Phineas)
103
Gambar 1. Layer DBMS Temporal 2. ATTRIBUTE TEMPORAL DATABASE MANAGEMENT SYSTEM Basis data temporal adalah basis data yang memiliki kemampuan untuk tetap menyimpan data masa lalu. Data masa lalu tersebut disimpan bersama dengan data masa kini. Basis data temporal menggunakan valid-time sebagai timestamp untuk interpretasi data berdasarkan waktu yang berlaku pada aplikasi, dan transactiontime sebagai timestamp untuk interpretasi data berdasarkan waktu penyimpanan 104 Jurnal llmiah llmu Komputer, Vol. 2 No. 2 April 2004: 103 -112
pada basis data. Dengan dukungan 2 jenis timestamp, basis data temporal disebut bitemporal. Attribute temporal adalah attribute pada basis data temporal yang memiliki valid-time dan transaction-time. Attribute temporal memiliki 4 field. Bagian pertama berupa pasangan attribute name dan attribute domain. Bagian kedua berupa attribute value. Bagian ketiga adalah valid-time dengan menggunakan waktu berupa interval. Bagian keempat adalah transaction-time yang menggunakan waktu titik. Entity temporal adalah entity yang strukturnya dapat diubah dan dicatat berdasarkan waktu. Pada sebuah entity hanya berlaku sebuah struktur yang ada padanya. Perubahan struktur pada sebuah entity disebut schema evolution. Tuple temporal merupakan instance/occurrence dari sebuah entity temporal. Sebuah tuple temporal memiliki sejumlah attribute beserta nilainya yang sesuai dengan struktur entity yang bersangkutan. Sebuah tuple temporal juga memiliki entity occurrence identity (eoid). Eoid adalah identitas yang membedakan sebuah tuple temporal dengan tuple temporal lainnya. Eoid dibentuk oleh sistem {surrogate) sehingga selalu memiliki nilai yang unik. Sebuah tuple temporal memiliki valid-time dan transaction-time sebagai timestamp bagi setiap tuple temporal. Secara konseptual, data pada Attribute Temporal Database Management System (ATDBMS) dapat dibayangkan berupa bidang 3 dimensi (tuple, attribute, dan time). Setiap tuple memiliki beberapa attribute dan dapat berkembang (versi) bila dilakukan perubahan data. Visualisasi pengubahan data temporal dapat dilihat pada Gambar 2. Sebagaimana ditampilkan pada gambar tersebut, terdapat 3 tuple (1, 2, dan 3). Tuple tersebut terdiri dari 4 attribute (a, b, c, dan d). Ketiga tuple terlihat pada kotak terkiri, seiring dengan waktu terjadi perubahan masing-masing waktu. Pada tuple 1 dapat terlihat bahwa attribute a telah diubah sebanyak 2 kali, attribute b diubah 1 kali, attribute c belum pernah diubah, dan attribute d diubah sebanyak 2 kali. Sehingga seiring berjalannya waktu (time), terjadi berbagai perubahaan seperti tampak pada Gambar 2, data terbaru tampak dalam bentuk kotak yang diarsir dan terletak pada ujung terkanan. Penjelasan selanjutnya dapat dilihat pada operasi retrieve. r
Z
A-
1 /2f~ /
/
/
/
A
/
/
/ /
/
d c Attribute
A
I /
j7
b /
a
7
zf
z.
*L
/
f
/
r^
/ /
9
/
Transaction Time Gambar 2. Model Data Attribute Temporal Fasilitas Data Manipulation...(Sutrisno, Irene A. Lazarusli, Martin Phineas)
105
3. RANCANGAN LOGICAL Rancangan logical untuk data definition language (DDL) tidak dilakukan pada penulisan ini, sebagaimana telah dinyatakan pada Bagian 1, hanya date manipulation languange (DML) yang dibahas. ATDBMS menyediakan kemampuan untuk membentuk dan menangani beberapa database instance. ATDBMS adalah pengelola database yang dapat menangani beberapa database. Sebuah database umumnya terdiri dari beberapa entity. Contoh entity dapat dilihat pada Gambar 3. Sebuah entity terdiri dari sejumlah tuple. Sebuah tuple memiliki attribute, eoid, dan timestamp. Perhatikan Gambar 3, tuple pertama memiliki eo/d 1 yang membedakan tuple tersebut dari tuple lainnya. Tuple 1 dan 4 berbeda meskipun memiliki attribute value (a, 1.55, 100) yang sama karena memiliki nilai eoid yang berbeda. Timestamp terdiri dari Vts, VU, dan Tt. Vts bernilai 1 berarti tuple tersebut berlaku mulai dari satuan waktu 1. VL, bernilai"-" (nilai"-" boleh juga ditulis dengan "°°"), berarti bahwa tuple tersebut masih berlaku sampai sekarang. Attribute Tt memiliki nilai 1 berarti tuple dibuat pada satuan waktu 1.
Eoid 1 2 3 4 5
Al a b c a d
A2
1.55 12.34 3.7
1.55 8.67
A3 100 20 80 100 50
Eoid version 1 1 1 1 1
vts 1 2 1 2 3
vte -
Tt 1 2 y.
4
Gambar 3. Entity dan Entity Occurence Data retroactive adalah data yang keberadaan atau kejadiannya dinyatakan berlaku atau valid pada aplikasi lebih dahulu, daripada penyimpanannya. Indikasi data retroactive, yaitu transaction-time lebih besar dari valid-time-start. Data prospective adalah data yang kejadiannya di masa mendatang tetapi data tersebut telah disimpan di dalam disk. Ciri dari data prospective adalah transaction-time lebih kecil dari valid-time-start. Data retroactive lebih banyak digunakan dalam aplikasi[4]. Operasi-operasi primitif untuk manipulasi data temporal adalah insert, update, retrieve, inactive, activate, dan delete. Operasi Insert digunakan untuk memasukan tuple baru ke ATDBMS. Operasi Update mengubah nilai attribute dari suatu tuple tertentu. Operasi Retrieve memiliki banyak variasi sesuai jenis dan waktu. Operasi Retrieve menampilkan nilai attribute dan tuple dengan berbagai macam cara sehingga bisa didapat batasan-batasan yang jelas seperti valid-time, transactiontime, eoid, status, dan sebagainya. Operasi Inactive membuat sebuah tuple tidak aktif. Tuple yang tidak aktif menyatakan bahwa selama periode Vts-Vte tidak ada data. Tuple yang tidak aktif masih dapat ikut serta dalam operasi Retrieve, tetapi tidak dapat ikut serta dalam operasi Update (kecuali diaktifkan kembali). Operasi Activate membuat tuple yang tidak aktif menjadi aktif kembali. Operasi Delete menghapus tuple dari suatu entity. 4. RANCANGAN ARSITEKTUR Rancangan interaksi antara ATDBM dengan dunia luar (aplikasi) menggunakan model proxy. Kelas yang digunakan sebagai proxy utama adalah
106 Jumal llmiah llmu Komputer, Vol. 2 No. 2 April 2004: 103-112
fates Temporal yang didukung ©ten kites SEntityBag dan SentitySat sebagai anggdta kites tersibut SEntityBag dHangani ©ten Temporal dii mana SEntityBag mtmegang kindali terhadap §©mua #/?/S*y swatu database Setiap entity ditangani ©ten kites SEntitySet Betiap #/?#y terdiri dan k©mp©n©n data, //rate*, dan bucket- SEntitySet mimigang kindali epsrasi pada #«iWy Kites EntityBag dan EntitySat nwupakan kites manager yang m©ngatur birbagai ©ptrasi dan tertetak ©adatepisanfasilitas Padatepisanfasilrtas-fasiliias manipulasi data (Qamtoar 4) Kites Temporal minangani simua basis data yang akan dikitola ©ten pemakai Jadi tentu saja Temporal adalah kites yang milakukan interaksi dingan p©ngguna Attribute Temporal Database Management System Struktur tepisan dapat dilihat pada Qambar 4
Twiynwi
1
1 1 1 1
1 1
Qambar 4 Struktur Lapisan 5, RANCANGAN KELAS Tilah dijilaskan pada rancangan arsitaktur, Temporal adalah kilas yang berfungsi sibagai proxy Kites CemmAria mirupakan bagian yang tidak tarpisahkan dari Temporal, kilas ini mimiliki perm untuk malaporkan birbagai status dari transaksi yang dilakukan. Tugas yang dilakukan kites yaitu menyimpan k©de error dan daskripsi dari masaiah yang birsangkutan pada sibuah file untuk mempirmudah dalam pambuatan dafinis) SEntitySet dan SEntityBag adalah kilas manager yang mingatur birbagai oparasi, Kilas 8DBIn§tanee, SEntityMember, BEntity SSehemaVergion, $Attribute, STuple, STupleData, SLinkAttribute, STuplelndex, STupleLink, SBueket, dan SBucketValue adalah kilas yang birhubungan dingan birbagai oparasi dan aksis data[4], SEntityBag mewakiH sibuah database in§tance{4], SEntityBag miwakili pandangan sibuah database container yang birisi informasi database yang bersangkutan, SEntityBag mamigang kindali object kites SEntitySet, SEntitySet mswakili Sibuah entity[4].. SEntitySet mawakili pandangan sabuah entity yang birisi infermasi entity yang birsangkutan, SEntitySet mimigang kindali object keias-kelas ©parasienal aksis data, Kilas-kilas ©parasienal aktas data meliputi kilas yang mangaksis database instance, entity, tuple index, tuple, dan bucket (rhinampung nilai data atribut), Keterangan libih rinei ming©nai kilas-kilas ini dibahas pada rancangan fisik, Rancangan kilas dapat dilihat pada Gambar 5
Fssilitas Data Manipulation,„(Sutrlsne, lr©n© A, Uazaruslf, Martin Phin©a§)
107
'.AuiuUJrtiutMt'riltei
:,liMti.-i.it). • • SSclwiiuVetMoii
V Mi|M.ti*
SIirl«
I
.UiikAMiiUrt*
SltftleOat.
• •
Gambar 5. Rancangan Kelas 6. RANCANGAN FISIK Perancangan fisik diantaranya melakukan perancangan berbagai tipe data yang didukung oleh Attribute Temporal DBMS sebagaimana yang disaajikan pada Tabel 1. Beberapa tipe seperti image dan video belum diimplementasikan. Tabel 1. Rancangan Tipe Data yang didukung ATDBMS Space disk (in bytes)
Java Data Type
510 = 2 x 255 bytes 2 x n bytes
Unicode string
2 bytes
Unicode character Char Long
64 bit, little endian 32 bit, little endian 16 bit, little
Unicode string
Int Short
Methods pada RandomAccess File writeCharsO readChar()
Attribute Type
Deskripsi
CHAR
writeCharsQ readChar() writeChar() readChar()
VARCHAR Byte
System default fixed size= 255 karakter User defined size =n 1 karakter
writeLongQ readLongO writelntQ read lnt() writeShortQ
Long
long
Integer
integer
Short
short
108 Jurnal llmiah llmu Komputer, Vol. 2 No. 2 April 2004: 103- 112
endian 32 bit
Float
32 bit
Double
1 byte 01-true, 00false 4 bytes
boolean
7 bytes
< yyyy,mm,dd> < short.byte.byte > intermed: Date < yyyy.mm.dd, hh,nn,ss> < short, by te.byte
32 bit
byte.byte.byte> intermed: Date double
Image file
byte
Video file
byte
readlntO writeFloat() readFloat() writeDouble() readDouble() writeBoolean() readBoolean()
Float
Float atau real
Double
Double
Boolean
True, false
writeShortO writeByteO readlnt() readByteO
Date
YYYYMMDD Date, Month, Year
writeShortO writeByteO readlnt() readByteO
DateTime
YYYYMMDD HHNNSS Hour, minute, Second
writeDouble() readDouble() writeByteO, atau write() readByteO read() writeByteO, atau write() readByteO read()
Currency
Future
Image
Future, still image
Video
Future, moving image
Perancangan fisik pada media penyimpanan memiliki struktur tertentu dan ditangani oleh kelas yang melakukan interaksi langsung dengan media penyimpanan SDBInstance dan SEntityMember bersama-sama mengakses file database yang berisi informasi suatu database. SAssociation dan SAssociationMember bersamasama mengakses berkas (file) association yang menyimpan informasi asosiasi antar entity. SEntity, SSchemaVersion, dan SAttribute bersama-sama mengakses berkas yang berisi informasi tentang entity. STuple, STupleData, dan SLinkAtthbute mengakses berkas yang menyimpan informasi mengenai tuple. STuplelndex dan STupleLink mengakses informasi mengenai petunjuk hubungan (pointer) antar versi tuple, juga antar tuple. SBucket dan SBucketValue mengakses berkas yang berisi nilai data atribut pada berkas bucket. Dalam implementasi, penamaan berkasberkas tersebut disandikan. Setiap kali operasi Insert, Update, Inactive, Activate, dan Delete dikerjakan maka ATDBMS melakukan pemeriksaan waktu akses terakhir dibandingkan dengan waktu sistem komputer. Mekanisme ini dilakukan untuk mencegah terjadinya waktu sistem yang tidak konsisten (waktu akses terkini lebih kecil dan waktu akses terakhir yang dilakukan).
Fasilitas Data Manipulation...(Sutrisno, Irene A. Lazarusli, Martin Phineas)
109
7. IMPLEMENTASI Perangkat keras yang digunakan dalam pengembangan dan pengujian ATDBMS menggunakan processor AMD Athlon XP 2100+, RAM sebesar 512 MB, media penyimpanan, dan perlengkapan input dan output standar. Sistem operasi yang digunakan dalam pengembangan dan pengujian adalah Microsoft Windows XP Professional SP1. Untuk menyimpan semua keperluan pengujian, diperlukan kapasitas media penyimpanan minimal sebesar 2 GB. Implementasi dilakukan dengan menggunakan bahasa pemrograman Java, yaitu Java 2 SDK 14.1 [3]. Penggunaan versi 1.4.1 yang cukup baru memungkinkan pengembangan ATDBMS dengan menggunakan kelas GregorianCalendar[2]. Kelas tersebut lebih baik dari kelas Date yang dikembangkan oleh Java pada versi sebelumnya. Salah satu keunggulan GregorianCalendar dapat mendukung pencatatan waktu hingga pada era Sebelum Masehi[2]. Bahasa pemrograman Java memiliki keunggulan dalam beberapa aspek. Bahasa pemrograman Java merupakan bahasa pemrograman berbasis obyek {Object Oriented Programming). Bahasa Java memiliki portabilitas yang sangat baik. Bahasa Java memiliki fasilitas yang lengkap mulai dari pemrograman untuk menangani akses berkas, komputasi matematika, exception, sampai dengan event driven programming. Dengan menggunakan bahasa Java, ATDBMS dapat digunakan pada sistem operasi lain dengan melakukan penyesuaian yang minimal. 8. PENGUJIAN Pengujian dilakukan menggunakan 2 metode, yaitu pengujian White-Box dan pengujian Black-Box [1]. Pengujian ini dimaksudkan menguji fungsionalitas dari prototip ATDBMS yang dibuat, serta menunjukkan bahwa spesifikasi rancangan dapat diimplementasi. Berdasarkan hasil pengujian yang dilakukan, beberapa kesalahan pada saat penulisan kode program ditemui. Namun demikian kesalahan-kesalahan tersebut telah dapat diperbaiki, dan hingga tulisan ini dibuat, belum ditemukan masalah lainnya. 9. KESIMPULAN Pembuatan prototip fasilitas DML pada ATDBMS telah memenuhi tujuan penulisan ini, untuk menciptakan sebuah basis data yang dapat menyimpan dan mengolah data masa lalu. Prototipe tersebut kurang lebih terdiri dari 15000 baris (12000 baris tidak termasuk komentar) dikembangkan menggunakan bahasa Java. Prototipe ini mampu menangani operasi Insert, operasi Update, operasi Retrieve, operasi Inactive, operasi Activate, dan operasi Delete. Prototipe ini terdiri dari 19 kelas. Pola interaksi antara prototip dengan program aplikasi (dunia luar) menggunakan konsep proxy. Menggunakan pola interkasi memungkinkan program aplikasi terbebas dari kerumitan mengenai penulisan dan penyimpanan data. Pemakai fasilitas DML cukup berinteraksi dengan dua buah kelas, yaitu kelas Temporal yang berperan sebagai proxy, dan kelas CommArea sebagai media perantara dalam pemeriksaan status setiap operasi Sebuah rancangan yang baik dan cermat dalam pembuatan piranti lunak sangat penting. Tanpa sebuah rancangan yang baik dan cermat, sebuah piranti lunak yang dibangun memiliki potensi mengalami kegagalan misalnya saat melakukan integrasi. Khususnya dalam proyek pembangunan piranti lunak skala besar yang mana melibatkan kolaborasi beberapa orang atau kelompok, masing-masing mengerjakan 110 Jurnal llmiah llmu Komputer, Vol. 2 No. 2 April 2004. 103 - 112
bagian yang menjadi tanggungjawabnya. Kompatibilitas dan pembakuan antar komponen rancangan harus ditata dengan baik, dan diikuti dengan disiplin, sehingga integrasi akan lebih mudah dilakukan dan meningkatkan tingkat keyakinan suksesnya. 10. SARAN DAN PENGEMBANGAN LANJUTAN Prototip fasilitas DML pada ATDBMS memiliki potensi yang sangat besar untuk dikembangkan lebih lanjut. Pengembangan tersebut meliputi penambahan fasilitas dan perbaikan sebagai berikut: 1
2.
3.
4.
5. 6.
7. 8.
Pengembangan untuk mendukung pencatatan waktu yang lebih luas dan presisi. Pencatatan waktu yang didukung saat ini hanya mencapai detik dan tahun Masehi. Pencatatan untuk mencapai milidetik dan masa sebelum Masehi dapat dilakukan dengan mengubah struktur penyimpanan waktu. Pengembangan untuk mendukung lebih dari 1 (satu) versi schema sebuah entity pada operasi Retrieve. Saat ini operasi Retrieve hanya mampu menampilkan untuk 1 (satu) versi schema yang sama pada sebuah entity Pengembangan untuk membuat dukungan akses multi schema Dukungan akses multi schema diperlukan, karena akses data dapat dilakukan hingga ke masa lalu yang mungkin saja sudah lintas versi schema Dengan adanya dukungan tersebut, maka kemampuan schema evolution pada ATDBMS akan menjadi lebih menunjukkan kegunaannya. Penambahan fasilitas pada operasi Update, yaitu operasi Update pada data masa lalu. Adanya kemampuan melakukan perubahan pada data masa lalu, menjadikan ATDBMS menjadi lebih lengkap, dan memiliki potensi digunakan secara lebih luas. Menambahkan fasilitas dukungan agar dapat berjalan pada berbagai sistem operasi selain Microsoft Windows. Pada dasarnya aplikasi Java memiliki keuntungan yaitu dapat berjalan pada berbagai Sistem Operasi yang berbeda tanpa memerlukan banyak penyesuaian pada program sumber. Misalnya menambahkan fasilitas pengenalan konfigurasi path, ssebagaimana path pada Linux berbeda dengan pada Microsoft Windows. Melakukan optimasi dan error handling yang lebih baik. Kedua hal tersebut selalu menjadi kewajiban dalam pembuatan versi berikutnya. Sistem basis data ini hanya dapat mendukung moda akses pengguna tunggal (stand-alone). Pengembangan lapisan Transaction Manager, dan Concurrency Control Manager menjadi hal yang esensial untuk dapat mendukung agar prototip ini dapat digunakan dalam moda pengguna banyak dan bersamaan {multi-user). Menyediakan fasilitas recovery dan pencatatan transaksi untuk memulihkan basis data dari kondisi yang tidak wajar dengan membangun Recovery Manager dan Log Manager. Mengembangkan fasilitas asosiasi antar entity. Fasilitas ini digunakan untuk melakukan hubungan antar entity yang memiliki makna tertentu. Misalnya entity mahasiswa berhubungan dengan entity mata kuliah karena mahasiswa mengambil mata kuliah tertentu.
DAFTAR PUSTAKA [Sut 1997]
Sutrisno, Tesis: Basis Data Temporal Berorientasi Obyek: Implementasi Pengelolaan Versi Data, Universitas Indonesia, 1997.
Fasilitas Data Manipulation...(Sutrisno, Irene A. Lazarusli, Martin Phineas)
lit
[Rog 2001]
Roger S. Pressman, Software Engineering. A Practitioner's Approach, 5th Edition, McGraw-Hill, 2001.
[Sun 2002]
Sun Microsystem, Java 2 Standart Edition 1.4 API Reference, Sun Microsystem, 2002.
[Sun 2002]
Sun Microsystem, Java 2 Standart Edition 1.4 Guide to Features, Sun Microsystem, 2002.
[Sut 2003]
Sutrisno, Attribute Temporal Database Management System Technical Specification (Working Material), Universitas Pelita Harapan, 2003.
112 Jurnal llmiah llmu Komputer, Vol. 2 No. 2 April 2004: 103 -112