SQL: a Comparative Survey
Total Page:16
File Type:pdf, Size:1020Kb
Hugh Darwen SQL: A Comparative Survey 2 Download free eBooks at bookboon.com SQL: A Comparative Survey 2th edition © 2014 Hugh Darwen & bookboon.com ISBN 978-87-403-0778-8 3 Download free eBooks at bookboon.com SQL: A Comparative Survey Contents Contents Preface 9 1 Introduction 11 1.1 Introduction 11 1.5 “Collection of Variables” 13 1.6 What Is an SQL Database? 14 1.7 “Table” Not Equal to “Relation” 15 1.8 Anatomy of a Table 16 1.9 What Is a DBMS? 17 1.10 SQL Is a Database Language 17 1.11 What Does an SQL DBMS Do? 18 1.12 Creating and Destroying Base Tables 18 1.13 Taking Note of Integrity Rules 20 1.14 Taking Note of Authorisations 21 1.15 Updating Variables 22 1.16 Providing Results of Queries 25 �e Graduate Programme I joined MITAS because for Engineers and Geoscientists I wanted real responsibili� www.discovermitas.comMaersk.com/Mitas �e Graduate Programme I joined MITAS because for Engineers and Geoscientists I wanted real responsibili� Maersk.com/Mitas Month 16 I wwasas a construction Month 16 supervisorI wwasas in a construction the North Sea supervisor in advising and the North Sea Real work helpinghe foremen advising and IInternationalnternationaal opportunities ��reeree wworkoro placements solves Real work problems helpinghe foremen IInternationalnternationaal opportunities ��reeree wworkoro placements solves problems 4 Click on the ad to read more Download free eBooks at bookboon.com SQL: A Comparative Survey Contents 2 Values, Types, Variables, Operators 26 2.1 Introduction 26 2.2 Anatomy of A Command 29 2.3 Important Distinctions 30 2.4 A Closer Look at a Read-Only Operator (+) 30 2.5 Read-only Operators in SQL 30 2.6 What Is a Type? 36 2.7 What Is a Type Used For? 39 2.8 The Type of a Table 40 2.9 Table Literals 42 2.10 Types and Representations 44 2.11 What Is a Variable? 50 2.12 Updating a Variable 55 2.13 Conclusion 57 3 Predicates and Propositions 59 3.1 Introduction 59 3.2 What Is a Predicate? 60 3.3 Substitution and Instantiation 61 3.4 How a Table Represents an Extension… 62 3.5 Deriving Predicates from Predicates 62 www.job.oticon.dk 5 Click on the ad to read more Download free eBooks at bookboon.com SQL: A Comparative Survey Contents 4 Relational Algebra— The Foundation 73 4.1 Introduction 73 4.2 Relations and Predicates 81 4.3 Relational Operators and Logical Operators 81 4.4 JOIN and AND 82 4.5 Renaming Columns 86 4.6 Projection and Existential Quantification 88 4.7 Restriction and AND 92 4.8 Extension and AND 94 4.9 UNION and OR 96 4.10 Semidifference and NOT 100 4.11 Concluding Remarks 104 EXERCISES 105 5 Building on The Foundation 107 5.1 Introduction 107 5.2 Semijoin and Composition 108 5.3 Aggregate Operators 114 5.4 Tables within a Table 118 In the past 5 years we have drilled around 95,000 km —that’s more than twice around the world. Who are we? We are the world’s leading provider of reservoir characterization, drilling, production, and processing technologies to the oil and gas industry. Who are we looking for? We offer countless opportunities in the following domains: n Operations n Research, Engineering, and Manufacturing n Geoscience and Petrotechnical n Commercial and Business We’re looking for high-energy, self-motivated graduates with vision and integrity to join our team. What will you be? careers.slb.com 6 Click on the ad to read more Download free eBooks at bookboon.com SQL: A Comparative Survey Contents 5.5 Using Aggregation on Nested Tables 120 5.6 Summarization in SQL 124 5.7 Grouping and Ungrouping in SQL 126 5.8 Wrapping and unwrapping in SQL 131 5.9 Table Comparison 132 5.10 Other Operators on Tables and Rows 133 EXERCISES 134 6 Constraints and Updating 136 6.1 Introduction 136 6.2 A Closer Look at Constraints and Consistency 140 6.3 Expressing Constraint Conditions 141 6.4 Useful Shorthands for Expressing Some Constraints 148 6.5 Updating Tables 155 EXERCISES 164 Appendix A: References and Bibliography 167 INDEPENDENT MINDED LIKEWe believe in equality, sustainability and YOU a modern approach to learning. How about you? Apply for a Master’s Programme in Gothenburg, Sweden. PS. Scholarships available for Indian students! www.gu.se/education 7 Click on the ad to read more Download free eBooks at bookboon.com This book is dedicated to members past and present of ISO/IEC Joint Technical Committee 1, Subcomittee 32, Working Group 3, “Database Languages”. 8 Download free eBooks at bookboon.com SQL: A Comparative Survey Preface Preface This book is a companion to my An Introduction to Relational Database Theory (reference [7]) and is intended to be read in parallel with that text, hereinafter referred to as “the theory book”. As I noted in the preface of that book, a university course on relational databases is typically divided into a theory component and an “industrial” component requiring the student to learn the basics of SQL. In that preface I also mention that in my own teaching I encourage students to “compare and contrast SQL with what they have learned in the theory part”. This book is my own attempt to compare and contrast it, piece by piece, with what I have taught in the theory book. The structure of the book closely parallels the first six chapters of the theory book, and the structure of each chapter is such that each section, example, and figure corresponds by number to its counterpart in the theory book. There are some gaps in the numbering. These arise when there is something in the theory book for which there is nothing relevant to discuss in the context of SQL. Conversely, I sometimes need several SQL examples in connection with a single example in the theory book, in which case I suffix the example numbers with a, b, c, and so on. I do not include counterparts of the last two chapters of the theory book. That’s because they deal with relational database design issues and the treatment, insofar as it goes, is equally applicable to SQL databases. Although existing knowledge of SQL is not a prerequisite, this book is not intended to be used as an SQL primer. Rather, its aim is to investigate the extent to which SQL supports and adheres to the theory, how it does so, and where and how it departs from the theory. Inevitably, the book also provides opportunities for comment on SQL’s degree of adherence to commonly accepted principles of computer language design. Much of the study involves comparing expressions in Tutorial D with equivalent or near-equivalent expressions in SQL. Being one of the two inventors of Tutorial D (the other is Chris Date), I am obviously exposing myself to possible accusations of deliberately choosing examples that show my own language in a favourable light. Let me just say, in advance of any such accusations, that I had no idea of writing this book when I chose the examples for the theory book, and I have tried hard to avoid over-elaborate or otherwise perverse SQL formulations. I am open to suggestions and willing to make revisions if simplifications of any of my examples come to light. 9 Download free eBooks at bookboon.com SQL: A Comparative Survey Preface I stick to standard SQL (ISO/IEC 9075—see reference [15]) in all my examples. As a member of the relevant committee (currently ISO/IEC JTC 1/SC 32/WG 3) from 1989 to 2004 I was deeply involved in the drafting of the various documents constituting that standard. I have taken advantage of that experience by sprinkling my text with subsections headed Historical Notes, these being clearly demarcated in brown to help you skip them if they don’t interest you. SQL, whose first commercial implementation appeared in 1979, has grown out of all proportion to its original self over the years and the main aim of these historical notes is to tell you when and why the various features that I use in my examples arose in the language. I was not involved in IBM’s original development of SQL, so there is a certain amount of conjecture—albeit reasonably well-informed conjecture—where I write about the early history of the language. Various SQL guides based on the standard are mentioned in Appendix A (references [2], [10], and [16]). These were all published in the 1990s and thus do not cover material that was added in SQL:1999 and subsequent editions. I am well known in some quarters as a severe critic of SQL. I have tried hard not to burden readers with my personal opinions but, rather, just to present the facts and let readers form their own opinions. In spite of my efforts I have possibly not been 100% successful in that endeavour. It was difficult. Acknowledgments My initial draft was reviewed by Jamie Collins, Chris Date, and Erwin Smout, all of whom made some useful comments. Needless to say, all the remaining errors—and there are sure to be some—are my own. Karin Hamilton Jakobsen, my contact at Ventus Publishing, has been very helpful in many respects in connection with all my books published by that company. In spite of my declared distaste for the language, SQL, I cannot speak too highly of my fellow members of the aforementioned standards committee, especially Jim Melton, the editor-in-chief since 1987, successive convenors Len Gallagher, Stephen Cannan and Keith Hare, and my former colleagues in the UK delegation, Ed Dee, Mike Sykes and Phil Brown.