Home > Computing and Information Technology > Computer programming / software engineering > Programming and scripting languages: general > Joe Celko's Thinking in Sets: Auxiliary, Temporal, and Virtual Tables in SQL: Auxiliary, Temporal, and Virtual Tables in SQL(The Morgan Kaufmann Series in Data Management Systems)
45%
Joe Celko's Thinking in Sets: Auxiliary, Temporal, and Virtual Tables in SQL: Auxiliary, Temporal, and Virtual Tables in SQL(The Morgan Kaufmann Series in Data Management Systems)

Joe Celko's Thinking in Sets: Auxiliary, Temporal, and Virtual Tables in SQL: Auxiliary, Temporal, and Virtual Tables in SQL(The Morgan Kaufmann Series in Data Management Systems)

          
5
4
3
2
1

Available


Premium quality
Premium quality
Bookswagon upholds the quality by delivering untarnished books. Quality, services and satisfaction are everything for us!
Easy Return
Easy return
Not satisfied with this product! Keep it in original condition and packaging to avail easy return policy.
Certified product
Certified product
First impression is the last impression! Address the book’s certification page, ISBN, publisher’s name, copyright page and print quality.
Secure Checkout
Secure checkout
Security at its finest! Login, browse, purchase and pay, every step is safe and secured.
Money back guarantee
Money-back guarantee:
It’s all about customers! For any kind of bad experience with the product, get your actual amount back after returning the product.
On time delivery
On-time delivery
At your doorstep on time! Get this book delivered without any delay.
Quantity:
Add to Wishlist

About the Book

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

