Discussion 1: Moses
Object/Relational Database Management Systems (ORDBMSs) are the result of adding Object-Oriented (OO) capabilities to a Relational DBMS or, more accurately, to a SQL DBMS. However, it has been misconstrued to be an overlay of OO on relational. The key challenge is that Object-Orientation has no coherent data model, resulting in a weakening of the relational data model with such a scheme. While OO entity deals with class, object instances and object field, the relational entity deals with table, table row and table column.
A better alternative would be instead of using an arbitrary mapping that reduces power and threatens data integrity, FirstSQL/J presents a better alternative as it utilizes OO functionality to improve the relational fidelity of SQL, and uses OO to implement relational domains, an important relational feature missing in SQL. It improves other SQL capabilities such as stored procedures, user-defined functions (UDFs) and triggers, with full OO functionality. FirstSQL/J provides such mapping to preserve and enhance the relational capabilities of SQL. It supports an OO language for implementing relational domains as well as other extensions to SQL, the syntax enhancements allow seamless access and manipulation of objects in SQL.
Discussion 2: Ashley
The two object-capable data programming methods are OODBMS and ORDBMS. These two methods are more preferred than the RDBMS because they are less expensive and are more user friendly. As discussed in week 5, these can handle complex data, no query language needed as it matches that of SQL, and one data model. (Slashdot, n.d.) An object-capable data programming can store data and methods whereas RDBMA only store data. ORDBMS can mix both RDBMS and OODBMS together which is easer for users who are more familiar with SQL than OQL.
Slashdot. Why Aren’t You Using An OODMS? (n.d.). https://slashdot.org/story/01/05/03/1434242/why-arent-you-using-an-oodms.
Discussion 3: Alma Albano
An object database is a database management system in which information is represented in the form of objects as used in object-oriented programming. Objects are self-contained components which to contain properties and methods to make certain types of data useful. Objects are more complex than the contents of RDBMS which are relatively simple, and thus object databases are not table-oriented.
In OODBMS, objects are organized into super classes and subclasses, which can be understood in terms of the is a relationship. A subclass is a more specific instance of a superclass. For example, an orange is a citrus fruit, which is a fruit. A shepherd is a dog, which is an animal. Each superclass is not limited to one, but can have multiple subclasses, such as a Pen class can have Fountain Pen and Ballpoint Pen subclasses to describe different kinds of pen.
Object databases gained popularity in the early 1980s due to growing need to store and process large amounts of more complex data types in an attempt to more accurately model the real world. In strict OO view, the nature of all data is object-oriented, as everything in the world can be modeled as an object. In other words, everything is part of something else which is part of something else. OODBMS allowed for encapsulation, inheritance, abstraction, and polymorphism, and better interfaced with OO languages like C++ or Java.
As a quick recap; Encapsulation describes the inclusion of all the properties, methods, and resources needed for the object to function within that object. Typically, only the object’s own methods can directly inspect or manipulate its fields. Encapsulation means that the internal representation of an object is generally hidden from view outside of the object’s definition. Therefore encapsulation can be used as a language mechanism for restricting direct access to some of the object’s components (also known as information hiding).
Inheritance enables new classes to receive properties or methods of existing classes.
Data abstraction is the reduction of a particular body of data to a simplified representation of the whole. Through the process of abstraction, programmers can hide all but the most relevant data about an object in order to reduce complexity and increase efficiency. Finally, polymorphism refers to a language’s ability to process objects differently depending on their data type or class. This means, no matter what shape an object is, applying the area method to it will return the correct results.
OODBMS contain objects with many-to-many relationship, which are accessed by the use of pointers rather than SQL, which is why OODBMS are a form of Not Only SQL or NoSQL databases. Pointers are linked to objects to establish relationships, and as such, OODBMS can be programmed with small procedural differences without affecting the entire system.
Some of the most popular Object Oriented DBMS include Caché, Db4o, Versant Object Database, ObjectStore, Matisse, and GemStone/S, although their use is by far not as widespread as Relational or Object Relational DBMS. This is most probably due to the fact that a lot of database players don’t support it, or atleast don’t support OODBMS exclusively.
Object-relational databases are the direct result of SQL evolution and represent a hybrid of both previous approaches used to store semi-structured data. Object-Relational Databases can be described as object-oriented formats on top of relational technology, in a relational context. ORDBs basically store data in tables of objects rather than in tables of rows, which grants these forms of data stores the advantages of both worlds.
The benefits of object-relational databases include being able to handle complex data types, encapsulation, and inheritance, but also aggregation and complex object extensibility. ORDBMSs allow developers to embed new classes of data objects into the relational data model abstraction (and on top of SQL), but the mixture of both technologies can also result in difficult to understand schemas and result in performance problems.
Some examples of the most commonly used ORDBMS include Oracle Database, PostgreSQL, Microsoft SQL Server, or Informix. More recently, it has become common to refer to ORDBMS as RDBMS, but it is important to understand the difference.