书籍详情
数据库(原理编程与性能影印版)
作者:(美)奥尼尔著
出版社:高等教育出版社
出版时间:2001-05-01
ISBN:9787040100402
定价:¥49.50
购买这本书可以去
内容简介
《数据库:原理编程与性能(影印版)(第2版)》自1994年初版以来,已成为学习、设计及使用关系数据库人员的一本经典教材。它从理论和实践两方面对数据库设计和编程均做了严谨的表述。其内容包括关系理论、数据库设计、数据库编程及运行-转储结果。每一部分均从基本原理出发,再用实际系统中的实例来说明。本次修订版反映了6年来数据库领域总体的进步和发展动态,书中重点讲述了对象关系模型;介绍了一些系统(如Oracle、DB2和Informix等)中通用的新概念;对隔离技术作了更新介绍;对运行结果的表述更现代。相对于初始标准来说,SQL数据库语言有了非常重要的变化,所以对对象关系给予特别讲述。《数据库:原理编程与性能(影印版)(第2版)》还介绍了SQL-99设计方法及与之相关的原理方法及主要产品。《数据库:原理编程与性能(影印版)(第2版)》的作者是在数据库界工作30多年的资深专家,富于教学和实践经验。《数据库:原理编程与性能(影印版)(第2版)》力图在数据库领域各不相同的思想和趋势中找到一个统一的观点提供给读者。《数据库:原理编程与性能(影印版)(第2版)》对于初接触数据库系统的读者不啻为一本极好的教材;对于那些对数据库领域的发展还未给予足够关注的人是一本易于接受的参考书;同时也是设计人员和编程人员及时更新知识的有用的参考书。内容: 1. 简介 2. 关系模型 3. 基本SQL查询语言 4. 对象关系SQL 5. 数据库编程访问 6. 数据库设计 7. 完整性、视图、安全性和目录 8. 索引 9. 查询处理 10. 事务更新 11. 并行与分布式数据库 附录A 介绍性指南 附录B 编程细节 附录C SQL语句语言 附录 D 设置查询计数。
作者简介
Parick ONeil is a professor of computer science at the Uniersity of Massachusetts at Boston. He is responsible for a number of important results in transactonal performance and disk access algorithms,and he holds patents for his work in these and other database areas.Elizabeth ONeil is a professor of computer science at the University of Massachusetts at Boston.She serves as a comsult-ant to Sybase IQin Concor, Massachusetts,and has worked with a number of other corporations,includin Microsoft adn Bolt,Beranek,and Newman.
目录
Contents:
Foreword
Preface
Chapter 1 Introduction
1.1 Fundamental Database Concepts
History of Database Systems
The Relational and Object-Relational Models
The Database Systems Covered
A Relational Database Example
An Object-Relational Database Example
1.2 Database Users
1.3 Overview of Relational and Object-Relational DBMS
Chapter 2: The Relational Model
Chapter 3: Basic SQL Query Language
Chapter 4: The Object-Relational Model
Chapter 5: Programs to Access a Database
Chapter 6: Database Design
Chapter 7: Integrity, Views, Security, and Catalogs
Chapter 8: Indexing
Chapter 9: Query Processing
Chapter 10: Update Transactions
Chapter 11: Parallel and Distributed Databases
1.4 Putting It All Together
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.3 Relational Rules
2.4 Keys, Superkeys, and Null Values
Null Values
2.5 Relational algebra
Fundamental Operations of Relational Algebra
2.6 Set-Theoretic Operations
The Union, Intersection, and Difference Operations
Assignment and Alias
The Product Operation
2.7 Native Relational Operations
The Projection Operation
The Selection Operation
Precedence of Relational Operations
The Join Operation
The Division Operation
2.8 The Interdependence of Operations
2.9 Illustrative Examples
2.10 Other Relational Operations
Outer Join
Theta Join
Chapter 3 Basic SQL Query Language
3.1 Introduction
SQL Capabilities
SQL History-Standards and Dialects
3.2 Setting Up the Database
Standard Typographical Conventions
A Practical Exercise
3.3 Simple Select Statements
3.4 Subqueries
The IN Predicate
The Quantified Comparison Predicate
The EXISTS Predicate
A Weakness of SQL: Too Many Equivalent Forms
3.5 UNION Operators and FOR ALL Conditions
The UNION Operator
Division: SQL "FOR ALL..." Conditions
3.6 Some Advanced SQL Syntax
The INTERSECT and EXCEPT Operators in Advanced SQL
Join Forms in Advanced SQL
OUTER JOIN
Join Forms Implemented in Database Systems
3.7 Set Functions in SQL Handling Null Values
3.8 Groups of Rows in SQL
3.9 A Complete Dexcription of SQL Select
Identifiers
Expressions, Predicates, and the search_condition
Scalar Subqueries as Expressions:Advanced SQL
Basic SQL versus Advanced SQL: Summary
A Discussion of the Predicates
3.10 Insert, Update, and Delete Statements
The Insert Statement
The Update Statement
The Delete Statement
3.11 The Power of the Select Statement
The Non-Procedural Select Statement
Turing Power
Limited Power of the Basic SQL Select Statement
Chapter 4 Object-Relational SQL
4.1 Introduction
ORSQL Capabilities
Form of Presentation for This Chapter
Object-Relational History
4.2 Objects and Tables
4.2.1 Object Types in ORACLE
Definition of the REF Object Reference
4.2.2 INFORMIX Row Types for Objects
Absence of Refs in INFORMIX
Type Inheritance in INFORMIX
4.2.3 Objects and Tables: Summary
Object Orientation
4.3 Collection Types
4.3.1 Collection Types in ORACLE
Table Types and Nested Tables
Two Techniques for Retrieving from a Table of Tables
Unnesting via Table Products
Nested Cursors
Array Types for VARRAYs
SQL SYntax for Collections in ORACLE
Inserts and Updates in ORACLE
4.3.2 Collection Types in INFORMIX
Sets in INFORMIX
Lists in INFORMIX
SQL Syntax for Collections in INFORMIX
inserts and Updates in INFORMIX
4.3.3 Collection Types:Summary
4.4 Procedural SQL, User-Defined Functions (UDFs), and Methods
4.4.1 ORACLE PL/SQL Procedures, UDFs, and Methods
PL/SQL: ORACLE's Procedural SQL Language
Using PL/LQL to Implement Methods in ORACLE
Update Methods
4.4.2 INFORMIX User-Defined Functions
SPL:INFORMIX's Procedural SQL Language
Using SPL to Implement UDFs in INFORMIX
Update Functions
4.4.3 User-Defined Functions:Summary
4.5 External Functions and Packaged User-Defined Types(UDTs)
Binary Data and BLOBs
External Functions
Encapsulation
Distinct Types
BLOB Objects
Packaged UDTs and Other Encapsulated UDTs
Summary
Chapter 5 Programs to Access a Database
5.1 Introduction to Embedded SQL in C
A Simple Program Using Embedded SQL
Selecting Multiple Rows with a Cursor
5.2 Condition Handling
Whenever Statement:Scope and Flow of Control
Explicit Error Checking
Handling Errors:Getting Error Messages from the Database
Indicator Variables
5.3 Some Common Embedded SQL Statements
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
5.4 Programming for Transactions
The Concept of a Transaction
How Transactions Are Specified in Programs
A Transaction Example
The Transaction Isolation Guarantee and Locking
Special Considerations in Transactions
5.5 The Power of Procedural SQL Programs
Customized Set Functions
5.6 Dynamic SQL
Execute Immediate
Prepare, Execute, and Using
Dynamic Select: The Describe Statement and the SQLDA
5.7 Some Advanced Programming Concepts
Scrollable Cursors
Cursor Sensitivity
Other Development Environments for Database Programming
Chapter 6 Database Design
6.1 Introduction to E-R Concepts
Entities, Attributes, and Simple E-R Diagrams
Transforming Entities and Attributes to Relations
Relationships among Entities
6.2 Further Details of E-R Modeling
Cardinality of Entity Participation in a Relationship
One-to-One, Many-to-Many, and Many-to-One Relationships
Transforming Binary Relationships to Relations
6.3 Additional E-R Concepts
Cardinality of Attributes
Weak Entities
Generalization Hierarchies
6.4 Case Study
6.5 Normalization: Preliminaries
A Running Example: Employee Information
Anomalies of a Bad Database Design
6.6 Functional Dependencies
Logical Implications among Functional Dependencies
Armstrong's Axioms
Closure, Cover, and Minimal Cover
6.7 Lossless Decompositions
6.8 Normal Forms
A Succession of Decompositions to Eliminate Anomalies
Normal Forms: BCNE 3NF, and 2NF
An Algorithm to Achieve Well-Behaved 3NF Decomposition
A Review of Normalization
6.9 Additional Design Considerations
Database Design Tools
Chapter 7 Integrity, Views, Security, and Catalogs
7.1 Integrity Constraints
Integrity Constraints in the Create Table Statement
Primary Keys, Foreign Keys, and Referential Integrity
Foreign Key Constraints: Product Variations
The Alter Table Statement
Non-Procedural and Procedural Integrity Constraints: Triggers
7.2 Creating Views
Updatable and Read-Only Views
The Value of Views
7.3 Security:The Grant Statement in SQL
Variations in Database Products
7.4 System Catalogs and Schemas
Schemas
Catalog Variations in Database Products
The INFORMIX System Catalog
Catalog Tables for Object-Relational Constructs:ORACLE and INFORMIX
Chapter 8 Indexing
8.1 The Concept of Indexing
8.2 Disk Storage
Disk Access Is Excruciatingly Slow
The DBA and Disk Resource Allocation in ORACLE
Data Storage Pages and Row Pointers:ORACLE and DB2 UDB
8.3 The B-Tree Index
Dynamic Changes in the B-Tree
Properties of the B-Tree
Index Node Layout and Free Space
The Create Index Statement in ORACLE and DB2 UDB
Duplicate Key Values in an Index
The ORACLE Bitmap Index
8.4 Clustered and Non-Clustered Indexes
Clustering Indexes in DB2 UDB
ORACLE Special Indexing Features
8.5 A Hash Primary Index
Tuning HASHKEYS and SIZE in a Hash Cluster
No Incremental Changes in the Number of Slots Used
Advantages and Disadvantages of a hash Primary Index
8.6 Throwing Darts at Random Slots
Unlimited Slot Occupancy:How Many Slots Are Occupied?
Slot Occupancy of One:Number of Retries (Rehash Chain)
When Do Hash Pages Fill Up
Chapter 9 Query Processing
9.1 Introductory Concepts
Query Resource Utilization
Gathering Statistics
Retrieving the Query Plan
9.2 Tablespace Scans and I/O
Assumptions about I/O
9.3 Simple Indexed Access in DB2
Equal Unique Match Index Access
Index-Only Retrieval
9.4 Filter Factors and Statistics
DB2 Statistics
Filter Factors in DB2
9.5 Matching Index Scans, Composite Indexes
Definition of a Matching Index Scan
Predicate Screening and Screening Predicates
Indexable Predicates and Performance
9.6 Multiple Index Access
List Prefetch and the RID Pool
Point of Diminishing Returns in Multiple Index Access
9.7 Methods for Joining Tables
Nested-Loop Join
Merge Join
Hybrid Join
Multiple Table Joins
Transforming Nested Queries to Joins
9.8 Disk Sorts
The N-Way Merge Disk Sort Algorithm
9.9 Query Performance Benchmarks:A Case Study
The BENCH Table
Load Measurements
9.10 Query Performance Measurements
Query Q1
Query Q2A
Query Q2B
Query Q3A
Query Q3B
Query Q4A and Q4B
Query Q5
Query Q6A
Query Q6B
9.11 Cost-Performance Assessment
Elapsed Time versus CPU Time Rating
Customizing the Rating
Varations in Indexing Use between DB2 and ORACLE
Chapter 10 Update Transactions
10.1 Transactional Histories
Fundamental Atomic Read and Write Actions in the Database
Predicate Read Actions
Transactional Histories with Reads and Writes
10.2 Interleaved Read-Write Operations
10.3 Serializability and the Precedence Graph
The Precedence Graph
10.4 Locking to Ensure Serializability
The Waits-For Graph
10.5 Levels of Isolation
The Read Uncommitted Isolation Level
The Read Committed Isolation Level and Cursor Stability
Repeatable Read Isolation Level
Serializability and Phantom Updates
10.6 Transactional Recovery
10.7 Recovery in Detail:Log Formats
Guarantees That N
Foreword
Preface
Chapter 1 Introduction
1.1 Fundamental Database Concepts
History of Database Systems
The Relational and Object-Relational Models
The Database Systems Covered
A Relational Database Example
An Object-Relational Database Example
1.2 Database Users
1.3 Overview of Relational and Object-Relational DBMS
Chapter 2: The Relational Model
Chapter 3: Basic SQL Query Language
Chapter 4: The Object-Relational Model
Chapter 5: Programs to Access a Database
Chapter 6: Database Design
Chapter 7: Integrity, Views, Security, and Catalogs
Chapter 8: Indexing
Chapter 9: Query Processing
Chapter 10: Update Transactions
Chapter 11: Parallel and Distributed Databases
1.4 Putting It All Together
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.3 Relational Rules
2.4 Keys, Superkeys, and Null Values
Null Values
2.5 Relational algebra
Fundamental Operations of Relational Algebra
2.6 Set-Theoretic Operations
The Union, Intersection, and Difference Operations
Assignment and Alias
The Product Operation
2.7 Native Relational Operations
The Projection Operation
The Selection Operation
Precedence of Relational Operations
The Join Operation
The Division Operation
2.8 The Interdependence of Operations
2.9 Illustrative Examples
2.10 Other Relational Operations
Outer Join
Theta Join
Chapter 3 Basic SQL Query Language
3.1 Introduction
SQL Capabilities
SQL History-Standards and Dialects
3.2 Setting Up the Database
Standard Typographical Conventions
A Practical Exercise
3.3 Simple Select Statements
3.4 Subqueries
The IN Predicate
The Quantified Comparison Predicate
The EXISTS Predicate
A Weakness of SQL: Too Many Equivalent Forms
3.5 UNION Operators and FOR ALL Conditions
The UNION Operator
Division: SQL "FOR ALL..." Conditions
3.6 Some Advanced SQL Syntax
The INTERSECT and EXCEPT Operators in Advanced SQL
Join Forms in Advanced SQL
OUTER JOIN
Join Forms Implemented in Database Systems
3.7 Set Functions in SQL Handling Null Values
3.8 Groups of Rows in SQL
3.9 A Complete Dexcription of SQL Select
Identifiers
Expressions, Predicates, and the search_condition
Scalar Subqueries as Expressions:Advanced SQL
Basic SQL versus Advanced SQL: Summary
A Discussion of the Predicates
3.10 Insert, Update, and Delete Statements
The Insert Statement
The Update Statement
The Delete Statement
3.11 The Power of the Select Statement
The Non-Procedural Select Statement
Turing Power
Limited Power of the Basic SQL Select Statement
Chapter 4 Object-Relational SQL
4.1 Introduction
ORSQL Capabilities
Form of Presentation for This Chapter
Object-Relational History
4.2 Objects and Tables
4.2.1 Object Types in ORACLE
Definition of the REF Object Reference
4.2.2 INFORMIX Row Types for Objects
Absence of Refs in INFORMIX
Type Inheritance in INFORMIX
4.2.3 Objects and Tables: Summary
Object Orientation
4.3 Collection Types
4.3.1 Collection Types in ORACLE
Table Types and Nested Tables
Two Techniques for Retrieving from a Table of Tables
Unnesting via Table Products
Nested Cursors
Array Types for VARRAYs
SQL SYntax for Collections in ORACLE
Inserts and Updates in ORACLE
4.3.2 Collection Types in INFORMIX
Sets in INFORMIX
Lists in INFORMIX
SQL Syntax for Collections in INFORMIX
inserts and Updates in INFORMIX
4.3.3 Collection Types:Summary
4.4 Procedural SQL, User-Defined Functions (UDFs), and Methods
4.4.1 ORACLE PL/SQL Procedures, UDFs, and Methods
PL/SQL: ORACLE's Procedural SQL Language
Using PL/LQL to Implement Methods in ORACLE
Update Methods
4.4.2 INFORMIX User-Defined Functions
SPL:INFORMIX's Procedural SQL Language
Using SPL to Implement UDFs in INFORMIX
Update Functions
4.4.3 User-Defined Functions:Summary
4.5 External Functions and Packaged User-Defined Types(UDTs)
Binary Data and BLOBs
External Functions
Encapsulation
Distinct Types
BLOB Objects
Packaged UDTs and Other Encapsulated UDTs
Summary
Chapter 5 Programs to Access a Database
5.1 Introduction to Embedded SQL in C
A Simple Program Using Embedded SQL
Selecting Multiple Rows with a Cursor
5.2 Condition Handling
Whenever Statement:Scope and Flow of Control
Explicit Error Checking
Handling Errors:Getting Error Messages from the Database
Indicator Variables
5.3 Some Common Embedded SQL Statements
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
5.4 Programming for Transactions
The Concept of a Transaction
How Transactions Are Specified in Programs
A Transaction Example
The Transaction Isolation Guarantee and Locking
Special Considerations in Transactions
5.5 The Power of Procedural SQL Programs
Customized Set Functions
5.6 Dynamic SQL
Execute Immediate
Prepare, Execute, and Using
Dynamic Select: The Describe Statement and the SQLDA
5.7 Some Advanced Programming Concepts
Scrollable Cursors
Cursor Sensitivity
Other Development Environments for Database Programming
Chapter 6 Database Design
6.1 Introduction to E-R Concepts
Entities, Attributes, and Simple E-R Diagrams
Transforming Entities and Attributes to Relations
Relationships among Entities
6.2 Further Details of E-R Modeling
Cardinality of Entity Participation in a Relationship
One-to-One, Many-to-Many, and Many-to-One Relationships
Transforming Binary Relationships to Relations
6.3 Additional E-R Concepts
Cardinality of Attributes
Weak Entities
Generalization Hierarchies
6.4 Case Study
6.5 Normalization: Preliminaries
A Running Example: Employee Information
Anomalies of a Bad Database Design
6.6 Functional Dependencies
Logical Implications among Functional Dependencies
Armstrong's Axioms
Closure, Cover, and Minimal Cover
6.7 Lossless Decompositions
6.8 Normal Forms
A Succession of Decompositions to Eliminate Anomalies
Normal Forms: BCNE 3NF, and 2NF
An Algorithm to Achieve Well-Behaved 3NF Decomposition
A Review of Normalization
6.9 Additional Design Considerations
Database Design Tools
Chapter 7 Integrity, Views, Security, and Catalogs
7.1 Integrity Constraints
Integrity Constraints in the Create Table Statement
Primary Keys, Foreign Keys, and Referential Integrity
Foreign Key Constraints: Product Variations
The Alter Table Statement
Non-Procedural and Procedural Integrity Constraints: Triggers
7.2 Creating Views
Updatable and Read-Only Views
The Value of Views
7.3 Security:The Grant Statement in SQL
Variations in Database Products
7.4 System Catalogs and Schemas
Schemas
Catalog Variations in Database Products
The INFORMIX System Catalog
Catalog Tables for Object-Relational Constructs:ORACLE and INFORMIX
Chapter 8 Indexing
8.1 The Concept of Indexing
8.2 Disk Storage
Disk Access Is Excruciatingly Slow
The DBA and Disk Resource Allocation in ORACLE
Data Storage Pages and Row Pointers:ORACLE and DB2 UDB
8.3 The B-Tree Index
Dynamic Changes in the B-Tree
Properties of the B-Tree
Index Node Layout and Free Space
The Create Index Statement in ORACLE and DB2 UDB
Duplicate Key Values in an Index
The ORACLE Bitmap Index
8.4 Clustered and Non-Clustered Indexes
Clustering Indexes in DB2 UDB
ORACLE Special Indexing Features
8.5 A Hash Primary Index
Tuning HASHKEYS and SIZE in a Hash Cluster
No Incremental Changes in the Number of Slots Used
Advantages and Disadvantages of a hash Primary Index
8.6 Throwing Darts at Random Slots
Unlimited Slot Occupancy:How Many Slots Are Occupied?
Slot Occupancy of One:Number of Retries (Rehash Chain)
When Do Hash Pages Fill Up
Chapter 9 Query Processing
9.1 Introductory Concepts
Query Resource Utilization
Gathering Statistics
Retrieving the Query Plan
9.2 Tablespace Scans and I/O
Assumptions about I/O
9.3 Simple Indexed Access in DB2
Equal Unique Match Index Access
Index-Only Retrieval
9.4 Filter Factors and Statistics
DB2 Statistics
Filter Factors in DB2
9.5 Matching Index Scans, Composite Indexes
Definition of a Matching Index Scan
Predicate Screening and Screening Predicates
Indexable Predicates and Performance
9.6 Multiple Index Access
List Prefetch and the RID Pool
Point of Diminishing Returns in Multiple Index Access
9.7 Methods for Joining Tables
Nested-Loop Join
Merge Join
Hybrid Join
Multiple Table Joins
Transforming Nested Queries to Joins
9.8 Disk Sorts
The N-Way Merge Disk Sort Algorithm
9.9 Query Performance Benchmarks:A Case Study
The BENCH Table
Load Measurements
9.10 Query Performance Measurements
Query Q1
Query Q2A
Query Q2B
Query Q3A
Query Q3B
Query Q4A and Q4B
Query Q5
Query Q6A
Query Q6B
9.11 Cost-Performance Assessment
Elapsed Time versus CPU Time Rating
Customizing the Rating
Varations in Indexing Use between DB2 and ORACLE
Chapter 10 Update Transactions
10.1 Transactional Histories
Fundamental Atomic Read and Write Actions in the Database
Predicate Read Actions
Transactional Histories with Reads and Writes
10.2 Interleaved Read-Write Operations
10.3 Serializability and the Precedence Graph
The Precedence Graph
10.4 Locking to Ensure Serializability
The Waits-For Graph
10.5 Levels of Isolation
The Read Uncommitted Isolation Level
The Read Committed Isolation Level and Cursor Stability
Repeatable Read Isolation Level
Serializability and Phantom Updates
10.6 Transactional Recovery
10.7 Recovery in Detail:Log Formats
Guarantees That N
猜您喜欢