Re: A numerical methods viewpoint on OO/FP/Relational

From: peter_douglass <baisly_at_gis.net>
Date: Tue, 10 Jul 2001 12:17:11 -0400
Message-ID: <3b4ae692_at_tobjects.newsource.com>


Mikito Harakiri wrote in message ...
>In article <3b44a4a2$1_at_tobjects.newsource.com>, peter_douglass says...
 

>>> Relational model:

>>> The relational model is declarative. It defines the variables
>>> and defines the constraints that the variables must satisfy.
>>> It doesn't say how these constraints must be satisfied.
>>> It simply accepts or rejects values for the variables depending
>>> on whether these values satisfy the constraints or not.

>>> Note, however, that the relational model also has a
>>> provision for explicitly defining dependent variables as
>>> functions of other variables.
 

>This definition is too broad for Relational, you
>essentially describe Constraint Databases.
> Relational narrows it's scope to very simplistic
> (and highly successful, as well:-) kinds of predicates.

Now that I have a clearer understanding of what you mean by Constraint databases, I will disagree. I think Richard's definition is right on the mark.

In the relational model, each table has a predicate which describes the semantics of the table. These predicates are arbitrary, may contain logical quantifiers, negation etc, but they lie outside of the database. These predicates provide the mapping from tuples (what the database contains) to knowledge, (i.e. a set of propositions about the world).

The constraints for a table in a relational database, on the other hand are things that are represented "in" the database, or at least in some software associated with the database. These constraints determine the legal transactions which can be performed. (typically, the legal values that a tuples in the database may take). These constraints are also arbitrary. They are limited only by the difficulty of implementation. These constraints are meta-data. They aren't found in the rows of tables to which they apply. (Although meta-data, being data, may be stored elsewhere in the database for convenience).

 The constraints in Constraint databases are something else entirely, as far  as I understand. The constraints in a Constraint database define "objects", i.e. data. For example a constraint of x*x + y*y < 1 in a Constraint database represents a region in x,y space. The difference between the constraints in a relational database and those in a Constraint database is roughly analogous to the difference between a class invariant on the one hand, and an object which represents a specific geometric region on the other.

--PeterD Received on Tue Jul 10 2001 - 18:17:11 CEST

Original text of this message