Re: updatable views
Leo Mekenkamp <[email protected]> Sun, 30 Jan 2005 00:15:17 +0100
| Newsgroups | gmane.comp.java.ozone.user |
|---|---|
| Message-ID | <1107040517.8264.43.camel@jupiter> |
On Fri, 2005-01-28 at 19:38 +0100, SainTiss wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Certainly... > > Try > http://citeseer.ist.psu.edu/rd/31714464,229922,1,0.25,Download/http://citeseer.ist.psu.edu/cache/papers/cs/1421/ftp:zSzzSzftp.fmi.uni-konstanz.dezSzpubzSzdbiszSzPublicationszSzSLT:DOOD91.pdf/scholl91updatable.pdf Dry stuff. Where to start? First of all, it is a bit late when I am typing this and English is not my first language. That alone can cause communication problems over e-mail, and when you add my genetic defect of having diplomatic skills that can be compared to an elephant in a porcelain shop, things can get really nasty ;-). In short: this is my personal opinion; I do not want to stand on anyone's toes, and I'm sorry if I do. Now to the article: "(...) any query (...)". Ah, that's where it goes wrong, right in the introduction. Why would we need a query? A query is _an_ implementation for getting data out of a database, not _the only_ one. I for one do not like queries in a language that is different from the language I am writing in at that moment, if only for the fact that the compiler will not correct my ever so often occuring typing errors in queries. I absolutely despise two programming languages in one source file. Now for the reasons for such views: 1) Size of the schema. I fail to see the reason why a schema need to be small to be manageable. Any OO application can have a zillion classes; as long as you keep inheritance logical (and with java: package structure logical) I see no reason to further split this up. (Getting fed up with my arrogant tone yet? ;-) 2) Authorization. Why not simply make some method calls unavailable? Why use views? Why not have the database throw an exception? 3) Integration. Why not use value objects, delegates or whatever? There are perfect working patterns that every developer should know, why add another concept? 4) Upward compatibility. Again, delegation/value pattern (Ozone uses yet another 'transparent' solution). I fail to see any of these 4 points as a good reason. Therefor I fail to see the reason for views in an oodbms. The article continues to use set-oriented algebra as if it were the only way. The talk about 'insert', 'delete' and 'update' further gives the impression that the writer thinks in a relational query structure. Ozone is not at all a relational database; the main thing it has in common with rdbms-es is that they both store data, and it pretty much ends there. Now what I think of Ozone: Ozone is a great way of making sure that objects and references to other objects are persisted from one instance of a JVM to another one starting up after the original JVM. The nicest thing about Ozone is that it can be almost invisible; it does not get in the way. You do not have to think that you use a database at all. No need to 'store objects', 'update objects' or whatever, you simply program in Java as you would normally do (with a few caveats of course), and your data is simply there. There is even a bloody garbage collector! There are no queries in Ozone, simply because there are no queries in Java. Period. In Java, you get from one object to another by following a reference. In Ozone it is exactly the same. Ozone mimics the way Java works; it does not introduce alien concepts as queries, relations, views, etc. Now, back to your original question (if you could bare to read this far ;-): does Ozone support views. No, it does not. Question back to you: why should Ozone support views? More broadly: why should Java support views? Cheers, Leo ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl