Results 1 to 14 of 14
  1. #1
    Join Date
    May 2007
    Posts
    24

    Choosing the right OODB

    I am having a hard time finding a good free OODB for my application.
    The application will be written in Java. I also have plans to sell it.

    I have looked at GOODS, Ozone, and EyeDb. Can anyone tell me if these 3 are good choices?

  2. #2
    Join Date
    Jun 2003
    Location
    Ohio
    Posts
    12,592
    You are assuming that there is such as thing as a good OODB.
    If it's not practically useful, then it's practically useless.

    blindman
    www.chess.com: "sqlblindman"
    www.LobsterShot.blogspot.com

  3. #3
    Join Date
    May 2007
    Posts
    24
    Quote Originally Posted by blindman
    You are assuming that there is such as thing as a good OODB.
    I am currently using Postgresql, and oodb are suppose to be faster than relational database and easier to work with.

    I was looking into db4o, which seems pretty nice, but requires a commercial licence.

  4. #4
    Join Date
    Nov 2004
    Location
    out on a limb
    Posts
    13,692
    Quote Originally Posted by CrazyTn
    I am currently using Postgresql, and oodb are suppose to be faster than relational database and easier to work with.

    I was looking into db4o, which seems pretty nice, but requires a commercial licence.
    depends who is doing the comparison, for what purpose
    it also depends on what you are trying to do

    politicians and other snake oil salesmen will always tell you their approach is better, heck it may even sound better, they may even convince you its better. Is it....... ? who knows.

    There are precious few Object orientated db's out there which have gained the support and trust and usage of systems professionals, there are many non OODB, relational db#s which have. Doens't mean that there isn't a good OODB out there, or coming... just there doesn't seem to be 'THE' one.
    I'd rather be riding on the Tiger 800 or the Norton

  5. #5
    Join Date
    May 2007
    Posts
    24
    Quote Originally Posted by healdem
    depends who is doing the comparison, for what purpose
    it also depends on what you are trying to do

    politicians and other snake oil salesmen will always tell you their approach is better, heck it may even sound better, they may even convince you its better. Is it....... ? who knows.

    There are precious few Object orientated db's out there which have gained the support and trust and usage of systems professionals, there are many non OODB, relational db#s which have. Doens't mean that there isn't a good OODB out there, or coming... just there doesn't seem to be 'THE' one.
    I looked into OODB with my Professor's recommendation. From what I have read,
    the benefits of OODB is much greater than the disadvantages compare to a Relational database.

    But relational databases are still much more popular than OODB.

  6. #6
    Join Date
    Nov 2004
    Location
    out on a limb
    Posts
    13,692
    OOP is no doubt a great boon to software development. its still a relatively recent design paradigm.

    adding the extra layer that OOP requires to a database tends to slow it down.. and in some cases slow it down dramatically.

    having done a quick google,.. it wouldnt clam its extensive, it seems the db40 may be faster than other OODB's... but I really doubt that it is faster than a relational db at geting, manipulating and saving data.

    one of the references suggested that db40, like other OODB's was really good at small scale data storage and retrieval but was inadequate on enterprise level. Ive tried to use OO design paradigm in PHP websites and .NET applciations... but to get to the data in an abject way always seems to be an uneccessary pain. if I have to support different db types, then depending what world Im in I'd use either a supertype class if using composition & aggregation methods, or I'd use a sub type if using a delegation model.

    The trade off may well favour usign a OODB in developemnt AND code maintenance terms, and in terms of 'purity' of the code, but at present when it comes to sheer transactional horsepower those advantages are often trashed against sheer volume of work required to meet enterprise needs.

    It may well be that as computer power increases and hardware costs drop then the extra overhead required for a truly scalable OODB may make it a contender.. but right no I have my reservations.
    I'd rather be riding on the Tiger 800 or the Norton

  7. #7
    Join Date
    Jun 2003
    Location
    Ohio
    Posts
    12,592
    Quote Originally Posted by CrazyTn
    I am currently using Postgresql, and oodb are suppose to be faster than relational database and easier to work with.
    I haven't used Postgres, but it must really suck if it is slower and harder to work with than an OO database.
    OO is a good paradigm for application programming, but I am not convinced that it is beneficial for database design. I suspect that your professor has little real-world experience in this.
    In my opinion, the principles of Normalization ARE the database equivalent of Object Oriented design. By encapsulating logical entities and reducing redundancy, normalization serves the same purpose as OO.
    If it's not practically useful, then it's practically useless.

    blindman
    www.chess.com: "sqlblindman"
    www.LobsterShot.blogspot.com

  8. #8
    Join Date
    Nov 2002
    Location
    Jersey
    Posts
    10,322
    Quote Originally Posted by blindman
    You are assuming that there is such as thing as a good OODB.
    You crack me up

    And OODB's where any good at all, wouldn't you think the big 3 (DB2, SQL Server, Oracle) would be OO?
    Brett
    8-)

    It's a Great Day for America everybody!

    dbforums Yak CorralRadio 'Rita
    dbForums Member List
    I'm Good Once as I ever was

    The physical order of data in a database has no meaning.

  9. #9
    Join Date
    Jun 2003
    Location
    Ohio
    Posts
    12,592
    Yes. If there was a good OODB out there, MS would have surely bought or squashed it by now.
    If it's not practically useful, then it's practically useless.

    blindman
    www.chess.com: "sqlblindman"
    www.LobsterShot.blogspot.com

  10. #10
    Join Date
    Jun 2004
    Location
    Arizona, USA
    Posts
    1,848
    Quote Originally Posted by blindman
    Postgres ... it must really suck if it is slower and harder to work with than an OO database.
    It isn't. PostgreSQL's equivalent to SQL Server/Oracle in speed, and is no harder to work with than SQL Server. PostgreSQL is a relational database that supports table inheritance.

    Table inheritance allows you, for instance, to set up your classical movie rental database videos table as follows:

    Code:
    Create Table videos
    (
      video_id   character(8) Primary Key,
      title      VarChar(80),
      duration   Interval
    );
    Now, to hold DVD data,
    Code:
    Create Table dvds
    (
      region_id    integer,
      audio_tracks varchar[]
    ) inherits videos;
    (the square brackets indicate an array of varchar)

    And, to hold tape data (let's assume that you still have some beta formatted tapes in a box somewhere...)

    Code:
    Create Table tapes
    (
      tape_format Character(4)
    ) Inherits videos;
    Now, when you select * from videos, the common data (video_id, title, and duration) for all the videos in both the dvds and tapes tables would be returned

    When you select * from dvds, you would get fields for video_id, title, duration, region_id and the audio tracks, but only for records entered into the dvds table.

    Likewise, when you select * from tapes, you would get fields for video_id, title, duration, as well as the tape format, but only for the records entered into the tapes table.
    Last edited by loquin; 05-21-07 at 16:16.
    Lou
    使大吃一惊
    "Lisa, in this house, we obey the laws of thermodynamics!" - Homer Simpson
    "I have my standards. They may be low, but I have them!" - Bette Middler
    "It's a book about a Spanish guy named Manual. You should read it." - Dilbert


  11. #11
    Join Date
    Jun 2003
    Location
    Ohio
    Posts
    12,592
    Silly me. I didn't realize Postgres was a OODB.
    If it's not practically useful, then it's practically useless.

    blindman
    www.chess.com: "sqlblindman"
    www.LobsterShot.blogspot.com

  12. #12
    Join Date
    May 2007
    Posts
    24
    I am quite surprised by these comments.
    I was attracted to OODB because it just made sense to store objects as objects, and not have to split it up into tables.

    From what I have read, and my professor who has a Doctorate and lots of experience, OODB are faster than relational database in most cases.

  13. #13
    Join Date
    Nov 2004
    Location
    out on a limb
    Posts
    13,692
    I could well believe that an OOP program targetting an OODB will be faster than an OOP targetting a relational database to store objects. But then agian if you try to store objects in a realtional server then defacto you are breaking the rules that the server is optimised for, and equally arguably you are breaking the OO design paradigm.

    Ironically enough one of the OODB implementations seems to run on top of MySQL.

    It depends on what you are doing, and what benchmarking targets are significant, and which are irrelevant or of less significance.

    Its arguable that enforcing the relational logic at application level makes the server faster.. thats what MySQL claim with their ISAM engine. But they also support the relational logic at server level if you use INNODB tables.

    I suspect that any successful OODB may well come from a relational db with an API or OO abstraction layer. but that is going to take more server horsepower to support the same number of users / transactions. Is that a problem.. no not really, after all look at the power and capacity of workstations.. its not that long ago that workstations were dumb terminals, then came intelligent terminals, then came WIMP systems.
    I'd rather be riding on the Tiger 800 or the Norton

  14. #14
    Join Date
    Jun 2003
    Location
    Ohio
    Posts
    12,592
    I've not seen any benchmarks indicating that OODBs are faster than RDBMSs. I highly doubt that they are. Plus, the point of OOP was to allow efficient and reliable coding, not necessarilly efficient execution.
    If it's not practically useful, then it's practically useless.

    blindman
    www.chess.com: "sqlblindman"
    www.LobsterShot.blogspot.com

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •