数据库(原理编程与性能影印版)

数据库(原理编程与性能影印版)
作 者: 奥尼尔
出版社: 高等教育出版社
丛编项: 国外优秀信息科学与技术系列教学用书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 数据库理论 数据库 计算机/网络
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  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.

内容简介

《数据库:原理编程与性能(影印版)(第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 设置查询计数。

图书目录

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