I am currently designing a database to store textual excerpts: quotations from certain genres of literature will be stored. Relations will exist between different types of quotes and quotes and their topic sentences etc.
I am deliberating on whether to use an RDBMS or an OODBMS for this project. I have read about the advantages & disadvantages of both and now have a few questions:
1. Do OODBMSs support data integrity functions? In other words, is there a way to define primary keys in an OODBMS and does the OODBMS check inputted objects for compliance with this constraint? I know that objects are given an implicit unique reference but sometimes, these are not enough, hence the need for a unique identifier (i.e. primary key), and hence the need for the OODBMS to check this constraint whenever a new object is placed in the database. Do any current OODBMSs do this?
2. If I use a particular language, say Java, to identify my classes, can a C++ or a C# application read and use these objects? If this cross-language compatibility exists in current ODBMSs, how easy and smooth is this? My concern is that if there is no cross-language compatibility, tying the data to a particular language would be a disastrous thing to do in the long run.
3. Some critics of OODBMSs have said that there does not exist an Object-Oriented data "model" such as the Relational model. Is this true? And in any case, can't one formulate a strict mapping between an ER-diagram and the classes that are identified in the OODBMS and therefore essentially, design the classes based on a variant of the relational model?
Thanks very much for your time.