Thinkins in sets is a great book by Joe Celko’s. This book tell us about concepts how we need to think when we were working with databases.
Columns are not fields, rows are not records and tables are note files, hence SQL is declarative, not procedural. There is no sequential access or ordering in table, so “first,” “next,”
and “last” rows are totally meaningless.
I agree when he write “One of the first things that a newbie does is use a proprietary autonumbering feature in their SQL product as a PRIMARY KEY”. This is completely wrong, and it violates the definition of a relational key.
An attribute has to belong to an entity in the real world being modeled by the RDBMS. Autonumbering does not exist in an entity in the real world being modeled by the RDBMS. Thus, it is not an attribute
and cannot be in a table, by definition.
That’s how I think and was totally wrong before.
So lets do something sets!