![]() | |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
I can't remember where in his papers Codd stated the Information Principle but here's a version of a quote by Date: "The entire information content of a relational database is represented in one and only one way: namely, as attribute values within tuples within relations." Recently there has been mention of logical connectors being implicit in tuples, eg. Mr. Scott wrote: "Each row of the join represents a conjunction of propositions, one for each operand", ie., what I think is called a compound proposition. I sometimes write similar, as well regarding disjunctions. But usually my purpose is simply to understand the algebra. I would like to ask where is the "information" to the effect that certain rows represent compound propositions recorded? |
#3
| |||
| |||
|
|
"paul c" <toledobythesea (AT) oohay (DOT) ac> wrote in message news:2h1Gm.50615$PH1.9648 (AT) edtnps82 (DOT) .. I can't remember where in his papers Codd stated the Information Principle but here's a version of a quote by Date: "The entire information content of a relational database is represented in one and only one way: namely, as attribute values within tuples within relations." Recently there has been mention of logical connectors being implicit in tuples, eg. Mr. Scott wrote: "Each row of the join represents a conjunction of propositions, one for each operand", ie., what I think is called a compound proposition. I sometimes write similar, as well regarding disjunctions. But usually my purpose is simply to understand the algebra. I would like to ask where is the "information" to the effect that certain rows represent compound propositions recorded? Where is the "information" to the effect that 2 + 2 = 4 recorded? Certainly not as attribute values within tuples within relations. |
#4
| |||
| |||
|
|
... We are all susceptible to those two attitudes but I think we should make an effort to fall prey to them. |
#5
| |||
| |||
|
|
Mr. Scott wrote: "paul c" <toledobythesea (AT) oohay (DOT) ac> wrote in message news:2h1Gm.50615$PH1.9648 (AT) edtnps82 (DOT) .. I can't remember where in his papers Codd stated the Information Principle but here's a version of a quote by Date: "The entire information content of a relational database is represented in one and only one way: namely, as attribute values within tuples within relations." Recently there has been mention of logical connectors being implicit in tuples, eg. Mr. Scott wrote: "Each row of the join represents a conjunction of propositions, one for each operand", ie., what I think is called a compound proposition. I sometimes write similar, as well regarding disjunctions. But usually my purpose is simply to understand the algebra. I would like to ask where is the "information" to the effect that certain rows represent compound propositions recorded? Where is the "information" to the effect that 2 + 2 = 4 recorded? Certainly not as attribute values within tuples within relations. The values to satisfy that equation might well be recorded in relational form but I presume you are not referring to that, rather to the general truth of the equation as far as conventional arithmetic interpretation is concerned. I usually try to stay out of the discussions here about truth because a database mechanism is not capable of appreciating that concept the way humans can, just as a database doesn't record persons, only the symbols we use for their names. No offense intended, but I think the question borders on mysticism, imputing human concepts to a db, what Bob B uses the anthrop-word to describe. We are all susceptible to those two attitudes but I think we should make an effort to fall prey to them. |
#6
| |||
| |||
|
|
Let's explore a simple example. Suppose that a database embodies the following sentence, forall x forall y forall z Pxy \/ Qxz The database has two tables, let's call them P and Q, with predicates Pxy and Qxz respectively. Now suppose that at a given moment, P has rows {{x:a,y:b},{x:a,y:c},{x:b,y:c}} Q has rows {{x:a,z:d},{x:c,z:d}} then P JOIN Q would have rows {{x:a,y:b,z:d},{x:a,y:c,z:d}} Now let's apply logic. The ground formulas represented in P are Pab, Pac, Pbc. The ground formulas represented in Q are Qad, Qcd. What is represented in P JOIN Q? Pab /\ Qad, Pac /\ Qad. That's because P JOIN Q has the complex predicate Pxy /\ Qxz.. x being free in both P and Q is important because only those ground formulas in P and Q that have a common x value satisfy the predicate of P JOIN Q. It should be clear now that it is the nature of join that dictates that certain rows represent compound propositions, but there is more. The dependencies defined on the database also have an impact. There really isn't space here to go into detail, but suppose that the database embodies the sentence, forall x forall y forall z Pxy -> Qxz Now the database still consists not only of the same two tables, but also an inclusion dependency from P[x] to Q[x]. forall x forall y forall z Pxy iff Qxz Here the database would consist of just one table but each row would represent a biconditional. |
#7
| |||
| |||
|
|
Mr. Scott wrote: ... Let's explore a simple example. Suppose that a database embodies the following sentence, forall x forall y forall z Pxy \/ Qxz The database has two tables, let's call them P and Q, with predicates Pxy and Qxz respectively. Now suppose that at a given moment, P has rows {{x:a,y:b},{x:a,y:c},{x:b,y:c}} Q has rows {{x:a,z:d},{x:c,z:d}} then P JOIN Q would have rows {{x:a,y:b,z:d},{x:a,y:c,z:d}} Now let's apply logic. The ground formulas represented in P are Pab, Pac, Pbc. The ground formulas represented in Q are Qad, Qcd. What is represented in P JOIN Q? Pab /\ Qad, Pac /\ Qad. That's because P JOIN Q has the complex predicate Pxy /\ Qxz.. x being free in both P and Q is important because only those ground formulas in P and Q that have a common x value satisfy the predicate of P JOIN Q. It should be clear now that it is the nature of join that dictates that certain rows represent compound propositions, but there is more. The dependencies defined on the database also have an impact. There really isn't space here to go into detail, but suppose that the database embodies the sentence, forall x forall y forall z Pxy -> Qxz Now the database still consists not only of the same two tables, but also an inclusion dependency from P[x] to Q[x]. forall x forall y forall z Pxy iff Qxz Here the database would consist of just one table but each row would represent a biconditional. I have no argument about the application of logic. Perhaps my point has more to do with the language devices, such as 'insert', that are essentially an assignment. While they are defined in logical terms they are outside logic in the sense that when they are applied, something special happens, a 'die is cast', as it were. (Once we enter the realm of assignment, talk of possible base and view differences is inevitable. I don't think it's inapt to say that treating views differently from base values amounts to saying that assignment is polymorphic, ie., behaves differently depending. I don't see a necessary reason for that. But when dealing with a value that is the result of assignment, I think it remains clear that the view definition is effectively no more than a constraint on the view's value, and not a constrain on the base values in the expression of the view's definition. This may seem fuzzy and mystical perhaps due to my language not being really up to the task but if that can be forgiven, I would say that it is better to subtract notions than add them, ie., better to not introduce a difference.) |
#8
| |||
| |||
|
|
Maybe it's useful to ask this: *Was Codd trying to introduce assignment to logic, (eg. was he trying to augment predicate calculus) or was he trying to apply logic to the assignment of recorded values? |
#9
| |||
| |||
|
|
Snipped Maybe it's useful to ask this: Was Codd trying to introduce assignment to logic, (eg. was he trying to augment predicate calculus) or was he trying to apply logic to the assignment of recorded values? Can you ellaborate on what you mean by *assignment*. If we are to consider assignment in the sense of value assignment to a variable then assignement is a simply component of mathematical logic. Therefore, I do not see to define one according to the other through precedence but rather through inclusion. IMHO... |
#10
| |||
| |||
|
|
Cimode wrote: Snipped Maybe it's useful to ask this: *Was Codd trying to introduce assignment to logic, (eg. was he trying to augment predicate calculus) or was he trying to apply logic to the assignment of recorded values? Can you ellaborate on what you mean by *assignment*. *If we are to consider assignment in the sense of value assignment to a variable then assignement is a simply component of mathematical logic. Therefore, I do not see to define one according to the other through precedence but rather through inclusion. IMHO... Yes, I mean assignment to a (programming) variable. *I don't know of any logical operator called 'assignment'. Thank you for clarifying. I now see your point. My mathematical bias |
![]() |
| Thread Tools | |
| Display Modes | |
| |