Since databases are fairly simple when it comes to their visual representation (they are after all just a bunch of squares, the same square shapes over and over again, filled with just different data), it makes sense that they don't need to be represented as OO themselves. Or are they already OO in some ways as it is? It's just squares. OO is not squares. Or is it? Square1.data?
So are there folks out there who are saying we need object oriented databases. But first they will have to define why you would need a wide variety of databases (OO offers inheritance, abstraction, etc). With OO and widgets, you are supporting a wide variety of widgets: buttons, edit boxes, menus, etc. With a database, you are not supporting a wide variety of square shapes. Squares are squares (okay, rectangles and squares). Usually replicated structured data is in square form. 600 people in a database all have the same record structure. Address, Price, Date. Address, Price, Date. Address, Price, Date.
Saying SomeObject.Address, SomeObject.Price, SomeObect.Date is redundant. We know the data is structured, no need to make an object instance to hold that data, thank you.
Well aren't there different tools for different jobs? You aren't going to ship the entire SQL server just to make EditBox1 red and Application1 load. Likewise, you aren't going to create an Object Oriented Database just for the sake of being OO compliant.
I do however get the feeling some of the database weenies work in the database field only, since most of them are against OO even in programming too. I'm a fan of hybrid languages and am not a pure relational/db/procedural zealot myself. The database weenies at times think that the databases could actually run an entire software application. i.e. what language is a compiler written in? Database language? What is the database software compiled with? C? Is C a database? Could that database have been written in C++ or ObjectPascal? Yes, and those aren't databases, Weenie.
Can a database be self standing without a language behind it? No.
Can OO be self standing without a database behind it. No, not in large applications with lots of data.
So eventually, the two - a programming language and a database, and maybe OOP - must intertwine. Even accessing Database1.column1.row5 is a form of OOP if you really want to look at it that way. And accessing Database2.column3.row74 is also a form of OOP if you really want to look at it that way.
The object oriented database approach may just be trying to bring languages closer to databases, so you don't have to be thinking in SQL mode individual from object mode. But for that, I think SQL wrappers (or whatever database you use) solves the problem. Just make a wrapper for SELECT * FROM in your language. Mix the two together.
But what exactly is an object oriented database, and is it programmed with an object oriented language, by chance? Or is it just the object oriented language itself, and not exactly a database, that some people are voting for? More will be found out and posted here soon.
|