Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

The same simple question to relational theorist (with video now).

156 views
Skip to first unread message

Evgeniy Grigoriev

unread,
Apr 1, 2013, 12:29:26 PM4/1/13
to
Hi everyone.

Last year I asked a question:
"…is a way of how I create the normal relations important? Suppose a part of system exists which creates the relations according to some external non-normar expression descrided some data. This part of system translates external expression into commands which create a set of normal relations. So user of such system gives to the system some non-normal data description expressions but operates with the data presented in form of normal virtual relations only. (once again - all data are presented for user in form of normal relations). Is such system relational?"

In other words, the question is how the relations are introduced in system, how their existence is defined. In traditional relational DBMS the existence of relations defined evidently one-by-one, when tables and views are created by user manifestly. On the contrary, I suppose that a system is possible, which implicitly defines existence of a multitude of relations at once, when non-relational structures are described by customer.

I've got an answer from you: "Probably yes, but it's neccessary to define exactly the rules of play".

Now I can demonstrate a prototype which implements a very simple idea: as soon as data have been described in object-oriented way, they are immediately represented in relational way. You can see a video by link (720HD is available) ---> http://youtu.be/K9opP7-vh18 .

Also you can read a PDF paper, where idea of proper correlations between object-oriented and relational systems is give ---> http://odbms.org/download/EvgeniyGrigoriev.pdf .

And I have the same question. Is the demonstrated system relational? I think yes (because all data are represented as a set of relations), but I really try to find objections if I'm right.

Best regards.

PS. I'm very sorry for my spoken English in the video. My friends living in US say that it's OK... almost :) . So, if you have a question, don't hesitate to ask me.

Jan Hidders

unread,
Apr 4, 2013, 2:22:04 PM4/4/13
to
On 2013-04-01 16:29:26 +0000, Evgeniy Grigoriev said:

> Hi everyone.
> Last year I asked a question:
> "…is a way of how I create the normal relations important? Suppose a
> part of system exists which creates the relations according to some
> external non-normar expression descrided some data. This part of system
> translates external expression into commands which create a set of
> normal relations. So user of such system gives to the system some
> non-normal data description expressions but operates with the data
> presented in form of normal virtual relations only. (once again - all
> data are presented for user in form of normal relations). Is such
> system relational?"

The answer depends a little on how you define "the relational model"
and that is not uncontroversial, but I would say that if the generated
tables satisfy all the required properties of relations and you
manipulate them in the relational way, they are relational.

> Now I can demonstrate a prototype which implements a very simple idea:
> as soon as data have been described in object-oriented way, they are
> immediately represented in relational way. You can see a video by link
> (720HD is available) ---> http://youtu.be/K9opP7-vh18 .

So how does your ORM differ from the other ones, like for example Hibernate?

-- Jan Hidders

Cimode

unread,
Apr 4, 2013, 6:43:22 PM4/4/13
to

Evgeniy Grigoriev

unread,
Apr 10, 2013, 2:30:22 PM4/10/13
to
четверг, 4 апреля 2013 г., 22:22:04 UTC+4 пользователь Jan Hidders написал:
Hi Jan. Tahnk you for you reply.

Before I will answer, let me specify what a ORM system is. For me, ORM systems make programmers free from details of a data exchange between OO programs and relational databases. The aim of the ORM systems is to automate developing of concerned data schemes in ОО programs and in RDBMS and to hide an interaction between the program and RDBMS. The main point here is that OO program consists of objects and relational DB consists of tables. So, there are two sets of variables where data exist in different stages. In object variables the data are processed, and in relational variables (tables) the data are stored. ORM systems automate the data exchange which is necessary to store data out of object variables, because the object variables themselves are not persistent.

Am I right?

So, a short answer is "RxO system is not ORM system".

There are no separate object variables in RxO system at all. Data exist nowhere but only in tables. RxO system is a pure DBMS. RxO is just more sophisticated way to manage relational databases than traditional relational DBMS.

