Tuesday, February 9, 2016

B5 - Group C - Cristian Almendariz

            I will like to say that before this post, I did not know what databases or object-oriented databases were.  For this reason, I looked up several websites for a simple yet easy to understand definition.  I will like to start by defining what databases and objects are.  As it name describes, a database is a base of data.  The properties of databases depend on dead, static data meaning that this data will remain the same all the time.  On the other hand, objects will hide the non-static data under behaviors that can change.  Traditional database applications will manipulate temporal data while the data within the database is permanent.  On the other hand, object database application will manipulate both temporal and permanent data [1]. 
In my research, I was able to find that object oriented databases are also known as Object Database Management systems (ODBMS) [1] or Object-Oriented Database Management Systems (OODBMS) [2]. Object-oriented databases store their contents as objects rather than data (e.g. real numbers, integers, or strings).  These objects are utilized in object-oriented programs (e.g. C++, Smalltalk, Java, and others).  Objects are composed of attributes and methods.  The characteristics of an object are defined by data known as attributes.  This data may be really simple (e.g. strings, real numbers, integers) or be a reference to a more complicated object.  On the other hand, methods are procedures or functions that define the behavior of an object.  For this reason, objects have both executable code and data.  Furthermore, classes are typically used in object-oriented programming and they can be tough to be as a template to the object.  A class will not contain data or methods itself but instead define the data and methods the object will incorporate.  Additionally, classes may be used to recreate parts or methods of the object that are not stored in the database [1].  Object-oriented databases store data as objects and can be interpreted only by using the methods specified by its class [3].
             For a better understanding, object-oriented databases can be compared to relational databases.  Relational databases store data in two-dimensional tables that have rows and columns.  Typically, these tables will be “normalized” to prevent unnecessary data repetition.  Each column has a unique “value” identifier to allow a better sorting and understanding of data.  It allows data to be identified so it can be obtained or changed if necessary.  Objects can be put into relational databases but they must be described in terms of simple integers, strings, or real number data.  This breaking and sorting of complex information can be labor intensive and may require the writing of code [1].
            The use of object-oriented databases is recommended for complex data and/or complex relationships.  On the other hand, they should be used when are hardly any join tables and there is a lot of simple transactional data.  There a numerous advantages and disadvantages with using object-oriented databases compared with relational databases.  Advantages such as less required coding, easier navigation, reduced paging (length), better concurrency control, data model will be based on the real world, it will work well for distributed architectures, and object will not require assembly and disassembly saving coding time and execution time to assemble or disassemble this objects.  Disadvantages such as slow access speed due to late binding, lower efficiency for simple data and relationships, relational databases (RB) have simpler tables, support for RB is certain and less likely to change, RB has broader number of user tools, and RB has more stable standards [1].  For the most part it can be assumed that object oriented databases are better for more complex situations and relational databases should be used for simpler situations.

William,

I think you made an excellent point by saying that object-oriented databases simplify storage and data use.  I believe that object-oriented databases were the foundation for nowadays-complex software’s.  Without it, many of them would not be possible or they will take significantly higher computing processing requirements.  Moreover, object-oriented databases have made programing less labor intensive and allow it to become more complex.  I also think that Revit is a program that employs and takes great advantage of object-oriented databases to create really complex models.  Your post’s sentence completion example helped me have a better understanding of what object-oriented databases are and how they work.  I was able to see how each element of an object-oriented database plays a significant role and without any of them it would not work.  Additionally, the method is really important in determining what this database will do “change the meaning of the sentence”.

Alexis,


I like the your comparison between relational database and object oriented databases.  From your information, I am able to deduct that object oriented databases could and should be used for more complex situations/operations.  I was able to find that, although object oriented databases are really good for complex operations they are not reliable for simple operations.  For this reason, it is recommended that relational databases to be used for simple operations.  Going along with the fact that CAD uses object-oriented databases, I believe that Revit also uses it specially for creating families. 

Reference





3 comments:

  1. Cristian, your post was really helpful to understand what a object oriented database and its differences with the rational databases. As you mentioned, the OODB are more suitable when used for more complex situations. This is due to its enriched modeling capabilities as it allows the real world situations to be modeled more closely. An object is capable of storing all the relationships it has with other objects, causing those objects to be formed into more complex objects which traditional databases cannot cope with easily. This helps generate more realistic models.

    ReplyDelete
  2. I also have no idea about object oriented database before, this assignment, but through the research this time,at least I get some basic idea about what object oriented database is, what's the advantage and disadvantage of it, and when are we able to use it. object oriented database is useful for complex data relationship, I think it should be very useful in the future

    ReplyDelete
  3. I also have no idea about object oriented database before, this assignment, but through the research this time,at least I get some basic idea about what object oriented database is, what's the advantage and disadvantage of it, and when are we able to use it. object oriented database is useful for complex data relationship, I think it should be very useful in the future

    ReplyDelete