I am reading me into object oriented databases right know and have to make a little presentation.
Something I don't get and nowhere can find is following problem:
What happens with the data of the database when I change my class hierarchy.
For example I have A extends from C. But then I notice that C has to exten开发者_开发知识库d from B and B has to extend from A:
A <|-- C
A <|-- B <|-- C
What happens to the (user) data I stored in the database?
If the database can't be adopted, the data can't be used anymore, right? So when for example I have a social network all data whould be lost and the network has to start all over again... Am I right here or do I miss something?
Most object databases have tools for migrating the schema and then updating the objects. Objectivity/DB, for instance, allows the developer to choose whether to migrate all affected objects in a single transaction, migrate them when encountered, or leave them in the old format (e.g. on a read-only device) and present objects in the new format. There's also an extensive Active Schema capability that allows applications to define, populate, use and change object classes dynamically. All of this can be done with a system online.
http://www.objectivity.com/pages/objectivity/active-schema-dynamic-class-declaration.asp
精彩评论