SQL Clearly Explained, 3rd Ed
Author: Jan L Harrington
Publisher: Morgan Kaufmann, 2010
Pages: 480
ISBN: 978-0123756978
Aimed at: Students
Rating: 3.5
Pros: Good examples and full coverage of the SQL 2008 standard
Cons: Doesn't go far enough for real-world use
Reviewed by: Kay Ewbank

A good general overview of most of the standard elements of SQL plus some newer topics.

Author: Jan L Harrington
Publisher: Morgan Kaufmann, 2010
Pages: 480
ISBN: 978-0123756978
Aimed at: Students
Rating: 3.5
Pros: Good examples and full coverage of the SQL 2008 standard
Cons: Doesn't go far enough for real-world use
Reviewed by: Kay Ewbank

There are two main varieties of SQL - those that have been customised for a particular database such as SQL Server, Oracle, or even Access, and then there’s the SQL Standard which roughly speaking is what you get with the open source SQL databases such as PostgreSQL and MySQL . The standard was updated in 2008 to add in support for object-relational databases and XML. 


If you are trying to learn SQL for one of the open source databases or as part of a course at school or university, SQL Clearly Explained has the advantage of sticking to the standard version so you’re not confused by custom extensions that don’t work with the software you’re using. The book gives a good general overview to most of the standard elements of SQL. It then goes on to cover the new topics of SQL-XML and object-oriented databases.

I quite liked the fact that the book starts with the theory of SQL, with chapters on relational data models, relational algebra and the history of SQL. You may not particularly feel it helps to know the different types of referential relationships, and I suspect the chapter on relational algebra will be still less popular, but they may well be the most useful chapters in the book. If you get a real understanding of sets and joins, unions, restrictions, then you’ve cracked a lot of how to select data. Interestingly, the book doesn’t go into normalising data - presumably because that’s more to do with database design rather than SQL. This focus on the background does mean you only meet actual SQL in part two of the book, 77 pages in.

Once you hit the SQL section, you get chapters on SQL Select, how to create Joins, advanced retrieval operations such as Union, Exists and Intersect that provide the means to identify combinations of data. There’s a chapter on working with groups of rows that takes you through Set functions such as Count, Sum and Avg, how to change data types and create groups. A final chapter in this section covers modifying data. I felt this section of the book could have been longer with more examples, but what was there seemed pretty well explained.

In part three of the book, the author moves on to managing database structures, kicking off with schemas, domains and tables so a novice would learn how to create entire databases using nothing but SQL commands. Views, indexes and temporary tables get a chapter that tells you why they’re useful in cases such as showing the records returned by SQL queries. The rest of this part of the book deals with administrative tasks - modifying the design of existing tables, managing user accounts and access rights, and handling concurrent users, database sessions and transaction control. I felt that a student of SQL who needed to learn about Selects and Joins would probably be better leaving concurrency and transactions for later in their SQL career, but the coverage was fine.

There are two main varieties of SQL - those that have been customised for a particular database such as SQL Server, Oracle, or even Access, and then there's the SQL Standard which roughly speaking is what you get with the open source SQL databases such as PostgreSQL and MySQL . The standard was updated in 2008 to add in support for object-relational databases and XML.

If you are trying to learn SQL for one of the open source databases or as part of a course at school or university, SQL Clearly Explained has the advantage of sticking to the standard version so you're not confused by custom extensions that don't work with the software you're using. The book gives a good general overview of most of the standard elements of SQL. It then goes on to cover the new topics of SQL-XML and object-oriented databases.

 

Banner

 

I quite liked the fact that the book starts with the theory of SQL, with chapters on relational data models, relational algebra and the history of SQL. You may not particularly feel it helps to know the different types of referential relationships, and I suspect the chapter on relational algebra will be still less popular, but they may well be the most useful chapters in the book. If you get a real understanding of sets and joins, unions, restrictions, then you've cracked a lot of how to select data. Interestingly, the book doesn't go into normalising data - presumably because that's more to do with database design rather than SQL. This focus on the background does mean you only meet actual SQL in Part 2 of the book, 77 pages in.

Once you hit the SQL section, you get chapters on SQL Select, how to create Joins, advanced retrieval operations such as Union, Exists and Intersect that provide the means to identify combinations of data. There's a chapter on working with groups of rows that takes you through Set functions such as Count, Sum and Avg, how to change data types and create groups. A final chapter in this section covers modifying data. I felt this section of the book could have been longer with more examples, but what was there seemed pretty well explained.

In Part 3 the author moves on to managing database structures, kicking off with schemas, domains and tables so a novice would learn how to create entire databases using nothing but SQL commands. Views, indexes and temporary tables get a chapter that tells you why they're useful in cases such as showing the records returned by SQL queries. The rest of this part of the book deals with administrative tasks - modifying the design of existing tables, managing user accounts and access rights, and handling concurrent users, database sessions and transaction control. I felt that a student of SQL who needed to learn about Selects and Joins would probably be better leaving concurrency and transactions for later in their SQL career, but the coverage was fine.

In Part 4 we move on to SQL programming, looking at variables, embedded SQL and dynamic SQL. This section seemed a bit skimpy - only 50 pages - and in particular covered stored procedures in a single sentence. This part definitely felt as though it was included to tick the box for a student who needed to say they knew what SQL programming was without intending to get that far.

Part 5 looks at the non-relational SQL extensions - XML and object-relational support. The author attempts to cover both what XML is and how it is implemented in the SQL Standard, which has the virtue of completeness, but would ideally fill a book in its own right. The same problem plagued the chapters on object-relational models, though what was explained was entertaining and well written.

Overall, the book is good in as far as it goes, but suffers from the sheer size of the body of material. It has some interesting observations and good examples, and would probably work well for a student who needs to 'know' SQL rather than actually attempt to write SQL queries or manage a SQL database. 

Banner


Software Mistakes and Tradeoffs (Manning)

Author: Tomasz Lelek and Jon Skeet
Publisher: Manning
Date: June 2022
Pages: 426
ISBN: 978-1617299209
Print: 1617299200
Audience: C# developers
Rating: 4
Reviewer: Mike James
We all make mistakes - do you want to read about them?



Large-Scale C++, Volume I

Author: John Lakos
Publisher: Addison-Wesley
Pages: 988
ISBN: 978-0201717068
Print: 0201717069
Kindle: B0826523GZ
Audience: Programmers with plenty of time to spare
Rating: 3
Reviewer Mike James:
Large Scale C++, what can this mean?


More Reviews


Last Updated ( Thursday, 18 November 2010 )