A similar attempt was made in ORDBMS but they were fixed on _evident_ tables as a way both to store data and to present the data in relational form. RxO system uses principally different approach on how OO and relational concepts can be united. You can see the approach and the result. But now I would say not about these differences.

Is ORDBMS a DBMS? Yes. It's independent system which just executes some commands.

RxO system in general does the same. I've found a way how more complex command have to be transformed to be executed in traditional RDBMS after the transformation. I've wrote a prototype which performs the command transfomation (a RxO translator). The only reason of why this prototype is separated from DBMS is that it was a simplest way to proof the idea of command translation. But the implemented translation process has a sence only with a RDBMS. It have to be integrated inside the RDBMS. RxO is just a way how independent relational DBMS can execute object-oriented commands.

Evgeniy Grigoriev

unread,
Apr 10, 2013, 4:55:45 PM4/10/13
to
пятница, 5 апреля 2013 г., 2:43:22 UTC+4 пользователь Cimode написал:
I'm not sure if you reply was addressed to me. But anyway I look through video presentation and I've found some detail which I don’t like me in the Cache's video. It's my reaction on this video.

- Object has two different stages – object instance have to be load from table and then write back in table. I don't want the two stages. I don’t want to think about where the object is, in memory or in table. I don’t want to "reload" object into memory after changes were made in the table. I want to work with persistent object.
- A class is mapped into a table. One class = one table (I think that you know how this idea is bad). I don’t want to think about what table is corresponding to class. I don’t want to work with single object in memory but with group of objects (sorry with their data) in the table. I want to work with active persistent objects. It may be a single object or group of object or whole class - no matter.
- I don't want to think about tables but I want to see the data presented in relational form. I don’t want to think about how classes are mapped into _evident_ tables because it means that I have to think how the tables have to be joined. Let system join, bind, calculate and process. It can.

All the "want" and "can" are implemented in RxO prototype. You can see my video.

PS. XML example looks like they don’t think about possible complex structures at all. Suppose I want to describe genealogy tree, so I create class PERSON, and each PERSON object has two references on pa person and ma person (by the way, is it possible in demonstrated system?). I will afraid to run XML query because all the person ancestors will be in result. Has the "XMLExport" function ability to form or to restrict a result?

Cimode

unread,
Apr 18, 2013, 7:33:34 AM4/18/13
to
But then you must address the issue of relation physical
representation and physical data independence.

> -       A class is mapped into a table. One class = one table (I think that you know how this idea is bad). I don’t want to think about what table is corresponding to class. I don’t want to work with single object in memory but with group of objects (sorry with their data) in the table. I want to work with active persistent objects. It may be a single object or group of object or whole class - no matter.
A logical table is just one possible practical representation of a
relation.

> -       I don't want to think about tables but I want to see the data presented in relational form. I don’t want to think about how classes are mapped into _evident_ tables because it means that I have to think how the tables have to be joined. Let system join, bind, calculate and process. It can.
Presentation is one thing. Runtime representation, manipulation and
operation in relational perspective is another. Having the former
determine the latter is an exercise doomed for failure.

Unless you *seriously* study the relational model, you will
systematically fail to recognize what is inherently flawed in the
current implementation you are putting so much effort into.
<Snipped>

Evgeniy Grigoriev

unread,
Apr 20, 2013, 12:02:21 AM4/20/13
to
четверг, 18 апреля 2013 г., 15:33:34 UTC+4 пользователь Cimode написал:
Hi Cimode.

Thank you. Really also I don't want to think about physical representation, data independence and difference between logical tables and relations. All these are very important, but I don’t want to think about these things, I have a system to care about them instead of me.

I just want my data be _represented_ as a set of relations to get advantages of RM to manipulate and operate the data in relational perspective. Do you remember what a relational system is? Just "represented", not "stored" and not even "described".

There is tons of bullshit over very simple and powerfull relational formalism. It seems to me that you prefer to dig this bullshit by hand, I use bulldozer.

Al last one question.
Have you seen my demo? (You could see the bulldozer in action).

