![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
We are looking at moving away from a commercial RDBMS to either MySQL (InnoDB) or Matisse. I haven't seen a good discussion on the benefits of an OODB vs a SQL database. My CTO and I have been discussing it back and forth. I am using experience as a DBA/Developer, plus articles and newsgroups. He is using Matisse product info (we are planning on testing, and he's a very smart guy, so don't picture him as a pointy-haired-boss). Simplicity: --------------- CTO: It appears to be simple. The amount of time spent tuning, setting up, etc is much lower; I am hoping we wouldn't need specialized skills and tools to manage the database(s). Give it some disk space, and a few other parameters, and off it goes; it never crashes, and it's very fast. Me: A simple interface means that if it's dead-dog-slow, the administrator has no options to tune it. All software crashes. And a dearth of tools means we will have fewer tools to help get the job done. In addition, it might be impossible to write scripts to help automate certian functions. Performance: --------------------- CTO: Object Oriented databases are fast. Faster than relational databases. The way that objects are stored on disk means that data-access is fast. Me: I think we need to benchmark (and we will). Reliability: ---------------- CTO: Matisse runs nuclear power plants. It sits in Cisco routers, moving packets about. It's *very* reliable. Me: Sure. Nuclear power plants have different requirements than we do. Not sure how much data a router stores (it might have a database with routing instructions that it reads; again, very unclear) but it would have to store it in RAM - probably not more than a few megabytes. MySQL has made leaps and bounds with reliability, and our current commercial-database has been very reliable as well. Object Relational Impedence: ----------------------------------------------- CTO: We waste alot of time writing JDBC to move data between objects and the database. That's lost productivity that we could use elsewhere. Me: It is time consuming. JDBC code is run-time checking; a SQL query compiles file, but dies because there is a bug in the SQL. But there are great, free tools like Hibernate that make it very easy to push objects to relational databases. There are also lots of commercial products. Still - it's kludgy to to do, and every additional tool is more setup, more bugs, more learning. Speed of Development: ------------------------------------- Me: MySQL moves faster than Matisse. Already, you can find 64-bit versions of Linux and MySQL for the Opteron (a CPU I suspect will be highly advantageous to databases). CTO: True. The Matisse-SQL Interface Leaves Much To Be Desired: ----------------------------------------------------------------------------------------- Me: We did some basic testing using the SQL interface to Matisse, and a simple Group By made the query take minutes when a commercial database took seconds. CTO: They fixed that, and they are now somewhat comparible. Plus, the SQL interface is not really the best way to talk to an OODB Me: We have alot of SQL. We will not be able to use the OQL or talk directly with Objects. MySQL is Free, Matisse is Not: ------------------------------------------------ Me: nuff said. CTO: I like free. Me: if we use it, we should donate money. CTO: we'll cross that bridge when we come to it. Conclusion: ------------------ CTO: I like Matisse; I think we should test it out. And all OO databases make the same claims. Me: If it sounds too good to be true, it probably is. But that leaves the door open that it might be too good to be true. ------------------------------------------------------------------------------------------------ I'm wondering if anyone out there can provide some more insight into the differences between RDBMS and OODB. I saw a similar question (less verbose, but similar) and someone responded with an article (http://www.15seconds.com/issue/030407.htm) which errupted into an argument about the author's understanding of databases (which derailed the entire discussion). Surely someone has something more to contribute? Thanks in advance, David. |
#3
| |||
| |||
|
|
5. Programs, which work together with SQL databases, have to copy some data into ram, then do something and restore into SQL. OO databases have hibernation ( persistence of data ), java code directly works from and onto database sets. No copy of any data is required (to be more precise: the programmer does not have to care about syncing data !). See: http://hibernate.bluemars.net/ This feature only can be used from OO programming languages, like Python (http://sourceforge.net /projects/modeling/, Ruby, JAVA, .NET Languages) Object - Relational Bridges exist. |
#4
| |||
| |||
|
|
Guido Stepken <g.stepken (AT) t-online (DOT) de> wrote: 5. Programs, which work together with SQL databases, have to copy some data into ram, then do something and restore into SQL. OO databases have hibernation ( persistence of data ), java code directly works from and onto database sets. No copy of any data is required (to be more precise: the programmer does not have to care about syncing data !). See: http://hibernate.bluemars.net/ This feature only can be used from OO programming languages, like Python (http://sourceforge.net /projects/modeling/, Ruby, JAVA, .NET Languages) Object - Relational Bridges exist. This is slightly out of context. Hibernate is an "old school" (for you relational theorists: stupid and useless) O/R mapper. It is not really related to "hibernation" which in turn I've never found in combination with "persistence of data". |
#5
| |||||||
| |||||||
|
|
Hi Puppetman ! Main Differences between OODBMS and RDBMS database: 1. Add a column to a SQL Server (alter table). At that moment all inserts and updates will fail |
|
2. If a team of programmers work together on a huge database (SQL) application, a change in database structure will force many changes on many places in source. |
|
OO databases can change structure all the time, without breaking any code. |
|
3. OO databases can optimize i a different manner. The group in a 2d/3d/4d/5d.. hypercube in such way, that all known complex queries run in a minimum time. They are built up hyperdimensional. After the automatic reorganisation of all data, they run like hell. Factors of 100-3000 are not uncommon. |
|
4. OO databases with SQL interface, like Mantisse, Cache (Intersystems) are available, SQL interface is slow, compared to OO Interface. |
|
5. Programs, which work together with SQL databases, have to copy some data into ram, then do something and restore into SQL. OO databases have hibernation ( persistence of data ), java code directly works from and onto database sets. |
|
7. Huge programs cannot be made without Rational Rose. |
#6
| |||
| |||
|
|
We are looking at moving away from a commercial RDBMS to either MySQL (InnoDB) or Matisse. I haven't seen a good discussion on the benefits of an OODB vs a SQL database. My CTO and I have been discussing it back and forth. I am using experience as a DBA/Developer, plus articles and newsgroups. He is using Matisse product info (we are planning on testing, and he's a very smart guy, so don't picture him as a pointy-haired-boss). Simplicity: --------------- CTO: It appears to be simple. The amount of time spent tuning, setting up, etc is much lower; I am hoping we wouldn't need specialized skills and tools to manage the database(s). Give it some disk space, and a few other parameters, and off it goes; it never crashes, and it's very fast. Me: A simple interface means that if it's dead-dog-slow, the administrator has no options to tune it. All software crashes. And a dearth of tools means we will have fewer tools to help get the job done. In addition, it might be impossible to write scripts to help automate certian functions. Performance: --------------------- CTO: Object Oriented databases are fast. Faster than relational databases. The way that objects are stored on disk means that data-access is fast. Me: I think we need to benchmark (and we will). Reliability: ---------------- CTO: Matisse runs nuclear power plants. It sits in Cisco routers, moving packets about. It's *very* reliable. Me: Sure. Nuclear power plants have different requirements than we do. Not sure how much data a router stores (it might have a database with routing instructions that it reads; again, very unclear) but it would have to store it in RAM - probably not more than a few megabytes. MySQL has made leaps and bounds with reliability, and our current commercial-database has been very reliable as well. Object Relational Impedence: ----------------------------------------------- CTO: We waste alot of time writing JDBC to move data between objects and the database. That's lost productivity that we could use elsewhere. Me: It is time consuming. JDBC code is run-time checking; a SQL query compiles file, but dies because there is a bug in the SQL. But there are great, free tools like Hibernate that make it very easy to push objects to relational databases. There are also lots of commercial products. Still - it's kludgy to to do, and every additional tool is more setup, more bugs, more learning. Speed of Development: ------------------------------------- Me: MySQL moves faster than Matisse. Already, you can find 64-bit versions of Linux and MySQL for the Opteron (a CPU I suspect will be highly advantageous to databases). CTO: True. The Matisse-SQL Interface Leaves Much To Be Desired: -------------------------------------------------------------------------- --------------- Me: We did some basic testing using the SQL interface to Matisse, and a simple Group By made the query take minutes when a commercial database took seconds. CTO: They fixed that, and they are now somewhat comparible. Plus, the SQL interface is not really the best way to talk to an OODB Me: We have alot of SQL. We will not be able to use the OQL or talk directly with Objects. MySQL is Free, Matisse is Not: ------------------------------------------------ Me: nuff said. CTO: I like free. Me: if we use it, we should donate money. CTO: we'll cross that bridge when we come to it. Conclusion: ------------------ CTO: I like Matisse; I think we should test it out. And all OO databases make the same claims. Me: If it sounds too good to be true, it probably is. But that leaves the door open that it might be too good to be true. -------------------------------------------------------------------------- ---------------------- I'm wondering if anyone out there can provide some more insight into the differences between RDBMS and OODB. I saw a similar question (less verbose, but similar) and someone responded with an article (http://www.15seconds.com/issue/030407.htm) which errupted into an argument about the author's understanding of databases (which derailed the entire discussion). Surely someone has something more to contribute? Thanks in advance, David. |
#7
| |||
| |||
|
|
Paul Tiseo wrote: 3. OO databases can optimize i a different manner. The group in a 2d/3d/4d/5d.. hypercube in such way, that all known complex queries run in a minimum time. They are built up hyperdimensional. After the automatic reorganisation of all data, they run like hell. Factors of 100-3000 are not uncommon. Huh? "Hyperdimensional"? Please define your use of this term and also add how a relational database is non-"hyperdimensional". |
#8
| |||
| |||
|
#9
| ||||||||
| ||||||||
|
|
Hi, Paul ! OO Databases are built up in a quite different manner. |
|
Objects can contain other objects, you can let grow your business like you want. |
|
At every time you can add more attributes, delete some, change, without breaking any code. |
|
If you define a behaviour of a class, what to do, if a attribute doesn't exist any more, or a attribute is added, (error exception) no code will break. |
|
Whereas in RDBMS databases the attributes define a table and objects are in the table, |
|
the OORDBMS defines a class, invokes a instance and then adds some attributes to a single instance or even at a class, so it will change all instances at a time (redefinition of a class). |
|
The OO design is much more flexible and has much less friction within the programmer team, than all RDBMS designs. |
|
Learn python and http://modeling.sf.net, a very good insight in OO modeling for old RDBMS specialists. I promise you, you will never ever go back to RDBMS designs. |
#10
| |||
| |||
|
|
I know Python, and many other languages. I am a developer. However, I am also smart enough to realize that the relational model confers immediate and long-lasting benefits that one should always have in any database, irregardless of how its physical storage is executed. ---------------------------------------- Paul Tiseo, Systems Programmer Research Computing Facility, Mayo Clinic tiseo128.paul23 (AT) mayo (DOT) edu (please remove numbers to email me) |
![]() |
| Thread Tools | |
| Display Modes | |
| |