|
part 1 Introduction and Conceptual Modeling |
|
|
|
Databases and Database Users |
|
|
3 | (26) |
|
|
4 | (2) |
|
|
6 | (3) |
|
Characteristics of the Database Approach |
|
|
9 | (5) |
|
|
14 | (2) |
|
|
16 | (1) |
|
Advantages of Using the DBMS Approach |
|
|
17 | (6) |
|
A Brief History of Database Applications |
|
|
23 | (3) |
|
|
26 | (1) |
|
|
27 | (2) |
|
|
27 | (1) |
|
|
28 | (1) |
|
|
28 | (1) |
|
Database System Concepts and Architecture |
|
|
29 | (28) |
|
Data Models, Schemas, and Instance |
|
|
30 | (3) |
|
Three-Schema Architecture and Data Independence |
|
|
33 | (3) |
|
Database Languages and Interfaces |
|
|
36 | (4) |
|
The Database System Environment |
|
|
40 | (4) |
|
Centralized and Client/Server Architectures for DBMSs |
|
|
44 | (5) |
|
Classification of Database Management Systems |
|
|
49 | (3) |
|
|
52 | (5) |
|
|
54 | (1) |
|
|
54 | (1) |
|
|
55 | (2) |
|
Data Modeling Using the Entity-Relationship (ER) Model |
|
|
57 | (46) |
|
Using High-Level Conceptual Data Models for Database Design |
|
|
59 | (1) |
|
An Example Database Application |
|
|
60 | (1) |
|
Entity Types, Entity Sets, Attributes, and Keys |
|
|
61 | (9) |
|
Relationship Types, Relationship Sets, Roles, and Structural Constraints |
|
|
70 | (6) |
|
|
76 | (2) |
|
Refining the ER Design for the COMPANY Database |
|
|
78 | (1) |
|
ER Diagrams, Naming Conventions, and Design Issues |
|
|
79 | (5) |
|
Example of Other Notation: UML Class Diagrams |
|
|
84 | (2) |
|
Relationship Types of Degree Higher Than Two |
|
|
86 | (4) |
|
|
90 | (13) |
|
|
91 | (1) |
|
|
92 | (7) |
|
|
99 | (2) |
|
|
101 | (2) |
|
The Enhanced Entity-Relationship (EER) Model |
|
|
103 | (42) |
|
Subclasses, Superclasses, and Inheritance |
|
|
104 | (2) |
|
Specialization and Generalization |
|
|
106 | (3) |
|
Constraints and Characteristics of Specialization and Generalization Hierarchies |
|
|
109 | (7) |
|
Modeling of UNION Types Using Categories |
|
|
116 | (3) |
|
An Example UNIVERSITY EER Schema, Design Choices, and Formal Definitions |
|
|
119 | (4) |
|
Example of Other Notation: Representing Specialization and Generalization in UML Class Diagrams |
|
|
123 | (2) |
|
Data Abstraction, Knowledge Representation, and Ontology Concepts |
|
|
125 | (6) |
|
|
131 | (14) |
|
|
131 | (1) |
|
|
132 | (8) |
|
|
140 | (2) |
|
|
142 | (3) |
|
part 2 Relational Model: Concepts, Constraints, Languages, Design, and Programming |
|
|
|
The Relational Data Model and Relational Database Constraints |
|
|
145 | (28) |
|
Relational Model Concepts |
|
|
146 | (7) |
|
Relational Model Constraints and Relational Database Schemas |
|
|
153 | (8) |
|
Update Operations, Tranactions, and Dealing with Constraint Violations |
|
|
161 | (4) |
|
|
165 | (8) |
|
|
166 | (1) |
|
|
166 | (4) |
|
|
170 | (3) |
|
The Relational Algebra and Relational Calculus |
|
|
173 | (50) |
|
Unary Relational Operations: SELECT and PROJECT |
|
|
175 | (5) |
|
Relational Algebra Operations from Set Theory |
|
|
180 | (3) |
|
Binary Relational Operations: JOIN and DIVISION |
|
|
183 | (9) |
|
Additional Relational Operations |
|
|
192 | (7) |
|
Examples of Queries in Relational Algebra |
|
|
199 | (2) |
|
The Tuple Relational Calculus |
|
|
201 | (9) |
|
The Domain Relational Calculus |
|
|
210 | (2) |
|
|
212 | (11) |
|
|
213 | (1) |
|
|
214 | (5) |
|
|
219 | (2) |
|
|
221 | (2) |
|
Relational Database Design by ER-and EER-to-Relational Mapping |
|
|
223 | (18) |
|
Relational Database Design Using ER-to-Relational Mapping |
|
|
224 | (8) |
|
Mapping EER Model Constructs to Relations |
|
|
232 | (4) |
|
|
236 | (5) |
|
|
236 | (1) |
|
|
237 | (1) |
|
|
238 | (1) |
|
|
239 | (2) |
|
SQL-99: Schema Definition, Constraints, Queries, and Views |
|
|
241 | (58) |
|
SQL Data Definition and Data Types |
|
|
243 | (5) |
|
Specifying Constraints in SQL |
|
|
248 | (3) |
|
Schema Change Statements in SQL |
|
|
251 | (2) |
|
|
253 | (10) |
|
|
263 | (16) |
|
Insert, Delete, and Update Statements in SQL |
|
|
279 | (3) |
|
Specifying Constraints as Assertions and Triggers |
|
|
282 | (1) |
|
Views (Virtual Tables) in SQL |
|
|
283 | (4) |
|
Additional Features of SQL |
|
|
287 | (1) |
|
|
288 | (11) |
|
|
288 | (2) |
|
|
290 | (3) |
|
|
293 | (4) |
|
|
297 | (2) |
|
Introduction to SQL Programming Techniques |
|
|
299 | (36) |
|
Database Programming: Issues and Techniques |
|
|
300 | (3) |
|
Embedded SQL, Dynamic SQL, and SQLJ |
|
|
303 | (12) |
|
Database Programming with Function Calls: SQL/CLI and JDBC |
|
|
315 | (10) |
|
Database Stored Procedures and SQL/PSM |
|
|
325 | (3) |
|
|
328 | (7) |
|
|
328 | (1) |
|
|
329 | (1) |
|
|
329 | (2) |
|
|
331 | (4) |
|
part 3 Database Design Theory and Methodology |
|
|
|
Functional Dependencies and Normalization for Relational Databases |
|
|
335 | (44) |
|
Informal Design Guidelines for Relation Schemas |
|
|
337 | (10) |
|
|
347 | (8) |
|
Normal Forms Based on Primary Keys |
|
|
355 | (10) |
|
General Definitions of Second and Third Normal Forms |
|
|
365 | (3) |
|
|
368 | (2) |
|
|
370 | (9) |
|
|
371 | (1) |
|
|
372 | (5) |
|
|
377 | (1) |
|
|
377 | (2) |
|
Relational Database Design Algorithms and Further Dependencies |
|
|
379 | (34) |
|
Properties of Relational Decompositions |
|
|
380 | (6) |
|
Algorithms for Relational Database Schema Design |
|
|
386 | (10) |
|
Multivalued Dependencies and Fourth Normal Form |
|
|
396 | (6) |
|
Join Dependencies and Fifth Normal Form |
|
|
402 | (1) |
|
|
403 | (1) |
|
Other Dependencies and Normal Forms |
|
|
404 | (3) |
|
|
407 | (6) |
|
|
407 | (1) |
|
|
408 | (2) |
|
|
410 | (1) |
|
|
411 | (2) |
|
Practical Database Design Methodology and Use of UML Diagrams |
|
|
413 | (50) |
|
The Role of Information Systems in Organizations |
|
|
414 | (5) |
|
The Database Design and Implementation Process |
|
|
419 | (19) |
|
Use of UML Diagrams As an Aid to Database Design Specification |
|
|
438 | (9) |
|
Rational Rose, a UML-Based Design Tool |
|
|
447 | (6) |
|
Automated Database Design Tools |
|
|
453 | (3) |
|
|
456 | (7) |
|
|
457 | (2) |
|
|
459 | (4) |
|
part 4 Data Storage, Indexing, Query Processing, and Physical Design |
|
|
|
Disk Storage, Basic File Structures, and Hashing |
|
|
463 | (48) |
|
|
464 | (3) |
|
Secondary Storage Devices |
|
|
467 | (6) |
|
|
473 | (2) |
|
Placing File Records on Disk |
|
|
475 | (4) |
|
|
479 | (3) |
|
Files of Unordered Records (Heap Files) |
|
|
482 | (1) |
|
Files of Ordered Records (Sorted Files) |
|
|
483 | (3) |
|
|
486 | (10) |
|
Other Primary File Organizations |
|
|
496 | (1) |
|
Parallelizing Disk Access Using RAID Technology |
|
|
497 | (3) |
|
|
500 | (3) |
|
|
503 | (8) |
|
|
504 | (1) |
|
|
505 | (4) |
|
|
509 | (2) |
|
Indexing Structures for Files |
|
|
511 | (38) |
|
Types of Single-Level Ordered Indexes |
|
|
512 | (10) |
|
|
522 | (3) |
|
Dynamic Multilevel Indexes Using B-Trees and B+Trees |
|
|
525 | (13) |
|
|
538 | (4) |
|
|
542 | (1) |
|
|
543 | (6) |
|
|
544 | (1) |
|
|
545 | (2) |
|
|
547 | (2) |
|
Algorithms for Query Processing and Optimization |
|
|
549 | (44) |
|
Translating SQL Queries into Relational Algebra |
|
|
551 | (1) |
|
Algorithms for External Sorting |
|
|
552 | (2) |
|
Algorithms for Select and Join Operations |
|
|
554 | (11) |
|
Algorithms for Project and Set Operations |
|
|
565 | (1) |
|
Implementing Aggregate Operations and Outer Joins |
|
|
566 | (2) |
|
Combining Operations Using Pipelining |
|
|
568 | (1) |
|
Using Heuristics in Query Optimization |
|
|
568 | (10) |
|
Using Selectivity and Cost Estimates in Query Optimization |
|
|
578 | (10) |
|
Overview of Query Optimization in Oracle |
|
|
588 | (1) |
|
Semantic Query Optimization |
|
|
589 | (1) |
|
|
589 | (4) |
|
|
590 | (1) |
|
|
590 | (1) |
|
|
591 | (2) |
|
Physical Database Design and Tuning |
|
|
593 | (16) |
|
Physical Database Design in Relational Databases |
|
|
593 | (5) |
|
An Overview of Database Tuning in Relational Systems |
|
|
598 | (6) |
|
|
604 | (5) |
|
|
604 | (1) |
|
|
605 | (4) |
|
part 5 Transaction Processing Concepts |
|
|
|
Introduction to Transaction Processing Concepts and Theory |
|
|
609 | (32) |
|
Introduction to Transaction Processing |
|
|
610 | (6) |
|
Transaction and System Concepts |
|
|
616 | (3) |
|
Desirable Properties of Transactions |
|
|
619 | (2) |
|
Characterizing Schedules Based on Recoverability |
|
|
621 | (3) |
|
Characterizing Schedules Based on Serializability |
|
|
624 | (10) |
|
Transaction Support in SQL |
|
|
634 | (2) |
|
|
636 | (5) |
|
|
637 | (1) |
|
|
638 | (3) |
|
Concurrency Control Techniques |
|
|
641 | (28) |
|
Two-Phase Locking Techniques for Concurrency Control |
|
|
642 | (10) |
|
Concurrency Control Based on Timestamp Ordering |
|
|
652 | (3) |
|
Multiversion Concurrency Control Techniques |
|
|
655 | (2) |
|
Validation (Optimistic) Concurrency Control Techniques |
|
|
657 | (2) |
|
Granularity of Data Items and Multiple Granularity Locking |
|
|
659 | (4) |
|
Using Locks for Concurrency Control in Indexes |
|
|
663 | (1) |
|
Other Concurrency Control Issues |
|
|
664 | (1) |
|
|
665 | (4) |
|
|
666 | (1) |
|
|
667 | (1) |
|
|
668 | (1) |
|
Database Recovery Techniques |
|
|
669 | (30) |
|
|
670 | (6) |
|
Recovery Techniques Based on Deferred Update |
|
|
676 | (5) |
|
Recovery Techniques Based on Immediate Update |
|
|
681 | (1) |
|
|
682 | (2) |
|
The ARIES Recovery Algorithm |
|
|
684 | (3) |
|
Recovery in Multidatabase Systems |
|
|
687 | (2) |
|
Database Backup and Recovery from Catastrophic Failures |
|
|
689 | (1) |
|
|
689 | (10) |
|
|
690 | (1) |
|
|
691 | (3) |
|
|
694 | (5) |
|
part 6 Object and Object-Relational Databases |
|
|
|
Concepts for Object Databases |
|
|
699 | (28) |
|
Overview of Object-Oriented Concepts |
|
|
701 | (2) |
|
Object Identity, Object Structure, and Type Constructors |
|
|
703 | (6) |
|
Encapsulation of Operations, Methods, and Persistence |
|
|
709 | (5) |
|
Type and Class Hierarchies and Inheritance |
|
|
714 | (4) |
|
|
718 | (2) |
|
Other Objected-Oriented Concepts |
|
|
720 | (3) |
|
|
723 | (4) |
|
|
724 | (1) |
|
|
724 | (3) |
|
Object Database Standards, Languages, and Design |
|
|
727 | (36) |
|
Overview of the Object Model of ODMG |
|
|
728 | (13) |
|
The Object Definition Language ODL |
|
|
741 | (5) |
|
The Object Query Language OQL |
|
|
746 | (9) |
|
Overview of the C++ Language Binding |
|
|
755 | (2) |
|
Object Database Conceptual Design |
|
|
757 | (3) |
|
|
760 | (3) |
|
|
761 | (1) |
|
|
761 | (1) |
|
|
762 | (1) |
|
Object-Relational and Extended-Relational Systems |
|
|
763 | (32) |
|
Overview of SQL and Its Object-Relational Features |
|
|
764 | (7) |
|
Evolution of Data Models and Current Trends of Database Technology |
|
|
771 | (2) |
|
The Informix Universal Server |
|
|
773 | (11) |
|
Object-Relational Features of Oracle 8 |
|
|
784 | (2) |
|
Implementation and Related Issues for Extended Type Systems |
|
|
786 | (2) |
|
The Nested Relational Model |
|
|
788 | (2) |
|
|
790 | (5) |
|
|
791 | (4) |
|
part 7 Further Topics: Security, Advanced Modeling, and Distribution |
|
|
|
|
795 | (28) |
|
Introduction to Database Security Issues |
|
|
795 | (5) |
|
Discretionary Access Control Based on Granting and Revoking Privileges |
|
|
800 | (4) |
|
Mandatory Access Control and Role-Based Access Control for Multilevel Security |
|
|
804 | (6) |
|
Introduction to Statistical Database Security |
|
|
810 | (2) |
|
Introduction to Flow Control |
|
|
812 | (2) |
|
Encryption and Public Key Infrastructures |
|
|
814 | (2) |
|
Privacy Issues and Preservation |
|
|
816 | (1) |
|
Challenges of Database Security |
|
|
817 | (1) |
|
|
818 | (5) |
|
|
819 | (1) |
|
|
820 | (3) |
|
Enhanced Data Models for Advanced Applications |
|
|
823 | (50) |
|
Active Database Concepts and Triggers |
|
|
825 | (10) |
|
Temporal Database Concepts |
|
|
835 | (14) |
|
Spatial and Multimedia Databases |
|
|
849 | (3) |
|
Introduction to Deductive Databases |
|
|
852 | (14) |
|
|
866 | (7) |
|
|
867 | (1) |
|
|
868 | (3) |
|
|
871 | (2) |
|
Distributed Databases and Client-Server Architectures |
|
|
873 | (40) |
|
Distributed Database Concepts |
|
|
874 | (6) |
|
Data Fragmentation, Replication, and Allocation Techniques for Distributed Database Design |
|
|
880 | (7) |
|
Types of Distributed Database Systems |
|
|
887 | (3) |
|
Query Processing in Distributed Databases |
|
|
890 | (5) |
|
Overview of Concurrency Control and Recovery in Distributed Databases |
|
|
895 | (4) |
|
An Overview of 3-Tier Client-Server Architecture |
|
|
899 | (2) |
|
Distributed Databases in Oracle |
|
|
901 | (3) |
|
|
904 | (9) |
|
|
904 | (1) |
|
|
905 | (2) |
|
|
907 | (6) |
|
part 8 Emerging Technologies |
|
|
|
Web Database Programming Using PHP |
|
|
913 | (24) |
|
Structured, Semistructured, and Unstructured Data |
|
|
914 | (5) |
|
|
919 | (2) |
|
Overview of Basic Features of PHP |
|
|
921 | (7) |
|
Overview of PHP Database Programming |
|
|
928 | (4) |
|
|
932 | (5) |
|
|
933 | (1) |
|
|
933 | (1) |
|
|
934 | (1) |
|
|
935 | (2) |
|
XML: Extensible Markup Language |
|
|
937 | (22) |
|
XML Hierarchical (Tree) Data Model |
|
|
938 | (1) |
|
XML Documents, DTD, and XML Schema |
|
|
939 | (9) |
|
XML Documents and Databases |
|
|
948 | (7) |
|
|
955 | (2) |
|
|
957 | (2) |
|
|
958 | (1) |
|
|
958 | (1) |
|
|
958 | (1) |
|
|
959 | (32) |
|
Overview of Data Mining Technology |
|
|
960 | (3) |
|
|
963 | (12) |
|
|
975 | (3) |
|
|
978 | (3) |
|
Approaches to Other Data Mining Problems |
|
|
981 | (3) |
|
Applications of Data Mining |
|
|
984 | (1) |
|
Commercial Data Mining Tools |
|
|
984 | (3) |
|
|
987 | (4) |
|
|
987 | (1) |
|
|
988 | (1) |
|
|
989 | (2) |
|
Overview of Data Warehousing and OLAP |
|
|
991 | (18) |
|
Introduction, Definitions, and Terminology |
|
|
991 | (2) |
|
Characteristics of Data Warehouses |
|
|
993 | (1) |
|
Data Modeling for Data Warehouses |
|
|
994 | (5) |
|
Building a Data Warehouse |
|
|
999 | (3) |
|
Typical Functionality of a Data Warehouse |
|
|
1002 | (1) |
|
Data Warehouse versus Views |
|
|
1003 | (1) |
|
Problems and Open Issues in Data Warehouses |
|
|
1004 | (2) |
|
|
1006 | (3) |
|
|
1006 | (1) |
|
|
1007 | (2) |
|
Emerging Database Technologies and Applications |
|
|
1009 | (42) |
|
|
1010 | (7) |
|
|
1017 | (7) |
|
Geographic Information Systems (GIS) |
|
|
1024 | (14) |
|
|
1038 | (13) |
|
|
1047 | (3) |
|
|
1050 | (1) |
|
appendix A Alternative Diagrammatic Notations for ER Models |
|
|
1051 | (4) |
|
appendix B Parameters of Disks |
|
|
1055 | (4) |
|
appendix C Overview of the QBE Language |
|
|
1059 | (8) |
|
C.1 Basic Retrievals in QBE |
|
|
1059 | (5) |
|
C.2 Grouping, Aggregation, and Database Modification in QBE |
|
|
1064 | (3) |
|
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) |
|
|
Selected Bibliography |
|
1067 | (30) |
Index |
|
1097 | |