![]() | |
![]() |
| | Thread Tools | Display Modes |
#41
| ||||
| ||||
|
|
Mr. Scott wrote: ... 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>,' ... This presumes that the predicate for a table R { ROOM } is the same as the predicate of CTRS { ROOM } but from the dbms perspective it's patent they can't be, since R and CTRS don't even have the same heading. If CTRS is not base, maybe you can say such but if it is base, one can only assert that there exists some teacher, student and course such that room <ROOM is involved. |
|
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. ... If CTRS is base, that question is strictly not answerable. |
|
I suspect that the man in the street might think such a query is possible (not to mention many db designers) but to be precise I think it's important to distinguish what is from what could be, otherwise we lapse into mysticism. A query that is answerable from CTRS is "are there some teachers and students such that course <COURSE> and room <ROOM> are involved?". |
|
Just because SQL and the like might not be expressive enough to prevent the query doesn't mean the most basic condition, ie., the definition of CTRS, can be ignored. A language that might reflect this might have two sets of operands for projection instead of one. (I also realize that the usual explanations of projection operators don't make this clear. Not that table/relvar names carry any significance other than as a device to segregate rows/tuples according to predicate but it might be more suggestive of the actual situation if the name of CTRS were changed to 'EXPELLED'.) |
#42
| |||
| |||
|
|
"paul c" <toledobythesea (AT) oohay (DOT) ac> wrote in message news ASUm.55772$Db2.7870 (AT) edtnps83 (DOT) ..Mr. Scott wrote: ... 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>,' ... This presumes that the predicate for a table R { ROOM } is the same as the predicate of CTRS { ROOM } but from the dbms perspective it's patent they can't be, since R and CTRS don't even have the same heading. If CTRS is not base, maybe you can say such but if it is base, one can only assert that there exists some teacher, student and course such that room <ROOM is involved. There is no table R. The only place in the database to record assertions that there is a particular room is in CTRS, but one cannot assert that there is a particular room without also asserting that there is a particular teacher, that there is a particular student, and that said teacher is teaching a particular course to said student in that 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. ... If CTRS is base, that question is strictly not answerable. Yes, it is answerable. The fact that a particular teacher is teaching a particular student a particular course in a particular room implies the fact that that particular course is held in that particular room. I suspect that the man in the street might think such a query is possible (not to mention many db designers) but to be precise I think it's important to distinguish what is from what could be, otherwise we lapse into mysticism. A query that is answerable from CTRS is "are there some teachers and students such that course <COURSE> and room <ROOM> are involved?". I think you're assuming that it is possible for there to be courses in rooms even if there aren't any students or teachers, but that hasn't been established, and in fact since there is no place in the database for such assertions, there cannot be courses in rooms without students or teachers. The queries that are answerable are therefore not limited to just those that involve all four attributes. If there were a place in the database for such assertions, such as a table CR {COURSE,ROOM} Then what is in the database would consist of the logical sum of all courses in rooms without students or teachers and all courses in rooms with students and teachers. The query "Is course <COURSE> held in room <ROOM>?" would involve both CR and CTRS, unless there is an inclusion dependency from CTRS[COURSE,ROOM] to CR[COURSE,ROOM], in which case the query could be answered without involving CTRS. Just because SQL and the like might not be expressive enough to prevent the query doesn't mean the most basic condition, ie., the definition of CTRS, can be ignored. A language that might reflect this might have two sets of operands for projection instead of one. (I also realize that the usual explanations of projection operators don't make this clear. Not that table/relvar names carry any significance other than as a device to segregate rows/tuples according to predicate but it might be more suggestive of the actual situation if the name of CTRS were changed to 'EXPELLED'.) Table names are significant. There can be more than one table with the same set of columns. The closest logical analog to a table name is a predicate symbol. Predicate symbols are significant. P(X) may be true for a given X even if Q(X) is false for the same X. |
#43
| |||
| |||
|
|
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? |
|
Effectively yes. |
|
There isn't anywhere to record the assertion that there is a state with no big cities, so there can't be any. |
#44
| |||
| |||
|
|
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". |
|
Thanks, but this is no clearer. |
#45
| |||
| |||
|
|
On Dec 11, 1:29 pm, Kevin Kirkpatrick <kvnkrkpt... (AT) gmail (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? On Dec 11, 1:36 pm, Gene Wirchenko <ge... (AT) ocis (DOT) net> wrote: Effectively yes. On Dec 11, 8:15 pm, "Mr. Scott" <do_not_re... (AT) noone (DOT) com> wrote: There isn't anywhere to record the assertion that there is a state with no big cities, so there can't be any. It is more reasonable to say that the database is silent about the existence of states and cities. But even if it did, the inference that some state doesn't exist is wrong. |
#46
| ||||||||||||
| ||||||||||||
|
|
compdb (AT) hotmail (DOT) com> wrote in message news:d84d3f25-b398-4c35-b97d-9155baaefab4 (AT) o9g2000prg (DOT) googlegroups.com... On Dec 4, 4:26 pm, com... (AT) hotmail (DOT) com wrote: 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". On Dec 11, 12:07 am, com... (AT) hotmail (DOT) com wrote: Thanks, but this is no clearer. Mr. Scott, I received an early xmas gift from my database designer: a relational dbms. Its database has relation variables vr{A,B,C,D} and vs{A,X} with respective predicates pr(A,B,C,D) and ps(A,X). Observing the world I can determine for a particular tuple whether a given predicate is true with corresponding attributes/parameters substituted. All attributes are of the same type. At some point when the database reflects the world: If pr(a,b,c,d) is true, what does this imply about the tuples in vr? |
|
If pr(a,b,c,d) is false, what does this imply about the tuples in vr? |
|
If a tuple <a,b,c,d> is in vr, what does this imply about the world, in terms of pr? |
|
If a tuple <a,b,c,d> is not in vr, what does this imply about the world, in terms of pr? |
|
What does vr imply about the world? |
|
What does the database imply about the world? |
|
What query (relation expression) returns: The set of tuples <a,b,c,d> for which pr(a,b,c,d)? The set of tuples <b,c,d> for which there exists an A such that pr (A,b,c,d)? The set of tuples <a,b,c,d,x> for which pr(a,b,c,d) and ps(a,x)? The set of tuples <a,b,c,d> for which pr(a,b,c,d) and not ps (a',b',c',d')? |
|
Each of the following queries returns a relation. For each query, what does the returned value imply about the world? vr |
|
vr project all but {A} |
|
vr join vs |
|
vr minus relation{A a',B b',C c',D d'} |
|
Maybe you don't consider these to be appropriate questions. If so please give precise rules mapping between the world and the database state and between queries and predicates. philip |
#47
| |||
| |||
|
|
compdb (AT) hotmail (DOT) com> wrote in message news:f8fb0e4b-100a-4466-b968-5099852ecaa4 (AT) 2g2000prl (DOT) googlegroups.com... On Dec 11, 1:29 pm, Kevin Kirkpatrick <kvnkrkpt... (AT) gmail (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? On Dec 11, 1:36 pm, Gene Wirchenko <ge... (AT) ocis (DOT) net> wrote: Effectively yes. On Dec 11, 8:15 pm, "Mr. Scott" <do_not_re... (AT) noone (DOT) com> wrote: There isn't anywhere to record the assertion that there is a state with no big cities, so there can't be any. It is more reasonable to say that the database is silent about the existence of states and cities. But even if it did, the inference that some state doesn't exist is wrong. No, it isn't wrong. An assertion that there is a state with no big cities is inconsistent with the definition of the database: it cannot be true. |
#48
| |||
| |||
|
|
Mr. Scott wrote: "paul c" <toledobythesea (AT) oohay (DOT) ac> wrote in message news ASUm.55772$Db2.7870 (AT) edtnps83 (DOT) ..Mr. Scott wrote: ... 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>,' ... This presumes that the predicate for a table R { ROOM } is the same as the predicate of CTRS { ROOM } but from the dbms perspective it's patent they can't be, since R and CTRS don't even have the same heading. If CTRS is not base, maybe you can say such but if it is base, one can only assert that there exists some teacher, student and course such that room ROOM> is involved. There is no table R. The only place in the database to record assertions that there is a particular room is in CTRS, but one cannot assert that there is a particular room without also asserting that there is a particular teacher, that there is a particular student, and that said teacher is teaching a particular course to said student in that 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. ... If CTRS is base, that question is strictly not answerable. Yes, it is answerable. The fact that a particular teacher is teaching a particular student a particular course in a particular room implies the fact that that particular course is held in that particular room. I suspect that the man in the street might think such a query is possible (not to mention many db designers) but to be precise I think it's important to distinguish what is from what could be, otherwise we lapse into mysticism. A query that is answerable from CTRS is "are there some teachers and students such that course <COURSE> and room ROOM> are involved?". I think you're assuming that it is possible for there to be courses in rooms even if there aren't any students or teachers, but that hasn't been established, and in fact since there is no place in the database for such assertions, there cannot be courses in rooms without students or teachers. The queries that are answerable are therefore not limited to just those that involve all four attributes. If there were a place in the database for such assertions, such as a table CR {COURSE,ROOM} Then what is in the database would consist of the logical sum of all courses in rooms without students or teachers and all courses in rooms with students and teachers. The query "Is course <COURSE> held in room ROOM>?" would involve both CR and CTRS, unless there is an inclusion dependency from CTRS[COURSE,ROOM] to CR[COURSE,ROOM], in which case the query could be answered without involving CTRS. Just because SQL and the like might not be expressive enough to prevent the query doesn't mean the most basic condition, ie., the definition of CTRS, can be ignored. A language that might reflect this might have two sets of operands for projection instead of one. (I also realize that the usual explanations of projection operators don't make this clear. Not that table/relvar names carry any significance other than as a device to segregate rows/tuples according to predicate but it might be more suggestive of the actual situation if the name of CTRS were changed to 'EXPELLED'.) Table names are significant. There can be more than one table with the same set of columns. The closest logical analog to a table name is a predicate symbol. Predicate symbols are significant. P(X) may be true for a given X even if Q(X) is false for the same X. Perhaps the most remarkably bald of these assertions is that a 'particular ROOM' has 'independent' 'existence' when a 'particular' STUDENT or TEACHER or COURSE doesn't. I've never even liked the word 'exists'... 'forall' is okay but 'is present' would help keep one's eye on the ball. To avoid the chronic mystical persuasion, basically all we really need to be concerned with is the presence of symbols. |
#49
| |||
| |||
|
|
Mr. Scott wrote: com... (AT) hotmail (DOT) com> wrote in message news:f8fb0e4b-100a-4466-b968-5099852ecaa4 (AT) 2g2000prl (DOT) googlegroups.com... On Dec 11, 1:29 pm, Kevin Kirkpatrick <kvnkrkpt... (AT) gmail (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? On Dec 11, 1:36 pm, Gene Wirchenko <ge... (AT) ocis (DOT) net> wrote: * * *Effectively yes. On Dec 11, 8:15 pm, "Mr. Scott" <do_not_re... (AT) noone (DOT) com> wrote: There isn't anywhere to record the assertion that there is a state with no big cities, so there can't be any. It is more reasonable to say that the database is silent about the existence of states and cities. But even if it did, the inference that some state doesn't exist is wrong. No, it isn't wrong. *An assertion that there is a state with no big cities is inconsistent with the definition of the database: it cannot be true. I really do hesitate to comment on this ever more imbecilic thread, but this is a kind of discussion that always gets my goat. Relational databases (and being generous, I will include SQL databases) use logic and set theory to manage human testimony about the world. *We are not required to deny our own certain knowledge to satisfy the machinations of the DBMS. *It is the DBMS that is constrained to use the closed world hypothesis, not us. *But knowing that it is constrained in that way, we are obliged to design databases to accomodate what we know is true, and to never tell us anything we know is untrue. But we have to accept that a DBMS can't tell us all that we know is true. *We human users are never obliged to use a closed world when we interpret the result of a query. -- Roy- Hide quoted text - - Show quoted text - |
#50
| |||
| |||
|
|
Mr. Scott wrote: compdb (AT) hotmail (DOT) com> wrote in message news:f8fb0e4b-100a-4466-b968-5099852ecaa4 (AT) 2g2000prl (DOT) googlegroups.com... On Dec 11, 1:29 pm, Kevin Kirkpatrick <kvnkrkpt... (AT) gmail (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? On Dec 11, 1:36 pm, Gene Wirchenko <ge... (AT) ocis (DOT) net> wrote: Effectively yes. On Dec 11, 8:15 pm, "Mr. Scott" <do_not_re... (AT) noone (DOT) com> wrote: There isn't anywhere to record the assertion that there is a state with no big cities, so there can't be any. It is more reasonable to say that the database is silent about the existence of states and cities. But even if it did, the inference that some state doesn't exist is wrong. No, it isn't wrong. An assertion that there is a state with no big cities is inconsistent with the definition of the database: it cannot be true. I really do hesitate to comment on this ever more imbecilic thread, but this is a kind of discussion that always gets my goat. Relational databases (and being generous, I will include SQL databases) use logic and set theory to manage human testimony about the world. We are not required to deny our own certain knowledge to satisfy the machinations of the DBMS. It is the DBMS that is constrained to use the closed world hypothesis, not us. But knowing that it is constrained in that way, we are obliged to design databases to accomodate what we know is true, and to never tell us anything we know is untrue. But we have to accept that a DBMS can't tell us all that we know is true. We human users are never obliged to use a closed world when we interpret the result of a query. |
|
-- Roy |
![]() |
| Thread Tools | |
| Display Modes | |
| |