Re: Object-oriented Databases
Benjamin J Doherty <[email protected]>
| Newsgroups | gmane.comp.web.webobjects.general |
|---|---|
| Message-ID | <[email protected]> |
On Jul 26, 2005, at 9:01 PM, Ashley Aitken wrote: > My general perspective on OODBMs vs RDBMSs is this: > > RDBMSs: > 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 > 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. You overlook (or take for granted) the most significant advantage of the relational database: integrity and storage efficiency. The process of normalization in relational theory ensures a level of integrity that to my knowledge cannot be assumed through any OO design practice. (Of course, I'm assuming that normalization is de rigeur for those of us who work with relational data.) Don't forget that any DBMS is primarily used for data accuracy, because if the data isn't accurate, why bother storing it in a structured way? > 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. I've been curious to experiment with the inheritance functionality of Postgresql, because I can see it making vertical inheritance less taxing on the database. If the CLIENT table extends the PERSON table, the Client object can employ horizontal mapping in EOF to the related Person object, which uses fewer queries, but PGSQL transparently handles the vertical mapping for the application. You have the size and integrity advantages of vertical mapping while only paying for horizontal mapping. I'm still not entirely clear on the distinction between a OODBMS and a directory. Inheritance and capacity for a vast object graph are features to both. Maybe I'm being unimaginative, but I don't see the place of polymorphism in a database outside of SQL functions and procedures. Cheers, benjamin in chicago. _______________________________________________ WebObjects-talk mailing list [email protected] http://www.omnigroup.com/mailman/listinfo/webobjects-talk