Kamis, 07 Desember 2017

OODB (Object Oriented Databases)

PEMBAHASAN OODB
A.    Pengertian Object

Objek merupakan kesatuan entitas (baik), baik yang berwujud nyata ataupun hanya satu sistem yang memodelkan dunia nyata. Setiap object diidentifikasi oleh object identifier(OID), dan juga memiliki state dan behavior. State terdiri dari nilai object properties. Properti dari sebuah object dapat berupa atribut atau relasi antar object. Sedangkan behavior dispesifikasikan oleh operasi atau method yang dapat dieksekusi oleh sebuah object melalui propertinya.


B.     Karakteristik Object

Sebuah object, mempunyai:
·      identifier : unique id
·      name : unique name dalam DB (optional)
·      lifetime : menetapkan apakah object persistent atautransient
·      structure : pembangunan object menggunakantype constructors

C.  Struktur Objek

State (current value) dari object bias dibangun dari object lain (other values) dengan menggunakan type constructors tertentu.
Constructors :
·      Basic types        : atom, tuple dan set
·      Collection type : list, bag dan array

D.  Konsep Object Oriented
·      Abstract Data Types
mendefinisi Kelas, menyediakan ekstensi untuk jenis atribut kompleks
·      Encapsulation
Melaksanaan operasi dan struktur objek tersembunyi
·      Inheritance
Membagi data dalam lingkup hirarki, mendukung reusabilitas kode
·      Polymorphism
Operator overloading

E.  Definisi OODB
Object oriented database adalah sebuah model basis data yang informasinya direpresentasikan dalam bentuk objek, seperti yang digunakan pada pemograman berorientasi objek. OODB direkomendasikan ketika ada kebutuhan bisnis untuk memproses data yang kompleks.Sesuai dengan namanya, OODB adalah gabungan kemampuan basis data yang dikombinasikan dengan bahasa pemograman berorientasi objek. Lebih lanjut, OODB ini tidak hanya menjadi jenis baru dari basis data, tapi juga menghasilkan sistem manajemen basis data (SBD) yang dinamakan Object Database Management System (ODBMS).Kemampuan yang dimiliki oleh bahasa pemograman berorientasi objek antara lain:
·      tipe data abstrak
·      inheritance (pewarisan)
·      identitas objek.

Jika dikombinasikan dengan basis data, akan menjadi OODB yang persisten, mendukung adanya transaksi, query yang simple untuk data yang besar, akses dan control yang konkuren, keamanan, dan data recovery.Beberapa basis data berorientasi objek didesain agar bisa bekerja dengan baik dengan bahasa pemograman tertentu seperti Phyton, Perl, Java, C#, Visual Basic .NET, Objective-C, dan Smalltalk.

F.   Struktur Object di OODB
Paradigma OODB didasarkan pada enkapsulasi data dan kode. Seperti yang telah diketahui, enkapsulasi menyebabkan isi dari sebuah objek tidak terlihat di dunia luar objek tersebut. Secara konsep, semua interaksi antara objek dan sistem di luar dirinya dilakukan via messages. Interface antara objek dan sistem di luar dirinya inilah yang dinamakan kumpulan dari pesan (set of messages).
Secara umum, sebuah objek berasosiasi dengan
·      Sebuah himpunan variable (a set of variables) yang mengandung data untuk objek dan variable yang berkorespondensi dengan atribut di model E-R.
·      Sebuah himpunan pesan (a set of variables); kesinilah objek member respon. Tiap pesan bisa mempunyai 0, 1 atau banyak parameter.
·      Sebuah himpunan method (a set of variables) ; masing-masingnya adalah badan kode untuk mengimplementasikan pesan. Method mengembalikan nilai sebagai respon pesan.
Diilustrasikan dengan mengambil contoh entitas employee dalam basis data bank. Misalnya gaji tahunan karyawan dihitung dengan cara yang berbeda untuk tiap karyawan. Manajer mendapatkan bonus sesuai dengan performa bank, sedangkan teller mendapat bonus berdasarkan jumlah jam mereka bekerja. Dalam kasus ini, semua objek employee berhubungan dengan message gaji-tahunan, tapi mereka dihitung dengan cara yang berbeda. Dengan mengenkapsulasi informasi bagaimana mendapatkan gaji tahunan karyawan dalam objek employee, semua objek employee bisa menampilkan interface yang sama. Karena hanya interface external yang ditampilkan oleh sebuah objek adalah a set of message yang berhubungan dengan objek tersebut, maka dimungkinkan untuk memodifikasi definisi method dan variable tanpa mempengaruhi sisa sistem lain.

