[comp.databases] Relational Model

normb@sequent.UUCP (Norm Browne) (07/19/89)

In article <AYknCfy00WB28IU6sk@andrew.cmu.edu> bg0l+@andrew.cmu.edu (Bruce E. Golightly) writes:
>There are indeed times when you can't think in terms of the relational
>model. Sometimes the users insist that they want what they want, and you
>can't do it without breaking the model. We had to write an application
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>to do this kind of thing a while back.
>

[At the risk of being labeled a heretic in the contemporary dbms world. :-)]

	Does it strike anyone else that the above kind of
	statement indicates that the relational model is
	not a very accurate depiction of the real world?

I concluded my graduate studies at Claremont Grad in I.S. last spring and
this was one of the areas that I researched.  I could find no substantiation
that the relational model _really_ represented real world applications.
Was my research simply incomplete?  If so, please recommend some readings
(conceptual modeling, semantic aspects of rdbms, etc.) that `prove' the
``realness'' of relational.  (On the same line of thought what about the
`intuitiveness' of the relational model, i.e. users more easily comprehend
the relational approach than [hierarchical,network] dbms).

If my failure to turn up any supporting evidence was not oversight, then
why has no one bothered to work on the subject?

BTW- I am not attacking relational per se (so cool the flamethrowers :-)),
it just seems that the theory is lacking some empirical support.

---------------------------==========================--------------------------
Norm Browne
<insert standard disclaimer>

	     "Mathematics has nothing to do with the real world." -Richard Pick
===========================--------------------------==========================

tomg@ntpdvp1.UUCP (Thomas Groot) (07/21/89)

    The group I'm in writes database applications for various tasks
    on the factory floor.  We've been at it for three or four years,
    using both hierarchical and relational database engines.     My
    experience is that our users (high-school and college-educated)
    tend to think in hierarchical terms:  they see a single, sequential
    set of data which they step forward and backward through.  With
    our most recent work in relational systems, it seems we end up
    writing hierarchical interfaces to relational data models.
    Maybe this is poor design on our part, but our customers are
    happy. ;-)   I would have a hard time explaining to some of
    them how to view data in a relational manner.

    In a recent evaluation we did of Oracle, one of our main problems
    with their tools was lack of support for previous record retrieval.
    Our customers expect to do previous record retrieval, even though
    most of our application internals are relational. 

    ------------------------------------+---------------------------------
    Thomas Groot                        | [Now] even the freshest puns
    Northern Telecom DMS-10 Division    | circulate globally    
    Dept. 2154 NTP                      | at the speed of light and
    P. O. Box 13010                     | fade away like the morning dew.
    Research Triangle Park, NC  27709   |    
    (919) 992-2610                      |            Stan Kelly-Bootle
    ------------------------------------+---------------------------------

dbruck@ciss.Dayton.NCR.COM (Don Bruck@ciss.Dayton.NCR.COM) (07/22/89)

In article <18886@sequent.UUCP> normb@sequent.UUCP (Norm Browne) writes:
>In article <AYknCfy00WB28IU6sk@andrew.cmu.edu> bg0l+@andrew.cmu.edu (Bruce E. Golightly) writes:
>>There are indeed times when you can't think in terms of the relational
>>model. Sometimes the users insist that they want what they want, and you
>>can't do it without breaking the model. We had to write an application
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>to do this kind of thing a while back.
>>
>
>[At the risk of being labeled a heretic in the contemporary dbms world. :-)]
>
>	Does it strike anyone else that the above kind of
>	statement indicates that the relational model is
>	not a very accurate depiction of the real world?
>
<<< deleted stuff >>>
>
>BTW- I am not attacking relational per se (so cool the flamethrowers :-)),
>it just seems that the theory is lacking some empirical support.
>

I wish to agree with both writers. The relational model implies that the world
is un-ordered, that A is not necessarily the the predecessor to B, as in the
word BAD. The relational model therefore does not support "PREVIOUS" and I
understand the reasons. What bothers me is that some companies use this excuse
and then support other things not in the relational model such as "NEXT" and
indices.

A solution to this is to realize that DATA and PROCESS are significantly
different. Data is random, process is ordered. Store data randomly and allow
the processes to order it as needed for the process. In this way of looking
at the problem INDEXing, "NEXT", and "PREVIOUS" are part of the process. 
The INDEX is a tool of the process's need for "NEXT" "PREVIOUS" "LAST"
"FIRST" and all of the other ordering functions needed.

-------------------------------------------------------------------------------
Don Bruck
My opinions are my own and my wife does know I have them.

mark@intek01.UUCP (Mark McWiggins) (07/22/89)

normb@sequent.UUCP (Norm Browne) writes:
>[At the risk of being labeled a heretic in the contemporary dbms world. :-)]

