Welcome to dbFreaks.com!
FAQFAQ    SearchSearch      ProfileProfile    Private MessagesPrivate Messages   Log inLog in

Help Understanding OODBMS'

 
Goto page 1, 2, 3
   Database Help (Home) -> Object-Oriented RSS
Next:  converting data  
Author Message
neo55592

External


Since: Dec 06, 2004
Posts: 206



(Msg. 1) Posted: Sun Feb 06, 2005 3:01 pm
Post subject: Re: Help Understanding OODBMS' [Login to view extended thread Info.]
Archived from groups: comp>databases>object (more info?)

 > 3) Are relationships recorded in the same way as in an RDB - 1:M and
 > M:M? I assume that program code has to place the IDs in a "table" to
 > establish the relationships between specific objects. Or would the
 > OODBMS somehow know to record such relationships automatically. After
 > all, it seems to know what members of an object that it needs to
 > store. I also assume that the OODBMS handles referential integrity
 > matters.

Below example shows how to make M:N relationships using XDb2. An app
can do the following either by calling the appropriate functions with
below script as string parameters; or it can get a variable to the
apppropiate things and pass them to functions that can relate them.

// Create persons John, Mary and Bob
(CREATE *person.item ~in = dir)
(CREATE *john.cls = person)
(CREATE *mary.cls = person)
(CREATE *bob.cls = person)
(CREATE *sue.cls = person)

// Create verbs like and hate to relate above persons.
(CREATE *like.cls = verb)
(CREATE *hate.cls = verb)

// Create M:N relationships
(CREATE john.like = mary)
(CREATE mary.like = john)
(CREATE mary.like = bob)
(CREATE mary.like = sue)
(CREATE bob.hate = john)
(CREATE bob.like = mary)
(CREATE sue.hate = john)
(CREATE sue.hate = bob)
(CREATE sue.like = mary)

// Find a person who likes someone who likes bob
// and hates someone who hates john.
// Finds Sue.
(SELECT *.like=(*.like=bob) & *.hate=(*.hate=john))

// Following simplified psuedo C code is similar to
// "(CREATE john.like = mary)" shown above
pJohn = T_get('john')
pLike = T_get('like')
pMary = T_get('mary')
T_relate(pJohn, pLike, pMary)

 >> Stay informed about: Help Understanding OODBMS' 
Back to top
Login to vote
neo55592

External


Since: Dec 06, 2004
Posts: 206



(Msg. 2) Posted: Sun Feb 06, 2005 3:39 pm
Post subject: Re: Help Understanding OODBMS' [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

 > Ridiculous.
 > What a poor and naive approach!
 > It is evident that you are complete neophytes.
 > So object oriented databases are less flexible than
 > relational databases. They are limited to one-dimensional
 > lists while relational databases use n-dimensional sets.

While I can't speak for other methodologies, you did include Neo/XDb2,
so I am asking how can one verify your assertion that it is less
flexible than relational databases? Can you demonstrate it with a
simple example?

 >> Stay informed about: Help Understanding OODBMS' 
Back to top
Login to vote
Lee Fesperman

External


Since: Aug 10, 2003
Posts: 56



(Msg. 3) Posted: Mon Feb 07, 2005 4:40 am
Post subject: Re: Help Understanding OODBMS' [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

Carl Rosenberger wrote:
 >
 > Lee Fesperman wrote:
  > > The relational model rigorously separates physical concerns from
  > > logical ones. Devotees of OODBs (and of XML, et al) gleefully blur
  > > those distinctions, claiming to make things better, have new ideas,
  > > etc. All they're really doing is taking us back to the bad old days
  > > that relational was invented to remedy.
 >
 > please stop these empty FUD bubbles, this is the object database
 > newsgroup. Since I know that your product is programmed in Java,
 > I am sure that you know better.

My company's product is a RDBMS that supports columns defined on domains implemented as
Java classes and supports UDFs, stored procedures and triggers implemented as Java
methods.

