![]() | |
#61
| |||
| |||
|
|
On Feb 7, 2:29 pm, Marshall <marshall.spi... (AT) gmail (DOT) com> wrote: Can we have just one more constant: Universal Equality Relation (denoted as E)? Then `x=y` is defined as E projected to attributes x and y. What are the advantages and disadvantages? It doesn't seem much different from having = as a logical operator. But maybe it is, and equality (and hence substitutibility) exists only in the metalanguage. I guess one advantage would be that E would then be subject to the regular axioms as any other relation is. ... plus some extra. |
|
No, the top and bottom are not redundant, they are the least interesting. I can't think of any relational expression (a query, or a constraint) where you need them. Indeed, as soon as we have R \/ 10 then we just rewrite it as R Likewise the R /\ 10 is reduced to 10 Eventually you either get rid of 10, or collapse the expression to a single 10. Ditto for 01. So you can't really express any non vacuous fact about the database with them. |
|
I'd suggest operating RL expressions in completely attribute free fascion. Whenever there is an expression and there is a relation with some specific constraints (e.g. having attribute x, or being empty), then it could be rewritten in more general way without these constraints. In principle generality should lead to simplicity.... It actually seems to be easy. Consider the "equality" axiom R(x,y) /\ `y=z` = R(x,z) /\ `y=z` Informally, we requre the renaming of the attribute y into z to be consistent with the equality relation `y=z`. So we have three attributes x,y, and z. First of all the fact that attributes are atomic is not significant, we can easily think of "composite" attributes as disjoint sets of attributes! Next if we just agree to call empty relations as "attributes" then we half way to our goal of excluding the concept of attributes altogether. So what constraint to the relations x,y,z do we have? Easy: x \/ y = 00 x \/ z = 00 y \/ z = 00 They say both that x,y,z are empty, and their set of attributes are disjoint! If you really insist on atomic attributes, then we can define them as atoms in the boolean algebra of the header relations, but again, this is unnecessary constraint. Next, the next two constraints R /\ 00 = x /\ y S /\ 00 = x /\ z are specify what are the attributes of the two relations R and S. And, finally, the constraint R /\ (E \/ (y /\ z)) = S /\ (E \/ (y /\ z)) tell us that R and S is essentially "the same" relation, P.S. I propose small letters for empty relations as a convention. |
#62
| |||
| |||
|
|
On Feb 7, 2:29 pm, Marshall <marshall.spi... (AT) gmail (DOT) com> wrote: Can we have just one more constant: Universal Equality Relation (denoted as E)? Then `x=y` is defined as E projected to attributes x and y. What are the advantages and disadvantages? It doesn't seem much different from having = as a logical operator. But maybe it is, and equality (and hence substitutibility) exists only in the metalanguage. I guess one advantage would be that E would then be subject to the regular axioms as any other relation is. ... plus some extra. |
|
No, the top and bottom are not redundant, they are the least interesting. I can't think of any relational expression (a query, or a constraint) where you need them. Indeed, as soon as we have R \/ 10 then we just rewrite it as R Likewise the R /\ 10 is reduced to 10 Eventually you either get rid of 10, or collapse the expression to a single 10. Ditto for 01. So you can't really express any non vacuous fact about the database with them. |
|
I'd suggest operating RL expressions in completely attribute free fascion. Whenever there is an expression and there is a relation with some specific constraints (e.g. having attribute x, or being empty), then it could be rewritten in more general way without these constraints. In principle generality should lead to simplicity.... It actually seems to be easy. Consider the "equality" axiom R(x,y) /\ `y=z` = R(x,z) /\ `y=z` Informally, we requre the renaming of the attribute y into z to be consistent with the equality relation `y=z`. So we have three attributes x,y, and z. First of all the fact that attributes are atomic is not significant, we can easily think of "composite" attributes as disjoint sets of attributes! Next if we just agree to call empty relations as "attributes" then we half way to our goal of excluding the concept of attributes altogether. So what constraint to the relations x,y,z do we have? Easy: x \/ y = 00 x \/ z = 00 y \/ z = 00 They say both that x,y,z are empty, and their set of attributes are disjoint! If you really insist on atomic attributes, then we can define them as atoms in the boolean algebra of the header relations, but again, this is unnecessary constraint. Next, the next two constraints R /\ 00 = x /\ y S /\ 00 = x /\ z are specify what are the attributes of the two relations R and S. And, finally, the constraint R /\ (E \/ (y /\ z)) = S /\ (E \/ (y /\ z)) tell us that R and S is essentially "the same" relation, P.S. I propose small letters for empty relations as a convention. |
#63
| |||
| |||
|
|
On Feb 7, 2:29 pm, Marshall <marshall.spi... (AT) gmail (DOT) com> wrote: Can we have just one more constant: Universal Equality Relation (denoted as E)? Then `x=y` is defined as E projected to attributes x and y. What are the advantages and disadvantages? It doesn't seem much different from having = as a logical operator. But maybe it is, and equality (and hence substitutibility) exists only in the metalanguage. I guess one advantage would be that E would then be subject to the regular axioms as any other relation is. ... plus some extra. |
|
No, the top and bottom are not redundant, they are the least interesting. I can't think of any relational expression (a query, or a constraint) where you need them. Indeed, as soon as we have R \/ 10 then we just rewrite it as R Likewise the R /\ 10 is reduced to 10 Eventually you either get rid of 10, or collapse the expression to a single 10. Ditto for 01. So you can't really express any non vacuous fact about the database with them. |
|
I'd suggest operating RL expressions in completely attribute free fascion. Whenever there is an expression and there is a relation with some specific constraints (e.g. having attribute x, or being empty), then it could be rewritten in more general way without these constraints. In principle generality should lead to simplicity.... It actually seems to be easy. Consider the "equality" axiom R(x,y) /\ `y=z` = R(x,z) /\ `y=z` Informally, we requre the renaming of the attribute y into z to be consistent with the equality relation `y=z`. So we have three attributes x,y, and z. First of all the fact that attributes are atomic is not significant, we can easily think of "composite" attributes as disjoint sets of attributes! Next if we just agree to call empty relations as "attributes" then we half way to our goal of excluding the concept of attributes altogether. So what constraint to the relations x,y,z do we have? Easy: x \/ y = 00 x \/ z = 00 y \/ z = 00 They say both that x,y,z are empty, and their set of attributes are disjoint! If you really insist on atomic attributes, then we can define them as atoms in the boolean algebra of the header relations, but again, this is unnecessary constraint. Next, the next two constraints R /\ 00 = x /\ y S /\ 00 = x /\ z are specify what are the attributes of the two relations R and S. And, finally, the constraint R /\ (E \/ (y /\ z)) = S /\ (E \/ (y /\ z)) tell us that R and S is essentially "the same" relation, P.S. I propose small letters for empty relations as a convention. |
#64
| |||
| |||
|
|
On Feb 7, 2:29 pm, Marshall <marshall.spi... (AT) gmail (DOT) com> wrote: Can we have just one more constant: Universal Equality Relation (denoted as E)? Then `x=y` is defined as E projected to attributes x and y. What are the advantages and disadvantages? It doesn't seem much different from having = as a logical operator. But maybe it is, and equality (and hence substitutibility) exists only in the metalanguage. I guess one advantage would be that E would then be subject to the regular axioms as any other relation is. ... plus some extra. |
|
No, the top and bottom are not redundant, they are the least interesting. I can't think of any relational expression (a query, or a constraint) where you need them. Indeed, as soon as we have R \/ 10 then we just rewrite it as R Likewise the R /\ 10 is reduced to 10 Eventually you either get rid of 10, or collapse the expression to a single 10. Ditto for 01. So you can't really express any non vacuous fact about the database with them. |
|
I'd suggest operating RL expressions in completely attribute free fascion. Whenever there is an expression and there is a relation with some specific constraints (e.g. having attribute x, or being empty), then it could be rewritten in more general way without these constraints. In principle generality should lead to simplicity.... It actually seems to be easy. Consider the "equality" axiom R(x,y) /\ `y=z` = R(x,z) /\ `y=z` Informally, we requre the renaming of the attribute y into z to be consistent with the equality relation `y=z`. So we have three attributes x,y, and z. First of all the fact that attributes are atomic is not significant, we can easily think of "composite" attributes as disjoint sets of attributes! Next if we just agree to call empty relations as "attributes" then we half way to our goal of excluding the concept of attributes altogether. So what constraint to the relations x,y,z do we have? Easy: x \/ y = 00 x \/ z = 00 y \/ z = 00 They say both that x,y,z are empty, and their set of attributes are disjoint! If you really insist on atomic attributes, then we can define them as atoms in the boolean algebra of the header relations, but again, this is unnecessary constraint. Next, the next two constraints R /\ 00 = x /\ y S /\ 00 = x /\ z are specify what are the attributes of the two relations R and S. And, finally, the constraint R /\ (E \/ (y /\ z)) = S /\ (E \/ (y /\ z)) tell us that R and S is essentially "the same" relation, P.S. I propose small letters for empty relations as a convention. |
#65
| |||
| |||
|
|
On Feb 7, 2:29 pm, Marshall <marshall.spi... (AT) gmail (DOT) com> wrote: Can we have just one more constant: Universal Equality Relation (denoted as E)? Then `x=y` is defined as E projected to attributes x and y. What are the advantages and disadvantages? It doesn't seem much different from having = as a logical operator. But maybe it is, and equality (and hence substitutibility) exists only in the metalanguage. I guess one advantage would be that E would then be subject to the regular axioms as any other relation is. ... plus some extra. |
|
No, the top and bottom are not redundant, they are the least interesting. I can't think of any relational expression (a query, or a constraint) where you need them. Indeed, as soon as we have R \/ 10 then we just rewrite it as R Likewise the R /\ 10 is reduced to 10 Eventually you either get rid of 10, or collapse the expression to a single 10. Ditto for 01. So you can't really express any non vacuous fact about the database with them. |
|
I'd suggest operating RL expressions in completely attribute free fascion. Whenever there is an expression and there is a relation with some specific constraints (e.g. having attribute x, or being empty), then it could be rewritten in more general way without these constraints. In principle generality should lead to simplicity.... It actually seems to be easy. Consider the "equality" axiom R(x,y) /\ `y=z` = R(x,z) /\ `y=z` Informally, we requre the renaming of the attribute y into z to be consistent with the equality relation `y=z`. So we have three attributes x,y, and z. First of all the fact that attributes are atomic is not significant, we can easily think of "composite" attributes as disjoint sets of attributes! Next if we just agree to call empty relations as "attributes" then we half way to our goal of excluding the concept of attributes altogether. So what constraint to the relations x,y,z do we have? Easy: x \/ y = 00 x \/ z = 00 y \/ z = 00 They say both that x,y,z are empty, and their set of attributes are disjoint! If you really insist on atomic attributes, then we can define them as atoms in the boolean algebra of the header relations, but again, this is unnecessary constraint. Next, the next two constraints R /\ 00 = x /\ y S /\ 00 = x /\ z are specify what are the attributes of the two relations R and S. And, finally, the constraint R /\ (E \/ (y /\ z)) = S /\ (E \/ (y /\ z)) tell us that R and S is essentially "the same" relation, P.S. I propose small letters for empty relations as a convention. |
![]() |
| Thread Tools | |
| Display Modes | |
| |