Part 1 - Introduction and Conceptual Modeling
Chapter 1 - Databases and Database Users
1.1 Introduction
1.2 An Example
1.3 Characteristics of the Database Approach
1.4 Actors on the Scene
1.5 Workers behind the Scene
1.6 Advantages of Using the DBMS Approach
1.7 A Brief History of Database Applications
1.8 When Not to Use a DBMS
1.9 Summary
Chapter 2 - Database System Concepts and Architecture
2.1 Data Models, Schemas, and Instances
2.2 Three-Schema Architecture and Data Independence
2.3 Database Languages and Interfaces
2.4 The Database System Environment
2.5 Centralized and Client/Server Architectures for DBMSs
2.6 Classification of Database Management Systems
2.7 Summary
Chapter 3 - Data Modeling Using the Entity-Relationship (ER) Model
3.1 Using High-Level Conceptual Data Models for Database Design
3.2 An Example Database Application
3.3 Entity Types, Entity Sets, Attributes, and Keys
3.4 Relationship Types, Relationship Sets, Roles, and Structural Constraints
3.5 Weak Entity Types
3.6 Refining the ER Design for the COMPANY Database
3.7 ER Diagrams, Naming Conventions, and Design Issues
3.8 Example of Other Notation: UML Class Diagrams
3.9 Relationship Types of Degree Higher Than Two
3.10 Summary
Chapter 4 - The Enhanced Entity-Relationship (EER) Model
4.1 Subclasses, Superclasses, and Inheritance
4.2 Specialization and Generalization
4.3 Constraints and Characteristics of Specialization and Generalization Hierarchies
4.4 Modelin of UNION Types Using Categories
4.5 An Example UNIVERSITY EER Schema, Design Choices, and Formal Definitions
4.6 Example of Other Notation: Representing Specialization and Generalization in UML Class Diagrams
4.7 Data Abstraction, Knowledge Representation, and Ontology Concepts
Part 2- Relational Model: Concepts, Constraints, Languages, Design, and Programming
Chapter 5 - The Relational Data Model and Relational Database Constraints
5.1 Relational Model Concepts
5.2 Relational Model Constraints and Relational Database Schemas
5.3 Update Operations, Tranactions, and Dealing with Constraint Violations
5.4 Summary
Chapter 6 - The Relational Algebra and Relational Calculus
6.1 Unary Relational Operations: SELECT and PROJECT
6.2 Relational Algebra Operations from Set Theory
6.3 Binary Relational Operations: JOIN and DIVISION
6.4 Additional Relational Operations
6.5 Examples of Queries in Relational Algebra
6.6 The Tuple Relational Calculus
6.7 The Domain Relational Calculus
6.8 Summary
Chapter 7 - Relational Database Design by ERand EER-to-Relational Mapping
7.1 Relational Database Design Using ER-to-Relational Mapping
7.2 Mapping EER Model Constructs to Relations
7.3 Summary
Chapter 8 - SQL-99: Schema Definition, Constraints, Queries, and Views
8.1 SQL Data Definition and Data Types
8.2 Specifying Constraints in SQL
8.3 Schema Change Statements in SQL
8.4 Basic Queries in SQL
8.5 More Complex SQL Queries
8.6 INSERT, DELETE, and UPDATE Statements in SQL
8.7 Specifying Constraints as Assertions and Triggers
8.8 Views (Virtual Tables) in SQL
8.9 Additional Features of SQL
8.10 Summary
Chapter 9 - Introduction to SQL Programming Techniques
9.1 Database Programming: Issues and Techniques
9.2 Embedded SQL, Dynamic SQL, and SQLJ
9.3 Database Programming with Function Calls: SQL/CLI and JDBC
9.4 Database Stored Procedures and SQL/PSM
9.5 Summary
Part 3 - Database Design Theory and Methodology
Chapter 10 - Functional Dependencies and Normalization for Relational Databases
10.1 Informal Design Guidelines for Relation Schemas
10.2 Functional Dependencies
10.3 Normal Forms Based on Primary Keys
10.4 General Definitions of Second and Third Normal Forms
10.5 Boyce-Codd Normal Form
10.6 Summary
Chapter 11 - Relational Database Design Algorithms and Further Dependencies
11.1 Properties of Relational Decompositions
11.2 Algorithms for Relational Database Schema Design
11.3 Multivalued Dependencies and Fourth Normal Form
11.4 Join Dependencies and Fifth Normal Form
11.5 Inclusion Dependencies
11.6 Other Dependencies and Normal Forms
11.7 Summary
Chapter 12 - Practical Database Design Methodology and Use of UML Diagrams
12.1 The Role of Information Systems in Organizations
12.2 The Database Design and Implementation Process
12.3 Use of UML Diagrams As an Aid to Database Design Specification
12.4 Rational Rose, a UML-Based Design Tool
12.5 Automated Database Design Tools
12.6 Summary
Part 4 - Data Storage, Indexing, Query Processing, and Physical Design
Chapter 13 - Disk Storage, Basic File Structures, and Hashing
13.1 Introduction
13.2 Secondary Storage Devices
13.3 Buffering of Blocks
13.4 Placing File Records on Disk
13.5 Operations on Files
13.6 Files of Unordered Records (Heap Files)
13.7 Files of Ordered Records (Sorted Files)
13.8 Hashing Techniques
13.9 Other Primary File Organizations
13.10 Parallelizing Disk Access Using RAID Technology
13.11 New Storage Systems
13.12 Summary
Chapter 14 - Indexing Structures for Files
14.1 Types of Single-Level Ordered Indexes
14.2 Multilevel Indexes
14.3 Dynamic Multilevel Indexes Using B-Trees and B+-Trees
14.4 Indexes on Multiple Keys
14.5 Other Types of Indexes
14.6 Summary
Chapter 15 - Algorithms for Query Processing and Optimization
15.1 Translating SQL Queries into Relational Algebra
15.2 Algorithms for External Sorting
15.3 Algorithms for SELECT and JOIN Operations
15.4 Algorithms for PROJECT and SET Operations
15.5 Implementing Aggregate Operations and OUTER JOINS
15.6 Combining Operations Using Pipelining
15.7 Using Heuristics in Query Optimization
15.8 Using Selectivity and Cost Estimates in Query Optimization
15.9 Overview of Query Optimization in Oracle
15.10 Semantic Query Optimization
15.11 Summary
Chapter 16 - Physical Database Design and Tuning
16.1 Physical Database Design in Relational Databases
16.2 An Overview of Database Tuning in Relational Systems
16.3 Summary
Part 5 - Transaction Processing Concepts
Chapter 17 - Introduction to Transaction Processing Concepts and Theory
17.1 Introduction to Transaction Processing
17.2 Transaction and System Concepts
17.3 Desirable Properties of Transactions
17.4 Characterizing Schedules Based on Recoverability
17.5 Characterizing Schedules Based on Serializability
17.6 Transaction Support in SQL
17.7 Summary
Chapter 18 - Concurrency Control Techniques
18.1 Two-Phase Locking Techniques for Concurrency Control
18.2 Concurrency Control Based on Timestamp Ordering
18.3 Multiversion Concurrency Control Techniques
18.4 Validation (Optimistic) Concurrency Control Techniques
18.5 Granularity of Data Items and Multiple Granularity Locking
18.6 Using Locks for Concurrency Control in Indexes
18.7 Other Concurrency Control Issues
18.8 Summary
Chapter 19 - Database Recovery Techniques
19.1 Recovery Concepts
19.2 Recovery Techniques Based on Deferred Update
19.3 Recovery Techniques Based on Immediate Update
19.4 Shadow Paging
19.5 The ARIES Recovery Algorithm
19.6 Recovery in Multidatabase Systems
19.7 Database Backup and Recovery from Catastrophic Failures
19.8 Summary
Part 6 - Object and Object-Relational Databases
Chapter 20 - Concepts for Object Databases
20.1 Overview of Object-Oriented Concepts
20.2 Object Identity, Object Structure, and Type Constructors
20.3 Encapsulation of Operations, Methods, and Persistence
20.4 Type and Class Hierarchies and Inheritance
20.5 Complex Objects
20.6 Other Objected-Oriented Concepts
20.7 Summary
Chapter 21 Object Database Standards, Languages, and Design
21.1 Overview of the Object Model of ODMG
21.2 The Object Definition Language ODL
21.3 The Object Query Language OQL
21.4 Overview of the C++ Language Binding
21.5 Object Database Conceptual Design
21.6 Summary
Chapter 22 - Object-Relational and Extended-Relational Systems
22.1 Overview of SQL and Its Object-Relational Features
22.2 Evolution of Data Models and Current Trends of Database Technology
22.3 The Informix Universal Server
22.4 Object-Relational Features of Oracle 8
22.5 Implementation and Related Issues for Extended Type Systems
22.6 The Nested Relational Model
22.7 Summary
Part 7 - Further Topics: Security, Advanced Modeling, and Distribution
Chapter 23 - Database Security
23.1 Introduction to Database Security Issues
23.2 Discretionary Access Control Based on Granting and Revoking Privileges
23.3 Mandatory Access Control and Role-Based Access Control for Multilevel Security
23.4 Introduction to Statistical Database Security
23.5 Introduction to Flow Control
23.6 Encryption and Public Key Infrastructures
23.7 Privacy Issues and Preservation
23.8 Challenges of Database Security
23.9 Summary
Chapter 24 - Enhanced Data Models for Advanced Applications
24.1 Active Database Concepts and Triggers
24.2 Temporal Database Concepts
24.3 Spatial and Multimedia Databases
24.4 Introduction to Deductive Databases
24.5 Summary
Chapter 25 - Distributed Databases and Client-Server Architectures
25.1 Distributed Database Concepts
25.2 Data Fragmentation, Replication, and Allocation Techniques for Distributed Database Design
25.3 Types of Distributed Database Systems
25.4 Query Processing in Distributed Databases
25.5 Overview of Concurrency Control and Recovery in Distributed Databases
25.6 An Overview of 3-Tier Client-Server Architecture
25.7 Distributed Databases in Oracle
25.8 Summary
Part 8 - Emerging Technologies
Chapter 26 - Web Database Programming Using PHP
26.1 Structured, Semistructured, and Unstructured Data
26.2 A Simple PHP Example
26.3 Overview of Basic Features of PHP
26.4 Overview of PHP Database Programming
26.5 Summary
Chapter 27 - XML: Extensible Markup Language
27.1 XML Hierarchical (Tree) Data Model
27.2 XML Documents, DTD, and XML Schema
27.3 XML Documents and Databases
27.4 XML Querying
27.5 Summary
Chapter 28 - Data Mining Concepts
28.1 Overview of Data Mining Technology
28.2 Association Rules
28.3 Classification
28.4 Clustering
28.5 Approaches to Other Data Mining Problems
28.6 Applications of Data Mining
28.7 Commercial Data Mining Tools
28.8 Summary
Chapter 29 - Overview of Data Warehousing and OLAP
29.1 Introduction, Definitions, and Terminology
29.2 Characteristics of Data Warehouses
29.3 Data Modeling for Data Warehouses
29.4 Building a Data Warehouse
29.5 Typical Functionality of a Data Warehouse
29.6 Data Warehouse versus Views
29.7 Problems and Open Issues in Data Warehouses
29.8 Summary
Chapter 30 - Emerging Database Technologies and Applications
30.1 Mobile Databases
30.2 Multimedia Databases
30.3 Geographic Information Systems (GIS)
30.4 Genome Data Management
Appendix A Alternative Diagrammatic Notations for ER Models
Appendix B Parameters of Disks
Appendix C Overview of the QBE Language
C.1 Basic Retrievals in QBE
C.2 Grouping, Aggregation, and Database Modification in QBE
Appendix D Overview of the Hierarchical Data Model
(located on the Companion Website at http://www.aw.com/elmasri)
Appendix E Overview of the Network Data Model
(located on the Companion Website at http://www.aw.com/elmasri)