PREFACE xxii

Part I BASICS 1

 

1        INTRODUCTION TO DATABASE SYSTEMS 3

1.1  Overview 4

1.2  A Historical Perspective 5

1.3  File Systems versus a DBMS 7

1.4  Advantages of a DBMS 8

1.5  Describing and Storing Data in a DBMS 9

1.5.1 The Relational Model 10

1.5.2 Levels of Abstraction in a DBMS 11

1.5.3 Data Independence 14

1.6  Queries in a DBMS 15

1.7  Transaction Management 15

1.7.1 Concurrent Execution of Transactions 16

1.7.2 Incomplete Transactions and System Crashes 17

1.7.3 Points to Note 18

1.8  Structure of a DBMS 18

1.9  People Who Deal with Databases 20

1.10          Points to Review 21

 

2 THE ENTITY-RELATIONSHIP MODEL 24

2.1 Overview of Database Design 24

2.1.1 Beyond the ER Model 24

2.2 Entities, Attributes, and Entity Sets 26

2.3 Relationships and Relationship Sets 27

2.4 Additional Features of the ER Model 30

2.4.1 Key Constraints 30

2.4.2 Participation Constraints 32

2.4.3 Weak Entities 33

2.4.4 Class Hierarchies 35

2.4.5 Aggregation 37

2.5 Conceptual Database Design With the ER Model 38

2.5.1 Entity versus Attribute 39

2.5.2 Entity versus Relationship 40

2.5.3 Binary versus Ternary Relationships * 41

2.5.4 Aggregation versus Ternary relationships * 43

2.6 Conceptual Design for Large Enterprises * 44

2.7 Points to Review

 

2        THE RELATIONAL MODEL 51

3.1 Introduction to the Relational Model 52

3.1.1 Creating and Modifying Relations Using SQL-92 55

3.2 Integrity Constraints over Relations 56

3.2.1 Key Constraints 57

3.2.2 Foreign Key Constraints 59

3.2.3 General Constraints 61

3.3 Enforcing Integrity Constraints 62

3.4 Querying Relational Data 64

3.5 Logical Database Design: ER to Relational 66

3.5.1 Entity Sets to Tables 67

3.5.2 Relationship Sets (without Constraints) to Tables 67

3.5.3 Translating Relationship Sets with Key Constraints 69

3.5.4 Translating Relationship Sets with Participation Constraints 71

3.5.5 Translating Weak Entity Sets 73

3.5.6 Translating Class Hierarchies 74

3.5.7 Translating ER Diagrams with Aggregation 75

3.5.8 ER to Relational: Additional Examples * 76

3.6 Introduction to Views 78

3.6.1 Views, Data Independence, Security 79

3.6.2 Updates on Views 79

3.7 Destroying/Altering Tables and Views 82

3.8 Points to Review 83

 

Part II 89

 

4 RELATIONAL ALGEBRA AND CALCULUS 91

4.1 Preliminaries 91

4.2 Relational Algebra 91

4.2.1 Selection and Projection 92

4.2.2 Set Operations 93

4.2.3 Renaming 94

4.2.4 Joins 96

4.2.5 Division 97

4.2.6 More Examples of Relational Algebra Queries 100

4.3 Relational Calculus 106

4.3.1 Tuple Relational Calculus 107

4.3.2 Domain Relational Calculus 111

4.4 Expressive Power of Algebra and Calculus * 114

4.5 Points to Review 115

 

5 SQL: QUERIES, PROGRAMMING, TRIGGERS 119

5.1 About the Examples 121

5.2 The Form of a Basic SQL Queries 121

5.2.1 Examples of Basic SQL Queries 126

5.2.2 Expressions and Strings in the SELECT Command 127

5.3 UNION, INTERSECT, and EXCEPT 129

5.4 NESTED Queries 132

5.4.1 Introduction to Nested Queries 132

5.4.2 Correlated Nested Queries 134

