Joe Celko's Thinking in Sets: Auxiliary, Temporal, and Virtual Tables in SQL: Auxiliary, Temporal, and Virtual Tables in SQL (The Morgan Kaufmann in Data Management Systems)
Format: PDF / Kindle (mobi) / ePub
Perfectly intelligent programmers often struggle when forced to work with SQL. Why? Joe Celko believes the problem lies with their procedural programming mindset, which keeps them from taking full advantage of the power of declarative languages. The result is overly complex and inefficient code, not to mention lost productivity.
This book will change the way you think about the problems you solve with SQL programs.. Focusing on three key table-based techniques, Celko reveals their power through detailed examples and clear explanations. As you master these techniques, you’ll find you are able to conceptualize problems as rooted in sets and solvable through declarative programming. Before long, you’ll be coding more quickly, writing more efficient code, and applying the full power of SQL.
• Filled with the insights of one of the world’s leading SQL authorities - noted for his knowledge and his ability to teach what he knows.
• Focuses on auxiliary tables (for computing functions and other values by joins), temporal tables (for temporal queries, historical data, and audit information), and virtual tables (for improved performance).
• Presents clear guidance for selecting and correctly applying the right table technique.
Reuter Building an Object-OrientedDatabase System: The Story of Oe Edited by FrancoisBancilhon, Claude Delobel, and Paris Kanellakis Database TransactionModelsfor Advanced Applications Edited by Ahmed K. Elmagarmid A Guide to Developing Client~ServerSQL Applications Setrag Khoshafian, Arvola Chan, Anna Wong, and Harry K. T. Wong The Benchmark Handbookfor Database and Transaction ProcessingSystems, SecondEdition Edited by Jim Gray Camelot and Avalon: A Distributed Transaction Facility Edited by
Library of Congress Cataloging-in-Publication Data Celko, Joe. [Thinking in sets] Joe Celko's thinking in sets : auxiliary, temporal, and virtual tables in SQL / Joe Celko. p. cm. Includes index. ISBN 978-0-12-374137-0 (alk. paper) 1. SQL (Computer program language) 2. Declarative programming. I. Title. II. Title: Thinking in sets. QA76.73.$67C463 2008 005.13mdc22 2007043898 For information on all Morgan Kaufmann publications, visit our Web site at www.mkp.com or www.books.elsevier.com. Printed
Volume, and Maintaining Databases 2.1 2.2 2.3 2.4 2.5 2.6 Parallelism Cheap Main Storage Solid-State Disk Cheaper Secondary and Tertiary Storage The Data Changed The Mindset Has Not Changed eo XVII 1 2 4 5 7 11 13 15 17 18 19 20 20 21 21 22 24 24 25 26 27 29 30 31 32 32 33 33 viii CONTENTS Data Access and Records 3.1 3.2 3.3 3.4 3.5 3.6 3.7 4 Sequential Access 3.1.1 Tape-Searching Algorithms Indexes 3.2.1 Single-Table Indexes 3.2.2 Multiple-Table Indexes 3.2.3 Type of Indexes Hashing
there are no empty spaces in the hash table, then the hash is called minimal. If each unique value in the table hashes to one and only one hash code, then the hash is called perfect. Finding a minimal perfect hashing function is a challenge. The best choices for (n) are usually prime numbers that are under a certain size that would keep buckets in main storage as much as possible. In the simple hash join algorithm, the source and target tables are hashed on the join attribute values. Equal values
Computing a value to the highest precision available can be costly~a few more cycles in an iteration or recursion to make a calculation more accurate can be expensive. Finally, such tables are sharable with applications. You do not have multiple copies of the same algorithm written in different programming languages. Multiple code bases have consistency problems from language to language (Does Pascal compute the MOD() function the same way as FORTRAN? Does COBOL even have a MOD() function?). With