Are you claiming that DBMS doesn't belong in the databases.object branch? Are you saying
I can't tout our database structure as better than yours? Are you the emperor of this
newsgroup?

 > Object databases simply choose the paradigm of the programming
 > language for persistence, no more, no less.

As I said earlier, they are object persistence utilities, little more.

 > The design of relations (references in OO speak) is completely up
 > to application developers.

A relation is an unordered set of tuples, each with the same attributes and a primary
key. How is this a reference in OO speak?

 > This has nothing to do with a separation of logical and physical
 > concerns.

How would you logically represent the set of sales orders for a customer?

 > Object orientation has proved to be very successful for programming
 > (as you also seem to admit, by choosing to use Java for your product).

We're talking about databases, not application programming.

Actually, we chose Java primarily for portability reasons.

 > Object databases make it plain simple (and performant) to store
 > objects just as they are, without intermediate steps to other
 > languages like SQL.

Sure, performance is important, but there is more, including accessibility and integrity
(see earlier in this thread). Why don't you respond to that?

 > If one would want to write a "system that perfectly matches relational
 > theory" (as you always claim as the holy grail everyone has to achieve)
 > one could do that perfectly with an OO language, right?

You could also do it in Assembler or C, right?

 > Now let me ask:
 > What would be wrong about storing the objects from this "perfect
 > relational system" that are right there in the OO language to an
 > object database if that is the easiest and fastest way?
 >
 > It is!
 >
 > (... and by the way it is happening: We have a customer who is
 > currently writing a relational database engine on top of our
 > system. He may be one of your competitors tomorrow.)

Use an object database instead of a file system? That would add an extra layer and
wouldn't be performant.