Please use just yes/no in your answer, without any attempts to explain why. I understand all relational genius's arguments. The main one is "because only I understand everything, nobody else". Nothing personal :)

Eric

unread,
Apr 20, 2013, 6:45:04 AM4/20/13
to
On 2013-04-20, Evgeniy Grigoriev <grigo...@gmail.com> wrote:
<previous conversation snipped>
>
> Hi Cimode.
>
> Thank you. Really also I don't want to think about physical
> representation, data independence and difference between logical tables
> and relations. All these are very important, but I don???t want to think
> about these things, I have a system to care about them instead of me.
>
> I just want my data be _represented_ as a set of relations to get
> advantages of RM to manipulate and operate the data in relational
> perspective. Do you remember what a relational system is? Just
> "represented", not "stored" and not even "described".
>
> There is tons of bullshit over very simple and powerfull relational
> formalism. It seems to me that you prefer to dig this bullshit by hand,
> I use bulldozer.

You want to deal only with relational representations? Good. You have
your "bulldozer" system? Good. Is it fast, reliable, scalable and safe?
It had better be, and you can expect people to question this. Does it
have usable and flexible tools to define how data is mapped (in both
directions) between the relational representation and whatever the
"bulldozer" uses for storage? I doubt it, because such mappings are an
unresolved and probably unresolvable problem.

> Al last one question.
> Have you seen my demo? (You could see the bulldozer in action).
>
> Please use just yes/no in your answer, without any attempts to explain
> why. I understand all relational genius's arguments. The main one is
> "because only I understand everything, nobody else". Nothing personal :)

This is an open forum, there is no point in trying to specify how people
should structure their responses to you. If, in addition, you turn out
to be one of those people who get annoyed with others who don't follow
your specifications, and refuse to talk to them unless they do, you will
have no credibility whatsoever.

Are you sure that you too are not claiming to be the only one who
understands everything?

Eric
--
ms fnd in a lbry

Cimode

unread,
Apr 20, 2013, 3:53:28 PM4/20/13
to
On 20 avr, 10:45, Eric <e...@deptj.eu> wrote:
The bulldozer reminds me of the following quote

"it is impossible to sharpen a pencil with a blunt axe. It is equally
vain to try to do it with ten blunt axes instead."

Edsger Dijkstra

Evgeniy Grigoriev

unread,
Apr 20, 2013, 3:57:19 PM4/20/13
to
суббота, 20 апреля 2013 г., 14:45:04 UTC+4 пользователь Eric написал:


Hi Eric.

Thank you! Also I don't want to think about how data is mapped (in both direction!) between realtional representation and object-oriented description.

>I doubt it, because such mappings are an
> unresolved and probably unresolvable problem.

LOL. Eric, just look my video. I'm sure you will forsed to take these words back. I claim I solve the problem. Look my video and try to object.

Eric

unread,
Apr 21, 2013, 2:36:30 PM4/21/13
to
On 2013-04-20, Evgeniy Grigoriev <grigo...@gmail.com> wrote:
> On 2013-04-20, Eric <er...@deptj.eu> wrote:
>
> Hi Eric.
>
> Thank you! Also I don't want to think about how data is mapped (in
> both direction!) between realtional representation and object-oriented
> description.

You may not want to think about it but whoever is designing your
"bulldozer" has to think about it.

>>I doubt it, because such mappings are an
>> unresolved and probably unresolvable problem.
>
> LOL. Eric, just look my video. I'm sure you will forsed to take these
> words back. I claim I solve the problem. Look my video and try to object.

Apologies for making you laugh - in fact I left out an intended
sentence there, so I need to say now that that remark applies mainly
to the case where the non-relational end of the mapping is some
form of object-oriented, which seems to be true in your case anyway.

If the non-relational end is, as it should be, some set of
purpose-designed storage methods, then there will, of course,
be no problem.

I have yet to find the time to watch (and concentrate on) a
35-minute video, but when (and if) I get there I will let you know
what I think.

Erwin

