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
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
Appendix A Introductory Tutorial
Appendix B Programming Details
Appendix C SQL Statement Syntax
Appendix D Set Query Counts
Solutions to Selected Exercises
Index