You are on page 1of 7

OBJECT-ORIENTED DATABASES

An object-oriented database is a collection of object-oriented programming and relational


database. Object-oriented databases add the database functionality to object programming
languages, creating more manageable code bases.

An object database is managed by an object-oriented database management system (OODBMS).


The main characteristic of objects in OODBMS is the possibility of user-constructed types. An
object created in a project or application saves into a database as is.

Object-oriented databases directly deal with data as complete objects. All the information comes
in one instantly available object package instead of multiple tables. ). In OOP, an entity is
represented as an object and objects are stored in memory. Objects have members such as fields,
properties, and methods.
There are various items which are created using object-oriented programming languages like C+
+, Java which can be stored in relational databases, but object-oriented databases are well-suited
for those items.
An object-oriented database is organized around objects rather than actions, and data rather than
logic. For example, a multimedia record in a relational database can be a definable data object, as
opposed to an alphanumeric value.

Today, there are many popular OOP languages such as C++, Java, C#, Ruby, Python, JavaScript,
and Perl.
 

In contrast, the basic building blocks of relational databases, such as PostgreSQL or MySQL, are
tables with actions based on logical connections between the table data.

These characteristics make object databases suitable for projects with complex data which
require an object-oriented approach to programming. An object-oriented management system
provides supported functionality catered to object-oriented programming where complex objects
are central. This approach unifies attributes and behaviors of data into one entity.
Object-Oriented Database Examples

There are different kinds of implementations of object databases. Most contain the following
features:

Feature Description

Query Language Language to find objects and retrieve data from the database.

Transparent Ability to use an object-oriented programming language for data


Persistence manipulation.

ACID ACID transactions guarantee all transactions are complete without


Transactions conflicting changes.

Database Caching Creates a partial replica of the database. Allows access to a database
from program memory instead of a disk.

Recovery Disaster recovery in case of application or system failure.

 
Object databases are commonly used in applications that require high performance, calculations,
and faster results. Some of the common applications that use object databases are real-time
systems, architectural & engineering for 3D modeling, telecommunications, and scientific
products, molecular science, and astronomy.
 

Advantages of Object Databases


 
 Complex data and a wider variety of data types compared to MySQL data types.
 Seamless integration with object-oriented programming languages.
 Easier to model the advanced real world problems.
 Extensible with custom data types.
 ODBMS provide persistent storage to objects. Imagine creating objects in your program
and saving them as it is in a database and reading back from the database.
 Object databases bring permanent persistent to objects. Objects can be stored in persistent
storage forever.
Persistence denotes a process or an object that continues to exist even after its parent
process or object ceases, or the system that runs it is turned off. When a created process
needs persistence, non-volatile storage, including a hard disk, is used instead of volatile
memory like RAM.
 In typical RDBMS, there is a layer of object-relational mapping that maps database
schemas with objects in code. Reading and mapping an object database data to the
objects is direct without any API or OR tool. Hence faster data access and better
performance.
 Some object database can be used in multiple languages. For example, Gemstone
database supports C++, Smalltalk and Java programming languages.
 

Drawbacks of Object Databases

 Object databases are not as popular as RDBMS. It is difficult to find object DB


developers. 
 Not many programming language support object databases. 
 RDBMS have SQL as a standard query language. Object databases do not have a
standard. No universal data model. Lacks theoretical foundations and standards.
 Object databases are difficult to learn for non-programmers.
 Does not support views.
 High complexity causes performance issues.
 An adequate security mechanism and access rights to objects do not exist.

Popular Object Databases


 
Cache
 
InterSystems’s Caché is a high-performance object database. Caché database engine is a set of
services including data storage, concurrency management, transactions, and process
management. You can think of the Caché engine as a powerful database toolkit.
Cache offers the following features,
 The ability to model data as objects (each with an automatically created and synchronized
native relational representation) while eliminating both the impedance mismatch between
databases and object-oriented application environments as well as reducing the
complexity of relational modeling, 
 A simpler, object-based concurrency model 
 User-defined data types 
 The ability to take advantage of methods and inheritance, including polymorphism,
within the database engine 
 Object-extensions for SQL to handle object identity and relationships 
 The ability to intermix SQL and object-based access within a single application, using
each for what they are best suited 
 Control over the physical layout and clustering used to store data in order to ensure the
maximum performance for applications 
Cache offers a broad set of tools, which include:
 ObjectScript, the language in which most of Caché is written. 
 Native implementations of SQL, MultiValue, and Basic. 
 A well-developed, built-in security model 
 A suite of technologies and tools that provide rapid development for database and web
applications 
 Native, object-based XML and web services support 
 Device support (such as files, TCP/IP, printers) 
 Automatic interoperability via Java, JDBC, ActiveX, .NET, C++, ODBC, XML, SOAP,
Perl, Python, and more
 Support for common Internet protocols: POP3, SMTP, MIME, FTP, and so on
 A reusable user portal for your end users
 Support for analyzing unstructured data
 Support for Business Intelligence (BI)
 Built-in testing facilities

ConceptBase
 ConceptBase.cc is a multi-user deductive database system with an object-oriented (data, class,
metaclass, meta-metaclass, etc.) makes it a powerful tool for meta modeling and engineering of
customized modeling languages. The system is accompanied by a highly configurable graphical
user interface that builds upon the logic-based features of the ConceptBase.cc server.
 

Db4o
 It is the world's leading open-source object database for Java and .NET. Leverage fast native
object persistence, ACID transactions, query-by-example, automatic class schema evolution,
small size.
 

ObjectDB Object Database


 ObjectDB is a powerful Object-Oriented Database Management System (ODBMS). It is
compact, reliable, easy to use and extremely fast. ObjectDB provides all the standard database
management services (storage and retrieval, transactions, lock management, query processing,
etc.) but in a way that makes development easier and applications faster. 
ObjectDB Database key features
 100% pure Java Object-Oriented Database Management System (ODBMS).
 No proprietary API - managed only by standard Java APIs (JPA 2 / JDO 2).
 Extremely fast
 Suitable for database files ranging from kilobytes to terabytes.
 Supports both Client-Server mode and Embedded mode.
 Single JAR with no external dependencies.
 The database is stored as a single file.
 Advanced querying and indexing capabilities.
 Effective in heavy loaded multi-user environments.
 Can easily be embedded in applications of any type and size.
 Tested with Tomcat, Jetty, GlassFish, JBoss, and Spring.

ObjectDatabase++
 
ObjectDatabase++ (ODBPP) is an embeddable object-oriented database designed for server
applications that require minimal external maintenance. It is written in C++ as a real-time ISAM
level database with the ability to auto recover from system crashes while maintaining database
integrity.
 

Objectivity/DB
 
Objectivity/DB is a scalable, high performance, distributed Object Database (ODBMS). It is
extremely good at handling complex data, where there are many types of connections between
objects and many variants.
 

ObjectStore
 ObjectStore is an enterprise object-oriented database management system for C++ and Java.
 ObjectStore delivers multi-fold performance improvement by eliminating the middleware
requirement to map and convert application objects into flat relational rows by directly persisting
objects within an application into an object store
 

You might also like