For Database Systems and Database Design and Application courses offered at the junior, senior and graduate levels in Computer Science departments.
Written by well-known computer scientists, this introduction to database systems offers a comprehensive approach, focusing on database design, database use, and implementation of database applications and database management systems.
The first half of the book provides in-depth coverage of databases from the point of view of the database designer, user, and application programmer. It covers the latest database standards SQL:1999, SQL/PSM, SQL/CLI, JDBC, ODL, and XML, with broader coverage of SQL than most other texts. The second half of the book provides in-depth coverage of databases from the point of view of the DBMS implementor. It focuses on storage structures, query processing, and transaction management. The book covers the main techniques in these areas with broader coverage of query optimisation than most other texts, along with advanced topics including multidimensional and bitmap indexes, distributed transactions, and information integration techniques.
- Many real-world examples.
- Offers a readable and engaging presentation.
- Extensive treatment of database modeling–Includes detailed and separate explanations of how to use E/R and ODL to design databases.
- Teaches about this important first step of the planning process.
- Excellent, up-to-date and detailed coverage of SQL–Includes coverage of object-relational systems and many aspects of the new SQL:1999 standard.
- Provides a more extensive treatment of query processing than other books on the market.
- Discussion of the technologies used to connect database programming with C or Java code–Includes discussions of SQL/PSM, SQL/CLI, and JDBC.
- Gives students practical advice on integrating state-of-the-art technologies with databases.
- Coverage of advanced issues important to database designers and users.
- Includes discussions of views, integrity constraints, assertions, triggers, transactions, authorization, and recursion in SQL:1999.
- Discussions of how to successfully plan a database application before building it.
- Reflects how these plans are developed in the real world.
- Coverage of topics such as designing storage structures and implementing a variety of indexing schemes.
- Shows students how to build efficient database management systems.
- Extensive coverage of query processing and optimization.
- Shows students how to fine tune database systems to improve performance.
- Comprehensive coverage of transaction processing mechanisms for concurrency control and recovery, including distributed and long-duration transactions.
- Shows how to design complex database systems that can handle real-world business applications.
- Coverage of information integration, including data warehousing, mediation, OLAP, data-cube systems, and data mining.
- Exposes readers to cutting edge technology used in business applications.
- Extensive exercises–In almost every section.
- Provides students with the opportunity to practice and apply the concepts they've learned in each chapter.
- Please note that GOAL/Gradiance is no longer available with this book.
New to this Edition
- Chapters have been extensively reorganized and augmented.
- Relational modeling is covered in chapters 2-4.
- Chapter 4 is devoted to high-level modeling, and includes the E/R model as well as UML (Unified Modeling Language).
- The viewpoint of Chapter 3 - which focuses on functional and multivalued dependencies - has been modified, so that a functional dependency is now assumed to have a set of attributes on the right. Explicitly certain algorithms, including the “chase,” allow us to manipulate dependencies. The discussion of third normal form has been augmented to include the 3NF synthesis algorithm and to delineate the tradeoff between 3NF and BCNF.
- Chapter 5 contains the coverage of relational algebra from the previous edition, and is joined by (part of) the treatment of Datalog from the old Chapter 10.
- The discussion of recursion in Datalog is either moved to the book’s Web site or combined with the treatment of recursive SQL in Chapter 10 of this edition.
- Chapters 6-10 are devoted to aspects of SQL programming, and they represent a reorganization and augmentation of the earlier book’s Chapters 6, 7, 8, and parts of 10. The material on indexes and views has been moved to its own chapter, number 8, and this material has been augmented with a discussion of important new topics, including materialized views, and automatic selection of indexes.
- The New Chapter 9 is based on the old Chapter 8 (embedded SQL). It is introduced by a new section on 3-tiered architecture. It also includes an expanded discussion of JDBC and new coverage of PHP.
- Chapter 10 collects a number of advanced SQL topics, including the nested-relation model, object-relational features of SQL, and data cubes.
- Chapters 11 and 12, covering XML and XML-based systems, contain new and expanded material on modeling and programming, including XML schema, DTD's, XPath, XQuery, and XSLT.
- Chapter 20, covering parallel and distributed databases, includes new sections on distributed query execution, the map-reduce framework for parallel computation, peer-to-peer databases and their implementation of distributed hash tables.
- New sections on local-as-view mediators and entity resolution have been added to Chapter 21, which covers information integration.
- The expanded data mining chapter includes material on association rules and frequent itemset mining, including both the famous A-Priori Algorithm and certain efficiency improvements. Key techniques of shingling, minhashing, locality-sensitive hashing, and clustering have been added.
- An entirely new Chapter 23 addresses ways in which the Internet has impacted database technology through search engines and data-stream management systems.
Table of Contents
TABLE OF CONTENTS
1 The Worlds of Database Systems
1.1 The Evolution of Database Systems
1.1.1 Early Database Management Systems
1.1.2 Relational Database Systems
1.1.3 Smaller and Smaller Systems
1.1.4 Bigger and Bigger Systems
1.1.5 Information Integration
1.2 Overview of a Database Management System
1.2.1 Data-Definition Language Commands
1.2.2 Overview of Query Processing
1.2.3 Storage and Buffer Management
1.2.4 Transaction Processing
1.2.5 The Query Processor
1.3 Outline of Database-System Studies
1.4 References for Chapter 1
PART I: Relational Database Modeling
2 The Relational Model of Data
2.1 An Overview of Data Models
2.1.1 What is a Data Model?
2.1.2 Important Data Models
2.1.3 The Relational Model in Brief
2.1.4 The Semistructured Model in Brief
2.1.5 Other Data Models
2.1.6 Comparison of Modeling Approaches
2.2 Basics of the Relational Model
2.2.5 Equivalent Representations of a Relation
2.2.6 Relation Instances
2.2.7 Keys of Relations
2.2.8 An Example Database Schema
2.2.9 Exercises for Section 2.2
2.3 Defining a Relation Schema in SQL
2.3.1 Relations in SQL
2.3.2 Data Types
2.3.3 Simple Table Declarations
2.3.4 Modifying Relation Schemas
2.3.5 Default Values
2.3.6 Declaring Keys
2.3.7 Exercises for Section 2.3
2.4 An Algebraic Query Language
2.4.1 Why Do We Need a Special Query Language?
2.4.2 What is an Algebra?
2.4.3 Overview of Relational Algebra
2.4.4 Set Operations on Relations
2.4.7 Cartesian Product
2.4.8 Natural Joins
2.4.10 Combining Operations to Form Queries
2.4.11 Naming and Renaming
2.4.12 Relationships Among Operations
2.4.13 A Linear Notation for Algebraic Expressions
2.4.14 Exercises for Section 2.4
2.5 Constraints on Relations
2.5.1 Relational Algebra as a Constraint Language
2.5.2 Referential Integrity Constraints
2.5.3 Key Constraints
2.5.4 Additional Constraint Examples
2.5.5 Exercises for Section 2.5
2.6 Summary of Chapter 2
2.7 References for Chapter 2
3 Design Theory for Relational Databases
3.1 Functional Dependencies
3.1.1 Definition of Functional Dependency
3.1.2 Keys of Relations
3.1.4 Exercises for Section 3.1
3.2 Rules About Functional Dependencies
3.2.1 Reasoning About Functional Dependencies
3.2.2 The Splitting/Combining Rule
3.2.3 Trivial Functional Dependencies
3.2.4 Computing the Closure of Attributes
3.2.5 Why the Closure Algorithm Works
3.2.6 The Transitive Rule
3.2.7 Closing Sets of Function