Table of Contents:
1 SQL Is Declarative, Not Procedural1.1 Different Programming Models1.2 Different Data Models1.2.1 Columns Are Not Fields1.2.2 Rows Are Not Records1.2.3 Tables Are Not Files 1.2.4 Relational Keys Are Not Record Locators 1.2.5 Kinds of Keys 1.2.6 Desirable Properties of Relational Keys 1.2.7 Unique But Not Invariant 1.3 Tables as Entities 1.4 Tables as Relationships1.5 Statements Are Not Procedures 1.6 Molecular, Atomic, and Subatomic Data Elements 1.6.1 Table Splitting 1.6.2 Column Splitting 1.6.3 Temporal Splitting 1.6.4 Faking Non-1NF Data 1.6.5 Molecular Data Elements 1.6.6 Isomer Data Elements 1.6.7 Validating a Molecule 2 Hardware, Data Volume, and Maintaining Databases 2.1 Parallelism 2.2 Cheap Main Storage 2.3 Solid-State Disk 2.4 Cheaper Secondary and Tertiary Storage 2.5 The Data Changed 2.6 The Mindset Has Not Changed 3 Data Access and Records 3.1 Sequential Access 3.1.1 Tape-Searching Algorithms 3.2 Indexes 3.2.1 Single-Table Indexes 3.2.2 Multiple-Table Indexes 3.2.3 Type of Indexes 3.3 Hashing 3.3.1 Digit Selection 3.3.2 Division Hashing 3.3.3 Multiplication Hashing 3.3.4 Folding 3.3.5 Table Lookups 3.3.6 Collisions 3.4 Bit Vector Indexes 3.5 Parallel Access 3.6 Row and Column Storage 3.6.1 Row-Based Storage 3.6.2 Column-Based Storage 3.7 JOIN Algorithms 3.7.1 Nested-Loop Join Algorithm 3.7.2 Sort-Merge Join Method 3.7.3 Hash Join Method 3.7.4 Shin’s Algorithm 4 Lookup Tables 4.1 Data Element Names 4.2 Multiparameter Lookup Tables 4.3 Constants Table 4.4 OTLT or MUCK Table Problems 4.5 Defi nition of a Proper Table5 Auxiliary Tables 5.1 Sequence Table 5.1.1 Creating a Sequence Table 5.1.2 Sequence Constructor 5.1.3 Replacing an Iterative Loop 5.2 Permutations 5.2.1 Permutations via Recursion 5.2.2 Permutations via CROSS JOIN 5.3 Functions 5.3.1 Functions without a Simple Formula 5.4 Encryption via Tables 5.5 Random Numbers 5.6 Interpolation 6 Views 6.1 Mullins VIEW Usage Rules 6.1.1 Effi cient Access and Computations 6.1.2 Column Renaming 6.1.3 Proliferation Avoidance 6.1.4 The VIEW Synchronization Rule 6.2 Updatable and Read-Only VIEWs 6.3 Types of VIEWs 6.3.1 Single-Table Projection and Restriction 6.3.2 Calculated Columns 6.3.3 Translated Columns 6.3.4 Grouped VIEWs 6.3.5 UNIONed VIEWs 6.3.6 JOINs in VIEWs 6.3.7 Nested VIEWs 6.4 Modeling Classes with Tables 6.4.1 Class Hierarchies in SQL 6.4.2 Subclasses via ASSERTIONs and TRIGGERs 6.5 How VIEWs Are Handled in the Database System 6.5.1 VIEW Column List 6.5.2 VIEW Materialization 6.6 In-Line Text Expansion 6.7 WITH CHECK OPTION Clause 6.7.1 WITH CHECK OPTION as CHECK( ) Clause 6.8 Dropping VIEWs 6.9 Outdated Uses for VIEWs 6.9.1 Domain Support 6.9.2 Table Expression VIEWs 6.9.3 VIEWs for Table Level CHECK( ) Constraints 6.9.4 One VIEW per Base Table 7 Virtual Tables 7.1 Derived Tables 7.1.1 Column Naming Rules 7.1.2 Scoping Rules 7.1.3 Exposed Table Names 7.1.4 LATERAL() Clause 7.2 Common Table Expressions 7.2.1 Nonrecursive CTEs 7.2.2 Recursive CTEs 7.3 Temporary Tables 7.3.1 ANSI/ISO Standards 7.3.2 Vendors Models 7.4 The Information Schema 7.4.1 The INFORMATION_SCHEMA Declarations 7.4.2 A Quick List of VIEWS and Their Purposes 7.4.3 DOMAIN Declarations 7.4.4 Defi nition Schema 7.4.5 INFORMATION_SCHEMA Assertions 8 Complicated Functions via Tables 8.1 Functions without a Simple Formula 8.1.1 Encryption via Tables 8.2 Check Digits via Tables 8.2.1 Check Digits Defi ned 8.2.2 Error Detection versus Error Correction 8.3 Classes of Algorithms 8.3.1 Weighted-Sum Algorithms 8.3.2 Power-Sum Check Digits 8.3.3 Luhn Algorithm 8.3.4 Dihedral Five Check Digit 8.4 Declarations, Not Functions, Not Procedures 8.5 Data Mining for Auxiliary Tables 9 Temporal Tables 9.1 The Nature of Time 9.1.1 Durations, Not Chronons 9.1.2 Granularity 9.2 The ISO Half-Open Interval Model 9.2.1 Use of NULL for “Eternity” 9.2.2 Single Timestamp Tables 9.2.3 Overlapping Intervals 9.3 State Transition Tables 9.4 Consolidating Intervals 9.4.1 Cursors and Triggers 9.4.2 OLAP Function Solution 9.4.3 CTE Solution 9.5 Calendar Tables 9.5.1 Day of Week via Tables 9.5.2 Holiday Lists 9.5.3 Report Periods 9.5.4 Self-Updating Views 9.6 History Tables 9.6.1 Audit Trails 10 Scrubbing Data with Non-1NF Tables 10.1 Repeated Groups 10.1.1 Sorting within a Repeated Group 10.2 Designing Scrubbing Tables 10.3 Scrubbing Constraints 10.4 Calendar Scrubs 10.4.1 Special Dates 10.5 String Scrubbing 10.6 Sharing SQL Data 10.6.1 A Look at Data Evolution 10.6.2 Databases 10.7 Extract, Transform, and Load Products 10.7.1 Loading Data Warehouses 10.7.2 Doing It All in SQL 10.7.3 Extract, Load, and then Transform 11 Thinking in SQL 11.1 Warm-up Exercises 11.1.1 The Whole and Not the Parts 11.1.2 Characteristic Functions 11.1.3 Locking into a Solution Early 11.2 Heuristics 11.2.1 Put the Specification into a Clear Statement 11.2.2 Add the Words “Set of All…” in Front of the Nouns 11.2.3 Remove Active Verbs from the Problem Statement 11.2.4 You Can Still Use Stubs 11.2.5 Do Not Worry about Displaying the Data 11.2.6 Your First Attempts Need Special Handling 11.2.7 Do Not Be Afraid to Throw Away Your First Attempts at DDL 11.2.8 Save Your First Attempts at DML 11.2.9 Do Not Think with Boxes and Arrows 11.2.10 Draw Circles and Set Diagrams 11.2.11 Learn Your Dialect 11.2.12 Imagine that Your WHERE Clause Is “Super Amoeba” 11.2.13 Use the Newsgroups, Blogs, and Internet 11.3 Do Not Use BIT or BOOLEAN Flags in SQL 11.3.1 Flags Are at the Wrong Level 11.3.2 Flags Confuse Proper Attributes 12 Group Characteristics 12.1 Grouping Is Not Equality 12.2 Using Groups without Looking Inside 12.2.1 Semiset-Oriented Approach 12.2.2 Grouped Solutions 12.2.3 Aggregated Solutions 12.3 Grouping over Time 12.3.1 Piece-by-Piece Solution 12.3.2 Data as a Whole Solution 12.4 Other Tricks with HAVING Clauses 12.5 Groupings, Rollups, and Cubes 12.5.1 GROUPING SET Clause 12.5.2 The ROLLUP Clause 12.5.3 The CUBE Clause 12.5.4 A Footnote about Super Grouping 12.6 The WINDOW Clause 12.6.1 The PARTITION BY Clause 12.6.2 The ORDER BY Clause 12.6.3 The RANGE Clause 12.6.4 Programming Tricks 13 Turning Specifications into Code 13.1 Signs of Bad SQL 13.1.1 Is the Code Formatted Like Another Language? 13.1.2 Assuming Sequential Access 13.1.3 Cursors 13.1.4 Poor Cohesion 13.1.5 Table-Valued Functions 13.1.6 Multiple Names for the Same Data Element 13.1.7 Formatting in the Database 13.1.8 Keeping Dates in Strings 13.1.9 BIT Flags, BOOLEAN, and Other Computed Columns 13.1.10 Attribute Splitting Across Columns 13.1.11 Attribute Splitting Across Rows 13.1.12 Attribute Splitting Across Tables 13.2 Methods of Attack 13.2.1 Cursor-Based Solution 13.2.2 Semiset-Oriented Approach 13.2.3 Pure Set-Oriented Approach 13.2.4 Advantages of Set-Oriented Code 13.3 Translating Vague Specifications 13.3.1 Go Back to the DDL 13.3.2 Changing Specifications 14 Using Procedure and Function Calls 14.1 Clearing out Spaces in a String 14.1.1 Procedural Solution #1 14.1.2 Functional Solution #1 14.1.3 Functional Solution #2 14.2 The PRD( ) Aggregate Function 14.3 Long Parameter Lists in Procedures and Functions 14.3.1 The IN( ) Predicate Parameter Lists 15 Numbering Rows 15.1 Procedural Solutions 15.1.1 Reordering on a Numbering Column 15.2 OLAP Functions 15.2.1 Simple Row Numbering 15.2.2 RANK( ) and DENSE_RANK( ) 15.3 Sections16 Keeping Computed Data 16.1 Procedural Solution 16.2 Relational Solution 16.3 Other Kinds of Computed Data 17 Triggers for Constraints 17.1 Triggers for Computations 17.2 Complex Constraints via CHECK( ) and CASE Constraints 17.3 Complex Constraints via VIEWs 17.3.1 Set-Oriented Solutions 17.4 Operations on VIEWs as Constraints 17.4.1 The Basic Three Operations 17.4.2 WITH CHECK OPTION Clause 17.4.3 WITH CHECK OPTION as CHECK( ) clause 17.4.4 How VIEWs Behave 17.4.5 UNIONed VIEWs 17.4.6 Simple INSTEAD OF Triggers 17.4.7 Warnings about INSTEAD OF Triggers 18 Procedural and Data Driven Solutions 18.1 Removing Letters in a String 18.1.1 The Procedural Solution 18.1.2 Pure SQL Solution 18.1.3 Impure SQL Solution 18.2 Two Approaches to Sudoku 18.2.1 Procedural Approach 18.2.2 Data-Driven Approach 18.2.3 Handling the Given Digits 18.3 Data Constraint Approach 18.4 Bin Packing Problems 18.4.1 The Procedural Approach 18.4.2 The SQL Approach 18.5 Inventory Costs over Time 18.5.1 Inventory UPDATE Statements 18.5.2 Bin Packing Returns Index