>	Does it strike anyone else that the above kind of
>	statement indicates that the relational model is
>	not a very accurate depiction of the real world?

>I concluded my graduate studies at Claremont Grad in I.S. last spring and
>this was one of the areas that I researched.  I could find no substantiation
>that the relational model _really_ represented real world applications.
>Was my research simply incomplete?  If so, please recommend some readings
>(conceptual modeling, semantic aspects of rdbms, etc.) that `prove' the
>``realness'' of relational ...

>If my failure to turn up any supporting evidence was not oversight, then
>why has no one bothered to work on the subject?

>BTW- I am not attacking relational per se (so cool the flamethrowers :-)),
>it just seems that the theory is lacking some empirical support.

The empirical support is everywhere: scads of working applications based
on the relational model that deal more-or-less appropriately with 
real-world stuff.  Why bother with any other proof?

This is not to say that relational is always "best"; that depends on what
you're doing.  It's like any other language system.  Some constructs that
flow beautifully in one model are a total clunk in another.


>---------------------------==========================--------------------------
>Norm Browne
><insert standard disclaimer>

>	     "Mathematics has nothing to do with the real world." -Richard Pick
>===========================--------------------------==========================


Mark McWiggins
Integration Technologies, Inc. (Intek)
1400 112th Ave. SE #202
Bellevue WA  98004
(206) 455-9935
uunet!intek01!mark

jkrueger@daitc.daitc.mil (Jonathan Krueger) (07/23/89)

In article <18886@sequent.UUCP>, normb@sequent (Norm Browne) writes:
>I could find no substantiation
>that the relational model _really_ represented real world applications.

Lewis Carroll used to enjoy describing his map of England, which, he
said, was better than all others.  It represented the territory more
accurately.  In fact, it showed every detail: private roads, property
boundaries, interiors of buildings, items on shelves, every leaf on
every tree, the contents of every cell in every leaf.  It managed this
feat by using a 1:1 scale, which also lent the advantage that you
could explore it quite literally.  Everything you could see in the map
was exactly true of England.  In fact, it was England.  England is a
map of England.  A perfect one.  Also, a useless one: the first thing
you need is a map of this map, of the sort you can carry around with
you, for instance.

Carroll's point was that all real maps are distortions, by necessity.
The reasoning is by the contrapositive from the premise: if a map is
NOT a distortion, it's not useful.  This premise is easily granted by
examining the denerate case.  If the map is indistinguishable from the
territory, in no way does it distort, and it's also completely useless
(as a map).  Therefore, if a map would be useful, it MUST differ in
some way from the original.  (Of course, the mere fact of differences
does NOT prove usefulness: differences are necessary but not
sufficient to make the map useful.)

The same point can be made informally: why do we want maps anyway?
Very much because they summarize and abstract some facts about the
territory.  In so doing, they all distort.  Roads are shown as wider
than they really are, for instance.  Were they shown to scale, they'd
be hard to draw and even harder to read.  Map features such as borders
are drawn inaccurately or out of scale, or omitted altogether.  Were
they correct in every particular, some would obscure the map features
that users need to find.  Even those that didn't would still drive up
the production time and cost to years and millions.  Users might
prefer maps showing 90% as many details relevant to their use which
cost 10% as much and were available in their lifetimes.

So, have I made my point here?  Or do I have to draw a map for ya? :-)
Maps are models.  Models are the general case.  Good models MUST
distort.  Therefore, the question is not how well the model represents
the real world, but how usefully.  That the model omits or simplifies
its account of the real world is NOT a fault, but rather a
prerequisite for it ever to be useful.

To avoid a potential area of confusion, the word `application', as in
"the relational model _really_ represented real world applications",
has two common usages: the task to be performed, and a computer
program or set of them that is said to automate the task.  In this
article I have meant the first usage.  The second may have been
intended by Norm, however.  If so, he's saying that he has no evidence
that two models represent each other.  This is probably true, and of
no great consequence.  How programs resemble each other is about as
interesting as how maps resemble each other.  How maps represent the
territory in useful ways is more interesting, and similarly how
programs automate tasks.

-- Jon
-- 

paul@csnz.co.nz (Paul Gillingwater) (07/24/89)

In article <18886@sequent.UUCP> normb@sequent.UUCP (Norm Browne) writes:
>In article <AYknCfy00WB28IU6sk@andrew.cmu.edu> bg0l+@andrew.cmu.edu (Bruce E. Golightly) writes:
>>There are indeed times when you can't think in terms of the relational
>>model. Sometimes the users insist that they want what they want, and you
>>can't do it without breaking the model. We had to write an application
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>to do this kind of thing a while back.
>	Does it strike anyone else that the above kind of
>	statement indicates that the relational model is
>	not a very accurate depiction of the real world?
>
>this was one of the areas that I researched.  I could find no substantiation
>that the relational model _really_ represented real world applications.
>Norm Browne