--
Lee Fesperman, FFE Software, Inc. (http://www.firstsql.com)
==============================================================
* The Ultimate DBMS is here!
* FirstSQL/J Object/Relational DBMS (http://www.firstsql.com)
 >> Stay informed about: Help Understanding OODBMS' 
Back to top
Login to vote
Bob Nemec

External


Since: Sep 11, 2003
Posts: 10



(Msg. 4) Posted: Mon Feb 07, 2005 9:40 am
Post subject: Re: Help Understanding OODBMS' [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

<...>
 > The other responders have their own agendas, so I'd like to clear up a few
 > things...
 >
 > An OODBMS is really little more that an "object persistence" utility.
 > Unlike
 > relational/normalization, they have no solid foundation for their
 > structure. They use an
 > ad-hoc organization that is not appropriate for storing usable
 > information. They can't
 > guarantee that the information is accessible and that the integrity of the
 > information
 > is protected. Some do provide a primitive type of SQL interface, but it is
 > a mere shadow
 > of the power of a relational query facility.

Agreed: an OODB is very much an "object persistence" utility. And in cases
where that is the application requirement, it's a perfectly valid choice.
In not sure I understand what your requirements are for a "solid
foundation". We use GemStone/S; persistent data consist of objects with
references to other objects. It's simple & elegent and, in a well designed
OO application, solid.

I'll grant you that the binding between an OO application and the persisent
data is much tighter than in a conventional relational application, but
that's by design. We see it as a strength; relational types see it as a
weakness -- the reduced data search flexibility is only an issue if the
application needs it. I'll trade easier management of model complexity for
ah-hoc search capability any day (your criteria my differ).

And what is your criteria for "storing usable information"? We've never had
issues with data integrity, nor have we ever had problem with data access.
What specific problems with OODBs have you had?

I don't what to start another "my DB is better than your DB" debate, but
blanket statements saying that OODBs are "not appropriate for storing usable
information" should be better justified.
--
Bob Nemec
Northwater Objects
 >> Stay informed about: Help Understanding OODBMS' 
Back to top
Login to vote
neo55592

External


Since: Dec 06, 2004
Posts: 206



(Msg. 5) Posted: Mon Feb 07, 2005 10:46 am
Post subject: Re: Help Understanding OODBMS' [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

 > As I said earlier, they are object persistence utilities, little
more.

Could you provide examples of things that "object persistence
utilities" shouldn't be able to do? I will admit that XDb2 currently
isn't meant for any production environment but is mostly an exploration
of what is possible beyond current status quo, which is inadequate for
AI-type apps.

 > How would you logically represent the set of sales orders for a
customer?

XDb2's script to model sales/purchase orders is posted in the recent
thread titled "Modelling Sales/Purchase Order". Could you post RM's
equivalent so we can make some comparisions?
 >> Stay informed about: Help Understanding OODBMS' 
Back to top
Login to vote
neo55592

External


Since: Dec 06, 2004
Posts: 206



(Msg. 6) Posted: Mon Feb 07, 2005 11:04 am
Post subject: Re: Help Understanding OODBMS' [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

 > BTW, have you read any of the books that I recommended?

No, but see recent thread titled "Modelling Books".
 >> Stay informed about: Help Understanding OODBMS' 
Back to top
Login to vote
neo55592

External


Since: Dec 06, 2004
Posts: 206



(Msg. 7) Posted: Mon Feb 07, 2005 12:41 pm
Post subject: Re: Help Understanding OODBMS' [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

 > I'll grant you that the binding between an OO application and the
persisent data is much tighter than in a conventional relational
application, but that's by design. We see it as a strength; relational
types see it as a weakness -- the reduced data search flexibility is
only an issue if the application needs it. I'll trade easier
management of model complexity for ah-hoc search capability any day
(your criteria my differ).

Your evaluation of the different methodolgies, their strengths and
weaknesses, is quite balanced and accurate.

The experimental db that I refer to does not fit neatly into either
category and blurs that distinction. In my judgement, it exceeds RM's
flexibility to model things, it's ability to manage/query things
declaratively lies between RM and OO, and provides an application
interface with little impedance mismatch.
 >> Stay informed about: Help Understanding OODBMS' 
Back to top
Login to vote
neo55592

External


Since: Dec 06, 2004
Posts: 206



(Msg. 8) Posted: Mon Feb 07, 2005 3:33 pm
Post subject: Re: Help Understanding OODBMS' [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

 > After I read all the posts, I almost rolled on the floor with
 > laughter. I AM A NEWBIE. I couldn't believe that you all let
 > your egos get in the way.

Sorry I wasn't helpful and was too busy inflating my ego to new
proportions. Try posting your question in comp.object They are more
serious there.
 >> Stay informed about: Help Understanding OODBMS' 
Back to top
Login to vote
Lou Arnold

External


Since: Jun 24, 2004
Posts: 1



(Msg. 9) Posted: Mon Feb 07, 2005 5:40 pm
Post subject: Re: Help Understanding OODBMS' [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

After I read all the posts, I almost rolled on the floor with
laughter. I AM A NEWBIE. I couldn't believe that you all let your egos
get in the way. I only asked a few simply questions. A "yes/no/or look
at this atricle" would have been much more helpful.

And by the way, the example:
ClasS Person{
Person son
.....
}
is truely NONSENSE.
Best wishes to all for more interesting projects.
 >> Stay informed about: Help Understanding OODBMS' 
Back to top
Login to vote
Joseph Bacanskas

External


Since: Aug 01, 2003
Posts: 4



(Msg. 10) Posted: Mon Feb 07, 2005 10:02 pm
Post subject: Re: Help Understanding OODBMS' [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

Hi All:

Lee Fesperman wrote:
 > Lou Arnold wrote:
 >
  >>I need some help understanding OODBMS'. I'm well versed in normal
  >>databases and SQL, and I understand object brokers, but I'm at a loss
  >>when it comes to OO databases. Perhaps someone could explain a few
  >>things or point me elsewhere for explanations.
  >>
  >>I've programmed in C++, and I understand about storing objects in a
  >>file to achieve persistence. I also understand that relationships
  >>exist between objects. But
  >>1) what is stored in an OODBMS that is useful?
  >>2) and under what circumstances would an SQL-like query be useful?
  >>
  >>In a data-only database one uses SQL to retrieve a series of records
  >>so that they can be displayed and perhaps changed, but how one would
  >>do this in an OO environment isn't obvious to me. Can you set
  >>selection criteria for object member data in the same way that you set
  >>selection criteria for "columns" in normal databases? I thought you
  >>couldn't access member data when the object is stored in the OODBMS.
 >
 >
 > The other responders have their own agendas, so I'd like to clear up a few things...

