From: Torsten Grust (intgr@asterix.rz.tu-clausthal.de)
Date: 09/17/93


From: intgr@asterix.rz.tu-clausthal.de (Torsten Grust)
Subject: Re: Database for LINUX?
Date: Fri, 17 Sep 1993 11:08:22 GMT


Hi, there

        only a few words on the diffs between SQL and QUEL (from a theoretical
point of view :-):

        -1- SQL's query parT is mainly based on the so-called
                RELATIONAL ALGEBRA, a set
                of operators manipulating the relational tables, loosely
                speaking. This operator set is made up of the

                - Projection (SQL: SELECT) "get only specified columns out of
                        the target table"
                - Selection (SQL: WHERE) "select some lines (tuples) out of
                        the target table, matching a given predicate"
                - Join (SQL: FROM/WHERE) "append the columns of two tables,
                        connect those tuples matching a given join
                        predicate" (called THETA-Join)
                - Union (SQL: UNION) "do a set union on the tuples of two
                        target tables of certain uniform layout"
                - Minus (SQL: ---) "do a set difference, like above"
                - Rename (SQL: SELECT renaming) "rename the column names
                        of the target tables" (useful for Joins)

                :-( SQL does not implement the full relational algebra!!!

        -2- QUEL is based on the RELATIONAL CALCULUS, theoretically as
                powerful as the ALGEBRA mentioned above. QUEL queries are made
                up of a Projection and Selection part, giving you all and
                m o r e oppurtunities than SQL!!! Not as readable as SQL's

                        SELECT
                        FROM
                        WHERE
                        
                blocks but more powerful. QUEL is the choice of the early
                Ingres and Postgres implementors, overridden by SQL only for
                marketing purposes.

So get INGRES/POSTGRES and do QUEL-querying... It's the right thing :-)

        Torsten "Teg" Grust

        Technical University of Clausthal, Germany
        Dept. of CS, OO Database Development Group "OSCAR"

        email: intgr@sun.rz.tu-clausthal.de