OOP vs Relational Paradigm

Increasingly most programming languages are gaining OOP features while the most common platforms for commercial software development are OO. The most obvious examples include Java and increasingly Microsoft .NET with languages like C# and Visual Basic.NET.

As powerful as OOP is, it does not lend itself easily to relational data manipulation. Usually, OOP code has to be intertwined with SQL statements at some point in order to gain access to relational data sources which are the most common data stores used in most enterprises though they are not the only one. More often than not the process of persisting an object to a relational data source is unnecessarily tedious. Projects like Hibernate (hibernate.org) have pioneered ORM (Object Relational Mapping) to make it easy to persist objects to a relational data source and also make it easier to retrieve this data from the database in a format that is amenable to OOP.

A language like PHP needs a framework to make mundane and tedious data manipulation tasks much simpler to handle so that developers can focus on the functions and features of the system as requested by the client. Any developer who has developed a substantial application in PHP will have notice the repetitiveness and hence tedium of writing select, insert or update statements for simple tables over and over again. There are some packages that have been developed as part of PEAR and PECL repositories that make such tasks much simpler but this is not a feature that should be provided by an external package. The language needs to have support for rudimentary data manipulation such as simple inserts, update, select and indeed delete. When developing a sizable system, such support will go a long way in ensuring that useful features are delivered within budget and on schedule.

The industry seems to have noticed this as witnessed by the emergence and popularity of Object Relational Mapping in both Java and .Net worlds. As it is, this still remains a bridge that is terribly visible to the developer; it does take away much of the complexity of persisting objects to a relational database and retrieving the same but it is still not simple enough as yet.

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: