Menu Expand
Fundamentals of Database Systems, Global Edition

Fundamentals of Database Systems, Global Edition

Ramez Elmasri | Shamkant B. Navathe

(2016)

Additional Information

Book Details

Abstract

For database systems courses in Computer Science

 

This book introduces the fundamental concepts necessary for designing, using, and implementing database systems and database applications. Our presentation stresses the fundamentals of database modeling and design, the languages and models provided by the database management systems, and database system implementation techniques.


The book is meant to be used as a textbook for a one- or two-semester course in database systems at the junior, senior, or graduate level, and as a reference book. The goal is to provide an in-depth and up-to-date presentation of the most important aspects of database systems and applications, and related technologies. It is assumed that readers are familiar with elementary programming and data-structuring concepts and that they have had some exposure to the basics of computer organization.


Table of Contents

Section Title Page Action Price
Cover Cover
Title Page 3
Copyright Page 4
Contents 17
Preface 7
About the Authors 30
Part 1 Introduction to Databases 31
Chapter 1 Databases and Database Users 33
1.1 Introduction 34
1.2 An Example 36
1.3 Characteristics of the Database Approach 40
1.4 Actors on the Scene 45
1.5 Workers behind the Scene 47
1.6 Advantages of Using the DBMS Approach 47
1.7 A Brief History of Database Applications 53
1.8 When Not to Use a DBMS 57
1.9 Summary 57
Review Questions 58
Exercises 58
Selected Bibliography 59
Chapter 2 Database System Concepts and Architecture 61
2.1 Data Models, Schemas, and Instances 62
2.2 Three-Schema Architecture and Data Independence 66
2.3 Database Languages and Interfaces 68
2.4 The Database System Environment 72
2.5 Centralized and Client/Server Architectures for DBMSs 76
2.6 Classification of Database Management Systems 81
2.7 Summary 84
Review Questions 85
Exercises 85
Selected Bibliography 86
Part 2 Conceptual Data Modeling and Database Design 87
Chapter 3 Data Modeling Using the Entity–Relationship (ER) Model 89
3.1 Using High-Level Conceptual Data Models for Database Design 90
3.2 A Sample Database Application 92
3.3 Entity Types, Entity Sets, Attributes, and Keys 93
3.4 Relationship Types, Relationship Sets, Roles, and Structural Constraints 102
3.5 Weak Entity Types 109
3.6 Refining the ER Design for the COMPANY Database 110
3.7 ER Diagrams, Naming Conventions, and Design Issues 111
3.8 Example of Other Notation: UML Class Diagrams 115
3.9 Relationship Types of Degree Higher than Two 118
3.10 Another Example: A UNIVERSITY Database 122
3.11 Summary 124
Review Questions 126
Exercises 126
Laboratory Exercises 133
Selected Bibliography 134
Chapter 4 The Enhanced Entity–Relationship (EER) Model 137
4.1 Subclasses, Superclasses, and Inheritance 138
4.2 Specialization and Generalization 140
4.3 Constraints and Characteristics of Specialization and Generalization Hierarchies 143
4.4 Modeling of UNION Types Using Categories 150
4.5 A Sample UNIVERSITY EER Schema, Design Choices, and Formal Definitions 152
4.6 Example of Other Notation: Representing Specialization and Generalization in UML Class Diagrams 157
4.7 Data Abstraction, Knowledge Representation, and Ontology Concepts 158
4.8 Summary 165
Review Questions 165
Exercises 166
Laboratory Exercises 173
Selected Bibliography 176
Part 3 The Relational Data Model and SQL 177
Chapter 5 The Relational Data Model and Relational Database Constraints 179
5.1 Relational Model Concepts 180
5.2 Relational Model Constraints and Relational Database Schemas 187
5.3 Update Operations, Transactions, and Dealing with Constraint Violations 195
5.4 Summary 199
Review Questions 200
Exercises 200
Selected Bibliography 205
Chapter 6 Basic SQL 207
6.1 SQL Data Definition and Data Types 209
6.2 Specifying Constraints in SQL 214
6.3 Basic Retrieval Queries in SQL 217
6.4 INSERT, DELETE, and UPDATE Statements in SQL 228
6.5 Additional Features of SQL 231
6.6 Summary 232
Review Questions 233
Exercises 233
Selected Bibliography 236
Chapter 7 More SQL: Complex Queries, Triggers, Views, and Schema Modification 237
7.1 More Complex SQL Retrieval Queries 237
7.2 Specifying Constraints as Assertions and Actions as Triggers 255
7.3 Views (Virtual Tables) in SQL 258
7.4 Schema Change Statements in SQL 262
7.5 Summary 264
Review Questions 266
Exercises 266
Selected Bibliography 268
Chapter 8 The Relational Algebra and Relational Calculus 269
8.1 Unary Relational Operations: SELECT and PROJECT 271
8.2 Relational Algebra Operations from Set Theory 276
8.3 Binary Relational Operations: JOIN and DIVISION 281
8.4 Additional Relational Operations 289
8.5 Examples of Queries in Relational Algebra 295
8.6 The Tuple Relational Calculus 298
8.7 The Domain Relational Calculus 307
8.8 Summary 309
Review Questions 310
Exercises 311
Laboratory Exercises 316
Selected Bibliography 318
Chapter 9 Relational Database Design by ER- and EER-to-Relational Mapping 319
9.1 Relational Database Design Using ER-to-Relational Mapping 320
9.2 Mapping EER Model Constructs to Relations 328
9.3 Summary 333
Review Questions 333
Exercises 333
Laboratory Exercises 335
Selected Bibliography 336
Part 4 Database Programming Techniques 337
Chapter 10 Introduction to SQL Programming Techniques 339
10.1 Overview of Database Programming Techniques and Issues 340
10.2 Embedded SQL, Dynamic SQL, and SQLJ 344
10.3 Database Programming with Function Calls and Class Libraries: SQL/CLI and JDBC 356
10.4 Database Stored Procedures and SQL/PSM 365
10.5 Comparing the Three Approaches 368
10.6 Summary 369
Review Questions 370
Exercises 370
Selected Bibliography 371
Chapter 11 Web Database Programming Using PHP 373
11.1 A Simple PHP Example 374
11.2 Overview of Basic Features of PHP 376
11.3 Overview of PHP Database Programming 383
11.4 Brief Overview of Java Technologies for Database Web Programming 388
11.5 Summary 388
Review Questions 389
Exercises 389
Selected Bibliography 389
Part 5 Object, Object-Relational, and XML: Concepts, Models, Languages, and Standards 391
Chapter 12 Object and Object-Relational Databases 393
12.1 Overview of Object Database Concepts 395
12.2 Object Database Extensions to SQL 409
12.3 The ODMG Object Model and the Object Definition Language ODL 416
12.4 Object Database Conceptual Design 435
12.5 The Object Query Language OQL 438
12.6 Overview of the C++ Language Binding in the ODMG Standard 447
12.7 Summary 448
Review Questions 450
Exercises 451
Selected Bibliography 452
Chapter 13 XML: Extensible Markup Language 455
13.1 Structured, Semistructured, and Unstructured Data 456
13.2 XML Hierarchical (Tree) Data Model 460
13.3 XML Documents, DTD, and XML Schema 463
13.4 Storing and Extracting XML Documents from Databases 472
13.5 XML Languages 473
13.6 Extracting XML Documents from Relational Databases 477
13.7 XML/SQL: SQL Functions for Creating XML Data 483
13.8 Summary 485
Review Questions 486
Exercises 486
Selected Bibliography 486
Part 6 Database Design Theory and Normalization 487
Chapter 14 Basics of Functional Dependencies and Normalization for Relational Databases 489
14.1 Informal Design Guidelines for Relation Schemas 491
14.2 Functional Dependencies 501
14.3 Normal Forms Based on Primary Keys 504
14.4 General Definitions of Second and Third Normal Forms 513
14.5 Boyce-Codd Normal Form 517
14.6 Multivalued Dependency and Fourth Normal Form 521
14.7 Join Dependencies and Fifth Normal Form 524
14.8 Summary 525
Review Questions 526
Exercises 527
Laboratory Exercises 531
Selected Bibliography 532
Chapter 15 Relational Database Design Algorithms and Further Dependencies 533
15.1 Further Topics in Functional Dependencies: Inference Rules, Equivalence, and Minimal Cover 535
15.2 Properties of Relational Decompositions 543
15.3 Algorithms for Relational Database Schema Design 549
15.4 About Nulls, Dangling Tuples, and Alternative Relational Designs 553
15.5 Further Discussion of Multivalued Dependencies and 4NF 557
15.6 Other Dependencies and Normal Forms 560
15.7 Summary 563
Review Questions 564
Exercises 565
Laboratory Exercises 566
Selected Bibliography 567
Part 7 File Structures, Hashing, Indexing, and Physical Database Design 569
Chapter 16 Disk Storage, Basic File Structures, Hashing, and Modern Storage Architectures 571
16.1 Introduction 572
16.2 Secondary Storage Devices 577
16.3 Buffering of Blocks 586
16.4 Placing File Records on Disk 590
16.5 Operations on Files 594
16.6 Files of Unordered Records (Heap Files) 597
16.7 Files of Ordered Records (Sorted Files) 598
16.8 Hashing Techniques 602
16.9 Other Primary File Organizations 612
16.10 Parallelizing Disk Access Using RAID Technology 614
16.11 Modern Storage Architectures 618
16.12 Summary 622
Review Questions 623
Exercises 625
Selected Bibliography 628
Chapter 17 Indexing Structures for Files and Physical Database Design 631
17.1 Types of Single-Level Ordered Indexes 632
17.2 Multilevel Indexes 643
17.3 Dynamic Multilevel Indexes Using B-Trees + and B -Trees 647
17.4 Indexes on Multiple Keys 661
17.5 Other Types of Indexes 663
17.6 Some General Issues Concerning Indexing 668
17.7 Physical Database Design in Relational Databases 673
17.8 Summary 676
Review Questions 677
Exercises 678
Selected Bibliography 680
Part 8 Query Processing and Optimization 683
Chapter 18 Strategies for Query Processing 685
18.1 Translating SQL Queries into Relational Algebra and Other Operators 687
18.2 Algorithms for External Sorting 690
18.3 Algorithms for SELECT Operation 693
18.4 Implementing the JOIN Operation 698
18.5 Algorithms for PROJECT and Set Operations 706
18.6 Implementing Aggregate Operations and Different Types of JOINs 708
18.7 Combining Operations Using Pipelining 711
18.8 Parallel Algorithms for Query Processing 713
18.9 Summary 718
Review Questions 718
Exercises 719
Selected Bibliography 720
Chapter 19 Query Optimization 721
19.1 Query Trees and Heuristics for Query Optimization 722
19.2 Choice of Query Execution Plans 731
19.3 Use of Selectivities in Cost-Based Optimization 740
19.4 Cost Functions for SELECT Operation 744
19.5 Cost Functions for the JOIN Operation 747
19.6 Example to Illustrate Cost-Based Query Optimization 756
19.7 Additional Issues Related to Query Optimization 758
19.8 An Example of Query Optimization in Data Warehouses 761
19.9 Overview of Query Optimization in Oracle 763
19.10 Semantic Query Optimization 767
19.11 Summary 768
Review Questions 769
Exercises 770
Selected Bibliography 770
Part 9 Transaction Processing, Concurrency Control, and Recovery 773
Chapter 20 Introduction to Transaction Processing Concepts and Theory 775
20.1 Introduction to Transaction Processing 776
20.2 Transaction and System Concepts 783
20.3 Desirable Properties of Transactions 787
20.4 Characterizing Schedules Based on Recoverability 789
20.5 Characterizing Schedules Based on Serializability 793
20.6 Transaction Support in SQL 803
20.7 Summary 806
Review Questions 807
Exercises 807
Selected Bibliography 809
Chapter 21 Concurrency Control Techniques 811
21.1 Two-Phase Locking Techniques for Concurrency Control 812
21.2 Concurrency Control Based on Timestamp Ordering 822
21.3 Multiversion Concurrency Control Techniques 825
21.4 Validation (Optimistic) Techniques and Snapshot Isolation Concurrency Control 828
21.5 Granularity of Data Items and Multiple Granularity Locking 830
21.6 Using Locks for Concurrency Control in Indexes 835
21.7 Other Concurrency Control Issues 836
21.8 Summary 837
Review Questions 838
Exercises 839
Selected Bibliography 840
Chapter 22 Database Recovery Techniques 843
22.1 Recovery Concepts 844
22.2 NO-UNDO/REDO Recovery Based on Deferred Update 851
22.3 Recovery Techniques Based on Immediate Update 853
22.4 Shadow Paging 856
22.5 The ARIES Recovery Algorithm 857
22.6 Recovery in Multidatabase Systems 861
22.7 Database Backup and Recovery from Catastrophic Failures 862
22.8 Summary 863
Review Questions 864
Exercises 865
Selected Bibliography 868
Part 10 Distributed Databases, NOSQL Systems, and Big Data 869
Chapter 23 Distributed Database Concepts 871
23.1 Distributed Database Concepts 872
23.2 Data Fragmentation, Replication, and Allocation Techniques for Distributed Database Design 877
23.3 Overview of Concurrency Control and Recovery in Distributed Databases 884
23.4 Overview of Transaction Management in Distributed Databases 887
23.5 Query Processing and Optimization in Distributed Databases 889
23.6 Types of Distributed Database Systems 895
23.7 Distributed Database Architectures 898
23.8 Distributed Catalog Management 905
23.9 Summary 906
Review Questions 907
Exercises 908
Selected Bibliography 910
Chapter 24 NOSQL Databases and Big Data Storage Systems 913
24.1 Introduction to NOSQL Systems 914
24.2 The CAP Theorem 918
24.3 Document-Based NOSQL Systems and MongoDB 920
24.4 NOSQL Key-Value Stores 925
24.5 Column-Based or Wide Column NOSQL Systems 930
24.6 NOSQL Graph Databases and Neo4j 933
24.7 Summary 939
Review Questions 939
Selected Bibliography 940
Chapter 25 Big Data Technologies Based on MapReduce and Hadoop 941
25.1 What Is Big Data? 944
25.2 Introduction to MapReduce and Hadoop 946
25.3 Hadoop Distributed File System (HDFS) 951
25.4 MapReduce: Additional Details 956
25.5 Hadoop v2 alias YARN 966
25.6 General Discussion 974
25.7 Summary 983
Review Questions 984
Selected Bibliography 986
Part 11 Advanced Database Models, Systems, and Applications 989
Chapter 26 Enhanced Data Models: Introduction to Active, Temporal, Spatial, Multimedia, and Deductive Databases 991
26.1 Active Database Concepts and Triggers 993
26.2 Temporal Database Concepts 1004
26.3 Spatial Database Concepts 1017
26.4 Multimedia Database Concepts 1024
26.5 Introduction to Deductive Databases 1029
26.6 Summary 1042
Review Questions 1044
Exercises 1045
Selected Bibliography 1048
Chapter 27 Introduction to Information Retrieval and Web Search 1051
27.1 Information Retrieval (IR) Concepts 1052
27.2 Retrieval Models 1059
27.3 Types of Queries in IR Systems 1065
27.4 Text Preprocessing 1067
27.5 Inverted Indexing 1070
27.6 Evaluation Measures of Search Relevance 1074
27.7 Web Search and Analysis 1077
27.8 Trends in Information Retrieval 1087
27.9 Summary 1093
Review Questions 1094
Selected Bibliography 1096
Chapter 28 Data Mining Concepts 1099
28.1 Overview of Data Mining Technology 1100
28.2 Association Rules 1103
28.3 Classification 1115
28.4 Clustering 1118
28.5 Approaches to Other Data Mining Problems 1121
28.6 Applications of Data Mining 1124
28.7 Commercial Data Mining Tools 1124
28.8 Summary 1127
Review Questions 1127
Exercises 1128
Selected Bibliography 1129
Chapter 29 Overview of Data Warehousing and OLAP 1131
29.1 Introduction, Definitions, and Terminology 1132
29.2 Characteristics of Data Warehouses 1133
29.3 Data Modeling for Data Warehouses 1135
29.4 Building a Data Warehouse 1141
29.5 Typical Functionality of a Data Warehouse 1144
29.6 Data Warehouse versus Views 1145
29.7 Difficulties of Implementing Data Warehouses 1146
29.8 Summary 1147
Review Questions 1147
Selected Bibliography 1148
Part 12 Additional Database Topics: Security 1149
Chapter 30 Database Security 1151
30.1 Introduction to Database Security Issues 1152
30.2 Discretionary Access Control Based on Granting and Revoking Privileges 1159
30.3 Mandatory Access Control and Role-Based Access Control for Multilevel Security 1164
30.4 SQL Injection 1173
30.5 Introduction to Statistical Database Security 1176
30.6 Introduction to Flow Control 1177
30.7 Encryption and Public Key Infrastructures 1179
30.8 Privacy Issues and Preservation 1183
30.9 Challenges to Maintaining Database Security 1184
30.10 Oracle Label-Based Security 1185
30.11 Summary 1188
Review Questions 1189
Exercises 1190
Selected Bibliography 1191
Appendix A: Alternative Diagrammatic Notations for ER Models 1193
Appendix B: Parameters of Disks 1197
Appendix C: Overview of the QBE Language 1201
C.1 Basic Retrievals in QBE 1201
C.2 Grouping, Aggregation, and Database Modification in QBE 1205
Bibliography 1209
Index 1245
A 1245
B 1247
C 1247
D 1249
E 1253
F 1255
G 1255
H 1256
I 1256
J 1258
K 1258
L 1258
M 1259
N 1260
O 1261
P 1262
Q 1263
R 1264
S 1266
T 1269
U 1271
V 1272
W 1272
X 1272
Y 1272