Dalam database berorientasi objek (OODB), pengguna dapat mengatur operasi pada database tertentu, yang terdiri dari objek yang dapat dari berbagai jenis dan untuk operasi yang ditetapkan. Mereka dapat secara efisien menangani informasi biner seperti objek multimedia. Manfaat tambahan lainnya dari OODB adalah dapat diprogram dengan sedikit perbedaan prosedural tanpa mempengaruhi keseluruhan sistem.
Prasyarat untuk pembuatan standar
Sejarah database OODB berorientasi objek dimulai pada akhir abad terakhir. Mereka diciptakan untuk memenuhi kebutuhan aplikasi baru. Asumsinya adalah bahwa database berorientasi objek akan merevolusi sistem perangkat lunak selama tahun 1990-an. Sekarang jelas bahwa ini tidak terjadi. Namun, kebangkitan konsep ini melalui komunitas perangkat lunak bebas dan identifikasi aplikasi yang cocok untuk itu memotivasi tinjauan karakteristikOODB, yang merupakan alternatif dari database relasional yang ada di mana-mana.
Berorientasi objek memberikan fleksibilitas untuk menangani beberapa atau semua persyaratan dan tidak terbatas pada tipe data dan bahasa kueri database tradisional. Fitur utama OODB adalah kemampuan yang mereka berikan kepada pengembang, memungkinkannya untuk menentukan struktur objek kompleks dan operasi aplikasi. Alasan lain untuk membuat OODB adalah meningkatnya penggunaan bahasa untuk pengembangan perangkat lunak.
Basis data telah menjadi dasar dari banyak sistem informasi, tetapi basis data tradisional sulit digunakan ketika aplikasi yang mengaksesnya ditulis dalam C++, Smalltalk atau Java. Misalnya, database berorientasi objek 1C dirancang sedemikian rupa sehingga dapat langsung diintegrasikan dengan aplikasi yang menggunakan bahasa berorientasi objek dengan mengadopsi konsep mereka: Visual Studio. Net, C++, C, Microsoft SQL Server dan lainnya.
Keuntungan utama OODB adalah menghilangkan kebutuhan RMs1 (impedansi) dengan peningkatan kinerja selanjutnya.
Kekurangan:
- Mekanisme konsultasi yang sangat primitif, tidak ada platform standar yang diterima.
- Tidak dapat menyimpan prosedur karena objek hanya dapat diakses di klien.
- Ketidakmatangan di pasar.
- Tidak ada pengelompokan fisik objek.
Paradigma objek
Basis data berorientasi objek adalah basis data yang dapat diprogram yang menyimpan data kompleks dan hubungannya secara langsung tanpa menetapkan baris dan kolom, membuatnya lebih cocok untuk aplikasi yang bekerja dengan kumpulan besar. Objek memiliki hubungan banyak ke banyak dan dapat diakses melalui penggunaan pointer yang terkait dengannya untuk membangun hubungan. Seperti yang dapat diprogram, OODB menyediakan lingkungan pengembangan aplikasi dan repositori persisten yang siap untuk dieksploitasi. Ini menyimpan dan memanipulasi informasi yang dapat didigitalkan dalam bentuk objek, menyediakan akses cepat dan menyediakan kemampuan pemrosesan yang hebat.
Konsep dasar yang digunakan dalam database berorientasi objek:
- identitas objek;
- tipe konstruktor;
- kompatibilitas bahasa;
- tipe hierarki dan pewarisan;
- memproses objek kompleks;
- polimorfisme dan kelebihan operator;
- membuat versi.
Untuk sepenuhnya mempertimbangkan semua aspek yang mencirikan database berorientasi objek, penting untuk mencatat semua paradigma objek penting:
- Enkapsulasi adalah properti yang memungkinkan Anda menyembunyikan informasi untuk objek lain, sehingga mencegah akses atau konflik yang salah.
- Inheritance adalah properti dimana objek mewarisi perilaku dalam hierarki kelas.
- Polimorfisme adalah properti dari operasi yang dapat diterapkan keberbagai jenis objek.
- Antarmuka atau tanda tangan operasi menyertakan nama dan tipe data argumen atau parameternya.
- Implementasi atau metode operasi ditentukan secara terpisah dan dapat diubah tanpa mempengaruhi antarmuka. Aplikasi pengguna dapat bekerja dengan data dengan memanggil operasi tertentu melalui nama dan argumennya, terlepas dari cara penerapannya.
Kelas dan fungsionalitas
Saat mempertimbangkan konsep kelas di OODB, perlu dibedakan antara istilah "kelas" dan "tipe". Tipe digunakan untuk mendeskripsikan sekumpulan objek dengan perilaku yang serupa. Dalam pengertian ini, itu tergantung pada operasi apa yang dapat dipanggil pada objek. Kelas adalah kumpulan objek yang berbagi struktur internal yang sama, sehingga mendefinisikan implementasi, sedangkan tipe menjelaskan cara menggunakannya.
Istilah Instansiasi mengacu pada fakta bahwa Instansiasi suatu kelas dapat digunakan untuk menghasilkan sekumpulan objek yang memiliki struktur dan perilaku yang sama seperti yang ditetapkan oleh kelas tersebut.
Fitur yang sangat penting untuk evolusi objek adalah dapat mengubah kelasnya, termasuk atribut dan operasi, sambil mempertahankan identitas. Ini akan membutuhkan mekanisme untuk menangani integritas semantik yang dihasilkan.
Mewarisi database berorientasi objek organisasi memungkinkan sebuah kelas didefinisikan sebagai subkelas dari superkelas yang sudah ada. Itu akan mewarisi semua atribut dan metode dari yang terakhir dan secara opsional dapat mendefinisikanmemiliki. Konsep ini merupakan mekanisme penting untuk mendukung penggunaan kembali. Bagian yang sama dari struktur dua kelas yang berbeda hanya dapat didefinisikan satu kali dalam superkelas yang sama, sehingga lebih sedikit kode yang akan ditulis. Ada beberapa sistem yang memungkinkan sebuah kelas menjadi subkelas dari lebih dari satu superkelas. Fitur ini disebut pewarisan berganda sebagai kebalikan dari pewarisan tunggal.
Contoh database berorientasi objek
Sering kali berguna untuk menggunakan nama yang sama untuk metode superclass media yang berbeda namun serupa dari kelas gambar dan video. Banyak file dapat dilihat oleh pemirsa yang berbeda. Mereka sering perlu melihat semua foto dan video menggunakan metode "lihat", dan program yang sesuai harus diluncurkan. Saat fungsi dipanggil dan tautan ke video diteruskan, pemutar media diluncurkan. Untuk mengimplementasikan fitur ini, pertama-tama, perlu untuk mendefinisikan operasi "presentasi" di superclass media umum dari kelas gambar dan video. Masing-masing subclass mendefinisikan ulang operasi pencarian untuk kebutuhan spesifik mereka. Ini menghasilkan metode berbeda yang memiliki nama operasi yang sama. Dalam hal ini, menggunakan fungsi ini memiliki keuntungan penting.
struktur OODB
Paradigma berorientasi objek didasarkan pada enkapsulasi data dan kode yang terkait dengan setiap objek dalam satu modul. Secara konseptual, semua interaksi antara sistem dan seluruh sistem dilakukan dengan menggunakan pesan. Oleh karena itu antarmukaantara mereka ditentukan oleh set yang diizinkan.
Secara umum, setiap objek diasosiasikan dengan himpunan:
- Variabel yang berisi data objek dan sesuai dengan atribut model ER.
- Pesan yang dia balas. Masing-masing mungkin atau mungkin tidak memiliki parameter, satu atau lebih.
- Methods, yang masing-masing merupakan kode yang mengimplementasikan pesan dan mengembalikan nilai sebagai tanggapannya.
Pesan dalam lingkungan OO tidak menyiratkan penggunaan SMS fisik di jaringan komputer. Sebaliknya, ini mengacu pada pertukaran permintaan antar objek, terlepas dari detail implementasinya yang benar. Terkadang sebuah ekspresi memanggil metode untuk memicu fakta bahwa pesan telah dikirim ke objek, dan menggunakan eksekusi metode yang sesuai.
Identitas objek
Sistem database berorientasi objek menyediakan identifikasi unik untuk setiap objek independen yang disimpan dalam database. Biasanya diimplementasikan menggunakan pengidentifikasi objek unik atau OID yang dihasilkan sistem. Nilai OID tidak terlihat oleh pengguna eksternal, tetapi sistem menggunakannya secara internal untuk mengelola tautan antar objek.
Properti utama OID tidak dapat diubah. Nilai OID untuk objek tertentu tidak boleh berubah. Ini mempertahankan identitas dunia nyata yang diwakili. Juga lebih disukai bahwa setiap OID digunakan hanya sekali, bahkan jika dihapus dari database, OID-nya tidak boleh ditugaskan ke yang lain. Juga sering dianggap tidak pantas untuk mendasarkannya pada fisikalamat objek dalam penyimpanan, karena mengatur ulang mereka dalam database dapat mengubah OID. Namun, beberapa sistem menggunakan alamat fisik sebagai OID untuk meningkatkan efisiensi pengambilan objek. Kerangka berorientasi objek secara otomatis memberlakukan batasan relasional, biasanya lebih dapat diterapkan: domain, kunci, integritas objek, dan integritas referensial.
Tiga konstruktor utama
Dalam OODB, nilai atau status objek kompleks dapat dibuat dari objek lain menggunakan konstruktor tipe tertentu. Salah satu cara untuk merepresentasikannya adalah dengan menganggap masing-masing sebagai triplet (i, c, v), di mana i adalah pengidentifikasi unik objek (OID), c adalah konstruktor, yaitu, penunjuk bagaimana nilai objek tersebut. dibuat, dan v adalah nilai atau keadaan objek. Mungkin ada beberapa konstruktor tergantung pada model data dan sistem OO.
Tiga konstruktor basis data berorientasi objek dasar:
- atom;
- tupel;
- set.
Kegunaan lain yang lebih umum adalah daftar dan bagan. Ada juga domain D, yang berisi semua nilai atom dasar yang tersedia langsung di sistem. Mereka biasanya menyertakan bilangan bulat, bilangan real, string karakter, tanggal, dan jenis data lainnya yang ditangani sistem secara langsung. Baik struktur objek dan operasi termasuk dalam definisi kelas.
Kompatibilitas dengan bahasa pemrograman
Konsep inti database berorientasi objek digunakan dalamsebagai alat desain dan dikodifikasi untuk bekerja dengan database.
Ada beberapa kemungkinan bahasa di mana konsep-konsep ini dapat diintegrasikan:
- Memperluas bahasa untuk pemrosesan data seperti SQL dengan menambahkan tipe kompleks dan OOP. Sistem menyediakan ekstensi berorientasi objek ke sistem relasional, yang disebut sistem relasional berorientasi objek.
- Menggunakan bahasa pemrograman berorientasi objek yang sudah ada dan memperluasnya untuk bekerja dengan database. Mereka disebut bahasa pemrograman persisten dan memungkinkan pengembang untuk bekerja secara langsung dengan data tanpa harus melalui bahasa pemrosesan data seperti SQL. Disebut persisten karena data tetap ada setelah program yang membuatnya berakhir.
Saat memutuskan opsi mana yang akan digunakan, perlu diingat bahwa bahasa persisten cenderung kuat, dan relatif mudah untuk membuat kesalahan pemrograman yang merusak database. Kompleksitas bahasa membuat pengoptimalan otomatis tingkat tinggi, seperti mengurangi I/O disk, menjadi sulit. Di banyak aplikasi, kemampuan untuk membuat kueri deklaratif itu penting, tetapi bahasa persisten saat ini tidak mengizinkan kueri seperti itu tanpa masalah.
Hirarki tipe pewarisan
Skema database berorientasi objek biasanya membutuhkan sejumlah besar kelas. Namun, beberapa kelas serupa satu sama lain. Untuk memungkinkan representasi langsung dari kesamaan di antara mereka, Anda perlu menempatkanmereka ke dalam hierarki spesialisasi. Konsep ini mirip dengan model ER. Spesialisasi kelas disebut subkelas, yang mendefinisikan atribut dan metode tambahan untuk kelas yang ada. Objek yang dibuat dengan subkelas mewarisi segalanya dari induknya. Beberapa dari karakteristik yang diwariskan ini mungkin dipinjam dari mereka yang lebih tinggi dalam hierarki.
Objek dianggap kompleks karena membutuhkan banyak ruang penyimpanan dan bukan bagian dari tipe data standar yang biasanya ditawarkan oleh Object Oriented Database Management (OODBS). Karena ukuran objek signifikan, SOOBMS dapat menerima sebagian dari objek dan memberikannya ke aplikasi sebelum memperoleh seluruh objek. Itu juga dapat menggunakan metode buffer dan cache untuk mendapatkan bagian dari objek sebelumnya, sebelum aplikasi dapat mengaksesnya.
OODB memungkinkan pengguna untuk membuat tipe baru yang mencakup struktur dan operasi, dalam hal ini sistem tipe yang dapat diperluas. Anda dapat membuat pustaka tipe baru dengan mendefinisikan struktur dan operasinya. Banyak dari mereka dapat menyimpan dan menerima objek terstruktur besar dalam bentuk string dan karakter atau bit, yang diteruskan "sebagaimana adanya" ke program aplikasi untuk interpretasi.
Metode ini dapat langsung mengakses atribut objek target berdasarkan nama, termasuk semua yang diwarisi dari kelas induk, tetapi harus mengakses atribut objek lain dengan sinyal sekunder. Konsep ini memungkinkan Anda untuk mengasosiasikan nama atau simbol operator yang sama dengandua atau lebih implementasi yang berbeda, tergantung pada jenis objek yang diterapkannya.
Aplikasi Bangunan
Banyak aplikasi database yang menggunakan sistem OO memerlukan beberapa versi dari objek yang sama. Biasanya, aktivitas pemeliharaan diterapkan pada sistem perangkat lunak saat persyaratannya berubah, dan melibatkan perubahan beberapa modul pengembangan dan implementasi. Jika sistem sudah berjalan dan jika satu atau lebih modul perlu diubah, pengembang harus membuat versi baru dari masing-masing modul dengan melakukan perubahan.
Perhatikan bahwa mungkin ada lebih dari dua versi objek, jika diperlukan dua versi selain modul asli. Versi sendiri dari modul perangkat lunak yang sama dapat diperbarui secara bersamaan. Ini disebut desain database berorientasi objek paralel. Namun, selalu ada titik di mana mereka perlu digabung agar OODB hybrid dapat menggabungkan perubahan yang telah dibuat agar kompatibel.
Kondisi berorientasi objek
Semua sistem komputer harus memiliki properti arsitekturnya untuk dipertimbangkan. Misalnya, suatu sistem harus memiliki tabel untuk dianggap relasional. OODB tidak terkecuali dan berisi beberapa properti dasar dari arsitektur objek. Namun, di dunia nyata, banyak dari properti ini dibahas dan beberapa, seperti pewarisan berganda, dianggap sebagai peningkatan model database berorientasi objek daripadasebagai bagian dari dasar. Misalnya, dalam bahasa berorientasi objek Smalltalk, pewarisan berganda tidak didukung, meskipun dianggap sebagai bagian dari arsitektur objek.
Metode untuk sebuah kelas mendefinisikan sekumpulan operasi yang dapat dilakukan pada sebuah objek. Misalnya, ketika diterapkan ke objek, itu mengembalikan nilai atau melakukan beberapa operasi untuk memperbarui nilai. Terkadang metode tidak mengembalikannya. Jika metode dirancang untuk memperbarui jumlah penumpang untuk kendaraan, tidak ada nilai yang akan dikembalikan, tetapi elemen data dalam target akan mengubahnya.
Objek adalah konsep dasar dalam OODB. Pada dasarnya, objek adalah representasi abstrak dari hal-hal dunia nyata yang tersimpan di dalamnya. Objek adalah turunan dari kelas dalam arti bahwa objek tersebut dikecualikan dari definisinya.
Anda dapat menganggap sebuah objek sebagai paket mandiri yang memiliki tiga bagian:
- Informasi pribadi, nilai data.
- Prosedur pribadi yang akan memanipulasi nilai melalui definisi kelas.
- Buka antarmuka sehingga objek ini dapat berkomunikasi dengan orang lain.
contoh OODB
Menggunakan OODB menyederhanakan konseptualisasi karena lebih alami untuk mewakili informasi yang perlu disimpan. Untuk memodelkan struktur atau logika database, penggunaan diagram kelas memungkinkan Anda untuk memperkenalkan kelas dengan hubungan struktural dan pewarisannya. Untuk memodelkan bagian dari dinamika, interaksi danperilaku antar objek, diagram urutan akan digunakan untuk mewakili interaksi antara objek yang terletak dalam hubungan sementara, menggambarkan keadaan yang mungkin sehingga dapat ditemukan mengingat keadaan yang berubah setelah peristiwa terjadi.
Contoh database berorientasi objek ditunjukkan di bawah ini.
Mereka memiliki nama dan masa hidup, yang dapat bersifat sementara atau permanen. Kunci OODB adalah kemampuan yang mereka berikan kepada pengembang untuk menentukan berapa banyak struktur dan operasi yang akan diterapkan padanya. Ada fleksibilitas dan dukungan untuk menangani tipe data yang kompleks. Anda dapat membuat kelas dan subkelas, misalnya, basis klien dapat memiliki subkelas dari tautan klien ini, dan itu akan mewarisi semua atribut dan karakteristik kelas asli, pendekatan ini memungkinkan Anda memproses data kompleks dengan cepat dan fleksibel.