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
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.
ReplyDeleteI 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
ReplyDeleteI 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