5.4.3 Set-Comparison Operators 135

5.4.4 More Examples of Nested Queries 136

5.5 Aggregate Operators 138

5.5.1 The GROUP BY and HAVING Clauses 140

5.5.2 More Examples of Aggregate Queries 143

5.6 Null Values *

5.6.1 Comparisons Using Null Values 147

5.6.2 Logical Connectives AND, OR, and NOT 148

5.6.3 Impact on AQL Constructs 148

5.6.4 Outer Joins 149

5.6.5 Disallowing Null Values 149

5.7 Embedded SQL * 150

5.7.1 Declaring Variables and Exceptions 151

5.7.2 Embedding SQL Statements 152

5.8 Cursors * 153

5.8.1 Basic Cursor Definition and Usage 153

5.8.2 Properties of Cursors 155

5.9 Dynamic SQL * 156

5.10 ODBC and JDBC * 157

5.10.1 Architecture 158

5.10.2 An Example Using JDBC 159

5.11 Complex Integrity Constraints in SQL-92 * 161

5.11.1 Constraints over a Single Table 161

5.11.2 Domain Constraints 162

5.11.3 Assertions: ICs over Several Tables 163

5.12 Triggers and Active Databases 164

5.12.1 Examples of Triggers in SQL 165

5.13 Designing Active Databases 166

5.13.1 Why Triggers Can Be Hard to Understand 167

5.13.2 Constraints versus Triggers 167

5.13.3 Other Uses of Triggers 168

5.14 Points to Review 168

 

6 QUERY-BY-EXAMPLE (QBE)

6.1 Introduction 177

6.2 Basic QBE Queries 177

6.2.1 Other Features: Duplicates, Ordering Answers 178

6.3 Queries over Multiple Relations 179

6.4 Negation in the Relation-Name Column 180

6.5 Aggregates 181

6.6 The Conditions Box 181

6.6.1 And/Or Queries 183

6.7 Unnamed Columns 185

6.8 Updates 185

6.8.1 Restrictions on Update Commands 187

6.9 Division and Relational Completeness * 187

6.10 Points to Review 189

 

Part III DATA STORAGE AND INDEXING 193

 

7 STORING DATA: DISKS AND FILES 195

7.1 The Memory Hierarchy 196

7.1.1 Magnetic Disks 197

7.1.2 Performance Implications of Disk Structure 199

7.2 RAID

7.2.1 Data Striping 200

7.2.2 Redundancy 201

7.2.3 Levels of Redundancy 203

7.2.4 Choice of RAID Levels 206

7.3 Disk Space Management 207

7.3.1 Keeping Track of Free Blocks 207

7.3.2 Using OS File Systems to Manage Disk Space 207

7.4 Buffer Manager 208

7.4.1 Buffer Replacement Policies 211

7.4.2 Buffer Management in DBMS versus OS 212

7.5 Files and Indexes 214

7.5.1 Heap Files 214

7.5.2 Introduction to Indexes 216

7.6 Pages Formats * 218

7.6.1 Fixed-Length Records 218

7.6.2 Variable-Length Records 219

7.7 Record Formats * 221

7.7.1 Fixed-Length Records 222

7.7.2 Variable-Length Records 222

7.8 Points to Review 224

 

8 FILE ORGANIZATIONS AND INDEXES 230

8.1 Cost Model 231

8.2 Comparison of Three File Organizations 232

8.2.1 Heap Files 232

8.2.2 Sorted Files 233

8.2.3 Hashed Files 235

8.2.4 Choosing a File Organization 236

8.3 Overview of Indexes 237

8.3.1 Alternatives for Data Entries in an Index 238

8.4 Properties of Indexes 239

8.4.1 Clustered versus Unclustered Indexes 239

8.4.2 Dense versus Sparse Indexes 241

8.4.3 Primary and Secondary indexes 242

8.4.4 Indexes Using Composite Search keys 243

8.5 Index Specification in SQL-92 244

8.6 Points to Review 244

 

9 TREE-STRUCTURED INDEXING 247

9.1 Indexed Sequential Access Method (ISAM) 248

9.2 B+ Trees: A Dynamic Index Structure 253

9.3 Format of a Node 254

9.4 Search 255

9.5 Insert 257

9.6 Delete * 260

9.7 Duplicates * 265

9.8 B+ Trees in Practice * 266

9.8.1 Key Compression 266

9.8.2 Bulk-loading a B+ Tree 268

9.8.3 The Order Concept 271

9.8.4 The Effect of Inserts and Deletes on Rids 272

9.9 Points to Review 272

 

10 HASH-BASED INDEXING 278

10.1 Static Hashing 278

10.1.1 Notation and Conventions 280

10.2 Extendible Hashing * 280

10.3 Linear Hashing * 280

10.4 Extendible Hashing versus Linear Hashing * 291

10.5 Points to Review 292

 

Part IV QUERY EVALUATION 299

 

11 EXTERNAL SORTING 301

11.1 A Simple Two-Way Merge Sort 302

11.2 External Merge Sort 305

11.2.1 Minimizing the number of Runs * 308

11.3 Minimizing I/O Cost versus Number of I/Os 309

11.3.1 Blocked I/O 310

11.3.2 Double Buffering 311

11.4 Using B+ Trees for Sorting 312

11.4.1 Clustered Index 312

11.4.2 Unclustered Index 313

11.5 Points to Review 315

 

12 EVALUATION OF RELATIONAL OPERATORS 319

12.1 Introduction to Query Processing 320

12.1.1 Access Paths 320

12.1.2 Preliminaries: Examples and Cost Calculation 321

12.2 The Selection Operation 321

12.2.1 No Index, Unsorted Data 322

12.2.2 No Index, Sorted Data 322

12.2.3 B+ Tree Index 323

12.2.4 Hash Index, Equality Selection 324

12.3 General Selection Conditions * 325

12.3.1 CNF and Index Matching 325

12.3.2 Evaluating Selections without Disjunction 326

12.3.3 Selections with Disjunction 327

12.4 The projection Operation 329

12.4.1 Projection Based on Sorting 329

12.4.2 Projection Based on Hashing * 330

12.4.3 Sorting versus Hashing for Projections * 3332

12.4.4 Use of Indexes for Projections * 333

12.5 The Join Operation 333

12.5.1 Nested Loops Join 334

12.5.2 Sort-Merge Join * 339

12.5.3 Hash Join * 343

12.5.4 General Join Conditions * 348

12.6 The Set Operations * 349

12.6.1 Sorting for Union and Difference 349

12.6.2 Hashing for Union and Difference 349

12.7 Aggregate Operations * 350

12.7.1 Implementing Aggregation by Using an Index 351

12.8 The Impact of Buffering * 352

12.9 Points to Review 353

 

13 INTRODUCTION TO QUERY OPTIMIZATION 359

13.1 Overview of Relational Query Optimization 360

13.1 1 Query Evaluation Plans 361

13.1.2 Pipelined Evaluation 362

13.1.3 The Iterator Interface for Operators and Access Methods 363

13.1.4 The System R Optimizer 364

13.2 System Catalog in a Relational DBMS 365

13.2.1 Information Stored in the System Catalog 365

13.3 Alternative Plans: A Motivating Example 368

13.3.1 Pushing Selections 368

13.3.2 Using Indexes 370

13.4 Points to Review 373

 

14 A TYPICAL RELATIONAL QUERY OPTIMIZER 374

14.1 Translating SQL Queries into Algebra 375

14.1.1 Decomposition of a Query into Blocks 375

14.1.2 A Query Block as a Relational Algebra Expression 376

14.2 Estimating the Cost of a Plan 378

14.2.1 Estimating Result Sizes 378

