|
From: Sasa on 1 Nov 2006 02:57 I posted this to comp.databases, but then it came to me that you guys might provide some suggestions, sorry if this is an OT: So after years of using strictly relational databases, I've begun to consider an alternative. Object databases seem compelling, especially since the data in the project I'm mostly involved in is highly hierarchical. So the questions: 1) When would you recommend ODBMS, and when RDBMS? 2) Which ODBMS would you recommend? 3) The application I work on is single user desktop application. The data resides on the user's computer. Is there any ODBMS suitable for this (something like equivalent to MSDE, Access, etc.). Is there any "lightweight" object database suitable for this, or would you recommend something else instead? Thanks, Sasa
From: Frans Bouma on 1 Nov 2006 04:20 Sasa wrote: > I posted this to comp.databases, but then it came to me that you guys > might provide some suggestions, sorry if this is an OT: > > So after years of using strictly relational databases, I've begun to > consider an alternative. Object databases seem compelling, especially > since the data in the project I'm mostly involved in is highly > hierarchical. So the questions: > 1) When would you recommend ODBMS, and when RDBMS? Object databases are good in serving/handling objects, or better: instances of entities which are pre-defined. Examples are Customer, Order, Product etc. Relational databases are good in serving sets and set operations on sets of attributes, grouped together in entities. The core difference can be seen with a simple example. Say you want a list of orders and also the CompanyName of the customer which has ordered the order. In a relational database, you'll have an easy job, as the resultset is a simple selectlist (a new entity!) defined on the joined set of attributes from the entity order and the entity customer, in layman terms: a select statement with a join. In an object database, this is harder to do. The thing is: the resultset should be an object. However, the object isn't defined, as the objects known are Customer and Order, but not OrderWithCompanyName. So if you work a lot with these sets, you'll likely be better of with a relational database. If you're working a lot with sets of entity instances which are pre-defined, you're better of with an OODB. > 2) Which ODBMS would you recommend? I've heard good things about db4o, however the market for oodb's is small, so there are a few players. I wouldn't go for versant's, it's very expensive. An alternative could be to use a relational database and an O/R mapper. FB -- ------------------------------------------------------------------------ Lead developer of LLBLGen Pro, the productive O/R mapper for .NET LLBLGen Pro website: http://www.llblgen.com My .NET blog: http://weblogs.asp.net/fbouma Microsoft MVP (C#) ------------------------------------------------------------------------
From: Nick Malik [Microsoft] on 1 Nov 2006 09:51 Probably the most typical method is to use O/R mapping tools to allow you to store your data relationally, but manipulate it as objects. In fact, some of the OODBs got their start as O/R mapping tools sitting on top of a SQL database. -- --- Nick Malik [Microsoft] MCSD, CFPS, Certified Scrummaster http://blogs.msdn.com/nickmalik Disclaimer: Opinions expressed in this forum are my own, and not representative of my employer. I do not answer questions on behalf of my employer. I'm just a programmer helping programmers. -- "Sasa" <sasa555(a)gmail.com> wrote in message news:ei9jui$4kr$1(a)sunce.iskon.hr... >I posted this to comp.databases, but then it came to me that you guys might >provide some suggestions, sorry if this is an OT: > > So after years of using strictly relational databases, I've begun to > consider an alternative. Object databases seem compelling, especially > since the data in the project I'm mostly involved in is highly > hierarchical. So the questions: > 1) When would you recommend ODBMS, and when RDBMS? > 2) Which ODBMS would you recommend? > 3) The application I work on is single user desktop application. The data > resides on the user's computer. Is there any ODBMS suitable for this > (something like equivalent to MSDE, Access, etc.). Is there any > "lightweight" object database suitable for this, or would you recommend > something else instead? > > Thanks, > Sasa
From: topmind on 1 Nov 2006 14:06 Sasa wrote: > I posted this to comp.databases, but then it came to me that you guys > might provide some suggestions, sorry if this is an OT: > > So after years of using strictly relational databases, I've begun to > consider an alternative. Object databases seem compelling, especially > since the data in the project I'm mostly involved in is highly > hierarchical. So the questions: > 1) When would you recommend ODBMS, and when RDBMS? > 2) Which ODBMS would you recommend? > 3) The application I work on is single user desktop application. The > data resides on the user's computer. Is there any ODBMS suitable for > this (something like equivalent to MSDE, Access, etc.). Is there any > "lightweight" object database suitable for this, or would you recommend > something else instead? > > Thanks, > Sasa Have you thought about using the File System? File systems are more or less hierarchical databases in their own right. -T-
From: aloha.kakuikanu on 1 Nov 2006 14:14
Sasa wrote: > I posted this to comp.databases, but then it came to me that you guys > might provide some suggestions, sorry if this is an OT: > > So after years of using strictly relational databases, I've begun to > consider an alternative. Object databases seem compelling, especially > since the data in the project I'm mostly involved in is highly > hierarchical. So the questions: > 1) When would you recommend ODBMS, and when RDBMS? > 2) Which ODBMS would you recommend? > 3) The application I work on is single user desktop application. The > data resides on the user's computer. Is there any ODBMS suitable for > this (something like equivalent to MSDE, Access, etc.). Is there any > "lightweight" object database suitable for this, or would you recommend > something else instead? Are you aware that object databases failed miserably to gain any acceptance? Hmm, what the conclusion of this trivial fact might be? Use relational database _always_? There are numerous ignoramuses around (some with pretty loud names) who would fight this obvious truth, but the fact of the matter is that you as a computer developer professional just can't skip fundamentals of data management class. And if you learn data fundamentals, then you know why the concept of object database is a misnomer. |