> > While working on a db core on these last years, one of the question
> > that gave me most difficulty was what would be an efficient taxonomy
[quoted text clipped - 3 lines]
> View updatability is a very interesting area imo. Perhaps you would
> like to offer your initial thoughts?
Sure...A little history to clarify the viewpoint...Some years ago, I
started coding an assembler db core that would respect as much as
possible the fundamental principle of independence between logical and
physical layer as defined in RM. The purpose of that effort was to
identify some computing (non fundamental) issues that would be faced
by any developper that would attempt to develop a trdbms...
The primary serious issue I faced was to attempt to establish a
computing model that would *coherently* support the concept of unique
tuple identification *without* using directly physical pointers. The
idea was to establish a *logical* solution to the problem of how a
tuple could be identified within a given domain of value or a specific
relation. At that point, I used some trigonometrics to establish
mathematical functions that establish *discernability* over elements
in a degree N relation. I started first with a degree 2 relation
tuple that I reduced to a single numeric value. Then, that function
could allow to uniquely identify that specific tuple and that tuple
only single value (in fact, it could reestablish the identifiers of
the 2 value of each separate attributes within their respective
domain). I later attempted to determine a manthematical function that
would allow a generalization of the property of discernability to a
degree N relation tuple.
For testing such solution and making sure it does not have aspects I
have not thought of, I started imagining a test scenario that would
reveal the limits of such solution through how it would be (or not be)
practical to allow the support of view updates in a system. So I
started focusing on establishing a taxonomy of requirements that would
allow view updates. So here's the taxonomy I came up with so far:
> Identification requirements: all requirements that a computing model should meet in terms of how such system establishes discernability between tuples to support efficiently view updates.
> Predictability requirements: all requirements that a computing model should meet to allow *predictable* updates. In such requirements, I usually ask myself question such as: how ought a grouped query ought to handle to be updated and how would it give a result that would be reasonnable and coherent to understanding.
> Concurrency requirements: all requirements that a computing model should meet to allow comit/rollback principle over view operations. Here I ask my self questions such as : can we apply a 2 phase commit model to hadle concurrency?
So far I have focused onto answering the first part and here is what I
came up with:
Identification requirements
> The identifier value for a specific tuple is not a part of the physical layer
> The identifier is the output of a mathematical function that allows to identify a point.
> The above output ought to reestablish the identifiers of all attribute values into there respective domains
> The identifier of a specific tuple is a stable mathematical function of the identifier of such tuple in the domain from which the relation draws tuples.
> The identifier should be a numerical value that may allow not only to identify the tuple within the relation but also with the domain.
> The identifier should be established at run time or at compile time.
I really hope this makes sense. I find it more and more difficult to
use online media to precisely explain what I am getting at.
paul c - 05 Oct 2007 18:33 GMT
> ... So here's the taxonomy I came up with so far:
> Identification requirements: all requirements that a computing model
> should meet in terms of how such system establishes discernability
> between tuples to support efficiently view updates.
> ...
My two cents on this is pretty humdrum - as long as the Information
Principle appears to have been followed, the physical layer can decide
what it thinks is "efficient", eg., if it hashing is thought to be
physically efficient the implementation is free to hash.
> Predictability requirements: all requirements that a computing model
> should meet to allow *predictable* updates. In such requirements, I
> usually ask myself question such as: how ought a grouped query ought
> to handle to be updated and how would it give a result that would be
> reasonnable and coherent to understanding.
> ...
I think that if the updating tuples are specified in a grouped form then
conventional relational algebra is predictable (predictable in the
sense of Codd's model and algebra as it has evolved), unless a view
involving projection, union or join is involved. If the updating tuples
aren't specified that way, then there needs to be some interpretation of
the target, eg., if there is only one attribute in the grouped target, say:
CombinationsShipped
P#
{1,2}
{2,3}
{3}
(3 tuples, meaning one shipment included parts 1 and 2, another parts 2
and 3 and another only part 3), then to insert the fact that every
shipment included a free giveaway part 99 can't be done by inserting a
single grouped tuple, "insert {99}" if you'll pardon my syntax, even if
CombinationsShipped isn't a view.
> Concurrency requirements: all requirements that a computing model
> should meet to allow comit/rollback principle over view operations.
> Here I ask my self questions such as : can we apply a 2 phase
commit > model to hadle concurrency?
I thought it was the 2-phase Lock protocols that were involved in
async-transaction/multi-user concurrency within a single dbms, whereas
2PC applied to multiple dbms's, or did you mean distributed dbms's?
paul c - 05 Oct 2007 18:35 GMT
...
> I think that if the updating tuples are specified in a grouped form then
> conventional relational algebra is predictable (predictable in the
> sense of Codd's model and algebra as it has evolved), unless a view
> involving projection, union or join is involved. ...
I guess I should have included negation too.