Experience tends to confirm that the relational approach is not
an accurate model for all real-world situations.  I could present
an empirical "proof", but I'm not well enough versed in formal
logic to present a rigorous argument for this.  ;-)

It seems "intuitive" to me that an object-oriented OODBMS is better
at mapping real world situations.  Further, there are some cases
where a relational approach is very limited, e.g. large text
databases, where a record may contain from a few bytes to several
megabytes.  This is where software like BRS/Search, which indexes
*every single word*, is very useful.  Relational approaches
have their place -- although the implementations sometimes lack
efficiencies in dealing with diverse data sets -- but I would
not reject the relational approach in all cases.  IBM have done
a lot of work with other models, e.g. CODASYL.
 
Here's a good example of a database which doesn't fit well with
the relational approach: The Bible!  Yes, I have this working
just fine under BRS/Search...  less than three seconds to find
any chosen verse, based on keyword searching.

-- 
Paul Gillingwater, Computer Sciences of New Zealand Limited
Bang: ..!uunet!dsiramd!csnz!paul    Domain: paul@csnz.co.nz
Call Magic Tower BBS V21/23/22/22bis 24 hrs +0064 4 767 326

normb@sequent.UUCP (Norm Browne) (07/24/89)

In article <606@daitc.daitc.mil> jkrueger@daitc.daitc.mil (Jonathan Krueger) writes:
>In article <18886@sequent.UUCP>, normb@sequent (Norm Browne) writes:
>>I could find no substantiation
>>that the relational model _really_ represented real world applications.
>
> [long digression on maps to the make the point that a model *isn't*
>  the real world]
>-- 

and 

>From: mark@intek01.UUCP (Mark McWiggins)
>Message-ID: <220@intek01.UUCP>
>
>The empirical support is everywhere: scads of working applications based
>on the relational model that deal more-or-less appropriately with 
>real-world stuff.  Why bother with any other proof?

I concede the obvious above points on maps (models) as abstractions and lots of
working applications.  Now, back to the [basically academic] point I was
trying to get at...

One of the relational model's [supposed] major advantages is that it has a
THEORETICAL underpinning (mathematical set theory).  This is why it is
``superior'' to the Codasyl or hierarchical models.  Does set theory really
reflect the real world?[1]  Is it more intuitive?  What I could not
find was substantiation of this (if the theory is `valid' there should
be supporting empirical evidence, otherwise it's like economics :-) ).
I have used DBMSs based on all three models and each had unique functionality,
strengths, and weaknesses, so this is really a question about theory.

BTW- answers that include ``thinking relationally'' do not qualify.  In a
separate thread was a discussion of normalization, E-R and relational.
Normalization and E-R can be applied to network and hierarchical DBs so
they also do not differentiate relational DBs.

	[1] Let me give a specific example.  Set theory dictates that order is
	    irrelevant (i.e. unordered sets).  What real world application looks
	    at data [usefully] as unordered?  The first thing that is added is
	    an index which is *NOT* part of set theory!

----Norm

jkrueger@daitc.daitc.mil (Jonathan Krueger) (07/25/89)

In article <19101@sequent.UUCP>, normb@sequent (Norm Browne) writes:
>Does set theory really reflect the real world? [1]

Sometimes, in some ways, which are occasionally useful.  We could say
the same about the integers.  When I'm counting cookies and one of
them breaks into halves, have we shown how poorly suited integers are
for counting real world objects?

>Is [set theory] more intuitive?

Than what?  For what?

>What I could not find was substantiation of this (if the theory is
>`valid' there should be supporting empirical evidence, otherwise it's
>like economics :-) ).

Okay, what would you accept as substantiation?  If you can't specify
what constitutes counterevidence, well, you don't want to be like
economics, do you?  :-)

>[1] Let me give a specific example.  Set theory dictates that order is
>    irrelevant (i.e. unordered sets).  What real world application looks
>    at data [usefully] as unordered?  The first thing that is added is
>    an index which is *NOT* part of set theory!

Sorted != ordered != indexed.

Grouping != inherent ordering of pairs != access methods.

-- Jon
-- 

elgie@canisius.UUCP (Bill Elgie) (07/25/89)

