# Re: Extending my question. Was: The relational model and relational algebra - why did SQL become the industry standard?

Date: Sun, 9 Mar 2003 16:53:14 -0500

Message-ID: <T9Paa.408$vV2.63103002_at_mantis.golden.net>

"Jan Hidders" <jan.hidders_at_REMOVE.THIS.ua.ac.be> wrote in message
news:3e5cb9f9.0_at_news.ruca.ua.ac.be...

*> Paul Vernon wrote:
**> >"Bob Badour" <bbadour_at_golden.net> wrote in message
**> >news:7ZT6a.359$345.54874164_at_mantis.golden.net...
**> >> > 1. An implementation is incorrect if it does not faithfully reproduce
**> >> > all aspects of the model. To me it is obvious that an implementation
**> >> > that breaks say my A) and B) criteria is strictly incorrect.
**> >>
**> >> Every physical implementation of every logical model, then, is strictly
**> >> incorrect.
**> >
**> >I just don't get that. We should not tolerate physical implementations
*

that

*> >do not faithfully reproduce all aspects of the model. Just as we should
*

not

*> >tolerate an RDBMS that permits duplicate rows, we should also not
*

tolerate a

*> >RDBMS that breaks another aspect of the model, such as all pos reps of a
*

type

*> >represent the same number of values.
**> >
**> >Tell me, how do you classify which deviations from the logical model are
**> >tolerable and which are not?
**>
**> Sorry for breaking in like this, but could it be that you are confusing
*

two

*> different "logical models"? I would say that on the one hand there is the
**> model that physicists and mathematicians use, let's call it the physical
**> logical model, that (possibly) talks about reals and continuous intervals
*

et

*> cetera, and on the other hand there is the database logical model that is
**> also mathematical but necessarily discrete since we have to store it in a
**> computer. So where in the physical logical model we have reals there are
*

in

*> the database logical model floats with a certain finite precision, and
**> therefore the database logical model is sometimes necessarily an
**> approximation of the physical logical model. However, the implementation
*

of

*> the database logical model should of course be completely faithful and not
**> introduce bags or change the precision of the floats.
**>
**> Let's not forget that a data model is always a model of the model of the
**> user of his or her reality. :-)
**>
**> Having said this, it would be very strange that the equality relationship
*

as

*> defined over the representations would not be an equivalence relation,
*

since

*> that is more or less the accepted fundamental property of any equality
**> operator. If you are going to convert coordinates and do some rounding
*

this

*> might go wrong.
*

This is true any time one uses floating point representations and does some rounding. Consider:

Y := X^(0.5) Y := Y*Y*Y*Y X := X*X