The K Zone, Home

About Me

K View

Projects

Papers

Gallery

Email

 

 

 
 

Object Oriented Databases (OODB) - Page 4

 

Back to Contents Page

 
 

 

Architecture

Implementation Issues

Concurrency - OODB's support concurrency, however this raises the possibility of conflict should multiple users attempt to amend the same object at the same time. Two common approaches are used to stop this occurring:

1. Locking: The idea is to make an object inaccessible to more than one user at a time. Hence, when a user requests an object it is flagged as 'locked'. Any other user attempting to request the object must wait until the lock holder relinquishes the object.

2. Check In-Check Out: The persistence of objects in OODB's facilitates versioning - creation of a new version of an object when a request is made to change it.
A new version of an object is 'check-out' when the user requests to amend it. The version is sent to the users private workspace effectively setting a write lock against it. Hence, multiple users can simultaneously access multiple versions of the same object.
When the user is finished the object is 'checked-in' which creates a new object version [Brown 91].

Check in-check out is the most commonly used approach in OODB's largely because it greatly improves the concurrency of the system.

Paging - OODB's significantly reduce the need for paging by loading only those objects that are required into memory. This is in stark contrast to Relational database's that loads tables containing required data and unnecessary data into memory.

Application Development - OODB's are well integrated with object-orientated programming languages, both using the same object model. Therefore building an OODB system with an O-O programming language removes the need for mapping between database and application language as with relational databases. This greatly reduces the complexity of the code and the number of lines of code that need be written.
The use of Object-Oriented Analysis and Object-Oriented Modelling techniques in the requirements and design phases of the system development lifecycle can significantly improve the understanding between analyst, designed and programmer. This can significantly reduce the number of bugs and implementation errors encountered in the final system.


Next Page