Acknowledgments xvii Introduction xix CHAPTER 1 Database Fundamentals 1 Properties of a Database 1 The Database Management System (DBMS) 2 Layers of Data Abstraction 3 Physical Data Independence 5 Logical Data Independence 6 Prevalent Database Models 7 Flat Files 7 The Hierarchical Model 9 The Network Model 11 The Relational Model 13 The Object-Oriented Model 15 The Object-Relational Model 16 A Brief History of Databases 17 Why Focus on Relational? 19 Quiz 20 CHAPTER 2 Exploring Relational Database Components 25 Conceptual Database Design Components 26 Entities 27 ix
x Databases Demystified Attributes 27 Relationships 28 Business Rules 32 Logical/Physical Database Design Components 33 Tables 33 Columns and Data Types 34 Constraints 37 Integrity Constraints 42 Views 45 Quiz 46 CHAPTER 3 Forms-Based Database Queries 51 QBE: The Roots of Forms-Based Queries 52 Getting Started in Microsoft Access 52 The Microsoft Access Relationships Panel 55 The Microsoft Access Table Design View 57 Creating Queries in Microsoft Access 59 Example 3-1: List All Customers 62 Example 3-2: Choosing Columns to Display 63 Example 3-3: Sorting Results 64 Example 3-4: Advanced Sorting 66 Example 3-5: Choosing Rows to Display 66 Example 3-6: Compound Row Selection 68 Example 3-7: Using Not Equal 70 Example 3-8: Joining Tables 70 Example 3-9: Limiting Join Results 72 Example 3-10: Outer Joins 75 Example 3-11: Multiple Joins; Calculated Columns 77 Example 3-12: Aggregate Functions 80 Example 3-13: Self-Joins 82 Quiz 85
xi CHAPTER 4 Introduction to SQL 89 The History of SQL 90 Getting Started with Oracle SQL 91 Where s the Data? 96 Finding Database Objects Using Catalog Views 97 Viewing Database Objects Using Oracle Enterprise Manager 98 Data Query Language (DQL): The SELECT Statement 100 Example 4-1: Listing All Employees 100 Example 4-2: Limiting Columns to Display 100 Example 4-3: Sorting Results 102 Choosing Rows to Display 103 Joining Tables 108 Aggregate Functions 112 Data Manipulation Language (DML) 114 Transaction Support (COMMIT and ROLLBACK) 114 The INSERT Statement 115 The UPDATE Statement 116 The DELETE Statement 117 Data Definition Language (DDL) Statements 118 The CREATE TABLE Statement 118 The ALTER TABLE Statement 119 The CREATE VIEW Statement 121 The CREATE INDEX Statement 121 The DROP Statement 122 Data Control Language (DCL) Statements 122 The GRANT Statement 123 The REVOKE Statement 123 Quiz 124
xii Databases Demystified CHAPTER 5 The Database Life Cycle 129 The Traditional Method 130 Planning 130 Requirements Gathering 132 Conceptual Design 135 Logical Design 136 Physical Design 136 Construction 137 Implementation and Rollout 138 Ongoing Support 138 Nontraditional Methods 139 Prototyping 139 Rapid Application Development (RAD) 140 Quiz 141 CHAPTER 6 Logical Database Design Using Normalization 145 The Need for Normalization 147 Insert Anomaly 148 Delete Anomaly 148 Update Anomaly 148 Applying the Normalization Process 148 Choosing a Primary Key 151 First Normal Form: Eliminating Repeating Data 153 Second Normal Form: Eliminating Partial Dependencies 156 Third Normal Form: Eliminating Transitive Dependencies 158 Beyond Third Normal Form 160 Denormalization 163 Practice Problems 164 TLA University Academic Tracking 164
xiii Computer Books Company 170 Quiz 174 CHAPTER 7 Data and Process Modeling 179 Entity Relationship Modeling 180 ERD Formats 180 Super Types and Subtypes 184 Guidelines for Drawing ERDs 188 Process Models 189 The Flowchart 190 The Function Hierarchy Diagram 192 The Swim Lane Diagram 193 The Data Flow Diagram 194 Relating Entities and Processes 196 Quiz 198 CHAPTER 8 Physical Database Design 203 Designing Tables 204 Implementing Super Types and Subtypes 208 Naming Conventions 211 Integrating Business Rules and Data Integrity 214 NOT NULL Constraints 216 Primary Key Constraints 216 Referential (Foreign Key) Constraints 216 Unique Constraints 217 Check Constraints 218 Data Types, Precision, and Scale 218 Triggers 219 Designing Views 220 Adding Indexes for Performance 221 Quiz 222 CHAPTER 9 Connecting Databases to the Outside World 227 Deployment Models 228 Centralized Model 228
xiv Databases Demystified Distributed Model 229 Client/Server Model 231 Connecting Databases to the Web 235 Introduction to the Internet and the Web 236 Components of the Web Technology Stack 238 Invoking Transactions from Web Pages 239 Connecting Databases to Applications 240 Connecting Databases via ODBC 240 Connecting Databases to Java Applications 241 Quiz 242 CHAPTER 10 Database Security 247 Why Is Security Necessary? 247 Database Server Security 249 Physical Security 249 Network Security 250 System-Level Security 255 Database Client and Application Security 255 Login Credentials 256 Data Encryption 256 Other Client Considerations 257 Database Access Security 258 Database Security Architectures 259 Schema Owner Accounts 263 System Privileges 264 Object Privileges 265 Roles 265 Views 266 Security Monitoring and Auditing 267 Quiz 268 CHAPTER 11 Database Implementation 273 Cursor Processing 273
xv Transaction Management 276 What Is a Transaction? 276 DBMS Support for Transactions 276 Locking and Transaction Deadlock 278 Performance Tuning 283 Tuning Database Queries 284 Tuning DML Statements 286 Change Control 287 Quiz 288 CHAPTER 12 Databases for Online Analytical Processing 293 Data Warehouses 294 OLTP Systems Compared with Data Warehouse Systems 295 Data Warehouse Architecture 296 Data Marts 301 Data Mining 302 Quiz 303 Final Exam 307 Answers to Quizzes and Final Exam 325 Chapter 1 325 Chapter 2 325 Chapter 3 326 Chapter 4 326 Chapter 5 326 Chapter 6 326 Chapter 7 326 Chapter 8 327 Chapter 9 327 Chapter 10 327 Chapter 11 327 Chapter 12 327 Index 329