![]() | |
#21
| |||
| |||
|
|
On Sep 4, 9:58 am, paul c <toledobythe... (AT) oohay (DOT) ac> wrote: ... We can delete from projection ... Are you suggesting projection being updatable in respect to deletion? |
|
I fail to see this, here is my worksheet: ... |
#22
| |||
| |||
|
|
If I read that worksheet right, it means we can't delete <p 1, q 'a' from a *conventional table or relvar and expect <p 1> to be negated, which I don't argue with. *(whereas I don't think anybody disagrees that we already can delete <p 1> and expect <p 1, q 'a'> to be negated.) |
#23
| |||
| |||
|
|
On Sep 6, 11:40 am, paul c <toledobythe... (AT) oohay (DOT) ac> wrote: If I read that worksheet right, it means we can't delete <p 1, q 'a' from a conventional table or relvar and expect <p 1> to be negated, which I don't argue with. (whereas I don't think anybody disagrees that we already can delete <p 1> and expect <p 1, q 'a'> to be negated.) What do you mean by negating a tuple? ... |
|
decrements of the base relations in terms of increments/decrements of the view(s). Compare it to (a relatively simple) view maintenance problem where increments/decrements of the view(s) in terms of increments/decrements of the base relations. Maintenance of the projection view (or any other relational expression for that matter) is easy: just take a projection of any incremant/decremant of the base relation. |
#24
| |||
| |||
|
|
Walter Mitty wrote: .... Part of the problem with regard to sloppy language is that the term "view update" is misleading. If view C is defined as A join B and one were to apply an update, let's say MINUS D, what gets updated? If we were, in reality, updating view C, then the update would be really simple. We would update view C by changing its definition. The new definition of C is (A join B) minus D. This might require making D be persistent, so that the view can be applied later. Hey, presto! View C has just been updated! But that's not what we really mean when we say "update view C". What we mean is "leave view C defined exactly as before, but update A and B such that the effect on C's apparent extension is the same as if the update had been applied to a base relvar whose extension is the same as C's apparent extension." Under this meaning of "update view C" the operation is underconstrained, as has already been noted. I changed the subject back to delete from join because the above is not about insert to projection. They are very different problems (unlike delete from join, insert to projection is not just a matter of constraints). |
#25
| |||
| |||
|
|
Mr. Scott wrote: "paul c" <toledobythesea (AT) oohay (DOT) ac> wrote in message news:uskom.43824$PH1.21867 (AT) edtnps82 (DOT) .. Mr. Scott wrote: "paul c" <toledobythesea (AT) oohay (DOT) ac> wrote in message news Gbom.42669$Db2.5159 (AT) edtnps83 (DOT) ..Why do implementation languages not allow this? Surely not for logical reasons? We can delete from projection because NOT Pa implies NOT Pab, eg., <NOT> R{a} -> <NOT> R{a,b}. Logically, we can insert to projections because Pab implies Pa. Isn't the problem really a language deficiency? I don't understand. Is the binary predicate P somehow related to the unary predicate P, and if so, how exactly? Sure it is, the truth of the tuple <a 1, b 2> implies the truth of the tuple <a 1> and the falsity of the tuple <a 1> implies the falsity of <a 1, b 2>, as far as a relation R with predicate P is concerned. Projection means quantification and vice versa, what's the problem? (Could it be that predicates aren't recorded?). Can you express the relationship formally? Something about your explanation doesn't seem right. There can be a row <a 1> in the projection if and only if there is a row that is a superset of <a 1> in the table. That works out to something like, Px iff (exists y exists z Pyz /\ (x = y)) But this actually denies insert to projections because it is not enough to know that there is at least one z, it is necessary to know which z or set of z's there are for a given x, unless you want to introduce nulls. What I wrote could be taken wrong. When I said that "logically" we can insert to a projection it would be have better to say that several projections are inserted when we insert <a 1, b 2, c 3>, eg., R{a} or <a 1> but the converse isn't logical. It's a starting position for figuring out a language definition that would allow insert to projection. I didn't mention rows and tables because I think they are probably not part of a solution. |
#26
| |||
| |||
|
|
Insert to projection is indeed underconstrained, provided the projection is non trivial. When you insert into a projection, this means adding tuples to the relvar on which the projection is based. If there are attributes in the base relvar that are not present in the projection, then those attributes remain unspecified by the insert into the projection. They become "missing data" in the resulting tuples. That's underconstrained. |
#27
| |||
| |||
|
|
recorded (Vadim also said this). Whereas insert to projection and delete from join are defined, just not treated as possible by most dbms' because the result form excludes all possible true combinations. ... |
#28
| |||
| |||
|
|
paul c wrote: ... recorded (Vadim also said this). Whereas insert to projection and delete from join are defined, just not treated as possible by most dbms' because the result form excludes all possible true combinations. ... Oopa, sorry, meant to say "Whereas insert to union and delete from join are defined, just not treated as possible ..." |
#29
| |||
| |||
|
|
Sorry if some of you may be annoyed by all my repetition, just saying one more time that I think insert to join is a different problem and can't be solved with only a different definition of insert. |
#30
| |||
| |||
|
|
Why do implementation languages not allow this? *Surely not for logical reasons? *We can delete from projection because NOT Pa implies NOT Pab, eg., <NOT> R{a} -> <NOT> R{a,b}. *Logically, we can insert to projections because Pab implies Pa. *Isn't the problem really a language deficiency? |
![]() |
| Thread Tools | |
| Display Modes | |
| |