Best Sellers


Product Details
  • ISBN-13: 9780123741370
  • Publisher: Elsevier Science & Technology
  • Publisher Imprint: Morgan Kaufmann Publishers In
  • Depth: 19
  • Language: English
  • Returnable: N
  • Spine Width: 23 mm
  • Weight: 779 gr
  • ISBN-10: 0123741378
  • Publisher Date: 27 Feb 2008
  • Binding: Paperback
  • Height: 235 mm
  • No of Pages: 384
  • Series Title: The Morgan Kaufmann Series in Data Management Systems
  • Sub Title: Auxiliary, Temporal, and Virtual Tables in SQL
  • Width: 191 mm


Similar Products

How would you rate your experience shopping for books on Bookswagon?

Add Photo
Add Photo

Customer Reviews

REVIEWS           
Click Here To Be The First to Review this Product
Joe Celko's Thinking in Sets: Auxiliary, Temporal, and Virtual Tables in SQL: Auxiliary, Temporal, and Virtual Tables in SQL(The Morgan Kaufmann Series in Data Management Systems)
Elsevier Science & Technology -
Joe Celko's Thinking in Sets: Auxiliary, Temporal, and Virtual Tables in SQL: Auxiliary, Temporal, and Virtual Tables in SQL(The Morgan Kaufmann Series in Data Management Systems)
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

Joe Celko's Thinking in Sets: Auxiliary, Temporal, and Virtual Tables in SQL: Auxiliary, Temporal, and Virtual Tables in SQL(The Morgan Kaufmann Series in Data Management Systems)

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book
    Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept

    New Arrivals


    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!
    ASK VIDYA