home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Demos / OOFILE / docs / odmg.txt < prev    next >
Encoding:
Text File  |  1995-02-05  |  2.6 KB  |  31 lines  |  [TEXT/ttxt]

  1. OOFILE vs ODMG-93
  2. ODMG-93 is a standard established by a working group composed of 5 representatives of many (most?) of the OODBMS vendors. The standard is documented in "The Object Database Standard: ODMG-93" ed. R G G Cattell, ISBN 1-55860-302-6.
  3.  
  4. Remember that one of the goals of OOFILE is to allow mapping onto existing record-oriented and RDBMS databases, as well as acting like a traditional ODBMS. This has required some additional operators, and I've made a substantial effort to simplify the syntax used by the programmer, so ex-4GL users will feel at home.
  5.  
  6. ODMG-93 includes definitions of terms, manipulation and query languages and both C++ and SmallTalk bindings. The following explains why and where OOFILE diverges from their C++ binding and some of their concepts.
  7.  
  8.  
  9. dbTables vs Persistent classes, Refs & Sets:
  10. The ODMG class represents a single instance, with Set and Ref classes used via templates to point to records in the database and collections of records. 
  11.  
  12. OOFILE's dbTable acts as the single class instance, a "factory" for subcollections, a current Set and a Ref all in one. This is accomplished by natural use of the C++ operators, so the operation defines the role.
  13.  
  14. The main reasons for this were my goals of:
  15. - Avoid templates as many people complain of compiler problems.
  16. - Be able to use C++ without an external preprocessor. To do this and still use subcollections directly in data retrieval, update and search statements, I had to have subcollections as instances of the dbTable. Furthermore, to be able to search by and access related fields, relations have to be mapped by normal c++ pointer syntax. 
  17.  
  18. Database Creation:
  19. The ODMG-93 binding lacks the ability to create a database, whereas this is an essential part of OOFILE.
  20.  
  21. Additional GUI mapping:
  22. OOFILE includes a number of GUI integration classes for creating "native" browser and edit field classes. It also provides some "superstructure" classes for managing issues such as a primitive report-writer, multiple-page editing dialogs etc.
  23.  
  24. Relationship specification:
  25. There are a number of ways of specifying relationships and the "OID" fields on a table-by-table basis. Default OIDs will match the situation of a traditional ODBMS but mapping to legacy systems requires we acknowledge the foreign keys over which they currently perform their relations.
  26.  
  27. Query specification:
  28. The ODMG-93 C++ binding performs queries by passing on a string containing a query language statement. The "future binding" options include an English-like syntax very close to OOFILE. (Great minds think alike - my copy of the ODMG-93 book arrived a week after finalising the syntax in beta 3!).
  29.  
  30.  
  31.