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

Home -> Community -> Usenet -> c.d.o.misc -> Re: Oracle object-oriented database objects - opinions

Re: Oracle object-oriented database objects - opinions

From: Billy Verreynne <vslabs_at_dualabsamail.co.za>
Date: Fri, 15 Aug 2003 23:24:08 +0200
Message-ID: <3f3d4f2f$0$225@hades.is.co.za>


tk wrote:

> I must be lucky then as OO is actually being excercised rigerously at every
> position I have had the good fortune of being on (ie, extensive following of
> Gof design patterns as well as the Core J2EE patterns). I have had a
> chance to work with some very bright people (not including myself) and have
> been able to pick up on quite a few things.

That IMO is an exception.

>>Treating Oracle like it is merely a filing system deomonstrates IMO a
>>serious lack of understanding about RDBMS (and Oracle specifically).

>
> Oh no. We're not treating Oracle like a filing system (I apologize if I
> gave you that impression).

As I said TK, my comments were just general observations and not specifically aimed at you. So please - do not take my ravings personally. Besides, I'm always quick to foam at the mouth. :-)

Putting the business logic in the middle tier has all kinds of knock-on effects. Data now lives in two places. Instantiated objects in the middle tier. Rows in tables in the database.

Often the solution to this "problem" is to treat the database as a mere persistant object storage device. And as I said, you do not need Oracle for that.

> The tables and their relationship tables are
> normalized/indexed and constrained for the utmost performance. The
> relationships within the data models are quite normalized.

Which is as it should be.

> I fear there's a misunderstanding on what I said (perhaps on my part). The
> "data" model of the tables within the RDMS don't necessarily need to model
> the "business" object model.

I understand that. My take is that the business object model can be implemented inside Oracle.

> When a
> Business Object comes in and asks (for example) for billing statements and
> account information, the data may be gathered from various tables (to serve
> the purpose of normalization, etc...) that it never knows about. Maybe
> we're saying the same thing. We may have a middle tier method that calls a
> PL/SQL package to "get account information". That PL/SQL package may turn
> around and perform a bunch of joins from various entity tables (and
> relationship tables) to gather up all of the data in one nice ref cursor
> that the middle tier can "happily" read from.

Yes - providing a stored proc API to the developers. This has been common practise for almost a decade now in my experience.

> The middle tier can simply pass in array objects of data (or what have you)
> and the PL/SQL package(s) can multiplex them out across the various DB
> tables that make up the DB structure.

There's no reason why business logic cannot reside in PL/SQL too. It is a full blown programming language. Alternatiely using Java stored procs (though I cannot see the reason for that unless you're looking for features that PL/SQL does not provide like o/s command line access and stuff like that).

What business benefit is there to have the business logic layer totally separated from your database?

>>The word idiot comes to mind.

>
> I was just asking for opinions on the usefullness of Oracles Object-Oriented
> features and when to use them.

I was nor refering to that or you TK, but to the concept of treating Oracle as a "persistant object data storage system". One I had and still have to deal with - especially when dealing with the Java crowd.

>>Are you in that business TK?

>
> No...

A company's biggest IT investment made is in the back-end. Server hardware, o/s, and database. Getting the staff employed/trained to support that. Paying a lot for support & maintenance. Upgrades. Etc.

Along comes Mr Java Programmer and tells me that we need "database independancy". We must move the business logic into a Java 3-tier layer so that we can swap back-ends whenever we have the urge.

Telling me that "No, we don't need Oracle for that. We can put this into   product X using Java on server Y". For dork's sake. Why on earth do we have a high performance feature rich database product?

Yeah.. as if we swap back-ends every 2nd Saturday. And thinking Oracle is just a glorified version of Microsoft Access.

So unless you're in the ISV business TK, developing off-the-shelve solutions for a market that runs on all kinds of databases and servers, that argument of 3-tier Java business layer just does not hold water in the real world.. at all.

>>Everyone is a "guru" these days. Few though have the hands-on >>experience to make their opinion something to take seriously.

> Well. The ones I was speaking of have 6-12 years of hands on Oracle and are
> Oracle 8 certified :-) One such gentleman has over 12 years hands on with
> it. I personally value their opinions very much so and am blown away with
> the Oracle knowledge that the 12+ year gentleman has (ie, guru DBA and
> PL/SQL programmer).

Ah.. in that case I will also take the opinions seriously. But I will still treat that as opinion. :-)

The only way I'm convinced is seeing The Thing working for myself. With the hood open.

> Don't get me wrong, so far I am liking PL/SQL and I can see a ton of cases
> to use it.

It is not an issue about PL/SQL. It is IMO a basic architectural one.

How will you handle MTS & AQ in a 3-tier? Why develop/pay for that when it already exist in Oracle. What about security? What about network bandwith (3-tier does mean 2x or even MORE traffic on the network)? What about complexity? What about ease of maintenance?

Can 3-tier beat the scalebility of hardware clustering and RAC? Or RAC and MPPs?

Show me real and tangible business benefits for 3-tier that cannot be achieved by using a 2-tier Oracle solution.

--
Billy
Received on Fri Aug 15 2003 - 16:24:08 CDT

Original text of this message

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