Not many people realize that when they book a hotel, book a flight, use their cell phone or use a dedicated backup machine for their small business data, they may be interacting with an object database. Object databases are more often used than we know.
In essence, object oriented database management systems (ODBMS) store objects and not data that exists in forms of real numbers, integers or strings. Objects basically comprise the following:
– Attributes: These are the data forms that define the characteristics of an object. It may be simple or it may be reference to a complex object.
– Method: These describe the behavior of an object and are what we formally call procedures or functions.
So that is how objects include both executable code and data. There are other traits of objects – for example if or not the methods can be accessed from outside the object. Another term that should be mentioned here is classes. Classes find use in object oriented programming to define the data and the ‘methods’ that the object will have. A class is actually like a template to the object. It does not have any data or methods but can define the data and the methods that are within the object. The class is used to instantiate the object. Class may be used in object databases to recreate parts of the object that may not actually be inside the database. Methods may not be contained in the database and may be recreated by using a class.
When to use an Object Database Management System
Object databases should be used when there is a business need of high performance with complex data. This includes many to many object relationship. We can explain this in further detail for clarity:
When you meet a business requirement, you make or save money in the process. In the context of object database management system high performance means that you can clearly see a performance improvement of between ten to a thousand times as compared to what is seen with a relational database management system. Lastly, you can be sure that you have multifaceted data if your data is like a connected graph like a bill of materials or a schema that has several intersection entities. As an example you may have an automated stock trading application. The application gets a live supply of stock data. It utilizes that input with a historical database and applies an algorithm that establishes if any action should occur as per the live feed. The quicker the database search is, the shorter is the elapsed time between obtaining data from the live feed and establishing the appropriate action. Assuming that the algorithm is proper, this implies that the stock trading application will either help in making more money or make it possible to lose less money. Therefore, this is an example where there is a business need for high performance with complex data.
Object databases are good to work with:
• CAS Applications
• Multimedia Applications
• Object schemes that change over time.
The advantages of object database management systems over relational database management systems may be summarized as follows:
• Objects don’t need assembly and disassembly that saves coding time and execution time to assemble or disassemble objects.
• There is less of paging
• Navigation becomes simpler
• There is better concurrency control – a hierarchy of objects can be locked.
• Data model is based on the actual world.
• It works nicely for distributed architectures.
• There is less code needed when applications are object oriented.
Unlike what’s believed, ODBMS products are not slow and can help you to achieve significant efficiency in using big data.