14.3 Relational Algebra Equivalences 383

14.3.1 Selections 383

14.3.2 Projections 384

14.3.3 Cross-Products and Joins 384

14.3.4 Selects, Projects, and Joins 385

14.3.5 Other Equivalences 387

14.4 Enumeration of Alternative Plan 387

14.4.1 Single-Relation Queries 387

14.4.2 Multiple-Relation Queries 392

14.5 Nested Subqueries 399

14.6 Other Approaches to Query Optimization 402

14.7 Points to Review 403

 

Part V DATABASE DESIGN 415

 

15 SCHEMA REFINEMENT AND NORMAL FORMS 417

15.1 Introduction to Schema Refinement 418

15.1.1 Problems Caused by Redundancy 418

15.1.2 Use of Decompositions 420

15.1.3 Problems Related to Decomposition 421

15.2 Functional Dependencies 422

15.3 Examples Motivating Schema Refinement 423

15.3.1 Constraints on an Entity Set 423

15.3.2 Constraints on a Relationship Set 424

15.3.3 Identifying Attributes of Entities 424

15.3.4 Identifying Entity Sets 426

15.4 Reasoning about Functional Dependencies 427

15.4.1 Closure of a Set of FDs 427

15.4.2 Attribute Closure 429

15.5 Normal Forms 430

15.5.1 Boyce-Codd Normal Form 430

15.5.2 Third Normal Form 432

15.6 Decompositions 434

15.6.1 Lossless-Join Decomposition 435

15.6.2 Dependency-Preserving Decomposition 436

15.7 Normalization 438

15.7.1 Decomposition into BCNF 438

15.7.2 Decomposition into 3NF * 440

15.8 Other Kinds of Dependencies * 444

15.8.1 Multivalued Dependencies 445

15.8.2 Fourth Normal Form 447

15.8.3 Join Dependencies 449

15.8.4 Fifth Normal Form 449

15.8.5 Inclusion Dependencies 449

15.9 Points to Review 450

 

16 PHYSICAL DATABASE DESIGN AND TUNING 457

16.1 Introduction to Physical Database Design 458

16.1.1 Database Workloads 458

16.1.2 Physical Design and Tuning Decisions 459

16.1.3 Need for Database Tuning 460

16.2 Guidelines for Index Selection 460

16.3 Basic Examples of Index Selection 463

16.4 Clustering and Indexing * 465

16.4.1 Co-clustering Two Relations 468

16.5 Indexes on Multiple-Attribute Search Keys * 470

16.6 Indexes that Enable Index-Only Plans * 471

16.7 Overview of Database Tuning 474

16.7.1 Tuning Indexes 474

16.7.2 Tuning the Conceptual Schema * 475

16.7.3 Tuning Queries and Views 476

16.8 Choices in Tuning the Conceptual Schema * 477

16.8.1 Settling for a Weaker Normal Form 478

16.8.2 Denormalization 478

16.8.3 Choice of Decompositions 479

16.8.4 Vertical Decomposition 480

16.8.5 Horizontal Decomposition 481

16.9 Choices in Tuning Queries and Views * 482

16.10 Impact of Concurrency * 484

16.11 DBMS Benchmarking * 485

16.11.1 Well-Known DBMS Benchmarks 486

16.11.2 Using a Benchmark 486

16.12 Points to Review 487

 

17 SECURITY 497

17.1 Introduction to Database Security 497

17.2 Access Control 497

17.3 Discretionary Access Control 498

17.3.1 Grant and Revoke on Views and Integrity Constraints * 506

17.4 Mandatory Access Control * 508

17.4.1 Multilevel Relations and Polyinstantiation 510

17.4.2 Covert Channels, DoD Security Levels 511

17.5 Additional Issues Related to Security * 512

17.5.1 Role of the Database Administrator 512

17.5.2 Security in Statistical Databases 513

17.5.3 Encryption 514

