![]() | |
![]() |
| | Thread Tools | Display Modes |
#11
| |||||||
| |||||||
|
|
On Jul 19, 9:53?pm, Eric <e... (AT) deptj (DOT) eu> wrote: Suppose I am designing a database and I have decided (rightly or wrongly, but I _have_ decided) to use a surrogate key for a table whose rows are about some real-world object. We have to communicate with other people about these real-world objects, so we suggest it would be easier for all concerned if everyone used the same arbitrary numbers (i.e. our surrogate key) to refer to each particular real-world object. In fact, since we are a government department, we can tell them that they have to use it. Oh, we seem to have just invented something very like a VIN! Note that if one uses the name of an identifier of an entity in a communication, then it does not mean that this one can identify this entity in the real world. |
|
Imagine that a Honda dealer has 2000 identical new Hondas, and that neither of them has a VIN number. In this situation, a database application that uses surrogate keys will not work at all. All the Hondas will have the same attributes and the unique surrogates. |
|
This database will be a total confusion and a database disaster. This is a very clear example that surrogates are bad solution. |
|
However, if I apply a database based on VIN numbers, then everything will be ok, and I do not need surrogate keys at all. |
|
Note that many products have all the same intrinsic attributes. For this case, I introduced the law which is a generalization of Leibniz?s Law. (see my paper, Semantic Databases and Semantic Machines, section 5.6 at http://www.dbdesign11.com ) |
|
The VIN is an intrinsic property. No it is not. It is not even an acceptable candidate key. If you think that it is, consider a database about car crime and insurance fraud. The VIN is an intrinsic property, you can see the surrogate on each car. The VIN is based on international standards. For example in US it is used by important institutions to identify individual motor vehicle. |
|
Are you trying to say that whoever makes something can assign it an identifier? Of course they can, but that doesn't necessarily make it intrinsic; painting or tattooing a number on something does not make that number an intrinsic property of what would still be the same thing without the number. If you are interested in intrinsic properties and the identification of attributes, then you can see my paper "Database design and data model founded on concept and knowledge constructs" at http://www.dbdesign11.com . In section 2, I introduce intrinsic properties and in section 3.3 identification of attribute is defined in (3.3.3). |
#12
| |||
| |||
|
|
Note that if one uses the name of an identifier of an entity in a communication, then it does not mean that this one can identify this entity in the real world. Here I made ​​a mistake. Instead of "an identifier of an entity" should be "a surrogate key of an entity" |
|
The VIN is an intrinsic property, you can see the surrogate on each car. The VIN is based on international standards. For example in US it is used by important institutions to identify individual motor vehicle. Instead of "you can see the surrogate on each car." should be "you can see the VIN on each car." |
#13
| ||||
| ||||
|
|
b) My database solution introduces and enables the construction and maintenance of a “history of changes”. My work gives the first complete solution of the “history” problem. Are you familiar with the work by one Nikos Lorentzos ? I have a book inmy >library that was published 2003, summarizing his approach. And since you claim that your solution is "complete", I reckon you > also know what to do about and how to deal with, say, cyclic point types ? |
|
d) My solution introduces only one operation with data, and that is the addition of new data to the database. There is no deleting or updating of data in the database. This solution, therefore, controls redundancy Wait a sec. Just because you allow only additions in your databases, implies that it is impossible to have redundancy in your databases ? |
|
e) Note that there are some existing theories about changes, but that all of them use undefined terms like “the world”, “the situation of the world”, “the state of the world”, “states of affairs”, etc. "Closed WORLD assumption", anybody ? |
|
In contrast to this, my solution models only changes of entities and relationships, which are terms that are defined. No kidding. Are they ? |
#14
| |||
| |||
|
|
&gt; b) My database solution introduces and enables the construction and &gt; maintenance of a &gt; “history of changes”. My work gives the first complete solution of &gt; the “history” &gt; problem. Are you familiar with the work by one Nikos Lorentzos ? I have a book in my >library that was published 2003, summarizing his approach. And since you claim that your solution is &quot;complete&quot;, I reckon you > also know what to do about and how to deal with, say,cyclic point types ? If you refer to the book “Temporal Data & the Relational Model “ by C. j. Date, Hugh Darwen, Nikos Lorencos, then you are wrong, because this book is about temporal data rather then about history of data. |
|
Wait a sec. Just because you allow only additions in your databases, implies that it is impossible to have redundancy in your databases ? I wrote “controls redundancy”. Shortly, by “controls redundancy” I mean the following: |
|
My solution does not update and delete data. So it does not have update and delete anomalies (usually caused by redundancy). The intention of this solution is to save all that is entered into the database. My solution uses the binary structures and only two events. Therefore, it is possible to setpowerful constraints on the level of data entry. The possible events are: “create new data” and “close the existing data”. |
#15
| |||
| |||
|
|
Chpater 15 of that book is entirely devoted to the particular subject of "history of the data itself". |
|
And if you think that there is a logical difference between "a statement about >the modeled reality that was true for some period of time" and "a statement >about the beliefs recorded in the database and the period during which they >were recorded in said database", then you are wrong too, and pathetically wrong at that. There is nothing to stop relational theory from still applying, even whenthe "modeled reality" is the very set of beliefs itself that were recordedin the database, and there is nothing that stops the presented concepts oftemporal data management from applying to that case too. There is a _practical_ difference (the issue of retroactive updates can, or should, never arise when it comes to "the history of the beliefs that were recorded in the database"), but that does not count as a _logical_ difference. There may be differences in the algorithms that turn out to be the most >optimal for dealing with either of both kinds of history, and there may be >differences in the syntactic shorthands that are built into the language and >offered to the user for dealing with either kind of history, but none of those >count as logical differences either. |
|
The only thing you have done is renamed DELETE (to CLOSE, IIRC). Doing that >does not eliminate update anomalies. At best, you only replace DELETE>anomalies with CLOSE anomalies. |
#16
| |||
| |||
|
#17
| |||
| |||
|
|
The only thing you have done is renamed DELETE (to CLOSE, IIRC). Doing that does not eliminate update anomalies. At best, you only replace DELETE anomalies with CLOSE anomalies. |
#18
| |||
| |||
|
#19
| |||
| |||
|
#20
| |||
| |||
|
|
On page 211, Appendix A / Primary Keys Are Nice but Not Essential, of his last book, "Database Design & Relational Theory – Normal Forms &All That Jazz” C.J. Date writes about “anchor relvars” |
![]() |
| Thread Tools | |
| Display Modes | |
| |