Comparing and Contrasting the Relational Database Model and Oo Model
Essay by review • November 3, 2010 • Research Paper • 965 Words (4 Pages) • 1,804 Views
Essay Preview: Comparing and Contrasting the Relational Database Model and Oo Model
Comparing and Contrasting the Relational Database Model and OO Model
The relational database model is based upon tables or relations. In this model, the physical implementation of the database is abstracted away from the user. Users query the database using a high-level query language, such as SQL. The relations are made up of columns, which have headings indicating the attribute represented by that column. Tables have key fields, which can be used to identify unique records. Keys relate tables to each other. The rows of the relation are also called tuples, and there is one tuple component for each attribute - or column - in that relation. A relation or table name, along with those relation's attributes, make up the relational schema. Relational Database models are server-centric.
When designing a Relational Database, you must create a table for each entity type, choose or invent a primary key for each table; add foreign keys to represent one-to-many relationships; create new tables to represent many-to-many relationships; define referential integrity constraints; evaluate schema quality and make necessary improvements; and choose appropriate data types and value restrictions for each field (if necessary).
The real power of relational systems lies in the ability to perform complex queries over the data. Relational systems are well understood, and can be highly optimized in terms of queries, scalability, and storage. There is a uniqueness of table rows and primary keys, as well as ease of implementing future data model changes - flexibility and maintainability. To build an effective and efficient application in the relational model, the developer must have a comprehensive knowledge of the tables, and any relationships among them.
Object oriented database management systems are viewed as an alternative approach to meeting the demands of more complex data types. The need to handle complex object-centric data as the main data element is the driving force behind Object Oriented database models. These systems attempt to extend Object Oriented programming languages, techniques, and tools to provide a means to support data management tasks. Object Oriented models are client centric. Object Oriented databases uses attributes containing object identifiers to find objects that are related to other objects.
When designing an Object Oriented model, you must first determine which classes require persistent storage; define persistent classes; represent relationships among persistent classes; and choose appropriate data types and value restrictions for each field.
Object Oriented database models approach from the opposite direction (a programming language itself) to solve the problem of handling complex data types. Since an Object Oriented database model is based upon the language constructs & semantics of the underlying Object Oriented programming language, no query language is required. Instead, the object access semantics of the language are used.
Classes in the object model are self-contained entities. In common with relational tables, they contain their information. But a significant difference is that related data can be stored within the container class rather than as a separate table requiring a foreign key type construct.
Some main differences between the two models are that the business logic is not applied externally in the object model. Instead, a class implements methods that contain code for operating on the class' properties. As stated on the JFWK.com website,
The Object-Oriented model tends to work well for systems with complex behavior and state-specific behavior in which data is secondary, or systems in which data is accessed navigationally in a natural hierarchy (e.g. bills of materials). The RDBMS
...
...