To date in my career as a Perl programmer, I have only been exposed to relational databases. However, I am aware that there are other database modalities out there. For example, Lincoln Stein has developed
Ace as an interface to the object-oriented database ACEDB, which was primarily for use in human genome research, but, by no means is limited to such tasks. And Joshua Pritikin developed
ObjectStore which is used to access the ObjectStore database.
The nice thing about object databases is you can think about getting what you want, as opposed to doing a bunch of table joins to get what you want. The Lincoln Stein TPJ article provides a good example of what I mean.
However,
at a recent interview (at MSDW), the work involved was taking newsfeeds and storing this in a relational database consisting of more than 100 tables. I asked them if an object-oriented DB would be better and the answer was: "no, we often need to improvise by adding new data and the easiest way to do that is to simply cook up another table and link it into the others via foreign keys." In retrospect, I have to agree, because with object databases, you have the hairy and apparently not well-understood task of schema evolution everytime you decide to add some new and unforseen information to your database.
So,
do you all think that Relational DBs are the way to go and that Object DBs do not offer enough flexibility for unforseen data model evolution?
Can you give some real-world examples of where object-oriented databases are proving useful or even more useful that RDBMSs?
Two post-notes
DBI is called a database independent interface for Perl. However:
Wall Street, which mainly operates on Sybase, prefers Sybase's own non-DBI interface.
I have not seen any DBI::DBD modules for object-oriented databases.
On these grounds, DBI may not be quite as universally used as has been previously claimed.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.