John Miller wrote: > On Oct 9, 2005, at 12:45 PM, Patrick K. O'Brien wrote: > >> Oleg Broytmann wrote: >> >>> Thank you. Have I missed something important? >> >> >> Hmm. Tough question. I'm convinced that there is nothing in the >> Relational world that can't be achieved in an OODB with the exception of >> language independence. > > > What about relationships? I guess one thing I've not been able to > understand about OODBs is how to achieve relations like I can with > relational databases. Schevo introduces several things to achieve this. For one, every Entity class automatically gets a corresponding Extent class that manages instances of that particular Entity. Dealing with the Extent is like dealing with a Relational table. Next, a Schevo Entity has fields, which are like Python attributes but are actually instances of Field classes. One field class is an Extent Field, which supports a reference from one entity to another, in a child/parent or many:one relationship. These references are automatically indexed, referential integrity is enforced, and deletes of parents can be declared to be restricted (the default), cascade, or set the field to unassigned (kind of like an SQL NULL, but less evil). -- Patrick K. O'Brien Orbtech http://www.orbtech.com Schevo http://www.schevo.org Pypersyst http://www.pypersyst.org PyDispatcher http://pydispatcher.sourceforge.net