Serializability

advertisement
MENGENAL BASIS DATA
BERORIENTASI OBJEK
Oleh:
Ir. M. Ramadhan, MT
Pendahuluan
Yang akan dipelajari:
•
•
•
•
•
Kebutuhan aplikasi basis data lanjut
Mengapa RDBMS kurang cocok untuk aplikasi basis data lanjut
Konsep yang berkaitan dengan orientasi objek
Menyimpan objek dalam basis data relasional
Sistem basis data generasi berikutnya
Aplikasi Basis Data Lanjut
• Computer-Aided Design (CAD)
Basis data CAD menyimpan data yang berkaitan dengan rancangan
mekanis atau elektronis misalnya bangunan, pesawat terbang, IC chip.
Perancangan memiliki karakteristik sbb:
o Rancangan sangat besar, terdiri atas jutaan bagian dengan banyak
keterkaitan antar subsistem
o Desain tidak statis. Perubahan desain berimplikasi pada representasi
desain secara keseluruhan
o Banyak alternatif desain yang layak dipertimbangkan untuk setiap
komponen
o Cooperative engineering. Ratusan staf bekerja secara paralel pd banyak
versi desain yg besar. Produk akhir harus konsisten dan berkoordinasi.
• Computer-Aided Manufacturing (CAM)
Basis data CAM mirip dengan CAD, datanya terkait dengan produksi yang
bersifat diskrit (misalnya mobil) atau menerus (misalnya sintesis kimia)
• Computer-Aided Software Engineering (CASE)
Basis data CASE terkait dengan tingkatan siklus pengembangan software:
perencanaan, analisis kebutuhan, desain, implementasi, pengujian,
pemeliharaan dan dokumentasi. Sama halnya dg CAD, desain boleh jadi
sangat besar dan memerlukan cooperative engineering.
• Office Information System (OIS)
Basis data OIS terkait dengan pengendalian informasi dalam bisnis: email,
dokumen, inventaris, dsb. Dibutuhkan penanganan teks free-form, foto,
diagram, suara, video, dsb.
• Digital Publishing
Digital Publishing menangani dokumen multimedia yang terdiri atas teks,
suara, citra, video, animasi. Dalam beberapa kasus, jumlah informasi dapat
mencapai petabyte (1015byte).
• Geographic Information System (GIS)
GIS digunakan untuk pengelolaan daratan eksplorasi bawah laut. Datanya
sangat besar, diperoleh dari survey dan foto satelit.
• Situs Web Dinamis dan Interaktif
Perlu penanganan multimedia dan secara interaktif memodifikasi tampilan
berdasarkan preferensi user.
Kelemahan RDBMS
• Representasi entitas ‘dunia nyata’.
Proses normalisasi Æ fragmentasi entitas ‘dunia nyata’ ke banyak relasi,
tidak efisien, memerlukan banyak join selama proses query.
• Semantic overloading
– Tak ada mekanisme untuk membedakan antara entitas dan relationship
– Tak ada mekanisme untuk membedakan jenis relationship antar entitas.
• Integritas dan enterprise constraint
– Integritas dibutuhkan untuk validasi dan konsistensi data
– Tak ada dukungan aturan enterprise pada model relasional
• Data homogen
– Horizontal: setiap tuple dlm sebuah relasi terdiri atas atribut yang sama
– Vertikal: harga dalam kolom tertentu berasal dari domain yang sama
– Objek ‘dunia nyata’ memiliki struktur yang kompleks
– Binary Large Object (BLOB): informasi biner merepresentasikan citra,
video, suara, atau objek yang tidak terstruktur
– Bd tidak mengelola BLOB secara langsung, hanya mengacu padanya.
Tak ada proteksi, BLOB tak dapat berisi BLOB, tak dapat dimanipulasi
• Keterbatasan operasi
– Operasi terbatas pada operasi himpunan dan tuple-oriented. (SQL-92)
– SQL-92 tidak memungkinkan operasi baru
Konsep Object-Oriented
Abstraksi dan Enkapsulasi
• Abstraksi: proses identifikasi aspek penting sebuah entitas dengan
mengabaikan properti yang tidak penting
• Enkapsulasi (penyembunyian informasi)
– memisahkan aspek eksternal sebuah objek dari detail internal
– perubahan detil internal tak mempengaruhi aplikasi yg menggunakannya
– memberikan data independence
Objek dan Atribut
• Objek: sebuah entitas yg dapat diidentifikasi scr unik, memiliki atribut & aksi
• Status sebuah objek dideskripsikan oleh sebuah atribut atau lebih
– Atribut sederhana, tipe primitif: integer, real, string, dsb
– Atribut kompleks: sekumpulan objek dan atau acuan
– Atribut acuan mirip dengan foreign key pada model relasional
• Objek yg berisi sebuah atribut kompleks atau lebih disebut objek kompleks
Identitas Objek
• Setiap objek memiliki OID (Object Identifier) yg unik, tersembunyi dari user
• OID tak dapat diubah, tak digunakan lagi oleh objek lain
. . . Identitas Objek
• OID berbeda dg primary key: (a) pk hanya unik dlm sebh relasi, tdk dlm sistem keseluruhan, (b) pk dipilih dr atribut relasi, bergantung pd status objek.
• Beberapa keuntungan menggunakan OID:
– Efisien. OID membutuhkan storage minimal dalam objek kompleks, lebih
kecil dari pada nama tekstual, foreign key atau acuan lainnya
– Cepat. OID menunjuk alamat atau lokasi aktual objek yang diacu. Ini
berarti objek dapat ditempatkan secara cepat.
– Bebas content. OID tak bergantung pada data yang ada di dalam objek
– Tersembunyi dari user.
• Dua objek dikatakan identik jika dan hanya jika memiliki OID yang sama.
• Dua objek dikatakan sama (equal) jika statusnya sama. Primary key dapat
ditambahkan untuk memungkinkan user membedakan objek yang sama.
Metode dan Pesan
• Metode mendefinisikan perilaku objek. Misalnya mengubah alamat pegawai
• Metode terdiri atas nama dan body yang berisi sekumpulan kode untuk
melaksanakan aksi yang diperlukan. Contoh:
Method void UpdateGaji(float penambahan)
{
gaji = gaji + penambahan
}
. . . Metode dan Pesan
• Pesan adalah permintaan dari sebuah objek (pengirim) ke objek lain
(penerima) untuk mengeksekusi satu dari metode yang dimilikinya
• Pengirim dan penerima boleh jadi merupakan objek yang sama
• Misalnya mengeksekusi metode UpdateGaji pada objek pegawai dengan
penambahan 75000, penulisan pesan: ObjekPegawai.UpdateGaji(75000)
Pada pemrograman tradisional, ditulis: UpdateGaji(ObjekPegawai,75000)
Kelas
• Objek yang memiliki atribut sama dan
merespons pesan sama dikelompokkan ke dalam sebuah kelas
• Atribut dan metode didefinisikan satu
kali untuk sebuah kelas, bukan untuk
setiap objek.
• Objek-objek dalam sebuah kelas
disebut instance dari kelas tersebut.
• Setiap instance memiliki harganya sendiri untuk setiap atribut, tetapi bersama
instance lain pada kelasnya memakai
nama atribut dan metode yang sama.
KELAS
PEGAWAI
Atribut
NIP
Nama
Telepon
:
:
Metode
Cetak
UpdateGaji
NIP = 9182
Nama = Anta
…
…
NIP = 4857
Nama = Ana
…
…
Metakelas
• Pada beberapa sistem berorientasi objek, kelas juga sebuah objek yang
memiliki atribut dan metodenya sendiri
• Atribut kelas mendeskripsikan karakteristik kelas secara umum
• Metode kelas digunakan untuk mengubah status atribut kelas
• Konstruktor: metode kelas khusus untuk membuat instance baru
• Destruktor: metode kelas untuk membuang objek
• Pesan dikirim ke kelas dan bukan instance kelas. Ini berarti kelas adalah
sebuah instance dari kelas yang lebih tinggi yang disebut metakelas
Subkelas, Superkelas dan Inheritance
• Inheritance memungkinkan sebuah kelas objek didefinisikan sebagai
subkelas (kasus khusus) dari kelas yang lebih umum (superkelas).
• Generalisasi : proses pembentukan superkelas
• Spesialisasi : proses pembentukan subkelas
• Sebuah subkelas mewarisi semua properti superkelasnya dengan
tambahan propertinya sendiri yang unik
• Semua instance subkelas juga merupakan
Pegawai
instance superkelas
• Ada beberapa bentuk inheritance:
Manajer
StafPenjual
a. Single inheritance: subkelas diturunkan
dari sebuah superkelas
(a)
b. Multiple inheritance: subkelas diturunkan
dari beberapa superkelas.
c. Repeated inheritance: kasus khusus
multiple inheritance dengan superkelas diturunkan dari superkelas yang lebih umum
d. Selective inheritance: subkelas mewarisi
sejumlah properti (atribut dan metode)
tertentu dari superkelas
• Overriding: proses pendefinisian ulang properti
warisan pada subkelas
• Overloading: memungkinkan nama metode dipakai kembali dlm kelas yg berbeda. Ini berarti
sebuah pesan dpt memberikan fungsi berbeda
bergantung pada objek yang menerimanya.
Manajer
StafPenjual
ManajerPenjualan
(b)
Pegawai
Manajer
StafPenjual
ManajerPenjualan
(c)
Polimorfisme dan Dynamic Binding
• Ada tiga jenis polimorfisme: operasi, inklusi (inclusion), dan parametric.
• Overloading adalah tipe polimorfisme operasi.
• Metode yang didefinisikan dalam superkelas diwariskan ke subkelas adalah
contoh polimorfisme inklusi.
• Polimorfisme parametric menggunakan tipe parameter yang umum. Metode
aktualnya sesuai dengan tipe parameter aktualnya.
• Proses pemilihan metode yg sesuai berdasarkan tipe objek disebut binding
• Bila penentuan tipe objek dilakukan pada waktu run dan bukan pada waktu
compile, proses pemilihan metodenya disebut dynamic binding.
• Contoh: mencetak detil objek dr 3 kelas berbeda:
Pemrograman konvensional:
Dynamic loading & overloading:
for i = 1 to n do {
switch (list[i].type) {
case Pegawai: PrintPegawai;
case Manajer: PrintManajer;
case Penjual: PrintPenjual;
}
}
for i = 1 to n do {
list[i].print
}
Objek Kompleks
• Objek kompleks: sebuah objek tunggal dl ‘dunia nyata’ tetapi berisi objek
lain (subobjek) yang boleh jadi juga merupakan objek kompleks
• Ada dua cara penanganan subobjek:
a. Subobjek dienkapsulasi dalam objek kompleks dan merupakan bagian
dari objek kompleks. Struktur subobjek adalah bagian dari struktur objek
kompleks dan dapat diakses hanya oleh metode objek kompleks.
b. Subobjek independen dari objek kompleks. Subobjek tidak disimpan
dalam objek induk tetapi hanya OID-nya. Subobjek memiliki struktur dan
metodenya sendiri dan dapat dimiliki oleh beberapa objek induk .
• Objek kompleks di atas disebut juga objek kompleks terstruktur
• Objek kompleks yang strukturnya hanya dapat diinterpretasi oleh program
aplikasi disebut objek kompleks tak terstruktur, dikenal sebagai BLOB
Menyimpan Objek dalam Basisdata Relasional
• Pemetaan setiap kelas/subkelas ke relasi, diperoleh empat relasi:
Pegawai (NRP, Nama, Alamat, Telp, TglLahir, Gaji)
Manajer (NRP, Bonus)
Pegawai
Salesman (NRP, AreaPenjualan)
NRP
Sekretaris (NRP, KecMengetik)
Nama
Alamat
• Pemetaan setiap subkelas ke
Telp
relasi, diperoleh tiga relasi
TglLahir
Manajer (NRP, Nama, Alamat,
Gaji
Telp, TglLahir, Gaji, Bonus)
Salesman (NRP,Nama,Alamat,Telp,
TglLahir, Gaji, AreaPenjualan)
Manajer
Sekretaris
Salesman
Sekretaris (NRP,Nama,Alamat,Telp,
Bonus
AreaPenjualan
KecMengetik
TglLahir, Gaji, KecMengetik)
• Pemetaan hirarki ke relasi tunggal:
Pegawai (NRP,Nama,Alamat,Telp,TglLahir,Gaji,Bonus,AreaPenjualan,KecMengetik,TipePegawai)
TipePegawai adalah atribut tambahan untuk membedakan tipe pegawai,
misalnya berharga 1 untuk Manajer, 2 untuk Salesman, 3 untuk Sekretaris.
Generasi Sistem Basisdata
• Generasi I memiliki kelemahan:
– program rumit harus ditulis,
bahkan utk query sederhana
– miskin data independence
– dasar teori tak diterima luas
• Generasi II mengeliminasi
kelemahan generasi I
• Generasi III :
– Object-oriented data model
– Object-relational data model
Generasi I
Generasi II
Model data hirarki
1960-an
IMS (IBM)
Model data network
1960-an
CODASYL
EF Codd,1970
Model data relasional Prod. komersial
(akhir1980an)
Model data ER
Chen, 1976
Model data semantik
Hammer,1981
Shipman, 1981
Su, 1983
• Keduanya merespon meningkat- Generasi III
nya kompleksitas aplikasi bd.
Model data
Model data
• Pendukung OODBMS mengrelasional objek
berorientasi objek
klaim bahwa RDBMS memadai
utk aplikasi bisnis standar, tetapi kurang mendukung aplikasi yg kompleks.
• Pendukung relasional mengklaim bahwa teknologi relasional adalah bagian
yang dibutuhkan oleh DBMS apa pun dan aplikasi rumit dapat ditangani
dengan pengembangan model relasional
• Hingga kini belum jelas, manakah yg akan tampil sbg pemenang / dominan.
• Selain untuk aplikasi rumit, OODBMS harus dapat mengakomodasi aplikasi
bisnis standar dengan tool & kemudahan yang sama dengan relasional
DAFTAR PUSTAKA
Connolly, Thomas., et.al., 2002. Database System. Wokingham
England, Addison-Wesley Publishing Company.
Date, C.J, 2000. An Introduction to Database System. 7th Edition,
New York, Addison Wesley Publishing Company.
© 2006, M. Ramadhan
Download