The Art of PostgreSQL Turn Thousands of Lines of Code into Simple Queries 2nd Edition by Dimitri Fontaine – Ebook PDF Instant Download/Delivery:
Full download The Art of PostgreSQL Turn Thousands of Lines of Code into Simple Queries 2nd Edition after payment
Product details:
Author: Dimitri Fontaine
As a developer, The Art of PostgreSQL is the book you need to read in order to get to the next level of proficiency.
After all, a developer’s job encompasses more than just writing code. Our job is to produce results, and for that we have many tools at our disposal. SQL is one of them, and this book teaches you all about it.
PostgreSQL is used to manage data in a centralized fashion, and SQL is used to get exactly the result set needed from the application code. An SQL result set is generally used to fill in-memory data structures so that the application can then process the data. So, let’s open this book with a quote about data structures and application code:
Data dominates. If you’ve chosen the right data structures and orga-nined things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming. – Rob Pike
Table of contents:
I Preface
1.1 About…
1.2 About the Book
1.3 About the Author
1.4 Acknowledgements
1.5 About the Organisation of the Books
II Introduction
2.1 Structured Query Language
2.2 Some of the Code is Written in SQL
2.3 A First Use Case
2.4 Loading the Data Set
2.5 Application Code and SQL
2.6 A Word about SQL Injection
2.7 PostgreSQL Protocol: Server-Side Prepared Statements
2.8 Back to Discovering SQL
2.9 Computing Weekly Changes
2.10 Software Architecture
2.11 Why PostgreSQL?
2.12 The PostgreSQL Documentation
2.13 Getting Ready to Read this Book
III Writing SQL Queries
3.1 Business Logic
3.2 Every SQL Query Embeds Some Business Logic
3.3 Business Logic Applies to Use Cases
3.4 Correctness
3.5 Efficiency
3.6 Stored Procedures — a Data Access API
3.7 Procedural Code and Stored Procedures
3.8 Where to Implement Business Logic?
3.9 A Small Application
3.10 Readme First Driven Development
3.11 Loading the Dataset
3.12 Chinook Database
3.13 Music Catalog
3.14 Albums by Artist
3.15 Top-N Artists by Genre
3.16 The SQL REPL — An Interactive Setup
3.17 Intro to psql
3.18 The psqlrc Setup
3.19 Transactions and psql Behavior
3.20 A Reporting Tool
3.21 Discovering a Schema
3.22 Interactive Query Editor
3.23 SQL is Code
3.24 SQL Style Guidelines
3.25 Comments
3.26 Unit Tests
3.27 Regression Tests
3.28 A Closer Look
3.29 Indexing Strategy
3.30 Indexing for Constraints
3.31 Indexing for Queries
3.32 Cost of Index Maintenance
3.33 Choosing Queries to Optimize
3.34 PostgreSQL Index Access Methods
3.35 Advanced Indexing
3.36 Adding Indexes
3.37 An Interview with Yohann Gabory
IV SQL Toolbox
4.1 Get Some Data
4.2 Structured Query Language
4.3 Queries, DML, DDL, TCL, DCL
4.4 Select, From, Where
4.5 Anatomy of a Select Statement
4.6 Projection (Output): Select
4.7 Data Sources: From
4.8 Understanding Joins
4.9 Restrictions: Where
4.10 Order By, Limit, No Offset
4.11 Ordering with Order By
4.12 kNN Ordering and GiST Indexes
4.13 Top-N Sorts: Limit
4.14 No Offset, and How to Implement Pagination
4.15 Group By, Having, With, Union All
4.16 Aggregates (aka Map/Reduce): Group By
4.17 Aggregates Without a Group By
4.18 Restrict Selected Groups: Having
4.19 Grouping Sets
4.20 Common Table Expressions: With
4.21 Distinct On
4.22 Result Sets Operations
4.23 Understanding Nulls
4.24 Three-Valued Logic
4.25 Not Null Constraints
4.26 Outer Joins Introducing Nulls
4.27 Using Null in Applications
4.28 Understanding Window Functions
4.29 Windows and Frames
4.30 Partitioning into Different Frames
4.31 Available Window Functions
4.32 When to Use Window Functions
4.33 Understanding Relations and Joins
4.34 Relations
4.35 SQL Join Types
4.36 An Interview with Markus Winand
V Data Types
5.1 Serialization and Deserialization
5.2 Some Relational Theory
5.3 Attribute Values, Data Domains and Data Types
5.4 Consistency and Data Type Behavior
5.5 PostgreSQL Data Types
5.6 Boolean
5.7 Character and Text
5.8 Server Encoding and Client Encoding
5.9 Numbers
5.10 Floating Point Numbers
5.11 Sequences and the Serial Pseudo Data Type
5.12 Universally Unique Identifier: UUID
5.13 Bytea and Bitstring
5.14 Date/Time and Time Zones
5.15 Time Intervals
5.16 Date/Time Processing and Querying
5.17 Network Address Types
5.18 Ranges
5.19 Denormalized Data Types
5.20 Arrays
5.21 Composite Types
5.22 XML
5.23 JSON
5.24 Enum
5.25 PostgreSQL Extensions
5.26 An Interview with Grégoire Hubert
VI Data Modeling
6.1 Object Relational Mapping
6.2 Tooling for Database Modeling
6.3 How to Write a Database Model
6.4 Generating Random Data
6.5 Modeling Example
6.6 Normalization
6.7 Data Structures and Algorithms
6.8 Normal Forms
6.9 Database Anomalies
6.10 Modeling an Address Field
6.11 Primary Keys
6.12 Surrogate Keys
6.13 Foreign Keys Constraints
6.14 Not Null Constraints
6.15 Check Constraints and Domains
6.16 Exclusion Constraints
6.17 Practical Use Case: Geonames
6.18 Features
6.19 Countries
6.20 Administrative Zoning
6.21 Geolocation Data
6.22 Geolocation GiST Indexing
6.23 A Sampling of Countries
6.24 Modelization Anti-Patterns
6.25 Entity Attribute Values
6.26 Multiple Values per Column
6.27 UUIDs
6.28 Denormalization
6.29 Premature Optimization
6.30 Functional Dependency Trade-Offs
6.31 Denormalization with PostgreSQL
6.32 Materialized Views
6.33 History Tables and Audit Trails
6.34 Validity Period as a Range
6.35 Pre-Computed Values
6.36 Enumerated Types
6.37 Multiple Values per Attribute
6.38 The Spare Matrix Model
6.39 Partitioning
6.40 Other Denormalization Tools
6.41 Denormalize with Care
6.42 Not Only SQL
6.43 Schemaless Design in PostgreSQL
6.44 Durability Trade-Offs
6.45 Scaling Out
6.46 An Interview with Álvaro Hernández Tortosa
VII Data Manipulation and Concurrency Control
7.1 Another Small Application
7.2 Insert, Update, Delete
7.3 Insert Into
7.4 Insert Into … Select
7.5 Update
7.6 Inserting Some Tweets
7.7 Delete
7.8 Tuples and Rows
7.9 Deleting All the Rows: Truncate
7.10 Delete but Keep a Few Rows
7.11 Isolation and Locking
7.12 Transactions and Isolation
7.13 About SSI
7.14 Concurrent Updates and Isolation
7.15 Modeling for Concurrency
7.16 Putting Concurrency to the Test
7.17 Computing and Caching in SQL
7.18 Views
7.19 Materialized Views
7.20 Triggers
7.21 Transactional Event Driven Processing
7.22 Trigger and Counters Anti-Pattern
7.23 Fixing the Behavior
7.24 Event Triggers
7.25 Listen and Notify
7.26 PostgreSQL Notifications
7.27 PostgreSQL Event Publication System
7.28 Notifications and Cache Maintenance
7.29 Limitations of Listen and Notify
7.30 Listen and Notify Support in Drivers
7.31 Batch Update, MoMA Collection
7.32 Updating the Data
7.33 Concurrency Patterns
7.34 On Conflict Do Nothing
7.35 An Interview with Kris Jenkins
VIII PostgreSQL Extensions
8.1 What’s a PostgreSQL Extension?
8.2 Inside PostgreSQL Extensions
8.3 Installing and Using PostgreSQL Extensions
8.4 Finding PostgreSQL Extensions
8.5 A Primer on Authoring PostgreSQL Extensions
8.6 A Short List of Noteworthy Extensions
8.7 Auditing Changes with hstore
8.8 Introduction to hstore
8.9 Comparing hstores
8.10 Auditing Changes with a Trigger
8.11 Testing the Audit Trigger
8.12 From hstore Back to a Regular Record
8.13 Last.fm Million Song Dataset
8.14 Using Trigrams for Typos
8.15 The pg_trgm PostgreSQL Extension
8.16 Trigrams, Similarity and Searches
People also search for:
the art of postgresql
the art of postgresql review
the art of postgresql amazon
art of postgresql
art of the possible quote
Tags: Dimitri Fontaine, Art, PostgreSQL, Turn, Thousands, Lines, Code, Simple, Queries