unread,
Apr 30, 2013, 3:03:49 PM4/30/13
to
Op zaterdag 20 april 2013 21:57:19 UTC+2 schreef Evgeniy Grigoriev het volgende:
Just watched some 25 mins of the video.

A few wild thoughts, not claiming I understand much of it.

The query results in your examples often show empty cells. If their contents are something like NULL, then no, your system can almost by definition not be relational.

The system seems to be based on hierarchies of classes. That makes me wonder about situations where there are self-references (boss of employee3 is employee2, boss of employee2 is employee7, ...) and transitive closures in the processing.

I'm wondering how transactions/commit/rollback fit into the system. If there is "autocommit" upon each NEW GOODS() executed, then I wonder about the situations that require SQL users to switch over to deferred constraint checking. (And if there is no possibility to declare constraints, then no, what you've created is not worth being called a DBMS. But I rather doubt this is the case.)

You also use the term "inheritance" in connection with your classes, but it is unclear to me what "inheritance" really means here, or how it could be useful to me as a user of this system.

Evgeniy Grigoriev

unread,
May 5, 2013, 1:02:26 PM5/5/13
to

> The query results in your examples often show empty cells. If their contents are something like NULL, then no, your system can almost by definition not be relational.


1) E.g. in http://www.dcs.warwick.ac.uk/~hugh/TTM/Missing-info-without-nulls.pdf on page 7 there is a question "BUT WHAT DO THOSE QUESTION MARKS MEAN?". I don't try to go in meaning of the empty cell so deeply. It's just empty cells.
2)I could say that an implementation of my solution is as relational as using executive machine is. If we are using "true relational" system as executive machine the result will be perfect theoretically. If we are using SQL DBMS the result will possible contains NULL, dublicates etc. Offered principles can be applied to both "true" and "not true" relational systems.
3) 3-valued SQL logic is a very old question. It's intrestiong question but it's not principial for me. My solution could appear 25 years back on that level of relational theory and OO programing. For me a most hard thing was to forget about all complicated things and ideas which appeared since that time.

> The system seems to be based on hierarchies of classes. That makes me wonder about situations where there are self-references (boss of employee3 is employee2, boss of employee2 is employee7, ...) and transitive closures in the processing.

I dont' implement transitive closures cases in the prototype. Common idea looks like

CREATE CLASS EMPLOYEE
{
name...;
}

CREATE CLASS BOSS EXTENDS EMPLOYEE
{
employees SET OF EMPLOYEE;
}

SELECT #b.employees.name FROM BOSS #b...
THROUGH #b.employees... DOWN #b.name="MainBoss"
//"THROUGH" checks if some of "b.employees" are BOSSes
// and executes SELECT again for found ones.
// "DOWN" sets "starting point" in BOSS'es hierarchy.

This query returns names of all employee under "MainBoss". (Don't be strict it's just a concept:)


> I'm wondering how transactions/commit/rollback fit into the system. If there is "autocommit" upon each NEW GOODS() executed, then I wonder about the situations that require SQL users to switch over to deferred constraint checking. (And if there is no possibility to declare constraints, then no, what you've created is not worth being called a DBMS. But I rather doubt this is the case.)


1) Transaction is not a question between OO and RM. :)
2) I don't understand what does "deferred constraints" mean here.
3) I gave an examples of constrains in video (from ~4:00). Could you explaym your question in more details with these contrains if it's possible?


> You also use the term "inheritance" in connection with your classes, but it is unclear to me what "inheritance" really means here, or how it could be useful to me as a user of this system.

Object domain can change and, according to the changes, you can create new classes (inc. by multiple inheritance) in active DBMS. There is no necessity to rebuild, recompile, reload and make other re- over system in this case, just create new class and you can use it with existing ones. You could see the video after 19 min once again. I gave an example of how the system can be extended by means of multiple inheritance.

Cimode

unread,
May 5, 2013, 2:22:16 PM5/5/13
to
Inheritance is a mean not an end. Defining the end by the mean is a
OO mindset favorite lost cause.
0 new messages