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 that theory into practice. In this book, Chris Date explains relational theory in depth, and demonstrates through numerous examples and exercises how you can apply it to your use of SQL.
This third edition has been revised, extended, and improved throughout. Topics whose treatment has been expanded include data types and domains, table comparisons, image relations, aggregate operators and summarization, view updating, and subqueries. A special feature of this edition is a new appendix on NoSQL and relational theory.
- Could you write an SQL query to find employees who have worked at least once in every programming department in the company? And be sure it’s correct?
- Why is proper column naming so important?
- Nulls in the database cause wrong answers. Why? What you can do about it?
- How can image relations help you formulate complex SQL queries?
- SQL supports "quantified comparisons," but they’re better avoided. Why? And how?Database theory and practice have evolved considerably since Codd first defined the relational model, back in 1969. This book draws on decades of experience to present the most up to date treatment of the material available anywhere. Anyone with a modest to advanced background in SQL can benefit from the insights it contains. The book is product independent.
Table of Contents
Chapter 1. Setting the Scene
Chapter 2. Types and Domains
Chapter 3. Tuples and Relations, Rows and Tables
Chapter 4. No Duplicates, No Nulls
Chapter 5. Base Relvars, Base Tables
Chapter 6. SQL and Relational Alegebra I: The Original Operators
Chapter 7. SQL and Relational Algebra II: Additional Operators
Chapter 8. SQL and Constraints
Chapter 9. SQL and Views
Chapter 10. SQL and Logic
Chapter 11. Using Logic to Formulate SQL Expressions
Chapter 12. Miscellaneous SQL Topics
Appendix A. The Relational Model
Appendix B. SQL Departures from the Relational Model
Appendix C. A Relational Approach to Missing Information
Appendix D. A Tutorial D Grammar
Appendix E. Summary of Recommendations
Appendix F. NoSQL and Relational Theory
Appendix G. Suggestions for Further Reading