The Practical SQL Handbook

"Using SQL Variants" doesn't mean what you might think.

As a Microsoft techie, my first reaction to the cover of this book was "ah, someone is finally covering the new SQL Variant Data Type in SQL Server 2000." That turned out not to be the case. What this book means by SQL Variants are the variations between the different flavors of SQL associated with the different RDBMS platforms. In fact, if you're seeking a hard-core Microsoft SQL Server 2000 programming book, this is not the book for you. If you're project manager, an MSCE or a business analyst seeking a better understanding of RDBMS, this is a suitable book. This book is designed as a cross-platform study of Oracle, Sybase, Informix, and Microsoft. The book ships with a CD of Sybase Anywhere (now called Adaptive Server Anywhere). It is not a book geared specifically towards the Microsoft SQL Server 2000 platform.

The first chapter offers an introduction to SQL and relational database management. While the basic features (columns, tables, etc) of a relational database are covered in detail, I believe this would have been a good opportunity for the authors to go into more detail about the different platforms, their history and their current roles in the market.

The second chapter is a survey of data modeling and database design. Data modeling is an art and science unto its own, and it is hard to compact the whole of it into one chapter. The authors do provide a good overview of database design, though. The critical pieces of database design, such as entities, attributes, one-to-many relationships, many-to-many relationships and one-to-one relationships are all discussed. These topics are well thought out and well covered. The chapter might have benefited from a tighter explanation of the connections between the logical world of design and the physical implementation of the logical. For example, entities in the physical world become tables, while attributes become columns in the database.

The following chapters are a perusal of the SQL language, along with sections embedded in the chapters called SQL variants which points out differences in syntax between the languages of the major databases. The major topics of SQL are covered in reasonably good depth: Select, delete, update, insert, order by, group by, subqueries, views, indexes and transactions are all covered. The writing is clear, concise and easy to follow and will facilitate grasping SQL concepts. Indexing, a major aspect of achieving relational database performance could have been covered in better detail, since it so critical. For instance, the authors skimmed over the topic of clustered vs. non-clustered indexes.

The major weakness to the book is the Tips section that is integrated within the chapters. Many of the tips are too broad based, don't take into account real world development or are understated. For example, one tip suggests planning out an indexing schema while planning the tables. While this is academically sound, in the real world of development, a great many shops will wait until a later stage of development to implement indexes.

Another weakness is the lack of a Database Administration section. Since this is a cross-platform book, it would hard to make it specific to a single RDMBS. However, administrative concepts such as transaction logs, backups, database consistency and re-indexing would be helpful in creating a greater understanding of database management as a whole.

Overall, this book does the job for an overview and survey of an RDMS. It will whet the appetite for further education on topics such as data modeling and design. For those of you searching for a Microsoft SQL Server "heavy hitter" techie book, there are myriad of other choices.

About the Author

Mike Feldman is the president of Data-Rite (www.dataritesys.com) , a Web and application company in NYC that specializes in Microsoft technology. Mike is an MCSD and MCT and a frequent speaker at technical Conferences. For several years Mike wrote a monthly column in Advisor magazine and was an instructor of client-server applications at Baruch College in NYC.

Featured