In article <19101@sequent.UUCP>, normb@sequent.UUCP (Norm Browne) writes:
> 
> One of the relational model's [supposed] major advantages is that it has a
> THEORETICAL underpinning (mathematical set theory).  This is why it is
> ``superior'' to the Codasyl or hierarchical models.  Does set theory really
> reflect the real world?[1]  Is it more intuitive?  
> 
  I do not understand this supposition, that a database "model" is supposed
  to "reflect the real world".  Why ?   Given the broad range of applications
  for which database systems have been implemented, it seems awfully simplis-
  tic to me to make such a generalization about any conceivable database 
  model.  Is there ANY model of ANY kind (dbms, economic, whatever) that can
  be said to "reflect the real world" ?  Or simply certain instances/subsets
  of it ?

  A given database application must "reflect the real world" of the particular
  organization, or project, or whatever, for which that application was devel-
  oped (if that database is to be successful);

  the individual designing the database must structure it so that it does, in
  fact, reflect the organization, etc, faithfully;

  in my opinion:

    it is easier to do so using a database adhering to the CODASYL or hierar-
    chical model if the application model happens to fit AND if the applica-
    tion model remains static;

    it is easier to do so using a relational model dbms otherwise, precisely
    because the relational model is closest to being a "clean slate" by not
    trying to "reflect the real world".  The relevance of a set theory under-
    pinning is NOT that it provides a view of a human organizational structure
    but that it provides a view of organized computer data which is replicable,
    robust, and, at the same time, flexible.  It is up to the implementor of
    an application to establish a "reflection".  In my opinion, this is more
    difficult to do and maintain (the real world tends to be dynamic) using
    dbms's based on models which attempt to mix data organization with human
    organization.

> Normalization and E-R can be applied to network and hierarchical DBs so
> they also do not differentiate relational DBs.
> 
  Much of what is considered to constitute the "relational data model" applies
  to (or should apply) to the design of a database for most applications: it
  is good S.O.P.


   greg pavlov (under borrowed account), fstrf, amherst, ny

stuart@bms-at.UUCP (Stuart Gathman) (07/27/89)

SQL and 'C' terminology used below:

Ordering in a relational system is like 'int' in 'C'.  When no order is
specified, you get the most efficient order for the implementation.  If
a specific order is desired, it can be requested. ("SORT BY").

'INDEX' is an optimization hint to the system, like 'register' in 'C'.

One thing in the relational model I disagree with: Duplicate records are
useless in any order.  All tables should be required to have a "UNIQUE"
combination of fields.  After all, we are dealing with *sets*, not *bags*. :-)
-- 
Stuart D. Gathman	<stuart@bms-at.uucp>
			<..!{vrdxhq|daitc}!bms-at!stuart>

bg0l+@andrew.cmu.edu (Bruce E. Golightly) (07/27/89)

You need to be careful with the UNIQUE atribute. We had/have a considerable
problem in this area.

We converted our Telecommunications billing system to a relational database
a couple of years ago. One of the things that nearly drove us nuts during
the development was an attempt to duplicate output from an old COBOL based
system. We were loosing records.

We eventually discovered that the records being "lost" were being eliminated
by the data base as duplicates. (NOTE: The dropping of dups here was the
result of a poorly written WHERE clause) One examination, these records
were found to be identical to any number of decimal places you care to name.
It turns out that the granularity available within certain long distance
operations is not fine enough to distinguish between two calls from the
same phone to the same phone within a short period of time.

And they wonder why my hair is turning grey and falling out!

Bruce

davidm@cimshop.UUCP (David Masterson) (07/28/89)

>One thing in the relational model I disagree with: Duplicate records are
>useless in any order.  All tables should be required to have a "UNIQUE"
>combination of fields.  After all, we are dealing with *sets*, not *bags*. :-)
>
I think that is a requirement of the relational model (as defined by Codd).
What we thus far have is a tradeoff that most (all?) database vendors place on
the relational model for efficiency sake (can you imagine searching the
database on every update to determine if a uniqueness constraint is
violated?).  Besides, most allow you to put a unique index on the key and
enforce the constraint that way.

David Masterson
uunet!cimshop!davidm

johng@cavs.syd.dwt.oz (John Gardner) (08/01/89)

>
>One thing in the relational model I disagree with: Duplicate records are
>useless in any order.  All tables should be required to have a "UNIQUE"
>combination of fields.  After all, we are dealing with *sets*, not *bags*. :-)

This is precisely what the relational model defines.  When the
relational model says we have a set of tuples, it means that each
tuple must be unique.  There is an implicit "UNIQUE" in that all
the fieilds combined must be unique.


-- 
/*****************************************************************************/
PHONE          : (02) 436 3438
ACSnet         : johng@cavs.dwt.oz
#include <sys/disclaimer.h>
-- 
/*****************************************************************************/
PHONE          : (02) 436 3438
ACSnet         : johng@cavs.dwt.oz
#include <sys/disclaimer.h>