17.6 Points to Review 517

 

Part VI TRANSACTION MANAGEMENT 521

 

18 TRANSACTION MANAGEMENT OVERVIEW 523

18.1 The concept of a Transaction 523

18.1.1 Consistency and Isolation 525

18.1.2 Atomicity and Durability 525

18.2 Transactions and Schedules 526

18.3 Concurrent Execution of Transactions 527

18.3.1 Motivation for Concurrent Execution 527

18.3.2 Serializability 528

18.3.3 Some Anomalies Associated with Interleaved Execution 528

18.3.4 Schedules Involving Aborted Transactions 531

18.4 Lock-Based Concurrency Control 532

18.4.1 Strict Two-Phase Locking (Strict 2PL) 532

18.5 Introduction to Crash Recovery 533

18.5.1 Stealing Frames and Forcing Pages 535

18.5.2 Recovery-Related Steps during Normal Execution 536

18.5.3 Overview of ARIES 537

18.6 Points to Review 537

 

19 CONCURRENCY CONTROL 540

19.1 Lock-Based Concurrency Control Revisited 540

19.1.1 2PL, Serializability, and Recoverability 540

19.1.2 View Serializability 543

19.2 Lock Management 543

19.2.1 Implementing Lock and Unlock Requests 544

19.2.2 Deadlocks 546

19.2.3 Performance of Lock-Based Concurrency Control 548

19.3 Specialized Locking Techniques 549

19.3.1 Dynamic Databases and the Phantom Problem 550

19.3.2 Concurrency Control in B+ Trees 551

19.3.3 Multiple-Granularity Locking 554

19.4 Transaction Support in SQL-92 * 555

19.4.1 Transaction Characteristics 556

19.4.2 Transactions and Constraints 558

19.5 Concurrency Control without Locking 559

19.5.1Optimistic Concurrency Control 559

19.5.2 Timestamp-Based Concurrency Control 561

19.5.3 Multiversion Concurrency Control 563

19.6 Points to Review 564

 

20 CRASH RECOERY 571

20.1 Introduction to ARIES 571

20.1.1 The Log 573

20.1.2 Other Recovery-Related Data Structures 576

20.1.3 The Write-Ahead Log Protocol 577

20.1.4 Checkpointing 578

20.2 Recovering from a System Crash 578

20.2.1 Analysis Phase 579

20.2.2 Redo Phase 581

20.2.3 Undo Phase 583

20.3 Media Recovery 586

20.4 Other Algorithms and Interaction with Concurrency Control 587

20.5 Points to Review 588

 

Part VII ADVANCED TOPICS 595

21 PARALLEL AND DISTRIBUTED DATABASES 597

21.1 Architectures for Parallel Databases 598

21.2 Parallel Query Evaluation 600

21.2.1 Data Partitioning 601

21.2.2 Parallelizing Sequential Operator Evaluation Code 601

21.3 Parallelizing Individual Operations 602

21.3.1 Bulk Loading and Scanning 602

21.3.2 Sorting 602

21.3.3 Joins 603

21.4 Parallel Query Optimization 606

21.5 Introduction to Distributed Databases 607

21.5.1 Types of Distributed Databases 607

21.6 Distributed DBMS Architectures 608

21.6.1 Client-Server Systems 608

21.6.2 Collaborating Server Systems 609

21.6.3 Middleware Systems 609

21.7 Storing Data in a Distributed DBMS 610

21.7.1 Fragmentation 610

21.7.2 Replication 611

21.8 Distributed Catalog Management 611

21.8.1 Naming Objects 612

21.8.2 Catalog Structure 612

21.8.3 Distributed Data Independence 613

21.9 Distributed Query Processing 614

21.9.1 Nonjoin Queries in a Distributed DBMS 614

21.9.2 Joins in a Distributed DBMS 615

21.9.3 Cost-Based Query Optimization 619

21.10 Updating Distributed Data 619