When I read the above line, I hear...

<quote>
Like me, the other responders have their own agendas; here's mine...
</quote>

 >
 > An OODBMS is really little more that an "object persistence" utility. Unlike
 > relational/normalization, they have no solid foundation for their structure. They use an
 > ad-hoc organization that is not appropriate for storing usable information. They can't
 > guarantee that the information is accessible and that the integrity of the information
 > is protected. Some do provide a primitive type of SQL interface, but it is a mere shadow
 > of the power of a relational query facility.
 >

Perhaps you might want to mention which OODBMS you have experience with.
You are making some very strong judgements.

My experience (9 years) is with GemStone/S. It is an object repository
*with* behavior. The query interface is the richest I have seen; it is
the full power of Smalltalk. I have also used RDBMS extensively (Oracle
and Sybase). I find them adequate for fairly static knowledge
management, but I would hate to have to try and make them work in an
environment that changes daily, like trading applications, for example.
YMMV.

BTW - Objects in GemStone have true identity, something RDBMS try to
emulate with normalization. (Sorry, I couldn't resist) Wink


Thanks!!
Joseph Bacanskas [|]
--- I use Smalltalk. My amp goes to eleven.
 >> Stay informed about: Help Understanding OODBMS' 
Back to top
Login to vote
Carl Rosenberger

External


Since: Feb 03, 2005
Posts: 2



(Msg. 11) Posted: Tue Feb 08, 2005 5:25 am
Post subject: Re: Help Understanding OODBMS' [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

Lou Arnold wrote:
 > After I read all the posts, I almost rolled on the
 > floor with laughter. I AM A NEWBIE. I couldn't
 > believe that you all let your egos get in the way.

Sorry about that.

You may like to read up the history of some of the
previous discussions of the same people in this group
and in other newsgroups to understand why the flames
rise high so quickly.

I think the discussions are a very nice proof that
object oriented programming and relational databases
do not match.


 > And by the way, the example:
 > ClasS Person{
 > Person son
 > ....
 > }
 > is truely NONSENSE.

I am afraid you did not understand what I was trying
to say.

You wrote: "PersonX is the son of PersonY. The OODB
can't know this without somehow being told."

I gave you exactly what you wanted.


The simplest way in OO to express that personX is the
son of personY goes like this:


(1) One class and three lines of code
-------------------------------------
class Person{
Person son;
}
Person personY = new Person();
Person personX = new Person();
personY.son = personX;


Now your objects in the memory of your programming language
"know" that "personX is the son of personY", right?
To tell the object database also, all you have to do is
store personY:


(2) One line to store an object and all references
--------------------------------------------------
database.store(personY);


No more.
Object databases persist by reachability, so the attached
personX would be stored along with personY.


Assuming the same prerequisites of (1), here is what you
would have to do with one of todays relational databases,
using SQL:

(3) SQL
--------------
CREATE TABLE Person
(Id INTEGER, Name VARCHAR(100), Son INTEGER);

INSERT INTO Person
(Id, Name, Son)
VALUES
(1, 'personY', 2);

INSERT INTO Person
(Id, Name)
VALUES
(2, 'personX');

Assuming you are using an OO language like Java, you could
not execute the three SQL statements like above, you would
need to put them into strings and call a couple of JDBC
methods. For example:

Statement statement = connection.createStatement();
String sql = "INSERT INTO Person (Id, Name, Son) "
+ "VALUES (1, 'personY', 2)":
statement.execute(sql);

Furthermore I made things very easy by using my own keys,
'1' and '2'. In a real multiuser database, you would
either need a local key generator, that makes sure that
your keys are unique or you would use an autoincrement
column and fetch the key, after your insert, for every
row that you insert (slow).

Furthermore you would have to extract the data from your
objects first and then put them into your SQL string or
into parameters.


The point I am trying to make with the above:
Object databases provide tighter integration with object
oriented languages, so they reduce development time and
cost. Your code is more maintainable because it is less
code overall and because it is typesafe OO code, without
embedded strings. Futhermore it executes a lot faster.

Of course this only holds if you use an OO language in the
first place.


Certainly one would not model "son" this way in a real
usecase:

class Person{
Person son;
}


Some possibilities:

class Gender{
static final Gender MALE = new Gender();
static final Gender FEMALE = new Gender();
}


(1)
class Person{
Person mother;
Person father;
Gender gender;
}


(2)
class Person{
List children;
Gender gender;
}

(3)
class Person{
Person mother;
Person father;
List children;
Gender gender;
}

(4)
class Person{
Person[] parents;
Gender gender;
}


Again the relational camp will come along arguing:
"See, because object orientation does not follow sound
relational principles, there is not one single correct
normalized way to do it."

This argument forgets two major points:

(1) If the application uses an object oriented language,
the class model is created anyway, correct or not, one
way or the other. Objects will exist anyway, correct or
not, in one of the above flavours. Relational databases
will not remove the objects.

(2) Object database vendors do not try to prove that
object oriented programming is correct and they do not
need to. Mainstream has gone that way. More than 50%
of all new programming projects either use Java or one
of the .NET dialects (C#, VB.NET, ASP.NET).
Object database vendors simply take what's there in
the object oriented language and store it in the most
efficient way.

--
Carl Rosenberger
Chief Software Architect
db4objects Inc.
<a rel="nofollow" style='text-decoration: none;' href="http://www.db4o.com" target="_blank">http://www.db4o.com</a>
 >> Stay informed about: Help Understanding OODBMS' 
Back to top
Login to vote
neo55592

External


Since: Dec 06, 2004
Posts: 206



(Msg. 12) Posted: Tue Feb 08, 2005 1:12 pm
Post subject: Re: Help Understanding OODBMS' [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

 > I asked Fabian Pascal of Database Debunkings to review this thread.
 > In response, he suggested that I post this quote ...

Could you ask him to post some simple examples that would support your
assertions?
 >> Stay informed about: Help Understanding OODBMS' 
Back to top
Login to vote
neo55592

External


Since: Dec 06, 2004
Posts: 206



(Msg. 13) Posted: Tue Feb 08, 2005 1:25 pm
Post subject: Re: Help Understanding OODBMS' [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

 > ...I AM A NEWBIE...And by the way, the example:
 >
 > Class Person{
 > Person son
 > ....
 > }
 >
 > is truely NONSENSE.

Now you've got me curious. Sometimes it takes a newbie to open the eyes
of egotists. What type of example/solution might have been more
sensical in your view?
 >> Stay informed about: Help Understanding OODBMS' 
Back to top
Login to vote
neo55592

External


Since: Dec 06, 2004
Posts: 206



(Msg. 14) Posted: Tue Feb 08, 2005 1:46 pm
Post subject: Re: Help Understanding OODBMS' [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

 > Lee / Fabian Pascal wrote: ".. We can just proceed off some simple
 > ideological template and apply it to everything. This sort of
 > thinking is part of what is wrong ..."

That's exactly what's happening in the case of RM and its devout
practioners. It is a template that some are trying to apply to
everything and it will never succeed at that. While its scope is
broader than most other methodologies, ultimately its scope is limited.
You have Neo's 100% guarantee on that (just thought I'd puff up my ego
a bit more and see if it will pop Smile.
 >> Stay informed about: Help Understanding OODBMS' 
Back to top
Login to vote
neo55592

External


Since: Dec 06, 2004
Posts: 206



(Msg. 15) Posted: Tue Feb 08, 2005 3:39 pm
Post subject: Re: Help Understanding OODBMS' [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

 > RM has been around for well over 30 years and has been
 > the subject of extensive research and use.

I don't argue with the above. And because RM has been around for +30
yrs and has been the subject of extensive research and use, why is it
so difficult for you to support your assertions in this thread with
some simple examples.

 > It is by far the dominant data model today.

If your scope is limited to man-made computing devices in recent
history, I would agree. On a broader scope, the most dominant data
model is what I might call the ultimate data model which could be the
foundation of the universe. No, I don't know what that model is and I
think I would lose consciousness trying to figure it out with such a
small brain. Another data model that is more dominant than RM is that
used in brains. No I don't know exactly what that is either. An even if
I knew, I may not tell you. I may instead proceed to build one to test
out the model.

 > It is based on a solid logic and mathematic foundation,
 > that no one has proven incorrect.

Maybe, just maybe, the underlying math and logic are solid. Because man
created these to fit the limited scope of things he has observed thus
far, does not guarantee that they will be correct over a larger scope.
This was the case with Newtonian and is likely to be the case with
Quantum Mechanics which superceeded it. While RM is based on supposedly
sound foundations, RM is not equal to those foundations. RM adds its
own set of axioms and theorems, some of which I find dubious. Many
people make the mistake of verifying logic, mathematics, or a data
model by using itself as the reference (ie God is great because he said
so). Ultimately it is the full scope of reality which is the final
reference. And as C J Date himself stated at the end of Chapter 20,
"Missing Info", in his 6th Ed "Intro to Db Systems" on page 587: "NULLs
and 3VL undermine the entire foundation of the relational model".

 > Your schemes just 'popped' into your head
 > and have no theoretical basis.

The 'popped' referred to my ego, not to any schemes. Now if it did
occur that way, would it in-of-itself invalidate the theory?

 > ... you refuse to educate yourself on database matters.

And that database matter is? Could you exemplify it?

 > RM provides the capability that has led to the explosion
 > of complex business applications that has occurred
 > over the last 20 years and serves as the basis
 > of ecommerce today.

I have no argument with the above. As I have repeatedly stated,
currently RM provides the best solution for many, if not the most,
common applications of today.

But how about less rhetoric and more db examples to support your
assertions?
 >> Stay informed about: Help Understanding OODBMS' 
Back to top
Login to vote
Display posts from previous:   
Related Topics:
oops help - Question 1:- Describe the following with the help of examples: 1)Generalization and its role in Inheritance. 2)abstract Classes 3)State Diagrams. 4)OMT and its impact in programming. 5)future of Object Oriented languages. Qusetion2: -Identify the..

Idempotent ODBMS iterators - I am building a client/server ODBMS in Java. It occurred to me that one way of helping to guarantee the consistency of the database was to ensure that all atomic requests were idempotent -- that is, that if a particular request is performed more than..

Modelling Books (with XDb2) -

CfP Reminder: The Second Scala Workshop - Scala Days 2011 - The Second Scala Workshop ========================= Call for Papers --------------- Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates..

CGVCVIP 2011 (Rome, Italy) - 1st call extension: until 28 .. - Apologies for cross-postings. Please send to interested colleagues and students -- CALL FOR PAPERS - Deadline for submissions (1st call extension): 28 March 2011 -- IADIS INTERNATIONAL CONFERENCE ON COMPUTER GRAPHICS, VISUALIZATION, COMPUTER VISION..
   Database Help (Home) -> Object-Oriented All times are: Pacific Time (US & Canada)
Goto page 1, 2, 3
Page 1 of 3

 
You can post new topics in this forum
You can reply to topics in this forum
You can edit your posts in this forum
You can delete your posts in this forum
You can vote in polls in this forum



[ Contact us | Terms of Service/Privacy Policy ]