home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / database / 6119 < prev    next >
Encoding:
Text File  |  1992-08-14  |  3.4 KB  |  80 lines

  1. Newsgroups: comp.databases
  2. Path: sparky!uunet!mcsun!Germany.EU.net!news.netmbx.de!netmbx!jrobie
  3. From: jrobie@netmbx.netmbx.de (Jonathan Robie)
  4. Subject: Re: Object What is an OODBMS?
  5. Organization: netmbx, Berlin, Germany
  6. Date: Fri, 14 Aug 1992 15:09:10 GMT
  7. Message-ID: <AY25G4H@netmbx.netmbx.de>
  8. References: <RCZ5NS@netmbx.netmbx.de> <1992Aug13.170024.11525@genghis.borland.com>
  9. Keywords: OODBMS, C++, POET
  10. Lines: 68
  11.  
  12. cy@genghis.borland.com (Cy Shuster) writes:
  13.  
  14. >[discusses limits of the relational model to store real world
  15. >relationships, such as many-to-many]
  16.  
  17. >Have we really come full circle, back to Codasyl networked structures?
  18. >What about the vaunted features of ad hoc queries and on-the-fly
  19. >joins, over casting relations into concrete at schema design time?
  20.  
  21. Did you happen to see the POET tutorial that I posted?  We are
  22. *not* a Codasyl database.  If you look at the examples the difference
  23. is clear: in Codasyl you manipulate the database, in POET you simply
  24. use C++ to manipulate your objects as you would in any other program,
  25. and tell the database when you want objects to be stored.  You can
  26. do ad hoc queries or step sequentially through objects of a given
  27. type.  When you retrieve objects from the database they act just
  28. like C++ objects.  Compare this to Codasyl, in which the program
  29. must explicitly manage the relationships among objects in the
  30. database.
  31.  
  32. We operate on a much higher semantic level than Codasyl, and in
  33. fact on a higher semantic level than relational databases.  Although
  34. you can place pointers or references in objects and follow them,
  35. you do not worry about their database representation--when you store
  36. or retrieve objects the database handles the conversion to and from
  37. C++ pointers and references.  You are guaranteed that non-zero pointers
  38. point to objects of the correct type, and we have referential integrity:
  39. if a referenced object has been deleted, your pointer is set to 0.
  40.  
  41. Look at any book on SQL and you will see how complicated it is to
  42. implement referential integrity or to represent hierarchy.  You will
  43. also notice that the data structures are much more limited than a
  44. normal programming language, and that representing objects is not
  45. possible.  All this comes for free with POET.
  46.  
  47. Note that SQL has pointers too: every foreign key is simply a logical
  48. pointer to a row in another table.  These references are typically
  49. resolved by joins.  Many of these joins are needed only because you
  50. can not represent the data as anything other than a two dimensional
  51. table.  In particular, any join using a foreign key to combine tables
  52. is an admission that you knew the structure you wanted but could not
  53. represent it in the database--the join is no more flexible than a
  54. direct logical pointer, just less efficient.
  55.  
  56. Your schema may be changed at any time, and we have object versioning.
  57. Because the schema represents the objects in your C++ program it is
  58. usually changed at compile time.  This is a limitation imposed by
  59. the C++ language: our class dictionary can actually be manipulated
  60. at run time.
  61.  
  62.  
  63.  
  64. Jonathan
  65.  
  66. =======================================================================
  67.  
  68. Jonathan Robie        jrobie@netmbx.UUCP
  69. Arnold-Zweig-Str. 44    jrobie@netmbx.in-berlin.de
  70. O-1100 Berlin        
  71. Deutschland        Phone:  +37 (2) 472 04 19  (Home, East Berlin)
  72.                 +49 (30) 342 30 66 (Work, West Berlin)
  73.  
  74.  
  75. -- 
  76. Jonathan
  77.  
  78. ===========================================================================
  79.  
  80.