Re: Constraints and Functional Dependencies
Date: Sat, 24 Feb 2007 21:29:41 GMT
paul c wrote:
> Bob Badour wrote: >
>> Carl Federl wrote:
>>> <Anyone have any alternate formulas for functional dependencies or
>>> candidate keys? >
>>> My primary objection to using FOL to define constraints is that it
>>> would require our theory of data to have two different but similar
>>> languages, one for defining constraints in the FOL language and then a
>>> second language for manipulating relations.
>>> I will first give some definitions and then show why FOL is not
>>> Relational Manipulation Language consists of the Basic Relational
>>> Operators and Relational Assignment.
>>> Basic Relational Operators (BRO) are Project, Extend, Restrict,
>>> Product, Minus, Union and Aggregation. It is also usefull to be able
>>> to define and name additional relational operators derived from the
>>> BRO such as join and divide, but these are not mandatory.
>> I suggest you check out Codd's 1972 paper. The above are the algebra
>> operations. If one has the calculus, one does not need them, and the
>> calculus is FOL.
> > My primary argument FOR using FOL (including set operators) at some > level is that if we can test any syntax we write down by comparing it to > FOL, we are assured that we haven't created an > illogical-hybrid-monster-non-theory "theory of data" implementation. Not > to say that a language should read like FOL. > > (Regarding set operators, SQL UNION seems to parallel OR and JOIN to AND > and DELETE to AND NOT. Does UPDATE parallel anything other than DELETE > followed by UNION?)
UPDATE, INSERT and DELETE are all simply short-hands for popular assignment statements with hooks for statement-specific triggered procedures. UPDATE is logically equivalent to DELETE/INSERT (generally without triggering delete or insert triggered procedures but a different triggered procedure instead.)
One wonders what a general assignment statement should trigger--especially assignments with logically equivalent results. Received on Sat Feb 24 2007 - 22:29:41 CET