[ALL] let's think about Query Language for 2.0

Ruslan Zasukhin sunshine at public.kherson.ua
Fri May 23 21:19:53 CDT 2003


on 5/23/03 1:52 PM, Andreas Grosam at agrosam at computerworks.ch wrote:

> -  Supporting the Object-Relational and Object Model
> 
> This extends the relational model by introducing Objects. Objects have
> attributes, methods, class members, class methods, inheritance,
> encapsulation, polymorphism, members which are itself objects, etc.
> A lot of questions arise:
> Where is the code for member functions located, how to ensure
> encapsulation, relaxing encapsulation? And several hundreds more!
> 
> Since objects have a much richer set of types for attributes, this
> might affect the query API. Objects also have methods which might be
> called:
> 
> For example:
> 
> Set<PersonRef>  s = select(Persons, Persons.DayOfBirth() <
> (time::today() -  2000))

    Persons.DayOfBirth()

Isn't this our current BaseObject Methods?   :-)
Yes in future they should be expanded to support more complex syntax, to be
true stored procedures on different languages.

BTW, I also like idea of usage () to explicitly show that this is METHOD
call. 


> where Persons is a set of PersonRef, and the expression
> "Persons.DayOfBirth()" evaluates to a predicate. A PersonRef has an
> operator Person* which returns a pointer  to an object of type Person.
> (actually, making this all together work is not as simple as it might
> appear!!).
> 
> In the Object Model, we need Sets which are Containers containing
> objects or references (OIDs).
> Additionally, we need methods for navigating through objects (point and
> arrow operators applied to objects).

Andreas, but this is in pure OO model.
I do not like it.

I prefer implementation of Valentina.
We have one instance of Person class.
We have Set of RecIDs of founds records.

And we say 
            Person.Goto( set[i] );

I believe this is more simple for understanding.
And more effective for implementation.

The pure OO DBMS should spend time to create (by new by they way)
Instances of objects. Valentina will simply copy values into already existed
buffers of single Person object. Also they need do much more dirty work as
you know to support this behavior.

And I think that this can be danger, when developer relax, and cannot differ
a RAM object from DB object. When developer do not see he can write not
effective/optimal code.


-- 
Best regards,
Ruslan Zasukhin      [ I feel the need...the need for speed ]
-------------------------------------------------------------
e-mail: ruslan at paradigmasoft.com
web: http://www.paradigmasoft.com

To subscribe to the Valentina mail list go to:
http://lists.macserve.net/mailman/listinfo/valentina
-------------------------------------------------------------



More information about the Valentina mailing list