SQL is full of difficulties and traps for the unwary. You can avoid them if you understand relational theory, but only if you know how to put the theory into practice. In this insightful book, author C.J. Date explains relational theory in depth, and demonstrates through numerous examples and exercises how you can apply it directly to your use of SQL.
This second edition includes new material on recursive queries, “missing information” without nulls, new update operators, and topics such as aggregate operators, grouping and ungrouping, and view updating. If you have a modest-to-advanced background in SQL, you’ll learn how to deal with a host of common SQL dilemmas.
Why is proper column naming so important?
Nulls in your database are causing you to get wrong answers. Why? What can you do about it?
Is it possible to write an SQL query to find employees who have never been in the same department for more than six months at a time?
SQL supports “quantified comparisons,” but they’re better avoided. Why? How do you avoid them?
Constraints are crucially important, but most SQL products don’t support them properly. What can you do to resolve this situation?
Database theory and practice have evolved since the relational model was developed more than 40 years ago. SQL and Relational Theory draws on decades of research to present the most up-to-date treatment of SQL available.
C.J. Date has a stature that is unique within the database industry. A prolific writer well known for the bestselling textbook An Introduction to Database Systems (Addison-Wesley), he has an exceptionally clear style when writing about complex principles and theory.
Chapter 1 Setting the Scene
THE RELATIONAL MODEL IS MUCH MISUNDERSTOOD
SOME REMARKS ON TERMINOLOGY
PRINCIPLES NOT PRODUCTS
A REVIEW OF THE ORIGINAL MODEL
MODEL vs. IMPLEMENTATION
PROPERTIES OF RELATIONS
BASE vs. DERIVED RELATIONS
RELATIONS vs. RELVARS
VALUES vs. VARIABLES
CONCLUDING REMARKS
EXERCISES
Chapter 2 Types and Domains
TYPES AND RELATIONS
EQUALITY COMPARISONS
DATA VALUE ATOMICITY
WHAT’S A TYPE?
SCALAR vs. NONSCALAR TYPES
SCALAR TYPES IN SQL
TYPE CHECKING AND COERCION IN SQL
COLLATIONS IN SQL
ROW AND TABLE TYPES IN SQL
CONCLUDING REMARKS
EXERCISES
Chapter 3 Tuples and Relations, Rows and Tables
WHAT’S A TUPLE?
ROWS IN SQL
WHAT’S A RELATION?
RELATIONS AND THEIR BODIES
RELATIONS ARE n-DIMENSIONAL
RELATIONAL COMPARISONS
TABLE_DUM AND TABLE_DEE
TABLES IN SQL
COLUMN NAMING IN SQL
CONCLUDING REMARKS
EXERCISES
Chapter 4 No Duplicates, No Nulls
WHAT’S WRONG WITH DUPLICATES?
DUPLICATES: FURTHER ISSUES
AVOIDING DUPLICATES IN SQL
WHAT’S WRONG WITH NULLS?
AVOIDING NULLS IN SQL
A REMARK ON OUTER JOIN
CONCLUDING REMARKS
EXERCISES
Chapter 5 Base Relvars, Base Tables
UPDATING IS SET LEVEL
RELATIONAL ASSIGNMENT
MORE ON CANDIDATE KEYS
MORE ON FOREIGN KEYS
RELVARS AND PREDICATES
RELATIONS vs. TYPES
EXERCISES
Chapter 6 SQL and Relational Algebra I: The Original Operators
SOME PRELIMINARIES
MORE ON CLOSURE
RESTRICTION
PROJECTION
JOIN
UNION, INTERSECTION, AND DIFFERENCE
WHICH OPERATORS ARE PRIMITIVE?
FORMULATING EXPRESSIONS ONE STEP AT A TIME
WHAT DO RELATIONAL EXPRESSIONS MEAN?
EVALUATING SQL TABLE EXPRESSIONS
EXPRESSION TRANSFORMATION
THE RELIANCE ON ATTRIBUTE NAMES
EXERCISES
Chapter 7 SQL and Relational Algebra II : Additional Operators
EXCLUSIVE UNION
SEMIJOIN AND SEMIDIFFERENCE
EXTEND
IMAGE RELATIONS
DIVIDE
AGGREGATE OPERATORS
IMAGE RELATIONS bis
SUMMARIZATION
SUMMARIZATION bis
GROUP, UNGROUP, AND RELATION VALUED ATTRIBUTES
“WHAT IF” QUERIES
A NOTE ON RECURSION
WHAT ABOUT ORDER BY?
EXERCISES
Chapter 8 SQL and Constraints
TYPE CONSTRAINTS
TYPE CONSTRAINTS IN SQL
DATABASE CONSTRAINTS
DATABASE CONSTRAINTS IN SQL
TRANSACTIONS
WHY DATABASE CONSTRAINT CHECKING MUST BE IMMEDIATE
BUT DOESN’T SOME CHECKING HAVE TO BE DEFERRED?
CONSTRAINTS AND PREDICATES
MISCELLANEOUS ISSUES
EXERCISES
Chapter 9 SQL and Views
VIEWS ARE RELVARS
VIEWS AND PREDICATES
RETRIEVAL OPERATIONS
VIEWS AND CONSTRAINTS
UPDATE OPERATIONS
WHAT ARE VIEWS FOR?
VIEWS AND SNAPSHOTS
EXERCISES
Chapter 10 SQL and Logic
WHY DO WE NEED LOGIC?
SIMPLE AND COMPOUND PROPOSITIONS
SIMPLE AND COMPOUND PREDICATES
QUANTIFICATION
RELATIONAL CALCULUS
MORE ON QUANTIFICATION
SOME EQUIVALENCES
CONCLUDING REMARKS
EXERCISES
Chapter 11 Using Logic to Formulate SQL Expressions
SOME TRANSFORMATION LAWS
EXAMPLE 1: LOGICAL IMPLICATION
EXAMPLE 2: UNIVERSAL QUANTIFICATION
EXAMPLE 3: IMPLICATION AND UNIVERSAL QUANTIFICATION
EXAMPLE 4: CORRELATED SUBQUERIES
EXAMPLE 5: NAMING SUBEXPRESSIONS
EXAMPLE 6: MORE ON NAMING SUBEXPRESSIONS
EXAMPLE 7: DEALING WITH AMBIGUITY
EXAMPLE 8: USING COUNT
EXAMPLE 9: JOIN QUERIES
EXAMPLE 10: UNIQUE QUANTIFICATION
EXAMPLE 11: ALL OR ANY COMPARISONS
EXAMPLE 12: GROUP BY AND HAVING
EXERCISES
Chapter 12 Miscellaneous SQL Topics
SELECT *
EXPLICIT TABLES
NAME QUALIFICATION
RANGE VARIABLES
SUBQUERIES
“POSSIBLY NONDETERMINISTIC” EXPRESSIONS
EMPTY SETS
A SIMPLIFIED BNF GRAMMAR
EXERCISES
Appendix The Relational Model
THE RELATIONAL MODEL vs. OTHERS
THE SIGNIFICANCE OF THEORY
THE RELATIONAL MODEL DEFINED
DATABASE VARIABLES
OBJECTIVES OF THE RELATIONAL MODEL
SOME DATABASE PRINCIPLES
WHAT REMAINS TO BE DONE?
Appendix SQL Departures from the Relational Model
Appendix A Relational Approach to Missing Information
C.J. Date has a stature that is unique within the database industry. C.J. is a prolific writer, and is well-known for his best-selling textbook: An Introduction to Database Systems (Addison Wesley). C.J. is an exceptionally clear-thinking writer who can lay out principles and theory in a way easily understood by his audience.
Comments about oreilly SQL and Relational Theory, 2nd Edition:
It's about Relational model and SQL. Someone who interest about Database, SQL and relational model, that should read it. You will learn SQL and Relational theory from Professional. When you read each chapter finish, you will see "Exercise", that will help you memorize and understand more. It has well-formed paragraphs and many references; it's good for readers. It can be reference book in the college or university.