Object Oriented Database [by : Hendy]

June 10, 2009

Part 1 – Overview

10 Juni 2009

Kita telah mengenal konsep OO (Object-Oriented) pada mata kuliah Pemrograman Berorientasi Objek (IF2032). Oleh karena itu, tentu kita tidak akan memperoleh kesulitan dalam mempelajari Object Oriented Database. Konsep-konsep yang penting dalam OO antara lain :

  1. Kelas
    Kelas merupakan suatu tipe baru yang didefinisikan oleh programmer. Dengan kata lain, Kelas adalah cetakan objek, suatu kelas bisa memiliki banyak objek. Setiap kelas memiliki atribut dan method.
  2. Enkapsulasi
    Enkapsulasi adalah pemisahan aspek-aspek eksternal objek yang dapat diakses dari rincian-rincian implementasi internal. Enkapsulasi meredam ketergantungan yang begitu besar dengan objek kelas lainnya.
  3. Pewarisan
    Pewarisan atau Inheritance adalah proses penciptaan kelas baru dengan mewarisi karakteristik kelas yang sudah ada, ditambah karakteristik unik kelas yang baru itu. Pewarisan mendukung penggunaan kembali (reusability) suatu kode.
  4. Polimorfisme
    Secara harafiah, Polimorfisme berarti banyak bentuk. Dalam konsep OO, objek-objek dikatakan polimorfik bila mempunyai antarmuka yang identik, damun mempunyai perilaku yang berbeda. Contoh mudahnya adalah dua buah objek dari kelas yang berbeda dapat memiliki nama method yang sama, namun algoritma methodnya berbeda.

Object Oriented Database adalah sebuah sistem database yang menggabungkan semua konsep penting dari object oriented tersebut dengan beberapa fitur tambahan antara lain :

  1. Unique object identifiers
  2. Persistent object handling

Teknologi ini mengintegrasikan kemampuan basis data (DBMS) dengan kemampuan pemrograman berorientesi objek (OOP). Sebuah Object Oriented Database Management System (ODBMS) membuat objek sebuah basis data terlihat seperti objek pemrograman pada beberapa bahasa pemrograman OOP. Sebuah ODBMS dapat memperluas kemampuan bahasa pemrograman dengan kemampuan basis data seperti data yang persistent secara transparan, kontrol konkurensi, recovery data, query asosiatif dan berbagai kemampuan basis data yang lain.

OODB atau ODBMS dirancang untuk bekerja pada bahasa pemrograman berorientasi objek seperti Java, C++ dan lain-lain. Bila kita ingin menyimpan objek pada program Java atau C++ ke dalam sebuah sistem basis data, kita dapat menggunakan basis data yang berorientasi kepada objek (ODBMS).

ODBMS sangat memudahkan programmer terutama yang terbiasa dengan OOP dalam mengolah data dan variabel dalam programnya. Kebanyakan programmer basis data menghabiskan cukup banyak waktu untuk merepresentasikan variabel atau objek pada programnya ke dalam struktur basis data.

Letak perbedaan utama ODBMS dengan sistem basis data konvensional adalah pada sistem basis data konvensional data direpresentasikan ke dalam bentuk tabel-tabel dengan kolom yang mewakili kategori dari data, dan baris yang berisi data itu sendiri. Sedangkan dalam ODBMS, data direpresentasikan sebagai sebuah objek, baik dalam hal pengaksesannya maupun dalam hal pemodelannya.

Part 2 – Kelebihan dan Kelemahan OODB

23 Juni 2009

OODB memang memiliki banyak keunggulan dibandingkan dengan RDB (Relational Database). Namun dewasa ini, OODB masih belum dapat menggantikan posisi RDB. Biarpun OODB memang teknologi baru yang sangat terkenal di kalangan ahli sistem basis data, namun para pembuat aplikasi yang belum begitu mengenal teknologi OODB ini masih lebih memilih menggunakan RDB yang sudah biasa mereka gunakan.

Para pembuat aplikasi harus menentukan akan memilih OODB atau RDB dalam proyek yang akan mereka kerjakan. Sebab setiap permasalahan memerlukan penanganan yang berbeda-beda. Bisa saja dalam suatu kasus, menggunakan OODB adalah pilihan yang terbaik, namun bisa juga sebaliknya.

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.
  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.
  3. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

Part 3 – Object-Relational Database

10 Juli 2009

Setelah melihat kelebihan dan kelemahan OODBMS dibandingkan dengan RDBMS, tentu saja kita harus memikirkan matang-matang jenis DBMS apa yang akan kita gunakan. Namun ternyata terdapat DBMS lainnya yang merupakan gabungan atau dapat dikatakan sebagai jembatan yang menghubungkan OODBMS dan RDBMS.

ORDBMS (Object-Relational Database Management System) merupakan DBMS yang mirip dengan RDBMS, tapi model object-oriented seperti objek, kelas, dan pewarisan sudah didukung langsung dalam skema basis data dan bahasa query-nya. Selain itu, dia juga mendukung adanya tipe data buatan dan method.

Salah satu tujuan ORDBMS adalah menjembatani celah antara teknik pemodelan data konseptual seperti Entity-relationship diagram (ERD) and object-relational mapping (ORM), yang sering menggunakan kelas, pewarisan, dan basis data relasional, yang tidak langsung didukungnya. Selain itu, tujuan lain ORDMBS ini adalah menjadi penghubung antara teknik pemodelan berorientasi objek yang digunakan di bahasa pemrograman berorientasi objek seperti Java, C++, atau C#.

