4 ms·
"If two relations have identical designs, the difference can only be encoded in the relation (and possibly attribute) names," True, though the (and possibly at
by ErwinSmout 10y ago
"If two relations have identical designs, the difference can only be encoded in the relation (and possibly attribute) names,"
True, though the (and possibly attribute names) part seems dubious to say the least. Different attribute names makes the designs non-identical, no ?
in violation of the IP [information principle].
This interpretation of the IP is outright absurd.
One, the "I" in "IP" was obviously intended to cover only ever the [end-]user's own business information. The "information" that is being "hidden" under this absurd interpretation is the mapping that applies from relation names to intended interpretation. That information is never part of the [end-]users "genuine business information". How could it ? The mapping in question arises only when the models are being developed. As long as no computers are involved, no information models and no mapping, but the "genuine business information" stays the same.
Two, the relation names are present as a value of an attribute in a tuple in a relation. In the catalog that documents the structure of the database that will contain the [end-]users "genuine business information".
As such, it is inaccessible to the DBMS, which cannot rely on the RPs [relation predicates] to accept/reject tuples as correct/incorrect.
Not sure what is intended here. Is it claimed that because "table names are inaccessible to the DBMS", it is impossible for the DBMS to enforce declared constraints ? Ouch. The SQL REFERENCES clause ought to suffice to counter that.
Users--with little, or no help from the DBMS--must ensure that the correct tuples are inserted in the proper relation.
So they must know the mapping from relation names to intended interpretation. That is not an insurmountable problem. Hundreds of thousands of developers have already been doing that [or something extremely similar] since before databases even existed.
Moreover, because information is not represented explicitly (as data values), relational operations lose it: if you UNION the two relations, you get users that either viewed or downloaded items, or both.
Then don't union the two together. (It is alas left unclear whether the usage of the term UNION here refers to invocations of that relational operator on the two relations in the original design (in which case the "loss of information" is (a) intentional and (b) not really loss of information because the original relations have not magically disappeared by computing the union), or in the sense of blindly mergeing the two tables together at the schema level without adding an indication of view vs. download. In which case it's just a stupid design mistake even my cat probably wouldn't commit.)
- sgeneris 10y agoErwin, To those without a background in logic lots of things can seem absurd.
- sgeneris 10y agoThe RDM is an attempt to maximize database management by the DBMS. What is left only in the mind of users--particularly the kind of users we witness here--is nothing but trouble. Reliance on sheer user discipline--for no good reason, for the only reason that SQL is not truly relational and people don't know, understand and appreciate the theoretical foundations of the RDM is what is really absurd here. That's the reason the IP insists that ALL information is represented EXPLICITLY and in EXACTLY one way, to maximize soundness, power and simplicity. Whoever does not understand this will get nothing better than SQL.