| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: A real world example
<anithsen_at_gmail.com> wrote in message
news:1155560420.746300.309520_at_b28g2000cwb.googlegroups.com...
> "Brian Selzer" <brian_at_selzer-software.com> wrote in message > news:MNCDg.8096$9T3.560_at_newssvr25.news.prodigy.net...
> > The only way one can have an attribute whose values never change is by > violating information principle.
How so? In what way does the information principle require that attributes be mutable? A relational database contains knowledge about things, not things. Now, if you're going to talk about something, then that thing must either exist or have existed in the universe. If a thing exists in the universe and is relevant to the discussion, then there must be some way to distinguish that thing from all other things that exist, that have existed and that can exist, otherwise there isn't any way to be sure that you're talking about the same thing in successive database instances.
The RM is value-based: a database schema determines the possible values that that database can take. For the database to change, two values, or instances, must exist and be consistent prior to the change, that is, the preceding instance and the succeeding instance. Thus, a series of changes to a database results in a succession of database instances. It is often necessary to know what was known about something in order to assert something new. For example, when a credit card charge clears, the bank must know the balance of the account in order to compute the new balance. More importantly, the bank must be able to identify the account that is about to change, and that identity must remain constant in both the preceding and succeeding database instances. Because changes are set-based, without some means to correlate the propositions in the preceding instance with those in the succeeding instance, you cannot be certain that you're talking about the same thing; therefore, you cannot be certain if the succeeding instance is correct. The question is: should the solution to this problem be handled in implementations, or should the theory be strengthened to eliminate it?
>
I believe Codd used the term "permanent" to describe surrogates. That implies immutability. He did mention drastic circumstances, such as merging databases that could require that they change, but the impression I got was that they should be permanent.
>
> > Perhaps you may want to read through the contradictions in Codd's RM/T > paper. > http://www.intelligententerprise.com/db_area/archives/1999/990106/online1.jhtml >
Been there. I understand the ramifications of hiding attributes. I've argued before on this forum that surrogates shouldn't be hidden by the database, but rather from end users by the applications that need them, or by the DBA if the DBMS provides a means to provide views without them. Applications need to see them because then they can be sure that the updates they're making are correct in a concurrent environment. End users, on the other hand, generally have no need to see them, so as a best practice, they should be hidden *by the application* from them.
> -- > Anith
![]() |
![]() |