views:

312

answers:

7

More than decade passed since first publication of Date's and Darwen's "The Third Manifesto" in 1995.

What is the place of relational school of thought in today's database world? Is there any evidence that Manifesto's ideas changed mainstream software development and data management practices? Have they catalyzed creation of new data management products? Are these products commercially successful?

+1  A: 

We are seeing some ways that object modelling is coming into the light for managing our data. We have Linq, and NHibernate, which allows us to map data in the database, to objects in our code. However. I think that we are still a long way from having a real object oriented database. I'm not sure we ever will. While working with "objects" has it's advantages, treating data as sets with the relational data model has a lot of advantages.

Kibbee
+1  A: 

So far the OODBMSs that have come out don't seem to have as wide an adoption as some wanted them, and the reason was simple: OODBMSs only address the concerns of OOP developers, but not everyone else, which includes DBAs, analysts, MIS professionals, and a huge amount of developers who are not object-oriented, but are instead "data-driven".

That being said, a vast amount of enterprise data remains in RDBMSs, in a similar manner that a vast amount of enterprise data also remains in COBOL/CICS-powered systems.

As for facts, you can Google for hours to look for statistics but you won't find any. All you'd find are Oracle vs. MS SQL Server vs. MySQL/PostGre/other open-source RDBMSs adoption statistics vs. each other, and OODBMSs like db4o are largely ignored.

Jon Limjap
True, and don't forget users, auditors, senoir managers, etc in that list. My database stores the entire lifeblood of the company I work for.
HLGEM
A: 

I've always dealt with data sets too large to seriously consider the classic "object" model of rendering the data as class with data elements containing all the information and methods to access / manipulate them.

I have however found a simple compromise model with .NET datasets. Since they "self buffer" to disk, they are great for dealing with chunks of data that may or may not fit in memory - so I use them for my "object collections".

Then all the classes that comprise the "business" objects for the application simply have a reference to the record in the data set that contains their information and all the methods for the class simply parse from the record set.

Works for queries returning 1 result to a million - and the class model is very easy to replicate - since basically all of the class internal data variables are just fields on the recordset.

Ron

Ron Savage
+1  A: 

In business data processing, the relational model is firmly entrenched, and cannot be removed. It is central and is often highly overused for inappropriate things. Folks will use (abuse) a relational database as a reliable message queue because -- well -- they see every problem as a database problem.

The relational model is the backbone of many (almost all) commercial products for every business process. It's hard to find anything that's not fundamentally relational. Indeed, in many cases, the products are closely aligned with the database. Oracle's Financials, Microsoft's Dynamics accounting, etc.

For the foreseeable future, relational data stores will be the primary storage for business data processing.

Currently, relational databases go without saying. Everyone asks "which database engine" so they can weigh in on the Oracle vs. IBM vs. Microsoft vs. MySQL debate. No one asks "what will the data model be? Object or Relational?"

ORM will continue to make inroads. Object-Oriented programming will continue to grow, leading to more and more ORM. Breaking out of this box is hard -- nearly impossible -- because business IT is focused on stability, not innovation. Their goal is almost always "Keep The Lights On". That means to refuse change until it is forced on them by a vendor going out of business or ending support for a product.

S.Lott
+3  A: 

Object oriented databases are an oxymoron. the more you try to make an OO database the more you end up in relational world anyway. in my opinion they're just a hype. Note that ORM's are NOT OO databases. Neither are Datasets. I've heard that argument before so i'm saying it just to make things clear.

Mladen
That's exactly the point of 3rd Manifesto, i think: that truly relational database system (not the ones we have today) doesn't need any OR-mapping, it supports objects by definition.
Constantin
+8  A: 

I've seen many discussions over the years about how OODs are supposed to overtake Relational Databases "anytime soon"; that the Relational model is the way of the past; that inertia from the huge installed basis (ehm... legacy) is what holds back progress on OODs. "It's just a matter of time before a 'good-enough' implementation finally comes out and succeeds at dethroning RDBMSs".

I'm not an expert by any stretch; but I've thought about this many times, and I've come to believe that these views completely miss the point.

In most "real world" scenarios, the big thing, the only thing that matters is the data.

Programming techniques, tools and languages change; technology evolves. Corporate "Voice Response Systems" become the rage, then all but vanish behind the shadow of "The Web". Applications come and go; some of them good, some not so much; some critical, some merely convenient; some last 3 months, some last 3 decades. But at the end of the day, the information that feeds all these applications is the heart of the system and must survive the swings of fashion. The data stays.

So, the core of the "System" must evolve around that one goal: keep and protect the data.

Think about it: SQL databases in particular give us a free-standing, (mostly) standardized repository with a decades-old proven record, and can be accessed anytime with what is, far from obsolete, essentially a Functional language! That's a pretty good place to trust for your most valued component.

Any approach that puts the priority in the programming tool, environment, or the application at the expense of saving the data in an obscured store -- anything that binds the application technology too closely to the data, is likely going to fall off the way-side.

Not to say that I believe everything in the world must go into a SQL table. OOD-like solutions have a place too, and a lot of potential. But you need to look in places where the "application" is the king, and the "data" is secondary: games, one-off applications and tools, systems that hold not-critical data or data that has no long-term value past the life expectancy of the application.

In particular, I think that systems that have a limited useful life (a few years at most) are prime candidates for OOD-like technologies. On the other hand, when working on anything that must one day "hand over" the data to its successor, I would be very leery of anything other than a good-old RDBMSs.

To put it in a sound byte, it's never been about the "application"; It's always been about the "data".

Euro Micelli
well said! thanks,
Sklivvz
Do I date myself if I say , "Right on!"
HLGEM
A: 

No The only pronounced change has come about very recently through the advent of cloud computing where proponents do not necessarily store data in a relation manner.

Thomas Wagner