Sunday, February 11, 2018

Object Oriented Databases

First thing first is to find the definition of "object oriented databases" through browsing on the internet. From wikipedia, object databases is defined as a database information system in which its information is represented in the form of "objects" as used in "object oriented programming". It is different from relational databases which is defined as "table-oriented". Well, the definition seems a little overwhelming to me because I don't understand the meaning of some terms that are being used in the definition such as "objects" and "object oriented programming"...

What is an "object"?

The article I found did a great job on explaining the concept of an object. It starts with leading me to think the definition of object in the real-word. Examples are like dogs and bicycles, which both share two similar characteristics: state and behavior. States like breed and color for dogs, current speed and current gear for bicycles. Behaviors like barking and changing gears. Object in computer language apparently shares the similar concept such as it also has two states: state and behavior. The state is stored in fields, meaning the variables in CS languages and the behavior is exposed through methods, meaning functions. 

"Methods operate on an object's internal state and serve as the primary mechanism for object-to-object communication. Hiding internal state and requiring all interaction to be performed through an object's methods is known as data encapsulation - a fundamental principle of object-oriented programming." 


 


With knowing the concept of object, the next question is:

What is an "object oriented programming" (OOP)?

OOP is the most modern server-side scripting languages that is used by back-end developer to write software and database technology. OOP tells web applications or website how to behave and build the platform for a site to interact with its database. To put it in a simpler way, if a website uses object-oriented logic, then it is designed to consider data as "objects". Another term that needs to mention is class. Class is like a template to the object. It does not contain data or methods but it defines the the data and methods in an object and it creates the object. Some benefits of the OOP are reusable, less developing time and more accurate coding, data is safe and secure, and shareable. 

Object Oriented Databases

Also called object database management system (ODBMS). Objects store objects rather than data and objects contains two things - attributes and methods. Attribute are data that defines the characteristics of an object. Methods are the behavior of an object like mentioned above. In traditional databases, date controlled by the application is impermanent and is stored on a permanent storage device. However, in object databases, the application has the ability to control both impermanent and permanent data. Object databases are used when there is complex data/data relationships and it should not be used when there is a big amount of simple transactional data.



References 
https://docs.oracle.com/javase/tutorial/java/concepts/object.html
https://www.upwork.com/hiring/development/object-oriented-programming/
http://www.comptechdoc.org/independent/database/basicdb/dataobject.html


Comments:

Hi Sonny! I did my reading topic on object oriented databases and through the reading, I realized that there was another type of databases which is relational databases - which is also the topic you discussed about in your post. I found your post very helpful and informative dut to the fact that you introduced the concept of relational databases very clearly. One of the advantages of object oriented databases is also data security so it provides certain users access to all the datasets with preventing some users the same time like you mentioned.


Hi Deedee! I enjoy reading your post a lot because I think you did a really good job on making the structure of your post to maximum explain the term clearly. I like how you started the post with the question of asking what database is and personally I would like to know the definition before reading anything else. I also like how you analyze the use of databases in design office in different perspectives. I agree with you that database is very important and helpful towards a lot of things: example like amazon and google, which give people the access to the enormous databases. Not sure what people can do without it.


Hi Marino, I agree with you that there are a lot of benefits of object oriented database as I have also researched the same topic. Some of the benefits that I found are the application has the ability to control both permanent and impermanent data and it is mostly used when there is a complex data relationships. And it is not the best to consider when there is a big amount of simple transactional data. I agree with you that this could be very confusing to the users who do not have a good understanding of the computer languages.










5 comments:

  1. Great post! This was very informative and broke down the concepts of Object Oriented Databases very fundamentally. I had a post on relational databases, so it was interested to mark the differences in their structures. I would be interested to see the applications that use Object Oriented Databases. From your last statement, databases such as University course registration databases (transactional data) would be better suited for relational databases. I still don’t have a sense of which applications would be best suited for object oriented databases. Regardless, I think the object structure is very interesting. Breaking down the classification of every object into state and behavior are two very large umbrellas to cover all of the attributes of an object.

    ReplyDelete
  2. Sherry,
    Your post is very informative. I am struggling as well with some of these definitions, and had some significant trouble at the start of writing my blog post. The way you define an object is pretty clear, since it makes sense that everything is stored as an object, and that object would have its own set of definitions. What I still don't fully understand is the difference between object oriented databases and relational databases, as you mentioned. The way I think I understand it after your post is that one stores data with certain definitions that group them, while one has sets of definitions with individual objects stored in them. I may be misunderstanding this though, and hope we can have time to cover this in class.

    ReplyDelete
  3. Sherry - As I was reading your first paragraph I came to the same conclusion as you - it is quite difficult to understand the difference between object oriented databases and relational databases when I'm not even sure I know what an "object" is. After reading your post, I'm still a little fuzzy about what exactly an object is, but I understand much more than before reading! I think one of the difficulties in understanding object oriented databases is that, compared to relational databases, they are a lot less intuitive. We use tables all the time, and understand how to fill data into a table in a meaningful way. Without that concrete structure, objects are a little more difficult to understand.

    ReplyDelete
  4. Xiaoyu,

    I have struggles on my blog post about relational databases as well, and I hope we could be covered after the end of lectures on Tuesday. Your post is very informative about the definition object-oriented databases which is distinct from a tabular-based databases such as relational database. I believe an example of object-oriented databases is material properties stored in a respective BIM component, as all of its attributes is under a large umbrella. It is also great by controlling permanent and temporary data, that is how different elements in a same Revit family can be created.

    ReplyDelete
  5. Sherry L,
    I found your blog post on object oriented databases to be very informative and well written. As someone who has little experience with databases, I like how you explained what an object oriented database was by defining the main components of the database: objects. I did my post on this topic as well, and I also used the same graphic you did. I really like how it did a great job illustrating the concept of what an object is and how it is defined.

    ReplyDelete

Note: Only a member of this blog may post a comment.