Bila produk RDBMS tradisional berfokus pada manajemen pengambilan data yang efisien dari himpunan tipe data yang terbatas, ORDBMS memungkinkan software developer untuk mengintegrasikan tipe objek buatannya sendiri beserta method yang sesuai ke dalam DBMS.

Banyak SQL ORDBMS yang beredar di pasaran sekarang yang telah didukung dengan user defined types (UDT) atau tipe buatan dan function. Sebagian ORDBMS (misalnya Microsoft SQL Server) memungkinkan function untuk ditulis dalam bahasa pemrograman berorientasi objek, tapi ini saja tidak membuatnya menjadi OODB, dalam OODB orientasi objek adalah fitur dari model data.

Perbandingan dengan RDBMS

RDBMS pada umumnya akan memiliki pernyataan SQL seperti ini :

CREATE TABLE Customers  (
Id          CHAR(12)    NOT NULL PRIMARY KEY,
Surname     VARCHAR(32) NOT NULL,
FirstName   VARCHAR(32) NOT NULL,
DOB         DATE        NOT NULL
);
SELECT InitCap(Surname) || ', ' || InitCap(FirstName)
FROM Customers
WHERE Month(DOB) = Month(getdate())
AND Day(DOB) = Day(getdate())

Dapat juga dibuat menjadi function seperti di bawah ini :

SELECT Formal(Id)
FROM Customers
WHERE Birthday(Id) = Today()

Dalam ORDBMS kita dapat membuat tipe bentukan dan ekspresi seperti BirthDay() :

CREATE TABLE Customers (
Id           Cust_Id     NOT NULL  PRIMARY KEY,
Name         PersonName  NOT NULL,
DOB          DATE        NOT NULL
);
SELECT Formal(C.Id)
FROM Customers C
WHERE BirthDay (C.DOB) = TODAY;

Part 4 – Bahasa Query OODB

21 Juli 2009

Bahasa query dalam OODB merupakan pengembangan dari bahasa query SQL yang sudah kita kenal dalam RDB. Yang membedakannya adalah kita dapat membuat ADT atau tipe baru selain tipe-tipe primitif yang sudah ada seperti INTEGER dan VARCHAR.

Misalnya kita ingin membuat tipe baru yaitu MAHASISWA :

CREATE TYPE mahasiswa (
Nama     CHAR(20),
NIM      INTEGER,
Usia     INTEGER,
Alamat   alamat
)

Nama, NIM, dan Alamat merupakan properti atau atribut dari kelas Mahasiswa.
Dalam hal ini, alamat merupakan tipe bentukan lainnya seperti di bawah ini :

CREATE TYPE alamat (
Negara   CHAR(20),
Propinsi CHAR(20),
Kota     CHAR(20),
KodePos  INTEGER,
Jalan    CHAR(50)
)

Untuk retrieve nama dan NIM mahasiswa yang tinggal di Bandung, kita gunakan syntax seperti ini :

SELECT   Nama(m), NIM(m)
FOR EACH mahasiswa m
WHERE    Kota(Alamat(m)) = 'Bandung'

NB : contoh-contoh di atas menggunakan bahasa query IRIS, salah satu OODBMS yang ada.

Part 5 – Kesimpulan

5 Agustus 2009

Setelah melakukan eksplorasi selama kurang lebih 8 minggu mengenai topik Object Oriented Database, dapat kita tarik beberapa kesimpulan akhir yaitu :

  1. OODB adalah salah satu jenis DBMS yang menggunakan konsep object oriented yang terdapat pada OOP
  2. Dibandingkan dengan RDB, OODB lebih menyerupai kondisi dunia nyata
  3. Dalam OODB, proses pengambilan dan penyimpanan data akan lebih mudah karena setiap data memiliki object-ID masing-masing
  4. OODB masih belum bisa menggantikan kedudukan RDB karena masih tergolong baru sehingga tidak banyak yang menguasainya
  5. Terdapat ORDBMS yang merupakan kombinasi antara OODB dan RDB
  6. Dalam OODB kita dapat membuat tipe bentukan baru yang berupa kelas dalam konsep object oriented

Dengan demikian berakhirlah tugas eksplorasi dengan topik Object Oriented Database, semoga tugas eksplorasi ini dapat bermanfaat bagi yang membacanya. Mohon maaf apabila dalam eksplorasi ini terdapat hal-hal yang kurang berkenan. Terima kasih kepada semua pihak yang telah mendukung saya dan kepada semua referensi dalam pengerjaan tugas ini. Saya berharap dengan berakhirnya tugas ini, saya dapat memulai tugas baru saya sebagai asisten lab. Basis Data. Sampai Jumpa ^^

Daftar Referensi :

http://en.wikipedia.org/wiki/Object_database akses : 8 Juni 2009
http://www.geocities.com/a_alaydrus/oodb/index.html akses : 10 Juni 2009
http://en.wikipedia.org/wiki/Object-relational_database akses : 10 Juli 2009
http://www.cs.pitt.edu/~chang/156/19oodb.html akses : 21 Juli 2009
Hariyanto, Bambang. 2007. Esensi-Esensi Bahasa Pemrograman Java. Penerbit Informatika.

One Response to “Object Oriented Database [by : Hendy]”

  1. gebu said

    bisa gak nie konsep-konsep oodbms dilakukan di mysql??

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: