Re: Object-oriented Databases
Ashley Aitken <[email protected]>
| Newsgroups | gmane.comp.web.webobjects.general |
|---|---|
| Message-ID | <[email protected]> |
Howdy Andreas (et al.), My general perspective on OODBMs vs RDBMSs is this: RDBMSs: Mature technology Well developed relational model Highly optimised queries and very large stores Independent of application development paradigm Independent of the application programming language Many experienced developers and DBAs Most legacy data is in RDBMSs Selling well Best suited to applications that require access to very large sets of data, e.g. millions of customers, with a few relationships, e.g. a customer has a few bank accounts, and a branch. RDBMSs can very quickly find a customer and fetch it and a few of its relationships. OODBMSs Maturing technology No strong or standard OO model No standard query language or model Not as fast or highly optimised queries Based on the OO development paradigm More suited to the OO development paradigm Can be programming language specific Few experienced developers Poor sales Best suited to applications that require access to a large set of object with complex relationships, e.g. models of buildings or cars with all their parts. OODBMSs aren't the fastest at finding an object but can easily walk (and fetch) complex object graphs and handle polymorphism etc. Most business applications currently suit RDBMSs, or even better an Object-Relational Mapping to a RDBMS. However, I think there are applications that are more suited to OODBMSs and developers that use an OODBMS will obtain a competitive advantage from using them. When I hear Object-Relational Modelling vendors suggesting we keep our inheritance hierarchy shallow, don't use too many relationships, keep the model simple, its a warning sign (to me at least) that perhaps the technology (RDBMS) is not the best solution going forward. As our domain object models grow more and more complex and we think more in terms of an object model rather than a data model, I think it will be natural to use OODBMs. OODBMs are built around objects, classes, inheritance, polymorphism and other OO concepts. Personally, I wish Apple would take a lead in the use of OODBMSs. However, and unfortunately, I've seen what happens when they took the lead in the use of OO frameworks, component-based Web development, and object-relational mapping. Being ahead of the game makes is a difficult sell (to those who don't understand yet). Compare this with Microsoft, they're still pretty much fetching raw rows from a database and displaying them in a view. Business logic is spread throughout the presentation layer, the application layer, and in the database. It's a mess, but this is what developers mostly understand, and it allows quick (and dirty) solutions. JDBC and ADO.Net aren't true (or at least complete) object-oriented solutions. They are just object wrappers around SQL queries and results. When you fetch a customer you should get a customer object (encapsulated data and logic) not a result object with only customer data in it. Apple tries to lead but has trouble bringing developers a long. Microsoft doesn't go anywhere new unless there is a compelling reason. For example, .Net was long over due, and ObjectSpaces won't come out until everyone is familiar with object-relational mapping etc. Still, again, I wish Apple would take the lead with OO databases. Enough rambling, I'm off to learn JDO(2). Cheers, Ashley. -- Ashley Aitken Perth, Western Australia mrhatken at mac dot com Skype Name: MrHatken (GMT + 8 Hours!)