What are the main differences between the relational model and the hierarchical model? What are the main differences between the relational model and the object-oriented model?
Whenever I see or hear the word "relational" I assume databases are the topic. So, the difference between relational and hierarchical databases is the structure of the database and the method used to locate data.
Relational databases are general-purpose data storage and retrieval systems that can adapt to different needs and applications. They use indices that link information from one table space to another. Think of table spaces as granular content areas linked for fast searching by established indices. Indices can be changed, although it is not a trivial operation and can impact the performance of the system. Data can also be retrieved across table spaces without using indices, but it is much slower. If the volume of requests is small, it?s no big deal - but if the volume of requests is high, the performance is much better if the right indices are established.
Hierarchical databases are used for very fast, specific-purpose data storage and retrieval. A hierarchical database stores data according to a set and rigid design. The only way to access data is through the hierarchy - which can be very fast if you know exactly what you want the database to do. Hierarchical databases are constructed for specific purposes where the requirements are not expected to change.
I'm less sure how to answer the question about the object-oriented model. "Object-oriented" is such a broad term and can be applied so broadly - I need a little more context to answer this. But in keeping with my own code of "what the heck!" I'll try to answer anyway.
From my limited knowledge, an object-oriented database is typically implemented using relational database technology. The difference is that the object-oriented database can have all kinds of data in it - not just alphanumeric characters. For instance an object-oriented database can have multimedia data stored in it. This obviously means there is some way of accommodating fields of variable length in the database - which is way beyond what ought to be attempted in this format!
Now this raises an interesting problem - is there a way to link data that is intrinsic in nature - like multimedia data? For instance, if you tried indexing an object oriented database on video segments - could you do it? I don't think so - not by inspection of the data anyway - it would take too long. Still other fields could be used as indexes in such a database.