Models define how an object model maps to a relational model. The model used follows the Entity-Relationship Modelling. This discipline is still very active, even if it was initiated by M. Peter P. Chen in 1976 (one of the most cited and influent paper in computer science (rank 36), see here ). Some other references can be found at the end of this chapter.
Models may be specified in one of two equivalent formats - in python or in XML. Both ways are detailed in this chapter. The next section presents the sample models used in this manual. Section 2.2 then reviews the main concepts of Entity-Relationship Modelling, then each element in a model are examined in details.
The two sections coming after describe how such models map onto, respectively, the python description, or PyModel (sect. 2.4), and the XML description (sect. 2.5).
Section 2.6 gives some answers to common design-related questions.
Last, section 2.7 presents the tools that help you design and verify the models, and derive from them db-schema and python code.
Some included tools may help you with the design and management of your models: the ZModelizationTool (for Zope) or, alternatively, a collection of command-line scripts. Thus, the easiest way to define a model would be to use the ZModelizationTool inside a Zope instance. However, you do not need a Zope instance to design models, as both PyModels and XML models may be designed in your favorite editor.
Both tools includes some validation logic, so that the common mistakes made when designing a model are identified.
Comments are welcome: Sebastien Bigaret / Modeling Home Page