OBJECT ORIENTED
DATABASE
Object-oriented database adalah salah satu jenis database dimana data
direpresentasikan dalam bentuk object. Object Oriented Database merupakan
sebuah sistem data base yang menggabungkan semua konsep penting dari object
oriented.
Pendekatan ini sangat dipengaruhi oleh bahasa
pemrograman object-oriented dan dapat dipahami sebagai usaha untuk menambah
fungsionalitas DBMS pada lingkup bahasa pemrograman.
Objek database mulai populer pada pertengahan tahun 1990
an. Bermula dari Objek Oriented Programming(OOP) yang kemudian dikembangkan
menjadi Objek Oriented Database (OOD) dan pada akhirnya menjadi Objek Oriented
Analysis (OOA). Didalam konsep objek oriented database kita dapat melakukan
pemodelan data dari semua phenomena dan dapat dinyatakan dalam bahasa umum
(natural).
Objek Oriented Database pada dasarnya merupakan kosep dari
pemrograman berorientasi objek secara umum ditambah dengan database sebagai
media penyimpanan datanya yang berbentuk class-class, sehingga dalam hal ini
masih berhubungan erat dengan E-R Model.
Objek Oriented Database muncul karena kekomplekan dari
penyimpanan objek-objek yang akan disimpan didalam database sehingga konsep
dari Relational Database Manejemen Sistem (RDBMS) masih tetap digunakan.
Mekanisme penyimpanan objek-objek didalam Relational Database Menejemen Sistem
ini sering dikenal dengan istilah ORDBMS (Objek Relational Database Managemen
System).
PERKEMBANGAN APLIKASI
BASIS DATA
1. Computer-Aided Design
(CAD)
Database CAD menyimpan data yang berhubungan dengan
rancangan mekanik dan elektrik, sebagai contoh : gedung, pesawat, dan chips IC.
2. Computer-Aided
Manufacturing (CAM)
Database CAM menyimpan data yang jenisnya sama dengan
sistem CAD, ditambah data yang berhubungan dengan produksi yang mempunyai
ciri-ciri tersendiri (seperti mobil pada saat perakitan) dan produksi yang
continue (seperti sintesa kimia).
3. Computer-Aided Software
Engineering (CASE)
Database CASE menyimpan data yang berhubungan dengan
langkah-langkah dari siklus pengembangan software yaitu : planning,
requirements collection analysis, design, implementation, test, maintenance and
documentation.
4. Computer-Aided Publishing
(CAP)
Database CAP menyimpan dokumen yang kompleks. Sama seperti otomatisasi
kantor, aplikasi CAP telah diperluas untuk menangani dokumen-dokumen multimedia
yang berisikan teks, audio, gambar, video data, dan animasi.
5. Office Automation (OA)
Database OA menyimpan data yang berhubungan dengan
pengontrolan informasi computer dalam bidang bisnis, termasuk e-mail,
dokumen-dokumen, invoice, dsb.
Agar menyediakan dukungan yang lebih baik untuk area ini,
dibutuhkan penanganan yang lebih luas terhadap jenis data daripada nama,
alamat, tanggal dan uang.
Sekarang ini sistem yang modern dapat menangani text yang
berjenis bebas, foto, diagram, audio dan video. Sebagai contoh : dokumen
multimedia yang mengangani teks, foto, spreadsheets dan suara.
KONSEP OBJECT ORIENTED
Beberapa konsep Object Oriented Database :
·
Kenyataan dalam dunia
ini direpresentasikan sebagai object
·
Setiap object memiliki
state dan behavior
·
State merupakan nilai
dari properties dan atribut dari object
·
Behavior merupakan
method yang dijalankan oleh state
·
Object yang memiliki
kesamaan state dan behavior dikelompokkan dalam satu class yang sama
·
Setiap object hanya
dapat diturunkan (instace) kedalam satu class saja
·
Class-class
dikeompokkan dalam sebuah hierarki. Subclass memiliki turunan (inherits) dari
superclass-nya.
·
Dimungkinkan juga
terjadi overriding dimana sebuah class men-substitute domain dari propertiesnya
dengan method lain dalam implementasi yang berbeda.
A.
Abstraksi dan Enkapsulasi
Ø Abstraksi
adalah proses identifikasi aspek-aspek yang
perlu dari entitas dan mengabaikan
property yang tidak penting.
Ø Enkapsulasi (information hiding)
adalah memisahkan aspek-aspek eksternal sebuah
objek dari rincian internalnya (internal details), yang tidak terlihat dari
dunia luar. Dengan cara ini, internal detail sebuah objek dapat dirubah tanpa
mempengaruhi aplikasi yang menggunakan objek tersebut, begitu juga dengan
external detail. Dengan kata lain, encapsulation menyediakan data independence.
Contoh : Objek Roti, objek ini mempunyai method
Pembuatan Roti. Jika kita ingin memakan roti, tentu kita tidak perlu tahu
bagaimana cara membuatnya. Dengan demikian pembuatan Roti menjadi sesuatu yang
menjadi dasar bagi konsep information hiding.
B.
Objek dan Atribut
Ø Objek
adalah sebuah entitas yang dapat diidentifikasikan
secara unik, berisikan atribut-atribut yang menerangkan keadaan atau kondisi
(state) objek dunia nyata (real world object) dan aksi-aksi yang berhubungan
dengan sebuah objek dunia nyata. Definisi objek serupa dengan definisi entitas.
Perbedaannya : objek menunjukkan keadaan (state) dan tingkah laku (behaviour),
sedangkan entitas menunjukkan models state.
Ø Atribut
adalah nama-nama property dari sebuah kelas yang
menjelaskan batasan nilainya dari property yang dimiliki oleh sebuah kelas
tersebut. Atribut dari sebuah kelas mempresentasikan property-property yang
dimiliki oleh kelas tersebut. Atribut mempunyai tipe yang menjelaskan tipe
instanisasinya. Hanya sebuah instanisasi dari kelas (objek) yang dapat mengubah
nilai dari atributnya.
Keadaan (state) dari sebuah objek dijelaskan dengan
nilai dari atribut-atribut yang dimilikinya (selain keberadaan hubungan dengan
objek lainnya). Dalam sebuah kelas atribut hanya dinyatakan keberadaan dan
batasan nilainya saja, sedangkan dalam sebuah objek atributnya sudah dinyatakan
nilai dan menjelaskan kedudukan / keadaan dari objek tersebut.
C.
Identitas Objek (Object Identity)
Pada saat objek
dibuat, object identifier (OID) langsung ditentukan. OID tersebut unik dan
berbeda. OID membedakan objek yang satu dengan objek lainnya di dalam sistem.
Sekali objek dibuat, OID tersebut tidak dapat digunakan kembali untuk
objek-objek lainnya, walaupun objek tersebut telah dihapus.
D.
Metode dan Pesan
Ø Metode (Methods)
Dalam teknologi objek, function biasanya disebut
methods. Methods mendefinisikan tingkah laku dari sebuah objek. Methods dapat
digunakan untuk merubah kondisi objek dengan memodifikasi nilai
atribut-atributnya, atau meng-query nilai atribut yang diseleksi.
Ø Pesan (Message)
Message mempunyai arti komunikasi antara objek.
Sebuah message merupakan permintaan sederhana dari suatu objek (pengirim) ke
objek lain (penerima) dan menanyakan objek tsb untuk mengeksekusi salah satu
method-nya. Pengirim dan penerima bisa pada objek yang sama. Notasi ‘dot’
biasanya digunakan untuk mengakses sebuah method.
E. CLASS
Class merupakan pendefinisian himpunan objek yang sejenis.
Objek yang mempunyai atribut yang sama dan meresponse message yang sama dapat
dikelompokkan bersama membentuk sebuah class. Atribut dan method yang
berhubungan cukup sekali saja didefinisikan untuk class, daripada didefinisikan
terpisah untuk setiap objek.
Contoh :
seluruh objek cabang dideskripsikan oleh sebuah class
cabang (branch). Objek-objek pada sebuah class disebut instance dari class.
Setiap instance mempunyai nilainya sendiri untuk setiap atribut, tetapi nama
atribut dan method-nya sama seperti instance lainnya dari sebuah class.
F.
SUBCLASS, SUPERCLASS, dan INHERITANCE
Inheritance mengizinkan satu class objek didefinisikan
sebagai kasus spesial (special case) dari sebuah class pada umumnya. Special
case ini dikenal dengan subclass, dan kasus umum lainnya dikenal sebagai
superclass. Proses pembentukan superclass sama seperti generalization,
sedangkan subclass seperti specialization. Konsep dari superclass, subclass,
dan inheritance sama seperti EER, kecuali dalam paradigm object-oriented,
inheritance meliputi state dan behaviour.
Ada beberapa bentuk inheritance :
1. Single
inheritance
Subclass merupakan turunan dari satu superclass.
Contoh : subclass Manager dan Sales_Staff merupakan turunan
property dari superclass Staff.
2. Multiple
inheritance
Subclass Sales_Manager merupakan turunan dari superclass
Manager dan Sales_Staff.
3. Repeated
inheritance
Kasus spesial dari multiple inheritance, dimana sebuah
superclass merupakan turunan dari sebuah superclass biasa. Melanjutkan contoh
multiple inheritance, class Manager dan Sales_staff bisa saja merupakan turunan
dari superclass biasa yaitu superclass Staff. Dalam kasus ini, mekanisme
inheritance harus meyakinkan bahwa class Sales_manager tidak diturunkan
sebanyak dua kali dari superclass Staff.
4. Selective
inheritance
Mengizinkan subclass menurunkan sejumlah property dari
superclass. Keistimewaan ini secara fungsional sama seperti mekanisme view,
dengan membatasi akses ke beberapa detail tapi tidak seluruhnya.
Kelebihan
OODB
1.
Desain yang indah
Banyaknya waktu dan tenaga yang terbuang dalam menangani data memang menjadi masalah yang umum dalam suatu sistem basis data. Dalam OODB masalah tersebut dapat diminimisasi dengan konsep berorientasi objek yang dimilikinya sebab dengan konsep OO, proses penyimpanan dan pengambilan data akan menjadi lebih sederhana. Selain mendapatkan persistensi data, dengan OODB kita juga mendapatkan persistensi keseluruhan obyek database, bahkan termasuk implemented behaviour-nya. Kita juga dapat dengan mudah memanggil suatu method dari objek tertentu pada database di server sehingga distribusi aplikasinya lebih mudah.
Banyaknya waktu dan tenaga yang terbuang dalam menangani data memang menjadi masalah yang umum dalam suatu sistem basis data. Dalam OODB masalah tersebut dapat diminimisasi dengan konsep berorientasi objek yang dimilikinya sebab dengan konsep OO, proses penyimpanan dan pengambilan data akan menjadi lebih sederhana. Selain mendapatkan persistensi data, dengan OODB kita juga mendapatkan persistensi keseluruhan obyek database, bahkan termasuk implemented behaviour-nya. Kita juga dapat dengan mudah memanggil suatu method dari objek tertentu pada database di server sehingga distribusi aplikasinya lebih mudah.
2.
Penyederhanaan
pembuatan aplikasi
Tanpa disadari, terkadang suatu proyek dapat melambung biayanya karena faktor teknis seperti penggunaan beberapa tool, bahasa program dan lingkungan dari aplikasi yang berbeda-beda. Belum lagi biaya pelatihan dan lain-lain. Dengan OODB kita dapat menyederhanakan pembuatan aplikasi dengan mengurangi penggunaan bahasa pemrograman dan teknologi yang digunakan. Programmer cukup menguasai konsep OO dan bahasa pemrograman OO dengan sedikit tambahan mengenai konektivitas aplikasi dengan database. Selain itu, programmer tinggal memfokuskan pada persistensi objek.
Tanpa disadari, terkadang suatu proyek dapat melambung biayanya karena faktor teknis seperti penggunaan beberapa tool, bahasa program dan lingkungan dari aplikasi yang berbeda-beda. Belum lagi biaya pelatihan dan lain-lain. Dengan OODB kita dapat menyederhanakan pembuatan aplikasi dengan mengurangi penggunaan bahasa pemrograman dan teknologi yang digunakan. Programmer cukup menguasai konsep OO dan bahasa pemrograman OO dengan sedikit tambahan mengenai konektivitas aplikasi dengan database. Selain itu, programmer tinggal memfokuskan pada persistensi objek.
- Kinerja
yang tangguh
Dengan RDB seorang programmer harus menghabiskan waktu dan tenaga untuk memetakan data dengan objek, menguraikan tabel-tabel ke dalam objek dan sebagainya. Terkadang hal ini mencapai sepertiga atau bahkan separuh dari program itu sendiri. Hal ini tentunya akan menyebabkan kinerja menjadi lambat karena harus memetakan objek tersebut, belum lagi bila harus melaksanakan query-query yang kompleks. Masalah tersebut tidak dijumpai dalam OODB, karena dalam OODB, program mengakses data dengan objek nya secara langsung sehingga kinerja program akan lebih tinggi. Lebih dari itu, pada beberapa produk ODBMS bahkan dimungkinkan adanya client caching. Bayangkan kecepatan yang dapat dihasilkan bila program hanya perlu mengakses cache dari database yang sudah ada di client.
Kelemahan
OODB
- Tight coupling
Coupling berarti keterkaitan antara aplikasi dan database. Tight coupling berarti keterkaitan yang kuat antara aplikasi dan database sehingga aplikasi dan database sulit dipisahkan. Sebenarnya tight coupling dapat menyederhanakan program dan desainnya, namun hal ini juga dapat menyebabkan hilangnya batasan antara aplikasi dan database, juga akan menimbulkan masalah baru bila akan migrasi ke OODB lainnya atau kembali ke RDB. - Kurangnya dukungan platform
Pada dasarnya OODB diterapkan untuk dapat berintegrasi dengan semua bahasa pemrograman berorientasi objek, namun sampai sekarang kebanyakan OODBMS hanya mendukung bahasa pemrograman C++ dan Java saja.
- Sulit bermigrasi
Cara penyimpanan dan pengambilan data dalam OODB sangat berbeda dengan RDB. Begitu juga dengan cara pengaksesannya. Oleh karena itu, dibutuhkan komitmen yang kuat dalam memilih DBMS yang akan digunakan, sekali bermigrasi ke OODB, akan sulit untuk kembali ke RDB. - Kebutuhan ketrampilan
Karena OODB masih tergolong baru dan masih relatif jarang penggunaannya, cukup sulit menemukan orang yang memiliki pemahaman OODB bila dibandingkan dengan orang yang memiliki pemahaman RDB. Selain itu, untuk memahami OODB, diperlukan pelatihan khusus sebab terdapat banyak perbedaan pendekatan dengan RDB.
Query yang kompleks
Kemampuan logika yang mendalam sangat diperlukan dalam OODB. Masing-masing OODB dapat memiliki cara pemanggilan query yang berbeda-beda. Selain menggunakan object ID-nya saja, pengaksesan suatu data dapat menggunakan range, pola, dan berbagai kriteria lain yang mungkin kelihatan tidak berhubungan.
Kemampuan logika yang mendalam sangat diperlukan dalam OODB. Masing-masing OODB dapat memiliki cara pemanggilan query yang berbeda-beda. Selain menggunakan object ID-nya saja, pengaksesan suatu data dapat menggunakan range, pola, dan berbagai kriteria lain yang mungkin kelihatan tidak berhubungan.
0 komentar:
Posting Komentar