Re: Unknown SQL

From: Bob Badour <bbadour_at_golden.net>
Date: Sat, 21 Jul 2001 23:28:56 GMT
Message-ID: <ohWR6.776$_J2.188816413_at_radon.golden.net>


>> >All the relational equivalents that you posted are
>> >- unnecessary extra concepts to learn
>>
>> Not true.
>
>Usage of object databases is possible without knowing SQL or tables.

The usage of relational databases is possible without knowing Java, C++, Smalltalk, Tcl, Perl, Basic, Swahili or Arrays, Bags, Collections, Pointers, OID's, Containers, Callbacks, Constructors, Destructors, Inheritance, Delegation, Parent, Child, Aunt, Uncle, Cousin or Evil Step-Mother.

What's your point?

>> >- unnecessary extra code
>>
>> Not true.
>
>Please have a look at the example code further down this page.
>www.db4o.com/db4o/benchmarks.html
>We store complex objects with one single line of code.
>The relational equivalent took 2 hours to write.

It took you 2 hours to write:

"Insert Contract"

?!? Holy shit you're slow!

>> >- bad for performance
>>
>> Not true.
>
>Have a look at our benchmarks.
>www.db4o.com/db4o/benchmarks.html
>What is the reason for the drastic insert advantages?

There are no drastic insert advantages.

>Our program is still young and will be subject to further optimization.
>The others vendors can't be that stupid.

You overestimate vendors.

>Our performance advantages result out of the points I have mentioned.

You don't have performance advantages; you only have logical disadvantages.

>> I am still having trouble discerning. Is the untruth intentional or just
 the
>> result of ignorance?
>
>I do usually back up my arguments.
>Your "Not true" is a little thin.

Well, when confronted with a salesman who obstinately refuses to confine himself to the truth, one must eventually take shortcuts. I don't mind being frank when the situation calls for it.

>> >> >Every concept, additional or renamed:
>> >> >- introduces standardization problems between vendors
>> >>
>> >> It introduces much more than standardization problems. Aho et al.
 mention
>> >> that one of the most effective optimization techniques is algorithmic
>> >> replacement. How many object oriented languages or OODBMSs do you know
>> >> capable of algorithmic replacement? Every SQL product on the market
 performs
>> >> this extremely potent optimization technique. Even small-footprint
 products
>> >> like Lee's!
>> >
>> >I am sorry but I don't understand what you mean with "algorithmic
>> >replacement".
>>
>> It's simple enough as the name implies: replace one algorithm with
 another.
>> For instance, replace a bubble-sort with a quick-sort. Or replace an
>> order-n-cubed algorithm with an order-n algorithm.
>>
>> In their famous compiler book (the Dragon Book), Aho et al. mention it as
>> one of the most effective optimizations and the one least likely for
>> compilers to actually achieve. SQL databases the world over achieve this
>> kind of optimization on a daily basis.
>>
>> Does your product support algorithmic replacement?
>
>I am still not sure what you mean.

When the answer is "no", just say "no". You don't need to feign confusion.

>Reading the above I would understand that either
>- hints can be added to queries for evaluation

Nope.

>or
>- code may be added to the database engine core

Nope.

>Could you please post a practical example and usecase what a user of a
>relational database would do?

Well, assuming an SQL-like syntax (yuck!), a user might execute the following query against the database:

SELECT region, AVG(salary) AS avg_sal, AVG(commission) AS avg_comm FROM (
    SELECT region, state, salary, commission, emp_id     FROM employee ee1 JOIN sales s1
    HAVING SUM(price-cost) = (

        SELECT MAX(profits)
        FROM (
            SELECT emp_id, SUM(price-cost) AS profits
            FROM employee ee2 JOIN sales s2
            WHERE ee1.state = ee2.state
            GROUP BY emp_id
        )

    )
    GROUP BY region, state, salary, commission, emp_id )
GROUP BY region

and the DBMS might choose an access path consisting only of table-scans today because the database has only one employee and only three sales. Two years from now, it might use a completely different algorithm because the table scans would involve many thousands of pages of file accesses where using available indexes would use only three or four accesses to pages that are likely cached.

Algorithmic replacement. No code changes. Sounds like a bargain to me! Yeah, baby! YEAH! Received on Sun Jul 22 2001 - 01:28:56 CEST

Original text of this message