The third prescription is really to make view updating tractable and predictable/manageable for the dbms and application developers. The same motivation as for ttm's OO Pre 1 (compile time type checking).
 
The third prescription is really to make view updating tractable and predictable/manageable for the dbms and application developers. The same motivation as for ttm's OO Pre 1 (compile time type checking).
   −
It is the fourth I've long had trouble with -- hence this prologue. When I say "fourth", this has been up to 4 or 5 separate rules in my previous versions. I think I've now found a formulation to condense [D&B 1978]'s ''unique'', ''no extraneous updates'', my own ''unambiguous''; and to find grounds to reject [D&B 1978]'s "uncomfortable dimension" with which I've never been, er, comfortable. The notion -- that both tuples for the update and their attributes be ''essential'' -- is cribbed from D,D&F's ETNF paper. [Darwen, Date, Fagin 2012 "A Normal Form for Preventing Redundant Tuples in Relational Databases", ETNF = Extended Tuple Normal Form]
+
It is the fourth I've long had trouble with -- hence this prologue. When I say "fourth", this has been up to 4 or 5 separate rules in my previous versions. I think I've now found a formulation to condense [D&B 1978]'s ''unique'', ''no extraneous updates'', my own ''unambiguous''; and to find grounds to reject [D&B 1978]'s "uncomfortable dimension" with which I've never been, er, comfortable. The notion -- that both tuples for the update and their attributes be ''essential'' -- is cribbed from D,D&F's ETNF paper. [Darwen, Date, Fagin 2012, ETNF = Essential Tuple Normal Form]
    
There are footnotes for each prescription, but let's state them succinctly first:
 
There are footnotes for each prescription, but let's state them succinctly first:
   −
# At all times all constraints must hold. (rubric: The "Golden Rule".)<br/>
+
# At all times all constraints must hold. (rubric: The "Golden Rule".)
# Any update through a view must have precisely the effect on the content of the view as if it were a base relation. (rubric: "Assignment Principle")<br/>
+
# Any update through a view must have precisely the effect on the content of the view as if it were a base relation. (rubric: "Assignment Principle")
# That a view is updatable-through (for some action INSERT, DELETE, UPDATE, assignment :=) must be determined by reference only to the schema, view's definition, constraints and the specified update effect for that action, per prescription 2. (rubric: "Not dependent on the happenstance of content")<br/>
+
# That a view is updatable-through (for some action INSERT, DELETE, UPDATE, assignment :=) must be determined by reference only to the schema, view's definition, constraints and the specified update effect for that action, per prescription 2. (rubric: "Not dependent on the happenstance of content")
# Noting that the update is to be effected by some combination of tuples deleted and inserted into the database (base relations): each such tuple must be necessary to achieving 1. and 2., the set of tuples (deletes and inserts) must be sufficient, and each attribute value must be similarly necessary. (rubric: ''essential'' tuples, ''essential'' attribute values.)<br/>
+
# Noting that the update is to be effected by some combination of tuples deleted and inserted into the database (base relations): each such tuple must be necessary to achieving 1. and 2., the set of tuples (deletes and inserts) must be sufficient, and each attribute value must be similarly necessary. (rubric: ''essential'' tuples, ''essential'' attribute values.)
# If there is no set of necessary, sufficient tuples/attributes per 4., that view is not updatable-through for that action.
+
# If there is no set of necessary, sufficient tuples/attributes per 4., that view is not updatable-through for that action.
    
=== Footnotes to the prescriptions ===
 
=== Footnotes to the prescriptions ===
 
#: ''Essential'' attribute value means that value is the only possible to comply with 1., 2 for all valid states of the database.
 
#: ''Essential'' attribute value means that value is the only possible to comply with 1., 2 for all valid states of the database.
 
#: ''Sufficient'' requires that if there are two (or more) different sets of tuple actions/values that comply:
 
#: ''Sufficient'' requires that if there are two (or more) different sets of tuple actions/values that comply:
Exception encountered, of type "Error"