I have seen a lot of discussion over the years about how OOD should catch up with relational databases "in the near future"; that the relational model is a way of the past; that inertia from a huge installed base (ehm ... legacy) is what delays progress in OOD. “It's just a matter of time before a“ good enough ”implementation finally comes out and succeeds in overthrowing the RDBMS.”
I am not an expert for any reason; but I thought about it many times, and I came to the conclusion that these views are completely lost.
In most "real world" scenarios, the big deal, the only thing that matters is data strong>.
Programming methods, tools, and languages have changed; technology is evolving. Corporate Voice Response Systems become fury and then disappear behind the shadow of Network. Applications come and go; some are good, some not so much; some are critical, some are just comfortable; some last 3 months, some last 3 decades. But in the end, the information that feeds all these applications is at the heart of the system and must survive the fashion swings. Data remains .
So, the core of the "System" should evolve around one goal: to save and protect data.
Think about it: SQL databases, in particular, give us a standalone (mostly) standardized repository with a long-term verified record and can be accessed at any time with no outdated, essentially functional language! This is a pretty good place to trust for your most valuable component.
Any approach that puts a priority on a software tool, environment or application by storing data in a hidden storage - everything that ties the application technology too closely to the data is likely to fall side of the way.
This is not to say that I believe that everything in the world should go into the SQL table. OOD-like solutions also have a place and great potential. But you need to look for places where the “application” is king, and the “data” are secondary: games, one-time applications and tools, systems that store non-critical data or data that does not have long-term value of the application’s lifespan.
In particular, I believe that systems that have a limited useful life (not more than a few years) are the first candidates for such OOD technologies. On the other hand, when working on something that should one day “transfer” data to his successor, I would be very careful about something other than bona fide RDBMS.
To write it to an audio byte, he never touched the "application"; He always referred to "data."