>>> An SQL database is deemed "Relational" when it can communicate
>>> mildly
...

SQL stands for Structured Query Language.

It has nothing whatsoever to do with the data store but rather is a 
specification of the Language used to retrieve/manipulate the datastore.

This is the same as "C" or "FORTRAN" being language specifications for how a 
problem is stated to a computer and DOES NOT say anything nor impose any 
requirements on the underlying CPU architecture (RISC?  CISC?  DEC?  IBM?  
Intel?  etc) nor how the program is stored and run (RAM?  Paper Tape?  Core?  
Drum?).

You can have "SQL" used to query a "relational database", query a hierarchical 
database, query a network or network-extended model database.  You can use 
"navigational calls" to navigate a "relational database", "hierarchical 
database", or a "network or network-extended database".

>> Relational Model (E.F.Codd ...) is a way of organising data (any
>> data, despite many arguments to the contrary). Using 
>> "relational" as a sort of generic term, or as a metaphor, 
>> leads to confusion because it hides the fact that there is a 
>> formal system which is behind the creation of SQL databases, 
>> except that the various implementers got it wrong, including
>> missing out some key points of the Model.

Actually, this is incorrect.  a "relational database" is one in which the 
"relations" are expressed by the storage of "duplicate data" in the various 
record structures, and that relations are based on the value of the data itself 
and nothing else.  That is to say that a Bill-of-Material does not contain a 
"master record" with a "linked list" of "child records" pointing to their 
"owners" (as in a set), but rather that the "master record" is linked to its 
children by the duplication of data.  Relational Algebra is the mathematic 
theory by which this hunk of duplicated data can be designed and manipulated in 
a cohesive manner without introducing "anomalies" into the processing, such 
consistency having previously been imposed directly by designing the database 
using hierarchical, network, or network-extended data models (which are more 
accurate portrayals (models) of the structure of the real world) ... however, 
the use of those methods had "issues" of their own that could be solved by 
using a "relational data duplication" model (in that the relationships are 
inherent in the data values themselves and not dependent on some artificial 
data structure which cannot be easily re-created if corrupted) and reflected 
the increase in storage and processing power that was necessary to maintain all 
that duplication.

>Your basic thesis here revolves around "SQL engines do not follow the
>letter and the law of the Relational model" - and the reply, same is
>before, is "We know. So what?".
>(I'm not disagreeing, I'm just not convinced of controversy)

That is because SQL (Structured Query Language) is an imperative Query 
Language.  It does not describe the underlying datastore, which may or may not 
be based on Relational Algebra, but is merely a Query Language -- a way to 
express what it is that one wants to be done.

>I can't speak for everyone, but it is my sincere belief that every DB
>engine, at the start, intended to be "The One" that was going to be
>closest to the relational model and/or the SQL standard - right
>before reality intervened.

No, the Database Engine (as in the data storage layer) intends to provide a way 
of modelling the "real world".  The relational model is simply a method by 
which mathematical concepts can be applied to prove correctness of the model.  
That is to say that a "relational database" means that the datastore is 
"relational" and can be manipulated in accordance with the postulates of 
relational algebra and is, under those postulates, correct and anomaly free.

SQL is merely the manner in which one manipulates the datastore, it does not 
matter the actual format of storage of the datastore since, in the end, 
correctness of the data model can only be proved by mathematical means.




_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to