Real SQL question -- relational, navigational, Hierarchic models.

Ruslan Zasukhin ruslan_zasukhin at valentina-db.com
Sat Mar 10 03:34:22 CST 2012


On 3/9/12 3:38 AM, "Jon Ogden" <jogden at mac.com> wrote:

> Dan,

> What makes a database relational is that the tables have relationships between
> them that allow you to store unique data in different tables and tie that data
> together without duplicating it. This data is tied together by indexes that
> are all unique and allow for extremely fast searching and lookup of records in
> databases with very large record counts. The relational aspect has nothing to
> do with how you search but in how the database engine that you never touch
> allows all this to happen under the hood.

Not very exactly. Let me correct something.

* relational model do not says anything about indexes.
    Pure RDBMS in fact should be without indexes :)
    indexes was kind of optimization.

* About 20 years ago was 3 popular models:
    Hierarchic    
    Navigational
    Relational

-- First two models have in engine TABLES + LINKS.
    They implemented links with using special link API commands as
          link( person.rec, phone.rec )

    And they have used INTERNAL recids. User/Developer have never see values
of     that recids ...



-- Relational model has only Tables. Links between tables implemented with
help of additional FIELD in one of related table and LINK BY VALUE.
User explicitly see that field and its value in the Many table.


* First two models was x5 times faster of relational, on few reasons.
One of them was -- to access such dbs you must write CODE on some language,
e.g. C...

* relational dbs have born SQL -- and this have help them win fight in
client-server environments. Because when server is on other side of planet
it is better sent small SQL string in ONE command, then do 100 000 calls by
network...

* besides SQL have help win because no need for coding. You can write few
lines of SQL from terminal and send to DB. No need write C or RB code,
compile it into EXE to see result ...


Last 5-7 years, we see new loop :-)
    Somebody have remember that API way can be faster ...
    there is new wave -- wow we want nonSQL API.

But guys, it needs very good understand where SQL is better, and where API
can be faster ...

Any weapon is good if you use it right ...


** in Valentina DB we have MIX both ways (in fact may be more ways),
     you can use SQL and API in the same app in the same time ...
     or you can use only one of them if this is your favor.


Btw REALbasic as C-languages (C C++ C# ObjC) is very faster itself, so is
perfect with API way ...


* for Dan:  SQLite of course is relational db engine. It have tables, it
allow you make link by values, it have Foreign Key constraint.
    It is exactly not navigational or hierarchic or OO db engine.
    It is relational. No doubts :-)



-- 
Best regards,

Ruslan Zasukhin
VP Engineering and New Technology
Paradigma Software, Inc

Valentina - Joining Worlds of Information
http://www.paradigmasoft.com

[I feel the need: the need for speed]




More information about the Valentina mailing list