From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,bf02c238a92156a3 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news2.google.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Windows Ada database support. Date: Wed, 8 Dec 2004 10:05:51 +0100 Message-ID: <18u46qzjs6s8v.19927r9ay0kkh.dlg@40tude.net> References: <5e3e03a7.0411240431.7e037a4e@posting.google.com> <2004112420030750073%david@bottoncom> <11w2chxxtggn9.a442ecwtujd2$.dlg@40tude.net> <1jrbh30djhwuh$.cpwm02mv7d1d.dlg@40tude.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: individual.net jRztPjBIsLdrw1LZAt3kBwfptAOBmkTO1/+s3kitK0MyjOXYY= User-Agent: 40tude_Dialog/2.0.12.1 Xref: g2news1.google.com comp.lang.ada:6835 Date: 2004-12-08T10:05:51+01:00 List-Id: On Wed, 8 Dec 2004 02:24:25 +0000 (UTC), Georg Bauhaus wrote: > Dmitry A. Kazakov wrote: >: On Tue, 7 Dec 2004 15:49:36 +0000 (UTC), Georg Bauhaus wrote: >: >:> Dmitry A. Kazakov wrote: >:> >:>: I think that this is a shortcoming of the very concept of a relational >:>: view. Relation is not an array. Period. >:> >:> Who says that a relation is an array? >: >: Nobody. The problem is that we need arrays, or more generally, ordered >: containers. This is the way the most people think about tables. > > Hm. If at the DB level you ask, > > SELECT S.key, T.foo, T.bar from S, T > WHERE (S.key BETWEEN 100 AND 200) > AND T.foo = S.key > ORDER BY S.key This is the source of the problems in my view. What does SELECT in application terms? A developer would like to be two storeys above that. > Then you have in Ada.Container terms, > function Floor (Container : Map; > Key : Key_Type) return Cursor; > > function Ceiling (Container : Map; > Key : Key_Type) return Cursor; > where > S.key >= 100 can be made the floor > and > S.key <= 200 can be made the ceiling. You are thinking in terms of SQL. From this point of view nothing or very little could be done. And after all, GNADE provides embedded SQL for that stuff. >: They do not >: think about them in terms of relations. > > You mean they do not think about the relations between records, > for example? Well, yes, but how could this be overcome using > another language? A fair amount of referential integrity can > be "extracted" from an ER diagram using standard means. If this > way of defining tables in a database is not standard, do you think > that another standard, Ada, is going to help? It should be an Ada standard, not a DB standard. Does Ada influence any hardware standards? >: Why an application that need to store data, should care about that? Sorry, >: I still cannot understand it. > > 1/ other applications may (have to) modify your data without notice. These should either use the same bindings or be conform. That's the requirement of the case A in my classification. When you store a BMP image, you do not expect to be able to read it as JPEG, right? > 3/ storing data might take time. RDB or not, I need to know this If you mean performance, then that's the case with programming in general. User of any feature should know what is cheap and what is expensive. When you pass 2MB object by value, you know what to expect. No difference here. If you mean shared access then the standard should provide mutual exclusion for critical sections. The implementation may use transactions, file locks, whatsoever available to achieve exclusion. It is responsibility of the application to express the exclusion constraints, it is no different from how we do it when we program tasks. > 2/ you might need backups and secure storage. This is provided by > good RDBMSs. Same as above. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de