G. Object Classes dalam OODB
Biasanya, ada banyak objek yang sama dalam basis data. Sama di sini maksudnya mereka merespon message yang sama, menggunakan method yang sama, dan mempunyai variable untuk nama dan tipe yang sama. Akan sangat sia-sia jika kita harus mendefinisikan masing-masing objek secara terpisah. Oleh karena itu, kita menggabungkan objek-objek yang sama ini dalam sebuah class (kelas). Masing-masing objek adalah instansiasi dari kelasnya.

H.  Inheritance (Pewarisan)
Sebuah skema OODB biasanya membutuhkan banyak kelas. Namun, kebanyakan dari kelas-kelas itu serupa. Misalnya, OO untuk aplikasi bank, customer dan employee bank bisa dikatakan serupa karena mempunyai atribut/variable yang sama, seperti nama, alamat, dll. Namun, tentu saja tidak semuanya sama dan ada variable spesifik yang hanya dimiliki oleh customer atau employee saja. Objek yang mempunyai beberapa variable yang sama ini bisa didefinisikan dalam sebuah representasi jika kita menggabungkannya dalam satu kelas.  Representasi langsungnya bisa dengan menyediakan tempat untuk kelas dalam sebuah spesialisasi hierarki (“ISA” relationship). Kita bisa mengatakan bahwa employee adalah sebuah spesialisasi dari person dan customer juga spesialisasi dari person, karena sama-sama memiliki atribut yang dimiliki oleh person.
    Konsep dari hierarki kelas serupa dengan konsep dari hierarki spesialisasi yang kita kenal dalam model ER. Variable dan method yang dimiliki oleh employee dan customer bisa diasosiasikan dengn kelas person. Spesialisasi kelas ini dikenal juga dengan subclass. Maka employee adalah subclass dari person, customer juga subclass dari person.



Dalam banyak kasus, bisa terjadi multiple inheritance, yang mengizinkan sebuah kelas untuk menurunkan variable dan method dari multiple superclasses. Hubungan kelas-subkelas direpresentasikan dengan adanya directed acyclic graph (DAG) di mana setiap kelas bisa memiliki lebih dari satu superclass.
Contoh kasus multiple inheritance ini adalah basis data sebuah universitas. Dalam sebuah universitas, person bisa menjadi student ataupun teacher. Jadi di basis data universitas ada kelas student dan ada kelas teacher, yang merupakan subclass dari person. Tapi terdapat juga kasus di mana ada student yang juga bekerja sebagai teacher-assistant, yang mana kelas teacher-assistant ini adalah subkelas dari kelas student dan kelas teacher.
Pada kasus-kasus tertentu terjadi ambiguitas jika ada variable yang sama, misalnya student mempunyai departemen tertentu, begitu juga dengan teacher. Ambiguitas akan terjadi pada teacher-assistant, di mana sebagai student dia memiliki departemen dan sebagai teacher juga begitu. Namun, hal ini bisa diakali dengan memberi nama berbeda untuk departemen tiap kelas (jangan hanya menggunakan kata ‘dept’, tapi pakai ‘student-dept‘ dan ‘teacher-dept’), atau membuat treat error untuk kasus seperti ini, atau jika susah, user terpaksa membuat kelas baru, yaitu kelas teacher-assistant. Tapi diingatkan lagi, kasus ambiguitas ini tidak selalu terjadi.

Contoh multiple inheritance:


I.     Object Identity (Identitas Objek)
Sebuah objek akan menyimpan identitasnya walaupun ada beberapa atau semua nilai dari variablenya berubah-ubah atau method-nya didefinisikan ulang. Sistem OO biasanya menggunakan sebuah object-identifier untuk mengidentifikasi objek. Objek identifier harus unik, yang artinya tidak ada 2 objek yang memiliki identifier yang sama. Sebaiknya, user langsung membuat identifier yang unik untuk setiap objek dan tidak menggunakan system-generated identifier karena identifier yang dibuat akan bergantung pada sistem dan bisa menjadi redundan.
Identitas objek bisa berupa nilai (value), misalnya primary key objek yang mengidentifikasi objek tertentu; atau bisa menggunakan nama (biasanya dipakai pada sistem file, satu file dengan file lain dibedakan dari namanya).

