Re: A numerical methods viewpoint on OO/FP/Relational
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