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

Home -> Community -> Usenet -> comp.databases.theory -> Re: Do Data Models Need to built on a Mathematical Concept?

Re: Do Data Models Need to built on a Mathematical Concept?

From: Costin Cozianu <c_cozianu_at_hotmail.com>
Date: Fri, 25 Apr 2003 08:29:59 -0700
Message-ID: <b8bk2f$8cccm$1@ID-152540.news.dfncis.de>


Ian wrote:
> Do Data Models Need to built on a Mathematical Concept?
>
> Example, The relational model has set theory.

Jayadev Misra once said: (
http://www.cs.utexas.edu/users/misra/Speeches.dir/Schlumberger.Jan02.pdf   ) :

     "...And, I contend that lack of useful theorems about a typical C++ program is what makes it so difficult to make claims about it: its intent, whether a particular change will have a disastrous effect on its execution and whether it can be integrated with other programs. In other words, we typically build mathematical systems whose properties we cannot discern."

Se here you have it: Computer Systems, Software Systems, Informations Systems -- whatever you want to call them are in essence *mathematical objects*, whether you like them or not to be that's what they are.

So even if you think you build your object model, custom C hacks, device driver -- whatever, without using or better said without thinking about Mathematics, in the end you'll end up with a *mathematical object* that's the essence of it. So here you have it: all data models, even the bad XML data model, or the equally bad ODMG object data model are *mathematical*, from this perspective your question has no sense.

And now, once we put this confusion behind we can see that there are two categories or two extremitities on a quality scale, there are mathematical objects :

If you buid your mathematics starting from a sound theory, using careful design and forethought about your objectives (what in the end you want to accomplish), and *mathematical rigor*, you end up with a mathematical system who is sound, who's properties you can discern, and who is very *adequate* to tackle the problem you want it to tackle (otherwise you can try to apply differential equations to solving integer optimization problem years in a row you'll bang your head against the all).

Or you can say you don't need to have to do anything with mathematics and you'll end uo in ignorance, and with mathematical objects who's properties you cannot discern. In case of object models, it's even worse than that: practitioners don't even have a *ing clue what properties they should look for.

For example in relational model you can establish useful properties about the database schema: whether it's normalized or not, while using today SQL implementation you can reasonably establish how long a operation will take, you will establish the ACID properties as part fo the deal with the DBMS vendor, again reasonably well ( cause I don;t know of any DBMS vendor who aquitted itself of the Proof Obligation Dijkstra talked about), and also you know, and you know _why those properties are important for your system_.

Now compare that to your typical OO mathematical objects:

For typical examples:

In the end, if you looked for a debate there's no room for debate in here, it is your choice.

Either you build software systems who's important properties you can discern, or you can build software systems about which all you can say is: it si likely to work, or 3 months of extensive QA shows that the defect rate is acceptable and let's ship the hell out of it ot the customer. Received on Fri Apr 25 2003 - 10:29:59 CDT

Original text of this message

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