![]() | |
#111
| |||
| |||
|
|
It might be interesting for defining an environment that allows the language features mentioned to reference an algebra or calculus (which don't have a notion of update in the first place), but I don't see why normalization needs to be introduced to implement updating of bases nor of views. *If it does need to be, then presumably the updating of any relation somehow depends on how 'normal' it is. *I don't see what triggers have to do with updating either, even though some implementations require them. *By the way, why assume that CURRENT_USER is not updateable? When it comes to updating, I'd prefer to use as few concepts as possible, named sets of tuples, algebraically expressible constraints and a set of algebra operators. *Design matters might determine particular results but a logical engine shouldn't distinguish between designs, that's what the old hierachical and network systems did. Regarding an UPDATE verb, it is probably simpler to do what TTM does and assume an algebra that has extend and rename operators. *I suppose a dbms that follows a mere algebra could distinguish 6NF relations, but I think it would be ponderous to use. |
#112
| |||
| |||
|
|
Your mention of 6NF got me thinking. The examples I've seen of problems with updateable views tend to involve union (particularly of similar but distinct relations), join and projection. Is view updating still a problem in a database where POFN and POOD apply to base relvars, and every view restricted to 6NF? |
#113
| |||
| |||
|
|
On Sep 2, 2:44Â*am, "Joe Thurbon" <use... (AT) thurbon (DOT) com> wrote: So, to update a view, rather than update the conclusion directly, one must Â* update (one of) the base relvars that are used to derive the Â* conclusion/view. That is abductive. I guess I see what you mean, but strictly speaking it doesn't seem to fit the definition. In abductive reasoning, one knows a -> b, and b, but one doesn't know that it was in fact a that implied b. Whereas with a view, we do know. Marshall |
#114
| |||
| |||
|
|
Joe Thurbon wrote: ... So, to update a view, rather than update the conclusion directly, one must update (one of) the base relvars that are used to derive the conclusion/view. That is abductive. ... Joe, if one does that, one is replacing the value of something other than the relations that form the join and it wouldn't actually be accurate to call it a "join update". To use the term "update", one is updating two relvars that point to subsets of the "base relvars". |
#115
| |||
| |||
|
|
"Marshall" <marshall.spight (AT) gmail (DOT) com> wrote in message news:badf422a-cd2b-40f1-869b-c0a248363088 (AT) u36g2000prn (DOT) googlegroups.com... On Sep 2, 2:44 am, "Joe Thurbon" <use... (AT) thurbon (DOT) com> wrote: quote: So, to update a view, rather than update the conclusion directly, one must update (one of) the base relvars that are used to derive the conclusion/view. That is abductive. I guess I see what you mean, but strictly speaking it doesn't seem to fit the definition. In abductive reasoning, one knows a -> b, and b, but one doesn't know that it was in fact a that implied b. Whereas with a view, we do know. /quote: I think I see what joe is saying, perhaps by analogy. When we give an imperative to update a view or assign an after update state to a view, it is like knowing the conclusion (b). The rule that defines the view is like knowing the implication (a -> b). And what has to be derived (by the DBMS) is the update required to the base relvars in order to adhere to both the rule in the view definition and the conclusion we have supplied. That's like abducting a from b and a -> b. |
|
This might be only an anlogy, or it might be more than an analogy. I'm not sure. |
#116
| |||
| |||
|
#117
| |||
| |||
|
|
"Marshall" <marshall.spi... (AT) gmail (DOT) com> wrote in message news:badf422a-cd2b-40f1-869b-c0a248363088 (AT) u36g2000prn (DOT) googlegroups.com... quote I guess I see what you mean, but strictly speaking it doesn't seem to fit the definition. In abductive reasoning, one knows a -> b, and b, but one doesn't know that it was in fact a that implied b. Whereas with a view, we do know. /quote Do we? For an insert into a union view, one knows a -> c \/ b -> c and c, but one doesn't know whether it was in fact a or b or both that implied c. For a delete from a join view, one knows ~a -> ~c \/ ~b -> ~c and ~c, but one doesn't know whether it was in fact ~a or ~b or both that implied ~c. |
#118
| |||
| |||
|
|
On Thu, 03 Sep 2009 04:23:48 +1000, paul c <toledobythesea (AT) oohay (DOT) ac> wrote: Joe Thurbon wrote: ... So, to update a view, rather than update the conclusion directly, one must update (one of) the base relvars that are used to derive the conclusion/view. That is abductive. ... Joe, if one does that, one is replacing the value of something other than the relations that form the join and it wouldn't actually be accurate to call it a "join update". To use the term "update", one is updating two relvars that point to subsets of the "base relvars". I'm afraid I don't understand what you mean. |
![]() |
| Thread Tools | |
| Display Modes | |
| |