![]() | |
![]() |
| | Thread Tools | Display Modes |
#31
| |||
| |||
|
|
The only thing I wonder about is why constraints must be truth-valued. I'd rather they were allowed to have relation values other than dee and dum. Seems the only way to allow defaults/mandatory tuples without introducing some other concept. |
#32
| |||
| |||
|
|
The conventional view is that is that the information in a table is the logical conjunction of the information represented by the rows in the table. Just because the table is formed by a summing operation doesn't change that. Ahem. Conjunction of the domains. A relation is the extension of a predicate. That predicate can be represented as the disjunction of the tuples. ... |
#33
| |||
| |||
|
|
The most persistent (and most common) reason people incorporate nullable columns into designs is because they have a misplaced desire to minimize the number of tables in the design, and think that conflating multiple fact types in one table is clever, efficient, and harmless. |
#34
| ||||
| ||||
|
|
I am going to revisit the example I posted for paul. |
|
CTRS {COURSE, TEACHER, ROOM, STUDENT}, each row states that a particular COURSE is taught by a particular TEACHER in a particular ROOM to a particular STUDENT. one effectively asserts that 'there is a course <COURSE>,' that 'there is a teacher <TEACHER>,' [...] |
|
Either all of the atomic formulas represented by the row are true, or none of them are. That is consistent with the logical connective between those formulas being IFF rather than AND. |
|
If The information content of a table is the logical sum (disjunction) of the information represented by each row. |
#35
| ||||
| ||||
|
|
On Nov 29, 12:31 am, "Mr. Scott" <do_not_re... (AT) noone (DOT) com> wrote: I am going to revisit the example I posted for paul. Thank you for giving an example. Especially when my stated intent is to show you misunderstand something. Your explanation is still unclear. The user looks at the world and the relation variable's predicate(s) and combines them to determine what rows to put in and what rows to leave out. Similarly, they look at the rows present and absent in a relation variable and combine them with the predicate(s) to produce statements about the world. Please tell me what the designer gives with a relation variable (a predicate, or set of predicates?) and the correspondence between an overall proposition about the world and the rows in and the rows not in that variable (now and/or previously). CTRS {COURSE, TEACHER, ROOM, STUDENT}, each row states that a particular COURSE is taught by a particular TEACHER in a particular ROOM to a particular STUDENT. one effectively asserts that 'there is a course <COURSE>,' that 'there is a teacher <TEACHER>,' [...] The designer gives a relation variable. It's not clear what else you claim they give. A single predicate per variable? A set of predicates per variable? Do you mean that (some function of) this list is a clarification of the preceding (parameterized) statement? If so, exactly what predicate does the user form from the list that is supposed to be equivalent to the statement? Or do you mean that the designer specifies the statement and you think the list is derivable from the statement by the system? I can't tell when you write "when one inserts a row" or "inserting a single row", whether you just mean mean "when a given row is in a relation". Or whether by "inserting a single row" or "deletes that only row" you specifically mean the old value of a relation variable is also involved in mapping to instantiated predicates. Either all of the atomic formulas represented by the row are true, or none of them are. That is consistent with the logical connective between those formulas being IFF rather than AND. First you write "one effectively asserts" the things in the list (whatever "effectively" means); asserting a number of things is the same as asserting their conjunction. But then you write "the logical connective between those formulas being IFF", so I guess you mean the IFF of the things in the list is asserted. So you're not being clear. And no, it's not consistent with the logical connective between those formulas being IFF. For example, although a1 IFF a2 IFF a3 is true when all ai are true and it is false when all ai are false, it is also true when a1 and a2 are false and a3 is true. So the above expression does not assert that they're all true or all false. |
|
For that you would want something like (a1 AND a2 AND a3) OR ((NOT A1) AND (NOT a2) AND (NOT a3)) ie (NOT (a1 OR a2 OR a3)) OR (a1 AND a2 AND a3) ie (a1 OR a2 OR a3) IMPLIES (a1 AND a2 AND a3) ie the whole thing is true when all are false or all are true but it's false when there's a mix. (Not that I think you ever want the ai all individually false.) On the other hand I can imagine that you are thinking that for each syntactically valid row it is in the relation iff all the corresponding instantiated assertions in the list are true. But that's not what you have said. (In fact you've said "all of the atomic formulas represented by the row are true, or none of them are".) And anyway that's not a relation's statement about the world; it is a statement about how the value of a relation variable maps to its statement about the world. |
|
If The information content of a table is the logical sum (disjunction) of the information represented by each row. This is clearer, but as I said I can't figure out what you think is asserted by a row in the table (or by a row not in 'the table) to be ORed together. (Note that it makes sense to OR together equalities like COURSE='Math' as the characteristic predicate of a set, but to AND together things like "there is a course 'Math'" as a statement or assertion about the world.) But I also don't know whether you mean this applies to all relation variable values, or only the values of ones that that are empty, or just became empty or nonempty, or didn't, or what. Consider a typical row for CTRS, |
|
So please start out with what the designer gives, then tell me clearly how to form the proposition is that is "the information represented by each row" that is syntactically valid, then what the proposition is that is "the information content of a table". And whether it depends on the old state as well as the new. And tell me whether I am using that predicate as a statement about the world or as the characteristic predicate of some set. In other words, be clear. Then I can discuss your approach (ie show it doesn't do what you think it does). It's also pointless for me to address your justifications for individual steps if I don't understand the overall process. philip |
#36
| |||
| |||
|
#37
| |||
| |||
|
|
com... (AT) hotmail (DOT) com> wrote in message news:35bb0b6c-af79-4c41-beb1-34fe00e81643 (AT) y32g2000prd (DOT) googlegroups.com... On Nov 29, 12:31 am, "Mr. Scott" <do_not_re... (AT) noone (DOT) com> wrote: I am going to revisit the example I posted for paul. Thank you for giving an example. Especially when my stated intent is to show you misunderstand something. Your explanation is still unclear. The user looks at the world and the relation variable's predicate(s) and combines them to determine what rows to put in and what rows to leave out. Similarly, they look at the rows present and absent in a relation variable and combine them with the predicate(s) to produce statements about the world. Please tell me what the designer gives with a relation variable (a predicate, or set of predicates?) and the correspondence between an overall proposition about the world and the rows in and the rows not in that variable (now and/or previously). CTRS {COURSE, TEACHER, ROOM, STUDENT}, each row states that a particular COURSE is taught by a particular TEACHER in a particular ROOM to a particular STUDENT. *one effectively asserts * * that 'there is a course <COURSE>,' * * that 'there is a teacher <TEACHER>,' [...] The designer gives a relation variable. It's not clear what else you claim they give. A single predicate per variable? A set of predicates per variable? Do you mean that (some function of) this list is a clarification of the preceding (parameterized) statement? If so, exactly what predicate does the user form from the list that is supposed to be equivalent to the statement? Or do you mean that the designer specifies the statement and you think the list is derivable from the statement by the system? I can't tell when you write "when one inserts a row" or "inserting a single row", whether you just mean mean "when a given row is in a relation". Or whether by "inserting a single row" or "deletes that only row" you specifically mean the old value of a relation variable is also involved in mapping to instantiated predicates. *Either all of the atomic formulas represented by the row are true, or none of them are. *That is consistent with the logical connective between those formulas being IFF rather than AND. First you write "one effectively asserts" the things in the list (whatever "effectively" means); asserting a number of things is the same as asserting their conjunction. But then you write "the logical connective between those formulas being IFF", so I guess you mean the IFF of the things in the list is asserted. So you're not being clear. And no, it's not consistent with the logical connective between those formulas being IFF. For example, although *a1 IFF a2 IFF a3 is true when all ai are true and it is false when all ai are false, it is also true when a1 and a2 are false and a3 is true. *So the above expression does not assert that they're all true or all false. Thank you for pointing that out. *I really wasn't very clear. *By interdependent I mean that the connective between any two atomic formulas (atoms) is a biconditional, not that the only connectives are biconditionals, so for three atoms, it's not a1 iff a2 iff a3, but rather, (a1 iff a2) and (a1 iff a3) and (a2 iff a3) which is true whenever all ai are true or all ai are false and false otherwise. For four atoms, it's not a1 iff a2 iff a3 iff a4, but rather, (a1 iff a2) and (a1 iff a3) and (a1 iff a4) and (a2 iff a3) and (a2 iff a4) and (a3 iff a4) which is true whenever all ai are true or all ai are false and false otherwise. For that you would want something like *(a1 AND a2 AND a3) OR ((NOT A1) AND (NOT a2) AND (NOT a3)) ie (NOT (a1 OR a2 OR a3)) OR (a1 AND a2 AND a3) ie (a1 OR a2 OR a3) IMPLIES (a1 AND a2 AND a3) ie the whole thing is true when all are false or all are true but it's false when there's a mix. (Not that I think you ever want the ai all individually false.) On the other hand I can imagine that you are thinking that for each syntactically valid row it is in the relation iff all the corresponding instantiated assertions in the list are true. But that's not what you have said. (In fact you've said "all of the atomic formulas represented by the row are true, or none of them are".) And anyway that's not a relation's statement about the world; it is a statement about how the value of a relation variable maps to its statement about the world. Constraints specify what can be represented in a table. *They don't say anything about what actually is the case other than that it can be the case. What actually is the case is a matter of interpretation. *If The information content of a table is the logical sum (disjunction) of the information represented by each row. This is clearer, but as I said I can't figure out what you think is asserted by a row in the table (or by a row not in 'the table) to be ORed together. (Note that it makes sense to OR together equalities like COURSE='Math' as the characteristic predicate of a set, but to AND together things like "there is a course 'Math'" as a statement or assertion about the world.) But I also don't know whether you mean this applies to all relation variable values, or only the values of ones that that are empty, or just became empty or nonempty, or didn't, or what. Consider a typical row for CTRS, {COURSE:Physics, TEACHER:Brown, ROOM:145, STUDENT:Jones} This row doesn't "state" anything. *That it is in the table is evidencethat someone with authority asserted as fact that Brown teaches Jones Physics in room 145, and that it is still in the table is evidence that noone with authority has since denied it. *It is reasonable, therefore, to treat as fact that Brown teaches Jones Physics in room 145. *From this fact a number (14 to be exact) of other facts can be inferred. *That's 15 distinct facts in total represented by a single row. *Each row of CTRS isn't just a single fact, but a family of interdependent facts. *Brown can't teach Jones Physics in room 145 if he doesn't teach Physics or if there is no room 145, and under the assumptions that CTRS is the only table in the database and that there is only a single row that mentions Physics, Brown, 145 or Jones, there can't be a student called Jones unless he is being taught Physics by Brown in room 145. *The addition of a second row, for example, {COURSE:Calculus, TEACHER:Green, ROOM:154, STUDENT:Jones}, weakens that condition so that there can't be a student called Jones unless he is being taught Physics by Brown in room 145 or he is being taught Calculus by Green in room 154. *The addition of a separate table, S {STUDENT}, for example, also weakens the condition because then there could be a student called Jones even if he isn't taking any courses from any teachers in any rooms. *It doesn't change the form of the assertion represented by each row, though, where the logical connective between any two atoms is IFF, yielding a non-atomic formula, but the logical connective between any two of those formulas is AND. The logical connective that separates the facts represented by one row from the facts represented by another is OR (unless there is a self-referencing inclusion dependency), as is the logical connective that separates the facts represented in one table from the facts represented in another (unless there is an inclusion dependency). So please start out with what the designer gives, then tell me clearly how to form the proposition is that is "the information represented by each row" that is syntactically valid, then what the proposition is that is "the information content of a table". And whether it depends on the old state as well as the new. And tell me whether I am using that predicate as a statement about the world or as the characteristic predicate of some set. In other words, be clear. Then I can discuss your approach (ie show it doesn't do what you think it does). It's also pointless for me to address your justifications for individual steps if I don't understand the overall process. philip- Hide quoted text - - Show quoted text -- Hide quoted text - - Show quoted text -- Hide quoted text - - Show quoted text -- Hide quoted text - - Show quoted text - |
#38
| |||
| |||
|
|
If I'm understanding your explanation properly, in a database with only table: BIG_US_CITIES {CITY_NAME, STATE_CODE} (that is, lacking table STATES {STATE_CODE}) one must logically infer, from the CWA, that states with no big cities, e.g. 'RI', do not exist? |
#39
| |||
| |||
|
|
On Dec 10, 8:12 pm, "Mr. Scott" <do_not_re... (AT) noone (DOT) com> wrote: |
|
Hello Mr. Scott, If I'm understanding your explanation properly, in a database with only table: BIG_US_CITIES {CITY_NAME, STATE_CODE} (that is, lacking table STATES {STATE_CODE}) one must logically infer, from the CWA, that states with no big cities, e.g. 'RI', do not exist? |
#40
| |||
| |||
|
|
In a typical table, CTRS {COURSE, TEACHER, ROOM, STUDENT}, each row states that a particular COURSE is taught by a particular TEACHER in a particular ROOM to a particular STUDENT. Now, while it can be argued that there can't be a course without a teacher, or that there can't be a course without a student, or that there can't be a student without a teacher, the room exists independent of whether there is a course, or a teacher or a student. It therefore follows that locating the fact that 'there is a room <ROOM>' only in table CTRS is a problem because then there could only be a room whenever there is at least one course and at least one teacher and at least one student. When one inserts a row into an empty CTRS, one effectively asserts ... that 'there is a room <ROOM>,' ... |
|
If you disagree that all of these assertions are a consequence of inserting a single row, then how is it that there can be an answer to the query, "is course <COURSE> held in room <ROOM>?" Unless there is the possibility that 'course <COURSE> is held in room <ROOM>,' there can be no answer (at least not a yes or a no) to the query. ... |
![]() |
| Thread Tools | |
| Display Modes | |
| |