Objek Identitas
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.
Dalam model dengan identitas objek, sebuah objek memiliki eksistensi yang independen dari nilainya. Jadi dua pengertian tentang objek kesetaraan ada: dua benda dapat identik (mereka adalah objek yang sama) atau mereka bisa sama (mereka memiliki nilai yang sama). Ini memiliki dua implikasi: satu adalah berbagi objek dan yang lain adalah update objek.
Objek Sharing:
dalam model berbasis identitas, dua benda dapat berbagi komponen. Dengan demikian, representasi bergambar dari obyek yang kompleks adalah grafik, sementara itu terbatas menjadi pohon dalam sistem tanpa identitas objek. Perhatikan contoh berikut: Orang memiliki nama, usia dan satu set anak. Asumsikan Peter dan Susan keduanya memiliki anak 15-tahun bernama John. Dalam kehidupan nyata, dua situasi mungkin timbul: Susan dan Peter adalah orang tua dari anak yang sama atau ada dua anak yang terlibat. Dalam sistem tanpa identitas, Peter diwakili oleh:
(Peter, 40, {(john, 15, {})})
dan Susan diwakili oleh:
(Susan, 41, {(john, 15, {})}).
Dengan demikian, tidak ada cara untuk mengungkapkan apakah Peter dan Susan adalah orang tua dari anak yang sama. Dalam model berbasis identitas, kedua struktur dapat berbagi bagian umum (john, 15, {}) atau tidak, sehingga menangkap baik situasi.
Update Objek:
berasumsi bahwa Peter dan Susan memang orang tua dari seorang anak bernama John. Dalam hal ini, semua update anak Susan akan diterapkan ke objek John dan, akibatnya, juga untuk anak Petrus. Dalam sistem berbasis nilai, baik sub-objek harus diperbarui secara terpisah. Identitas objek juga merupakan manipulasi data yang kuat primitif yang dapat menjadi dasar set, tupel dan rekursif manipulasi obyek yang kompleks, [Abiteboul dan Kanellakis 89] .
Mendukung identitas objek menyiratkan menawarkan operasi seperti objek tugas, copy objek (baik copy dalam dan dangkal) dan tes untuk identitas obyek dan kesetaraan objek (baik dalam dan kesetaraan dangkal).
Tentu saja, seseorang dapat mensimulasikan identitas objek dalam sistem berbasis nilai dengan memperkenalkan pengidentifikasi objek eksplisit. Namun, pendekatan ini menempatkan beban pada pengguna untuk memastikan keunikan pengidentifikasi objek dan untuk menjaga integritas referensial (dan beban ini bisa menjadi signifikan untuk operasi seperti pengumpulan sampah).
Perhatikan bahwa model berbasis identitas adalah norma dalam bahasa pemrograman imperatif: setiap objek dimanipulasi dalam sebuah program memiliki identitas dan dapat diperbarui. Identitas ini baik berasal dari nama variabel atau dari lokasi fisik di memori. Tapi konsep ini cukup baru dalam sistem relasional murni, di mana hubungan yang berbasis nilai.
Obyek Identitas
Identitas objek: Sebuah objek mempertahankan identitasnya bahkan jika beberapa atau semua nilai-nilai variabel atau definisi metode berubah dari waktu ke waktu.
Konsep identitas obyek diperlukan dalam aplikasi tetapi doe tidak berlaku untuk tupel dari database relasional.
Identitas objek adalah gagasan kuat identitas dari biasanya ditemukan dalam bahasa pemrograman atau dalam model data yang tidak berdasarkan orientasi objek.
Beberapa bentuk identitas:
- Nilai: Nilai data yang digunakan untuk identitas (misalnya, kunci utama dari tuple dalam database relasional).
- Nama: Nama yang disediakan pengguna digunakan untuk identitas (misalnya, nama file dalam sistem file).
- built-in: Sebuah gagasan identitas dibangun-ke dalam model data atau bahasa pemrograman, dan tidak ada identifier yang disediakan pengguna diperlukan (misalnya, dalam sistem OO).
Identitas objek biasanya dilaksanakan melalui unik, sistem yang dihasilkan OID. Nilai OID tidak terlihat oleh pengguna eksternal, tetapi digunakan secara internal oleh sistem untuk mengidentifikasi setiap objek unik dan untuk membuat dan mengelola referensi antar-obyek.
Ada banyak situasi di mana memiliki sistem menghasilkan pengidentifikasi otomatis adalah keuntungan, karena membebaskan manusia dari melakukan tugas itu. Namun, kemampuan ini harus digunakan dengan hati-hati. Pengidentifikasi sistem yang dihasilkan biasanya khusus untuk sistem, dan harus diterjemahkan jika data dipindahkan ke sistem database yang berbeda. Pengidentifikasi sistem yang dihasilkan mungkin berlebihan jika entitas yang dimodelkan sudah memiliki pengidentifikasi unik eksternal ke sistem, misalnya, SIN #.