J.    Object Containment
 Terkadang, ada objek yang mengandung objek lain. Objek ini disebut complex object atau composite object. Misalnya, pada sebuah sepeda. Sepeda adalah satu objek, yang memiliki roda. Roda adalah objek baru, namun dimiliki oleh sepeda. Roda sendiri juga memiliki ban,  jeruji/velg. Makanya, containment ini juga bisa memiliki banyak level, yang menciptakan hierarki containment antar objek. Hubungan antar kelas dalam containment ini adalah is-part-of, bukan is-a. Hubungan antar  kelas digambarkan dalam skema dengan menggunakan DAG juga.
 Dengan adanya containment, user yang berbeda bisa melihat data-data tertentu sesuai dengan kebutuhannya. Misalnya seorang wheel-designer bisa fokus pada kelas roda, tanpa terlalu memperhatikan objek lain yang juga merupakan komponen penyusun sepeda seperti rem, dll.

K. Kelebihan OODB

·      Bisa menspesifikasikan structure dari object dan behaviornya (methods).
·      Interaksi yang lebih baik dengan bahasa pemrograman berorientasi object seperti java dan C++
·      Definisi kompleks dan user-defined jenis
·      Enkapsulasi operasi dan user-defined metode

L.       Kekurangan 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.
·         Kurangnya dukungan platform
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.
·         Query yang kompleks
Kemampuan logika yang mendalam sangat diperlukan dalam OODB. Masing-masing OODB dapat memiliki cara pemanggilan query yang berbeda-beda.


M.OODBMS
 OODBMS merupakan database management system (DBMS) yang mendukung pemodelan dan pembuatan data sebagai objek.OODBMS mendukung2 kriteria DBMS dan object-oriented.

N.      Keuntungan OODBMS
·   Pemeliharaan dan perpanjangan database yang lebih mudah
·   Teknologi yang memungkinkan untuk area aplikasi yang tidak dilayani oleh RDBMS
·   Tingkat abstraksi yang diberikan oleh OODBMS berguna untuk pengguna pemula
·   Kopling yang efisien ke jaringan pemrosesan terdistribusi
·   Kerja Koperasi Bantuan Komputer Aids

O.  Kerugian OODBMS
·   Tidak ada fondasi yang kuat dimana teknologi berbasis;
·   Kurangnya standar internasional;
·  Transfer ke atau integrasi dengan sistem warisan

KESIMPULAN

Setelah penjabaran dalam makalah ini, dapat disimpulkan bahwa OODB memodelkan data sebagai sebuah objek sehingga jika programmer yang ingin menambahkan tipe data baru dengan membuat proyek baru. Pengaksesan dan pengolahan data murni dilakukan dengan pemograman OO. Hal ini tentu saja berbeda dengan RDB yang memodelkan data dengan tabel terformat. Tabel-tabel inilah yang berisi tipe data.
Melihat masih cukup banyaknya kekurangan OODB ini, sebelum memutuskan untuk memakai ODBMS ada baiknya mempertimbangkan kekurangan yang sudah diuraikan di atas.  Mempertimbangkan faktor kebutuhan dan ketersediaan aplikasi serta platform.
Pada beberapa aplikasi tertentu penggunaan OODB mungkin sangat tepat. Sebaliknya untuk beberapa aplikasi lainnya OODB mungkin akan menjadi hambatan serius. Contohnya OODB tidak cocok digunakan untuk menyimpan data transaksi yang besar seperti data keuangan, kepegawaian dan data transaksi bank. Di sini mungkin lebih baik memilih RDB. OODB bagus digunakan menggunakan tipe data multimedia dan data yang sifatnya kompleks.





DAFTAR PUSTAKA

Heryanto, Bambang, “Esensi-esensi pemograman Java”, Penerbit Informatika, Bandung: 2007