
Database: Principles Programming Performance
by Patrick O'NeilISBN-10: 1558602194
ISBN-13: 9781558602199
Pub. Date: 06/28/1994
Publisher: Elsevier Science & Technology Books
The most comprehensive introduction to database programming and performance available.
A complete and practical introduction to database management systems for anyone who is, or wishes to become, a database administrator, application programmer, or sophisticated SQL user. Patrick OÆNeilÆs pragmatic approach to programming and performance within
/p>Overview
The most comprehensive introduction to database programming and performance available.
A complete and practical introduction to database management systems for anyone who is, or wishes to become, a database administrator, application programmer, or sophisticated SQL user. Patrick OÆNeilÆs pragmatic approach to programming and performance within commercial settings teaches you to create bug-free applications with the most efficient use of resources.
Starting with fundamental relational concepts, the author presents a full range of information about database standards and products, including Oracle, Ingres, DB2 and Sybase, and provides detailed, step- by-step coverage of SQL and database transaction programming.
More informative than standard listings of embedded SQL features, OÆNeilÆs presentation of embedded SQL (including dynamic SQL) and forms- based application programming is so detailed that it enables you to write your own programs in C. Numerous exercises (with solutions) are provided to reinforce the skills needed to produce operational queries and programs. YouÆll also learn a number of limitations of interactive SQL and how to surmount these limitations in programs. Logical database design is also explained in depth and applied to the discussion of integrity constraints.
Product Details
- ISBN-13:
- 9781558602199
- Publisher:
- Elsevier Science & Technology Books
- Publication date:
- 06/28/1994
- Series:
- Morgan Kaufmann Series in Data Management Systems
- Edition description:
- Older Edition
- Pages:
- 753
- Product dimensions:
- 7.39(w) x 9.33(h) x 1.88(d)
Table of Contents
Database: Principles, Programming, Performanceby Patrick E. O'Neil
- Preface
Chapter 1 Introduction
- 1.1 Fundamental Database Concepts
1.2 Database Users
1.3 Overview of a Relational DBMS
- The Relational Model and Query Capabilities
Programs to Access a Database
Logical Database Design
Database Administration
Physical Database Design and Performance
Database Transactions
Chapter 2 The Relational Model
- 2.1 The CAP Database
2.2 Naming the Parts of a Database
- Domains and Datatypes
Tables and Relations
2.4 Keys, Superkeys, and Null Values
- Null Values
- Fundamental Operations of Relational Algebra
- The Union, Intersection, and Difference Operations
Assignment and Alias
The Product Operation
- The Projection Operation
The Selection Operation
Precedence of Relational Operations
The Join Operation
The Division Operation
2.9 Illustrative Examples
2.10 Other Relational Operations
- Outer Join
Theta Join
Chapter 3 Query Language SQL
- 3.1 Introduction
- SQL Capabilities
SQL History - Standards and Dialects
- A Practical Exercise
3.4 Subselects
- The In Predicate
The Quantified (Comparison) Predicate
The Exists Predicate
A Weakness of SQL: Too Many Equivalent Forms
- The Union Operator
The Division Operator: SQL "FOR ALL..." Conditions
- Handling Null Values
3.8 A Complete Description of SQL Select
- Expressions, Predicates, and the search_condition
A Discussion of the Predicates
- The Insert Statement
The Update Statement
The Delete Statement
- The Non-Procedural Select Statement
The Select Statement
- Extended Relational Database Systems
Chapter 4 Programs to Access a Database
- 4.1 Introduction to Embedded SQL in C
- A Simple Program Using Embedded SQL
Selecting Multiple Rows with a Cursor
- Condition Handling with the Whenever Statement
Handling Error Messages
Indicator Variables
- The Select Statement
The Declare Cursor Statement
The Delete Statement
The Update Statement
The Insert Statement
Cursor Open, Fetch, and Close
Other Embedded SQL Operations
- The Concept of a Transaction
How Transactions Occur in Programs
The Transaction Isolation Guarantee and Locking
Special Considerations in Transactions
- Customized Set Functions
Other Capabilities: Transitive Closure
- Execute Immediate
Prepare, Execute, and Using
Dynamic Select: The Describe Statement and the SQLDA
- Scrollable Cursors
Cursor Sensitivity
Fourth-Generation Languages
Chapter 5 Database Design
- 5.1 Introduction to E-R Concepts
- Entities, Attributes, and Simple E-R Diagrams
Transforming Entities and Attributes to Relations
Relationships among Entities
- Cardinality of Entity Participation in a Relationship
One-to-One, Many-to-Many, and Many-to-One Relationships
Transforming Binary Relationships to Relations
- Cardinality of Attributes
Weak Entities
Generalization Hierarchies
5.5 Normalization: Preliminaries
- A Running Example: Employee Information
Anomalies of Bad Database Design
- Logical Implications among Functional Dependencies
5.8 Normal Forms
- A Succession of Decompositions to Eliminate Anomalies
Normal Forms: BCNF, 3NF, and 2NF
An Algorithm to Achieve Well-Behaved 3NF Decomposition
A Review of Normalization
- Database Design Tools
Chapter 6 Integrity, Views, Security, and Catalogs
- 6.1 Integrity Constraints
- Integrity Constraints in the Create Table Statement
Primary Keys, Foreign Keys, and Referential Integrity
The Alter Table Statement
SQL-92 Integrity Constraints
Non-Procedural and Procedural Integrity Constraints
- Restrictions on Querying and Updating a View
The Value of Views
- Variations in Database Products
- Catalog Variations in Database Products
Chapter 7 Indexing
- 7.1 The Concept of Indexing
7.2 Disk Storage
- Disk Access Is Excruciatingly Slow
The DBA and Disk Resource Allocation in ORACLE
Data Storage Pages and Row Pointers: ORACLE, DB2, and INGRES
- Dynamic Changes in the B-Tree
Properties of the B-Tree
Index Node Layout and Free Space
Duplicate Key Values in an Index
Index Compression with Multiple Duplicates
- Clustered Index in DB2
Clustered Index in INGRES
- No Incremental Changes in the Number of Slots Used
Collision Chain Length and Page Overflow
Disadvantages of Hash Primary Index
- Unlimited Slot Occupancy: How Many Slots Are Occupied?
Chapter 8 Query Processing
- 8.1 Introductory Concepts
- Query Resource Utilization
Gathering Statistics
Retrieving the Query Plan
- Assumptions about I/O
- Equal Unique Match Index Access
Index-Only Retrieval
- DB2 Statistics
Filter Factors in DB2
- Definition of Matching Index Scan
Indexable Predicates and Performance
- List Prefetch and the RID Pool
Point of Diminishing Returns in Multiple Index Access
- Nested Loop Join
Merge Join
Hybrid Join
Multiple Table Joins
Transforming Nested Queries to Joins
- The N-Way Merge Disk Sort Algorithm
- The BENCH Table
Load Measurements
- Query Q1
Query Q2A
Query Q2B
Query Q3A
Query Q3B
Query Q4A and Q4B
Query Q5
Query Q6A
Query Q6B
- Elapsed Time versus CPU Time Rating
Customizing the Rating
Chapter 9 Update Processing
- 9.1 Transactional Histories
9.2 Interleaved Read/Write Operations
9.3 Serializability and the Precedence Graph
- The Precedence Graph
- The Waits-For Graph
- Read Uncommitted Isolation Level
Read Committed Isolation Level (Cursor Stability)
Repeatable Read Isolation Level
Serializability and Phantom Updates
9.7 Recovery in Detail: Log Formats
- Guarantees That Needed Log Entries Are on Disk
- The Commit-Consistent Checkpoint
Motivation for Other Kinds of Checkpoints
The Cache-Consistent Checkpoint
The Fuzzy Checkpoint
- Stable Storage
- The TPC-A Benchmark Specification
Lessons from the TPC-A Benchmark
Chapter 10 Parallel and Distributed Databases
- 10.1 Some Multi-CPU Architectures
- Client-Server Architectures
10.3 Shared-Nothing Database Architecture
- Two-Phase Commit
Further Problems with Shared-Nothing Architecture
Appendix A Introductory Tutorial
- A.1 Setting Up the CAP Database in INGRES
A.2 Setting Up the CAP Database in ORACLE
A.3 Datatypes
Appendix B Statement Syntax
- B.1 Alter Table Statement
B.2 Close (Cursor) Statement
B.3 Commit Work Statement
B.4 Create Index Statement
B.5 Create Table Statement
B.6 Create Tablespace Statement in ORACLE
B.7 Create View Statement
B.8 Connenct Statement
B.9 Declare Cursor Statement
B.10 Delete Statement
B.11 Describe Statement
B.12 Disconnect Statement
B.13 Drop {Table / Veiw / Index} Statement
B.14 Execute Statement
B.15 Execute Immediate Statement
B.16 Fetch Statement
B.17 Grant Statement
B.18 Insert Statement
B.19 Modify Statement in INGRES
B.20 Open (Cursor) Statement
B.21 Prepare Statement
B.22 Revoke Statement
B.23 Rollback Statement
B.24 Select Statement
B.25 Update Statement
Appendix C Set Query Counts
Solutions to Selected Exercises
Index
Customer Reviews
Average Review: