1 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
2 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 dl sebh relasi, tdk dl 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 yg 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 dikelompok-kan ke dalam sebuah kelas
Atribut & metode didefinisikan 1x utk sebh kelas, bukan utk setiap objek Objek-objek dalam sebuah kelas
disebut instance dari kelas tsb.
Setiap instance memiliki harganya sen-diri utk setiap atribut, tetapi bersama instance lain pd kelasnya memakai nama atribut dan metode yang sama
PEGAWAI Atribut NIP Nama Telepon : : Metode Cetak UpdateGaji KELAS 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 Constructor: 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 instance superkelas
Ada beberapa bentuk inheritance:
a. Single inheritance: subkelas diturunkan dari sebuah superkelas
Pegawai
Manajer StafPenjual (a)
b. Multiple inheritance: subkelas diturunkan dari beberapa superkelas.
c. Repeated inheritance: kasus khusus
multiple inheritance dengan superkelas di-turunkan 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 dl kelas yg berbeda. Ini berarti sebuah pesan dpt memberikan fungsi berbeda bergantung pada objek yang menerimanya. 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.
ManajerPenjualan Manajer StafPenjual ManajerPenjualan Manajer StafPenjual Pegawai (b) (c)
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)
Salesman (NRP, AreaPenjualan) Sekretaris (NRP, KecMengetik) Pemetaan setiap subkelas ke
relasi, diperoleh tiga relasi Manajer (NRP, Nama, Alamat,
Telp, TglLahir, Gaji, Bonus) Salesman (NRP,Nama,Alamat,Telp,
TglLahir, Gaji, AreaPenjualan) Sekretaris (NRP,Nama,Alamat,Telp,
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.
NRP Nama Alamat Telp TglLahir Gaji Pegawai Bonus Manajer AreaPenjualan Salesman KecMengetik Sekretaris
Model data hirarki
Model data relasional Model data network
Model data ER
Model data semantik
Model data relasional objek Model data berorientasi objek 1960-an IMS (IBM) 1960-an CODASYL EF Codd,1970 Prd. komersial (akhir1980an) Chen, 1976 Hammer,1981 Shipman, 1981 Su, 1983 Generasi I Generasi II Generasi III
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 Keduanya merespon
meningkat-nya kompleksitas aplikasi bd. Pendukung OODBMS
meng-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
3 Konsep Object-Oriented DBMS
Yang akan dipelajari
Kerangka model data object-oriented Bahasa pemrograman persistent Strategi pengembangan OODBMS
Perbedaan antara model storage dua level (DBMS konvensional) dan model storage satu level (OODBMS)
Perbedaan bagaimana DBMS konvensional mengakses sebuah record dg bagaimana OODBMS mengakses sebuah objek pada memori sekunder Keuntungan dan kerugian OODBMS
Mengenal Model Data OO Definisi
– OODM: model data logika yang merupakan semantik dari objek yang didukung bahasa pemrograman berorientasi objek
– OODB: sekumpulan objek yang didefinisikan oleh OODM, persistent dan dapat digunakan secara bersama
– OODBMS: pengelola OODB
Maier (1990) menyatakan bahwa OODBMS sekurang-kurangnya:
– Memiliki fungsionalitas bd – Memiliki kemampuan enkapsulasi – Mendukung identitas objek – Mendukung objek dg status kompleks
Sistem bd tradisional Persistence Sharing Transaksi Konkurensi Recovery Security Integritas Query Model data semantik Generalisasi Agregasi Pemrograman OO Identitas objek Enkapsulasi Inheritance
Tipe dan kelas
Metode Objek kompleks Polimorfisme Kebutuhan khusus Pemversian Evolusi skema Model data OO
Khoshafian dan Abnous (1990) mendefinisikan OODBMS sebagai: – OO = abstract data types + inheritance + identitas objek
– OODBMS = OO + kapabilitas basis data
Bahasa Pemrograman Basis Data
Bahasa pemrograman bd: bahasa yang mengintegrasikan beberapa ide dari model pemrograman bd dengan fitur bahasa pemrograman tradisional. SQL standar tak memiliki perintah pengendalian seperti:
IF ... THEN ... ELSE, DO ... WHILE, DO ... UNTIL, dsb.
Kini SQL dapat ditanamkan ke dalam bahasa prosedural tingkat tinggi seperti Pascal, Basic, dsb.
Strategi Pengembangan OODBMS
Ada beberapa pendekatan pengembangan OODBMS, di antaranya:
Memperluas bahasa pemrograman OO (Smalltalk, C++, Java) dengan kapabilitas basis data. Misalnya produk dari GemStone.
Pustaka OODBMS: pustaka kelas yang mendukung persitensi, agregasi, tipe data, transaksi, konkurensi, sekuritas, dsb. Pendekatan ini dilakukan pada produk dari Ontos, Versant, dan ObjectStore.
Menanamkan bahasa basis data OO ke dalam bahasa konvensional. Misal-nya yang telah dilakukan terhadap bahasa C dan menghasilkan produk O2.
Memperluas bahasa basis data yang ada dengan kapabilitas OO. Pende-katan ini dilakukan oleh vendor RDBMS & OODBMS. SQL3 adalah standar SQL terbaru yang mendukung fitur OO. ODMG (Object Data Management Group) membuat spesifikasi standar untuk Object SQL.
Issue dalam OODBMS: Transaksi, Versi, Evolusi Skema Transaksi
Transaksi dalam aplikasi bisnis biasanya berdurasi pendek.
Sebaliknya, transaksi objek kompleks (misalnya pada aplikasi perancangan dan rekayasa) berdurasi panjang hingga berjam-jam, bahkan berhari-hari. Oki, perlu protokol yang berbeda dari aplikasi bd tradisional. Salah satu di
antaranya adalah multiversion concurrency control protocols. Versi
Beberapa aplikasi perlu mengakses status objek sebelumnya.
Pembangunan perancangan bagian tertentu, misalnya, sering merupakan proses eksperimental dan inkremental yang berubah dari waktu ke waktu. Oki, perlu bd yg menyimpan evolusi objek & perubahan perancangannya. Proses pemeliharaan evolusi objek disebut version management.
Sebuah object version (versi objek) menyatakan status sebuah objek. Sebuah version history
(sejarah versi) menyatakan evolusi sebuah objek.
Gambar menunjukkan mana-jemen versi objek OA, OB, OC
Konfigurasi trdiri atas V2B dari
OA, V2A dari OB, V1B dari OC V1 V2 V3 V1A V2A V2B V1 V2 V1 V1A V1B V2A OB OC Konfigurasi OA
Evolusi Skema
Desain merupakan proses inkremental seiring dg waktu. Utk itu dibutuh-kan fleksibilitas dlm mendefinisidibutuh-kan & memodifikasi skema bd secara dinamis.
Aturannya dapat dikelompokkan sebagai berikut:
1. Konflik yang disebabkan oleh multiple inheritance dan pendefinisian ulang atribut & metode dalam sebuah subkelas.
a. Jika sebuah atribut/metode sebuah kelas didefinisikan dengan nama = nama atribut/metode sebuah superkelas, maka definisi yang dispesifikasikan dalam subkelas tersebut berlaku dan bukan definisi dari superkelas.
b. Jika bbrp superkelas memiliki atribut/metode dg nama sama ttp berbeda arti/ maksud, mk atribut/metode superkelas pertama yg diwariskan ke subkelas. c. Jika bbrp superkelas memiliki atribut/metode dg nama & arti sama, mk atribut
/metode diwariskan hanya 1x. Jika domain atribut telah didefinisi ulang dalam suatu superkelas, atribut dg domain paling khusus yg diturunkan ke subkelas. Jika domain tak dpt dibandingkan, atribut diturunkan dr superkelas pertama. 2. Pewarisan modifikasi ke subkelas.
a. Modifikasi atribut/metode dalam sebuah kelas selalu diwarisi oleh subkelas, kecuali subkelas yang atribut/metodenya telah didefinisi ulang. Contoh: - Menghapus HitungUmur dari superkelas SDM direfleksikan ke semua
subkelas dalam keseluruhan skema.
- Perubahan metode HitungGaji dalam Staf berefek ke Manajer, tetapi tidak pd StafPenjual karena metode tsb telah didefinisi ulang dalam subkelas ini.
- NoTelp dihapus dari StafPenjual, maka NoTelp pada SalesStafClient juga dihapus, tetapi mendapat warisan NoTelp dari Client
b. Atribut/metode baru atau modifikasi nama sebuah atribut/metode diwariskan hanya ke subkelas yang tidak menimbulkan konflik nama.
c. Domain atribut hanya dapat dimodifikasi dengan generalisasi. Domain atribut warisan tidak dapat dibuat lebih umum dari pada domain atribut asli dalam superkelas.
3. Agregasi dan penghapusan hubungan pewarisan (inheritance relationship) antar kelas dan pembuatan/penghapusan kelas.
a. Menambah superkelas:
- Jika sebuah kelas C ditambahkan ke daftar kelas CS, maka C menjadi
superkelas terakhir dari CS.
b. Menghapus superkelas
- Jika sebuah kelas C memiliki superkelas tunggal CS dan C dihapus dari
daftar superkelas, maka CS menggantikan posisi C
- Contoh: jika superkelas Staf dihapus, maka subkelas Manajer dan
StafPenjual menjadi subkelas langsung dari SDM.
c. Menambah sebuah kelas ke skema
- Jika C bukan superkelas, maka C menjadi subkelas objek. d. Membuang sebuah kelas dari skema
Arsitektur
Ada dua hal yang akan dibahas yaitu (1) arsitektur client-server dalam lingkungan OODBMS, dan (2) penyimpanan metode.
Arsitektur Client-Server
Ada tiga arsitektur dalam client-server yaitu: 1. Object Server
Server bertanggung jawab dalam pengelolaan storage, lock, commit, logging, recovery, keamanan dan integritas, optimasi query, dan eksekusi stored procedures.
Client bertanggung jawab pada manajemen transaksi, dan antarmuka ke bahasa pemrograman
Arsitektur terbaik untuk kerja sama. 2. Page Server
Sebagian besar pemrosesan dilakukan oleh client.
Server bertanggung jawab terhadap secondary storage dan memberikan page (halaman) sesuai dengan permintaan client. 3. Database Server
Sebagian besar pemrosesan dilakukan oleh server.
Client mengajukan permintaan kepada server, menerima hasil dan memberikannya kepada aplikasi.
Penyimpanan dan Eksekusi Metode
Ada dua pendekatan penanganan metode, yaitu menyimpannya dalam: (1) file eksternal, dan (2) basis data.
Penyimpanan Metode dalam File Eksternal
Mirip dengan pustaka fungsi atau API (Application Programming Interface) yang ada dalam DBMS tradisional.
Program aplikasi berinteraksi dengan DBMS melalui fungsi yang dipasok oleh vendor DBMS.
Penyimpanan Metode dalam Basis Data
Metode disimpan dlm bd dan scr dinamis terikat dg aplikasi pada waktu run. Memiliki beberapa keuntungan:
- Mengeliminasi kode ganda, metode disimpan hanya sekali dalam basis data. - Menyederhanakan modifikasi. Perubahan metode dilakukan hanya pada satu
tempat. Semua program otomatis menggunakan metode yang telah diupdate. - Metode lebih aman. Menyimpan metode dalam basis data secara otomatis
menggunakan keamanan yang ada dalam OODBMS.
- Metode dapat digunakan bersama secara konkuren. Akses konkuren telah tersedia secara otomatis dalam OODBMS. Perubahan yang dilakukan oleh banyak user terhadap metode secara simultan juga dapat dicegah.
- Integritas meningkat. Menyimpan metode dl bd berarti batasan integritas dapat diterapkan secara konsisten oleh OODBMS terhadap semua aplikasi.
Perspektif OODBMS
DBMS modern mendukung fitur berikut:
– Model data: deskripsai data, keterkaitan antar data, batasan data.
– Data sharing: banyak aplikasi mengakses data pada waktu yang sama. – Reliabilitas: proteksi data dari kegagalan hardware dan software
– Skalabilitas: kemampuan mengoperasikan data besar dg cara sederhana – Keamanan dan integritas. Proteksi data terhadap user yang tak berhak,
dan jaminan kebenaran dan konsistensi data.
– Distribusi: kemampuan mendistribusikan sekumpulan data terkait secara fisik melalui jaringan komputer.