Database Design for Smarties: Using UML for Data Modeling

Work without hope draws nectar in a sieve, and hope without an object cannot live.
Samuel Taylor Coleridge, Work without Hope
The final stop in this trip through the world of database design is the object-oriented (OO) schema. Mapping a UML data model to an OO schema is straightforward, though there are as always a few issues to consider. Many issues arise because OODBMS vendors do not adhere to any schema definition standard. Other issues arise out of the inherent nature of persistent object design, appearing in all OODBMS products and in the ODMG standard as well.
This chapter covers the ODMG 2.0 Object Definition Language (ODL) for object oriented systems [Cattell and Barry 1997]. It gives examples of schema choices in the POET database manager using the POET ODL precompiler and the C++ language binding [POET 1997b, 1997a].
The ODMG 2.0 standard is a comprehensive benchmark for the capabilities of an OODBMS. Unfortunately, the OODBMS community does not yet provide schema definition facilities that conform to the standard. Some, like POET and Versant, provide variations on the standard; others, such as ObjectDesign and Objectivity, have a completely different way of defining their schemas. I use ODL because it provides a generic set of features that map well to the different vendors' software. I use POET here because it provides a full-fledged but incomplete ODL schema definition facility based on ODMG 1.5 ODL. ODL is in turn based on the OMG's CORBA Interface...