Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> OO boffins use Oracle RDBMS as a disk.

OO boffins use Oracle RDBMS as a disk.

From: Space Goat <nospam_at_abc.com>
Date: Wed, 19 Dec 2001 22:49:48 +0100
Message-ID: <3c210be2$0$3182$626a54ce@news.free.fr>


Hi.

Up until now my skepticism about the business benefits of OO PROGRAMMING has allowed me to just sneer from the sidelines. From the outset I'd like to state I'm not totally against OO. It seems self evident that OO analysis and design are a good thing.

I recently poked around in a mission critical application for which it was said that after couple of hours down time and the company would be dead in the water.

The application is built using 100, 000 lines of C++, some OO/RDBMS persistence software (who's name escapes me) and Oracle 8.1.7.

A quick scan of the database revealed that relational integrity constraints (PRIMARY KEY, FOREIGN KEY, CHECK) were absent without leave. Business rules constraints were entirely absent.

The developers, when confronted with this, said the constraints were removed following business acceptance testing performance problems. Later this was retracted by the managers higher up. Managers stated the application was mainly used for batch processing. During process initialization ALL data is loaded into live memory. After 30 minutes of processing the updates are written back to Oracle. The constraint maintenance functionality of the RDBMS, among others, is entirely delegated to the C++. Hence "Oracle is being used as a disk" (my retort). The application was "designed that way".

Some integrity checking using custom-built scripts is run post batch, and some is done on a weekly basis.

Now, elsewhere in the company the DB design rule in use is that DB server side constraints are mandatory and client side constraints are optional. However, for the above application this rule was not followed because it is "mainly used for batch processing".

Given the EXTREME mission critical nature of this application I would say delegating constraint maintenance to custom-built C++ has the following risks:

  1. Trusting custom-built software to maintain data integrity is asking for trouble. In the lifetime of the software it is likely that major bugs will arise. On the other hand Oracle's constraint mechanism is probably the most tested and reliable software on the planet.
  2. There may be human error (DBA) or sabotage. Having server-side constraints may prevent this.
  3. Integrity checking post batch is not enough. There may be errors during the batch run that may take a long time to disentangle.

I'd love to know your opinion on this case.

Regards

Space Goat

Received on Wed Dec 19 2001 - 15:49:48 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US