This excerpt introduces the features of object-relational database systems (ORDBMS) and shows new approaches that can yield major benefits, including improved time to market, reduced maintenance costs, and significant performance improvement.

This chapter is from the book

This chapter is from the book

Relational databases are dead: Most major vendors now claim to have an
object-relational database system (ORDBMS). Of course, relational databases will
be around for a long time and will continue to provide the expected services and
performance. Business problems are becoming more complex and the amount of
information that must be processed keeps increasing. Application designers must
find better ways to solve the business problems within a more aggressive
schedule. This increasing pressure has forced the software industry to find new
approaches to software development.

It is interesting to see that most developers continue to use
object-relational databases as relational database systems. This sheds some
light on the major challenge of ORDBMSs: They are supersets of relational
systems. This means that everything we used to do before still works in ORDBMS.
People automatically apply the relational limitations to ORDBMSs.

If you continue to solve business problems using a relational approach, you
can only hope for a relational-level performance. Because this is a lowest
common denominator, it does not give you a strategic business advantage. To win
in business, you must use all the advantages you can get.

This chapter addresses this issue. It introduces the ORDBMS features and
shows new approaches that can yield major benefits. These benefits can be in
implementation simplifications that speed up time to market and reduce
maintenance costs. They can also be in the form of significant performance
improvement.

Software Extensibility

The software industry has always worked on finding ways to make its products
flexible. This flexibility adds value to the users by providing a way to tailor
the software product so it better fits a particular business environment. It
only made sense that it would eventually reach database servers. Here are some
examples of software extensibility:

User exits. The ability to add user code to software products has been
available in mainframe software for a long time. The software designer includes
a few points in the code where a specific subroutine is called. By default, this
subroutine simply returns. The software user can decide to replace this default
behavior with custom code that will answer some business needs such as
authentication or custom operations when writing to and reading from
disks.

Device drivers. Operating systems include a way to add new device
support. These device drivers come from either the operating system vendor or
third-party providers. Device drivers can add support for new hardware or add
some software capabilities such as new types of file systems.

Web server. When Web servers first came out, they were designed to return
the content of the file identified in the query. Shortly after, the common
gateway interface (CGI) was added to allow for application support. Finally,
application programming interfaces (APIs) were added to allow for custom code in
the Web server.

Application server. Application servers were created to further improve
the capabilities of integrating custom applications in a Web environment. It
continues to evolve into a standard execution environment using the Java
Enterprise Java Beans environment.

These few examples demonstrate that extensibility has been used to provide
more flexibility in customizing software environments. This results in more
efficient business solutions, shorter time to market, and added value to the
software offering.