21.10.1 Synchronous Replication 620

21.10.2 Asynchronous Replication 621

21.11 Introduction to Distributed Transactions 624

21.12 Distributed Concurrency Control 625

21.12.1 Distributed Deadlock 625

21.13 Distributed Recovery 627

21.13.1 Normal Execution and Commit Protocols 628

21.13.2 Restart after a Failure 629

21.13.3 Two-Phase Commit Revisited 630

21.13.4 Three-Phase Commit 632

21.14 Points to Review 632

 

22 INTERNET DATABASES 642

22.1 The World Wide Web 643

22.1.1 Introduction to HTML 643

22.1.2 Databases and the Web 645

22.2 Architecture 645

22.2.1 Application Servers and Server-Side Java 647

22.3 Beyond HTML 651

22.3.1 Introduction to XML 652

22.3.2 XML DTDs 654

22.3.3 Domain-Specific DTDs 657

22.3.4 XML-QL: Querying XML Data 659

22.3.5 The Semistructured Data Model 661

22.3.6 Implementation Issues for Semistructured Data 663

22.4 Indexing for Text Search 663

22.4.1 Inverted Files 665

22.4.2 Signature Files 666

22.5 Ranked Keyword Searches on the Web 667

22.5.1 An Algorithm for Ranking Web Pages 668

22.6 Points to Review 671

 

23 DECISION SUPPORT 677

23.1 Introduction to Decision Support 678

23.2 Data Warehousing 679

23.2.1 Creating and Maintaining a Warehouse 680

23.3 OLAP 682

23.3.1 Multidimensional Data Model 682

23.3.2 OLAP Queries 685

23.3.3 Database Design for OLAP 689

23.4 Implementation Techniques for OLAP 690

23.4.1 Bitmap Indexes 691

23.4.2 Join Indexes 692

23.4.3 File Organizations 693

23.4.4 Additional OLAP Implementation Issues 693

23.5 Views and Decision Support 694

23.5.1 Views, OLAP, and Warehousing 694

23.5.2 Query Modification 695

23.5.3 View Materialization versus Computing on Demand 696

23.5.4 Issues in View Materialization versus Computing on Demand 696

23.6 Finding Answers Quickly 699

23.6.1 Top N Queries 700

23.6.2 Online Aggregation 701

23.7 Points to Review 702

 

24 DATA MINING 707

24.1 Introduction to Data Mining 707

24.2 Counting Co-occurrences 708

24.2.1 Frequent Itemsets 709

24.2.2 Iceberg Queries 711

24.3 Mining for Rules 713

24.3.1 Association Rules 714

24.3.2 An Algorithm for Finding Association Rules 714

24.3.3 Association Rules and ISA Hierarchies 715

24.3.4 Generalized Association Rules 716

24.3.5 Sequential Patterns 717

24.3.6 The Use of Association Rules for Prediction 718

24.3.7 Bayesian Networks 719

24.3.8 Classification and Regression Rules 720

24.4 Tree-Structured Rules 722

24.4.1 Decision Trees 723

24.4.2 An Algorithm to Build Decision Trees 725

24.5 Clustering 726

24.5.1 A Clustering Algorithm 728

24.6 Similarity Search over Sequences 729

24.6.1 An Algorithm to Find Similar Sequences 730

24.7 Additional Data Mining Tasks 731

24.8 points to Review 732

 

25 OBJECT-DATABASE STSTEMS 736

25.1 Motivating Example 737

25.1.1 New Data Types 738

25.1.2 Manipulating the New Kinds of Data 739

25.2 User-Defined Abstract Data Types 742

25.2.1Defining Methods of an ADT 743

25.3 Structured Types 744

25.3.1 Manipulating Data of Structured Types 745

25.4 Objects, Object Identity, and Reference Types 748

25.4.1 Notions of Equality 749

25.4.2 Dereferencing Reference Types 750

25.5 Inheritance 750

