Joe Celko's Data and Databases: Concepts in Practice
By Joe Celko
Chapter 4: Relational Tables
Chapter 4: Relational Tables
Overview
SQL is classified as a set-oriented language, but in truth it did not have a full collection of classic set operations until the SQL-92 standard, and even then actual products were slow to implement them.
We discussed the formal properties of multisets (or bags, to use a term I find less attractive), which included
1.
A multiset is a collection of things (elements) of the same kind.
2.
A multiset has no ordering to its elements.
3.
A multiset may have duplicates in the collection.
A relational table has more properties than its simple data structure. It is far too easy for a beginner SQL programmer to think that a table is a file, a row is a record, and a column is a field. This is not true at all.
A table can exist only within a database schema, where it is related to the other tables and schema objects. A file exists in its own right and has no relationship to another file as far as the file system is concerned.
A file is passive storage whose structure is defined by the program that reads it. That is, I can read the same file in, say, Fortran several different ways in different programs by using different FORMAT statements. A file (particularly in Fortran, Cobol, and other older 3GL languages) is very concerned with the physical representation of the data in storage.
A table never exposes the physical representation of...
Copyright Morgan Kauffmann Publishers 1999 under license agreement with Books24x7