Re: The wisdom of the object mentors (Was: Searching OO Associations with RDBMS Persistence Models)



On 2006-05-30 06:31:41 -0500, Ed Kirwan <iamfractal@xxxxxxxxxxx> said:

bruno at modulix wrote:


Both positions ('everything must go to the RDBMS' vs 'the RDBMS is just
a low-level storage') are wrong IMHO - as always, it's a matter of
choosing the right tool for the job.


How entirely wise.

"The right tool for the job."

Bruno at modulix, I salute you.

Fine. Now what are the criteria?

Why and when do you use a Relational Database?
Why and when do you use an OO language?

These are questions that would require a book to answer. However, I can summarize the answers in a few short sentences.

Relational database systems can be used in situations where there is a large amount of complex data to be managed, searched, queried and reported. Enterprise MIS systems are obvious candidates. The control software for a microwave oven is obviously NOT a candidate.

Even when the relational model is a good candidate, the specific vendor does not need to be chosen up front. The decision to use Oracle or MySql can be deferred until very late in the implementation process. Clearly some companies have made committments to one vendor or the other, in which case the decision is moot; but in that case the decision is non-technical. In any case the software should be designed such that the vendor can be replaced without undue hardship, which means that most of the special features provided by the vendor should be ingnored, and the software protected from the vendor API by an abstract interface. (using OO technology.)

OO langauges are used whenever the dependencies within a software system need to be managed in order to increase cohesion and reduce coupling. All software systems need this, from the largest MIS Enterprise system to the lowliest control system for a microwave oven. The only software that does not benefit from OO lanaguages is software that is so small as to be a single subroutine or small suite of functions that can be understood by a single person in an hour or two.






--
Robert C. Martin (Uncle Bob)  | email: unclebob@xxxxxxxxxxxxxxxx
Object Mentor Inc.            | blog:  www.butunclebob.com
The Agile Transition Experts  | web:   www.objectmentor.com
800-338-6716                  |



.



Relevant Pages

  • Re: By Year/Quarter
    ... I want to make this as easy as possible for the data entry person to put the ... the subform should only show current year plus the next 4. ... Applying spreadsheet logic to a relational database will, guaranteed, ... <other info about the vendor as an entity> ...
    (microsoft.public.access.tablesdbdesign)
  • Re: By Year/Quarter
    ... Applying spreadsheet logic to a relational database will, guaranteed, ... <other info about the vendor as an entity> ... SaleAmount <the sales during that quarter, ... the cumulative amount up to and including that date. ...
    (microsoft.public.access.tablesdbdesign)
  • Re: The wisdom of the object mentors (Was: Searching OO Associations with RDBMS Persistence Models)
    ... Why and when do you use a Relational Database? ... Why and when do you use an OO language? ... means that most of the special features provided by the vendor should ...
    (comp.object)