![]() | |
#1
| ||||||
| ||||||
|
|
Thanks for that reply. *I do agree with your definition of complement which is quite a practical one although there are others possible. *I asked the question just to try to understand the technicalities of what McGoveran said and deliberately avoided mention of UNION which I think is an idiosyncrasy |
|
that commonly misleads as well as view updating which I have no problem with, at least conceptually, although I realize that many, many others have big problems with. |
|
*My own suspicion is that these difficulties are caused mainly by the (again idiosyncratic, also widespread) |
|
tendency to think in terms of target relvars |
|
and disconnected, abstract notions of insert and delete rather than in terms of asserting and recording both true and untrue statements. |
|
*In that sense I can side with McGoveran when he saids "the problem ... goes away" |
#2
| ||||||||
| ||||||||
|
|
I looked up "idiosyncracy" in order to understand what is precisely meant by that term and found that it seems to refer to "a way of thinking (or a way of seeing things, or a way of looking at the world - or certain aspects of that world-) that is "peculiar" and "eccentric" and "pertains quite individually to the person holding those isiosyncratic ideas/points of view/... ... |
| that commonly misleads as well as view updating which I have no problem with, at least conceptually, although I realize that many, many others have big problems with. The problem(s) you refer to is, I presume, "how to do(/support) it". It is -imo quite clearly- a problem for implementers (implementors ?) (and possibly for the community of academic researchers researching the issue). I fail to see how the set of implementers (UNION the set of academic researchers researching the issue) can be described as being "many, many others". ... |
| My own suspicion is that these difficulties are caused mainly by the (again idiosyncratic, also widespread) Apologies, but how do you match "widespread", with "idiosyncratic", given the meaning of the latter term I found in not-really-suspect sources ? ... |
| tendency to think in terms of target relvars If you accept the idea that "view updating" is a problem for the (DBMS) implementers, how is it possible to NOT think of view updating in terms of target relvars ? In fact, target relvars are all there really is to the problem. The user targets a non-physically-existing relvar (a non-base relvar), the machinery has NOTHING BUT base relvars to satisfy the users's request. The implementer has to see to it that what he does to the base relvars he has to his avail, will correctly reflect the user's request. That's why Date came up with the Assignment Principle, which would prohibit, a.o. and e.g., any arbitrary insert into A MINUS A. ... |
| ... and disconnected, abstract notions of insert and delete rather than in terms of asserting and recording both true and untrue statements. But aren't INSERT/DELETE and ASSERT TRUE/ASSERT FALSE really just "appearances in different form" of one and the very same thing ? If so, how can you be thinking in terms of either, "rather than" in terms of the other ? ... |
| In that sense I can side with McGoveran when he saids "the problem ... goes away" I can't. The only way in which the "problem" of "finding a unique transformation" REALLY goes away, is by declaring it not to be a problem. |
|
IMO, that causes problems of its own. (Well, I should amend that here. The other way that the "problem" goes away, is by solving it, of course, as is the case with any problem. Such a solution now has become conceivable, methinks, but it can be labeled "naive", and is therefore probably still infeasible in all but the simplest of settings.) |
|
PS Do you plan to attend in Newcastle ? |
#3
| ||||||
| ||||||
|
|
Given their chosen languages I don't fault them, it's just that I don't think all possible languages need those concepts, eg., a functional language might depend on side-effects for recording relations. |
|
As long as such side-effects don't allow logical inconsistencies it wouldn't bother me. |
|
Eg., I don't know why Date suggests 'deleting from both sides' is 'appropriate' as often as he suggests it is |
|
Lots of times it seems to me perfectly logical and not ambiguous to 'delete' from only one 'side'. |
|
I think one could write an engine that naively implemented the equivalent of join deletes and union inserts without inconsistencies and it would be naive only in the sense that it had very ponderous aka slow behaviour. |
|
Much as I'd like to see it again, not having what most people would call income, that seems unlikely. |
#4
| |||
| |||
|
|
On 18/03/2011 9:15 AM, Erwin wrote: ... I looked up "idiosyncracy" in order to understand what is precisely meant by that term and found that it seems to refer to "a way of thinking (or a way of seeing things, or a way of looking at the world - or certain aspects of that world-) that is "peculiar" and "eccentric" and "pertains quite individually to the person holding those isiosyncratic ideas/points of view/... ... Yes, I meant it that way - most of what I've seen to do with rdbms theory and implementation seems burdened with all kinds of unnecessary baggage which I do find peculiar. ... |
#5
| |||
| |||
|
|
But every time I've tried to imagine what the database looks like that they suggest has views that are ambiguous where certain assertions are concerned, I see no ambiguity, just arbitrary biases. |
#6
| |||
| |||
|
|
On 18 mrt, 22:44, paul c<anonym... (AT) not-for-mail (DOT) invalid> wrote: Given their chosen languages I don't fault them, it's just that I don't think all possible languages need those concepts, eg., a functional language might depend on side-effects for recording relations. I suspect your "side-effects" are what Date calls "cheating" when it comes to functional languages and how they do I/O. At any rate, every single bone in my programmer's body tells me side- effects are bad news. They are the pest AND the cholera. They are variables existing (AND being updated !!!!) without having been declared. Therefore, they are about not knowing the full results of the execution of your program. And "not knowing the full and complete result" is nothing more than, in a mathematical sense, not being truly functional to begin with !!! You can call me biased if you want to. ... |
#7
| |||
| |||
|
|
On 18 mrt, 22:44, paul c<anonym... (AT) not-for-mail (DOT) invalid> wrote: But every time I've tried to imagine what the database looks like that they suggest has views that are ambiguous where certain assertions are concerned, I see no ambiguity, just arbitrary biases. There might be a difference between what _YOU_ see when you look at that database, and what the _DBMS_ sees when it "looks" at that database. _YOU_ are likely to look at that database with at least a background awareness of what the _EXTERNAL_ predicates of the relvars are, plus probably also with some awareness of what the "external predicates" of the constraints on that database are. The _DBMS_ cannot do such a thing. All the DBMS can do is to observe that "there are n (say, 3) base relvars involved in this view, and there are m (say, 17) database constraints involved with any of those n relvars, and the nature of those database constraints can be really just anything". I have come to be more and more convinced of the notion that getting a DBMS to provide sensible support for view updating will require that DBMS to "understand" constraints in exactly the same way as a human "understands" them. And that's a tall order. And if you could explain to me _what it is that you see_ (I mean the "external predicate things" that you see), when you look at a database, in such a way that you can define it (what you see) in _formal, mathematical, algebraic, calculus_ terms, then I would start implementing and become a wealthy man in no time at all (after my implementation work is done, of course). |
#8
| |||
| |||
|
|
I think you're no more biased than Date is when he advocates multiple assignment. *I can see that you need some language feature like that if your chosen environment includes the ability to make relation values persistent on the fly. - Tekst uit oorspronkelijk bericht weergeven - |
#9
| |||
| |||
|
|
On 19 mrt, 01:30, paul c<anonym... (AT) not-for-mail (DOT) invalid> wrote: I think you're no more biased than Date is when he advocates multiple assignment. I can see that you need some language feature like that if your chosen environment includes the ability to make relation values persistent on the fly. - Tekst uit oorspronkelijk bericht weergeven - Paul, D(&D)'s reasons for advocating multiple assignment are amply documented, and they have _nothing_ to do with "persistence", on the fly or not. The thing is (, they say, ) let's assume that "temprorary inconsistencies" (database states that are in violation of some constraint) are allowed to be "seen" by the program that created them. That is, let's assume that a scenario is possible in which a program issues a DML statement DML1 that gives rise to an inconsistent database state, then regains control, does whatever it sees fit to do, then issues a DML statement DML2 that dispenses with the inconsistency. How can you guarantee that "whatever that program saw fit to do", would not ultimately produce information that is (in whatever indirect way) dependent on the inconsistency created, and how can you guarantee that such information, "derived from an inconsistency", does and will not propagate to other programs via mechanisms outside the control of the DBMS (such as queues, pipes, sequential files, LU62 connections, ...) ? Such that the inconsistency will ultimately be visible to the entire world nonetheless ? |
#10
| |||
| |||
|
|
Even when I've used merely procedural languages (ie., without multiple-assignment), |
|
I've always found putting statements in order to be the second-hardest and sometimes slowest part of it all (deciding what to do is the hardest part). *What I like about multiple assignment is the idea of 'simulataneous' statements and I wonder why not have programs where all statements are simultaneous and statement order doesn't matter. |
|
Personally I think every dimension that can be removed from a programming language is to the good. *I don't think I'd mind leaving it up to an environment to determine how a program's actions are to be recorded even if CJ Date might call that 'cheating' |
![]() |
| Thread Tools | |
| Display Modes | |
| |