25.5.1 Defining Types with Inheritance 751

25.5.2 Binding of Methods 751

25.5.3 Collection Hierarchies, Type Extents, and Queries 752

25.6 Database Design for an ORDBMS 753

25.6.1 Structured Types and ADTs 753

25.6.2 Object Identity 756

25.6.3 Extending the ER Model 757

25.6.4 Using Nested Collections 758

25.7 New Challenges in Implementing an ORDBMS 759

25.7.1 Storage and Access Methods 760

25.7.2 Query Processing 761

25.7.3 Query Optimization 763

25.8 OODBMS 756

25.8.1 The ODMG Data Model and ODL 765

25.8.2 OQL

25.9 Comparing RDBMS with OODBMS and ORDBMS 769

25.9.1 RDBMS versus ORDBMS

25.9.2 OODBMS versus ORDBMS: Similarities 770

25.9.3 OODBMS versus ORDBMS: Differences 770

25.10 Points to Review 771

 

26 SPATIAL DATA MANAGEMENT 777

26.1 Types of Spatial Data and Queries 777

26.2 Applications Involving Spatial Data 779

26.3 Introduction to Spatial Indexes 781

26.3.1 Overview of Proposed Index Structures 782

26.4 Indexing Based on Space-Filling Curves 783

26.4.1 Region Quad Trees and Z-Ordering: Region Data 784

26.4.2Spatial Queries Using Z-Ordering 785

26.5 Grid Files 786

26.5.1 Adapting Grid Files to Handle Regions 789

26.6 R Trees: Point and Region Data 789

26.6.1 Queries 790

26.6.2 Insert and Delete Operations 792

26.6.3 Concurrency Control 793

26.6.4 Generalized Search Trees 794

26.7 Issues in High-Dimensional Indexing 795

26.8 Points to Review 795

 

27 DEDUCTIVE DATABASES 799

27.1 Introduction to Recursive Queries 800

27.1.1 Datalog 801

27.2 Theoretical Foundations 803

27.2.1 Least Model Semantics 804

27.2.2 Safe Datalog Programs 805

27.2.3 The Fixpoint Operator 806

27.2.4 Least Model = Least Fixpoint 807

27.3 Recursive Queries with Negation 808

27.3.1 Range-Restriction and Negation 809

27.3.2 Stratification 809

27.3.3 Aggregate Operation 812

27.4 Efficient Evaluation of Recursive Queries 813

27.4.1 Fixpoint Evaluation without Repeated Inferences 814

27.4.2 Pushing Selections to Avoid Irrelevant Inferences 816

27.5 Points to Review 818

 

28 ADDITIONAL TOPICS 822

28.1 Advanced Transaction Processing 822

28.1.1 Transaction Processing Monitors 822

28.1.2 New Transaction Models 823

28.1.3 Real-Time DBMSs 824

28.2 Integrated Access to Multiple Data Sources 824

28.3 Mobile Databases 825

28.4 Main Memory Databases 825

28.5 Multimedia Databases 826

28.6 Geographic Information Systems 827

28.7 Temporal and Sequence Databases 828

28.8 Information Visualization 829

28.9 Summary 829

 

A DATABASE DESIGN CASE STUDY: THE INTERNET SHOP 831

A.1 Requirements Analysis 831

A.2 Conceptual Design 832

A.3 Logical Database Design 832

A.4 Schema Refinement 835

A.5 Physical Database Design 836

A.5.1 Tuning the Database 838

A.6 Security 838

A.7 Application Layers 840

 

B THE MINIBASE SOFTWARE 842

B.1 What’s Available 842

B.2 Overview of Minibase Assignments 843

B.2.1 Overview of Programming Projects 843

B.2.2 Overview of Nonprogramming Assignments 844

B.3 Acknowledgments 845

 

REFERENCES 847

 

SUBJECT INDEX 879

 

AUTHOR INDEX 896