OBJECT
ORIENTED DATABASE
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.
KARAKTERISTIK
OBJECT
Sebuah
object, mempunyai:
1.
identifier : unique id
2.
name : unique name dalam DB (optional)
3.
lifetime : menetapkan apakah object persistent atautransient
4.
structure : pembangunan object menggunakantype constructors
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
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
PENGERTIAN
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.
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.
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 :
Single
inheritance
Subclass
merupakan turunan dari satu superclass.
Contoh
: subclass Manager dan Sales_Staff merupakan turunan property dari superclass
Staff.
Multiple
inheritance
Subclass
Sales_Manager merupakan turunan dari superclass Manager dan Sales_Staff.
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.
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.
No comments:
Post a Comment
silahkan komentar disini