What Edgar Codd did not solve in RM / T - the first part
Date: Sun, 29 Jul 2018 15:16:23 -0700 (PDT)
Message-ID: <36bb078f-8189-4f6d-9270-4c6e8de65dc0_at_googlegroups.com>
I will explain this first part using my solution. Since my solution is the only solution that is good, then readers will find it much easier to figure out than the wrong solutions.
Simply said, my solution for the entities consists of the following parts:
Identifier of the entity;
Identifier of the state of this entity;
One attribute of this entity;
The time since this attribute becomes valid in the database;
The time since this value of this attribute stops being valid in the
database.
This interval of time refers to the data in the computer's memory.
Similarly, there is an interval of time for which this attribute is valid
in the real world.
For each data in the database, the name of the person who entered this data
into the DB is entered.
If the data is entered in DB by applying a procedure, then the name of that
procedure in the DB is entered.
This way, for each piece of information, it is known who entered that data
into the DB.
If any data from the entity is changed then the state of that entity has been changed. And that means that the identifier of the state of the entity has changed.
The main part of solving “temporal”, “historical” and other complex
databases consists of two sub-steps:
1. Constructing an identifier of an entity or relationship.
2. Connecting all changes of states of one entity (or relationship) to the
identifier of this entity (or relationship).
In my paper „Some ideas about a new Data Model“ from year 2005 which is
presented on this user group on September 2005, I have introduced these two
identifiers. In Section 1.1 I wrote: "... every entity has an attribute that
is the Identifier of the entity or can provide identification of entity."
Since this is an identifier, then it can not be a surrogate, it is the real
key.
What the following words mean: "or can provide identification of the
entity"? It means the following:
If we have international standards, such as a VIN or an ISBN number, we will
use international standards for a simple key which will be the identifier
of entities.
If we do not have standardized keys then we have to make those keys in the
real world. For example, we can make it as a book in which all the keys are
written. Or we can make it as a bank card. Or we can print the paper, such
as the invoices with that identifier being printed.
So the key must be verifiable in the real world and in the database.
The identifier of a state of an entity is not a surrogate key! This key is not an identifier of an entity. It is identifier of a state of an entity. A state is an abstract object of our mental activity.
We can conclude that this kind of data organization has solved the following fundamental things for the first time:
(i) With the introduction of the identifier of a state of the entity, we
understand that an object that changes over time remains the same object for
us. So these two identifiers enable the powerful procedure.
(ii) We must change the definition of object and include in new definition
the states of objects.
(iii) It is necessary to define the state of the entity and the state of
relationship.
(iv) The identifier of an state of an entity together with the identifier
of the entity enables the semantic procedure that connects an abstract
objects from a memory to the corresponding objects from the real world that
is in certain situation(state).
Vladimir Odrljin Received on Mon Jul 30 2018 - 00:16:23 CEST