did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780201708721

Database Systems: An Application-Oriented Approach, Introductory Version

by ; ;
  • ISBN13:

    9780201708721

  • ISBN10:

    0201708728

  • Edition: 2nd
  • Format: Paperback
  • Copyright: 2005-01-01
  • Publisher: Addison Wesley
  • View Upgraded Edition
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $108.40

Summary

(Pearson Education) Textbook taking an application-oriented approach to database and transaction processing, with a running case study throughout the text. Covers Triggers and Active Databases, OLAP and Data Mining, TP Monitors and how they implement the ACID properties, and security and Internet commerce. DLC: Database management.

Table of Contents

Preface xxiii
PART One Introduction 1(52)
Overview of Databases and Transactions
3(12)
What Are Databases and Transactions?
3(2)
Features of Modern Database and Transaction Processing Systems
5(4)
Major Players in the Implementation and Support of Database and Transaction Processing Systems
9(1)
Decision Support Systems---OLAP and OLTP
10(2)
Exercises
12(3)
A Closer Look
15(14)
Case Study: A Student Registration System
15(1)
Introduction to Relational Databases
15(6)
What Makes a Program a Transaction?
21(5)
Bibliographic Notes
26(1)
Exercises
26(3)
Case Study: Starting the Student Registration System
29(24)
Software Engineering Methodology
29(2)
Requirements Document
31(7)
Requirements Analysis---New Issues
38(2)
Application Generators
40(1)
GULs and Objects
40(4)
Events and Procedures
44(2)
Accessing Databases and Executing Transactions
46(2)
Specifying the Student Registration System
48(1)
Specification Document
49(1)
Bibliographic Notes
50(1)
Exercises
50(3)
PART Two Database Management 53(424)
The Relational Data Model
55(34)
What Is a Data Model?
55(3)
The Relational Model
58(11)
Basic Concepts
59(3)
Integrity Constraints
62(7)
SQL---Data Definition Sublanguage
69(18)
Specifying the Relation Type
70(1)
The System Catalog
70(1)
Key Constraints
70(1)
Dealing with Missing Information
71(1)
Semantic Constraints
72(3)
User-Defined Domains
75(1)
Foreign Key Constraints
76(2)
Reactive Constraints
78(3)
Database Views
81(1)
Modifying Existing Definitions
82(2)
SQL-Schemas
84(1)
Access Control
85(2)
Bibliographic Notes
87(1)
Exercises
87(2)
Database Design I: The Entity-Relationship Model
89(34)
Conceptual Modeling with the E-R Approach
89(1)
Entities and Entity Types
90(4)
Relationships and Relationship Types
94(5)
Advanced Features of the E-R Approach
99(7)
Entity Type Hierarchies
99(4)
Participation Constraints
103(3)
A Brokerage Firm Example
106(4)
Limitations of the E-R Approach
110(4)
Case Study: A Design for the Student Registration System
114(5)
Bibliographic Notes
119(1)
Exercises
119(4)
Query Languages I: Relational Algebra and SQL
123(54)
Relational Algebra: Under the Hood of SQL
124(16)
Basic Operators
124(9)
Derived Operators
133(7)
The Query Sublanguage of SQL
140(27)
Simple SQL Queries
140(6)
Set Operations
146(3)
Nested Queries
149(5)
Aggregation over Data
154(5)
A Simple Query Evaluation Algorithm
159(2)
More on Views in SQL
161(5)
The Null Value Quandary
166(1)
Modifying Relation Instances in SQL
167(5)
Bibliographic Notes
172(1)
Exercises
172(5)
Query Languages II: Relational Calculus and Visual Query Languages
177(34)
Tuple Relational Calculus
177(9)
Understanding SQL through Tuple Relational Calculus
186(3)
Domain Relational Calculus and Visual Query Languages
189(4)
Visual Query Languages: QBE and PC Databases
193(7)
The Relationship between Relational Algebra and the Calculi
200(2)
Recursive Queries in SQL: 1999
202(6)
Bibliographic Notes
208(1)
Exercises
208(3)
Database Design II: Relational Normalization Theory
211(50)
The Problem of Redundancy
211(2)
Decompositions
213(2)
Functional Dependencies
215(2)
Properties of Functional Dependencies
217(5)
Normal Forms
222(3)
Properties of Decompositions
225(7)
Lossless and Lossy Decompositions
226(2)
Dependency-Preserving Decompositions
228(4)
An Algorithm for BCNF Decomposition
232(2)
Synthesis of 3NF Schemas
234(7)
Minimal Cover
234(3)
3NF Decomposition through Schema Synthesis
237(1)
BCNF Decomposition through 3NF Synthesis
238(3)
The Fourth Normal Form
241(4)
Advanced 4NF Design*
245(6)
MVDs and Their Properties
245(1)
The Difficulty of Designing for 4NF
246(3)
A 4NF Decomposition How-To
249(2)
Summary of Normal Form Decomposition
251(1)
Case Study: Schema Refinement for the Student Registration System
252(2)
Tuning Issues: To Decompose or Not to Decompose?
254(2)
Bibliographic Notes
256(1)
Exercises
256(5)
Triggers and Active Databases
261(14)
Semantic Issues in Trigger Handling
261(3)
Triggers in SQL:1999
264(7)
Avoiding a Chain Reaction
271(1)
Bibliographic Notes
272(1)
Exercises
273(2)
SQL in the Real World
275(50)
Executing SQL Statements within an Application Program
275(1)
Embedded SQL
276(17)
Status Processing
279(2)
Sessions, Connections, and Transactions
281(1)
Executing Transactions
282(2)
Cursors
284(4)
Stored Procedures on the Server
288(5)
More on Integrity Constraints
293(1)
Dynamic SQL
294(7)
Statement Preparation in Dynamic SQL
295(2)
Prepared Statements and the Descriptor Area
297(2)
Cursors
299(2)
Stored Procedures on the Server
301(1)
JDBC and SQLJ
301(12)
JDBC Basics
301(3)
Prepared Statements
304(1)
Result Sets and Cursors
305(2)
Obtaining Information about a Result Set
307(1)
Status Processing
308(1)
Executing Transactions
308(1)
Stored Procedures on the Server
309(2)
An Example
311(1)
SQLJ: Statement-Level Interface to Java
311(2)
ODBC*
313(6)
Prepared Statements
315(1)
Cursors
316(2)
Status Processing
318(1)
Executing Transactions
318(1)
Stored Procedures on the Server
319(1)
An Example
319(1)
Comparison
319(3)
Bibliographic Notes
322(1)
Exercises
322(3)
Physical Data Organization and Indexing
325(52)
Disk Organization
325(5)
Heap Files
330(4)
Sorted Files
334(2)
Indices
336(11)
Clustered versus Unclustered Indices
341(2)
Sparse versus Dense Indices
343(2)
Search Keys Containing Multiple Attributes
345(2)
Multilevel Indexing
347(12)
Index-Sequential Access
350(2)
B+Trees
352(7)
Hash Indexing
359(11)
Static Hashing
359(3)
Dynamic Hashing Algorithms
362(8)
Special-Purpose Indices
370(2)
Bitmap Indices
370(1)
Join Indices
371(1)
Tuning Issues: Choosing Indices for an Application
372(1)
Bibliographic Notes
373(1)
Exercises
373(4)
Case Study: Completing the Student Registration System
377(24)
The Design Document
377(5)
The Document Structure
378(3)
Design Review
381(1)
Test Plan
382(3)
Project Planning
385(2)
Coding
387(2)
Incremental Development
389(1)
Design and Code for the Student Registration System
390(8)
Completing the Database Design: Integrity Constraints
391(1)
Design of the Registration Transaction
392(3)
Partial Code for the Registration Transaction
395(3)
Bibliographic Notes
398(1)
Exercises
398(3)
The Basics of Query Processing
401(24)
External Sorting
401(4)
Computing Projection, Union, and Set Difference
405(2)
Computing Selection
407(6)
Selections with Simple Conditions
408(1)
Access Paths
409(2)
Selections with Complex Conditions
411(2)
Computing Joins
413(5)
Computing Joins Using Nested Loops
413(3)
Sort-Merge Join
416(1)
Hash Join
417(1)
Multi-Relational Joins
418(2)
Computing Aggregate Functions
420(1)
Tuning Issues: Impact on Physical Database Design
420(1)
Bibliographic Notes
421(1)
Exercises
422(3)
An Overview of Query Optimization
425(26)
Overview of Query Processing
425(1)
Heuristic Optimization Based on Algebraic Equivalences
426(4)
Estimating the Cost of a Query Execution Plan
430(7)
Estimating the Size of the Output
437(2)
Choosing a Plan
439(4)
Tuning Issues: Impact on Query Design
443(3)
Bibliographic Notes
446(1)
Exercises
446(5)
An Overview of Transaction Processing
451(26)
Isolation
451(14)
Serializability
452(2)
Two-Phase Locking
454(3)
Deadlock
457(1)
Locking in Relational Databases
458(1)
Isolation Levels
459(3)
Lock Granularity and Intention Locks
462(2)
A Serializable Locking Strategy Using Intention Locks
464(1)
Summary
465(1)
Atomicity and Durability
465(4)
The Write-Ahead Log
465(3)
Recovery from Mass Storage Failure
468(1)
Implementing Distributed Transactions
469(5)
Atomicity and Durability---The Two-Phase Commit Protocol
470(1)
Global Serializability and Deadlock
471(1)
Replication
472(2)
Summary
474(1)
Bibliographic Notes
474(1)
Exercises
475(2)
PART Three Advanced Topics in Databases 477(190)
Object Databases
479(58)
Shortcomings of the Relational Data Model
479(6)
Object Databases versus Relational Databases
484(1)
Historical Developments
485(3)
The Conceptual Object Data Model
488(6)
Objects and Values
488(1)
Classes
489(1)
Types
490(3)
Object-Relational Databases
493(1)
The ODMG Standard
494(18)
ODL---The ODMG Object Definition Language
497(6)
OQL---The ODMG Object Query Language
503(4)
Transactions in ODMG
507(1)
Object Manipulation in ODMG
508(1)
Language Bindings
508(4)
Objects in SQL:1999
512(10)
Row Types
513(1)
User-Defined Types
514(1)
Objects
515(1)
Querying User-Defined Types
516(1)
Updating User-Defined Types
517(2)
Reference Types
519(2)
Collection Types
521(1)
Common Object Request Broker Architecture
522(11)
CORBA Basics
523(5)
CORBA and Databases
528(5)
Summary
533(1)
Bibliographic Notes
533(1)
Exercises
534(3)
XML and Web Data
537(86)
Semistructured Data
537(3)
Overview of XML
540(15)
XML Elements and Database Objects
543(1)
XML Attributes
544(4)
Namespaces
548(3)
Document Type Definitions
551(3)
Inadequacy of DTDs as a Data Definition Language
554(1)
XML Schema
555(25)
XML Schema and Namespaces
556(3)
Simple Types
559(5)
Complex Types
564(7)
Putting It Together
571(1)
Integrity Constraints
572(8)
XML Query Languages
580(37)
XPath: A Lightweight XML Query Language
581(7)
XSLT: A Transformation Language for XML*
588(11)
XQuery: A Full-Featured Query Language for XML
599(18)
Summary
617(1)
Bibliographic Notes
617(1)
Exercises
618(5)
Distributed Databases
623(20)
The Application Designer's View of the Database
624(3)
Distributing Data among Different Databases
627(5)
Fragmentation
627(3)
Updates and Fragmentation
630(1)
Replication
630(2)
Query Planning Strategies
632(8)
Global Query Optimization
633(5)
Strategies for a Multidatabase System
638(1)
Tuning Issues: Database Design and Query Planning in a Distributed Environment
639(1)
Bibliographic Notes
640(1)
Exercises
641(2)
OLAP and Data Mining
643(24)
OLAP and Data Warehouses---Old and New
643(2)
A Multi-Dimensional Model for OLAP Applications
645(3)
Aggregation
648(9)
Drilling, Slicing, Rolling, Dicing
649(3)
The CUBE Operator
652(5)
ROLAP and MOLAP
657(1)
Implementation Issues
658(1)
Data Mining
658(5)
Populating a Data Warehouses
663(1)
Bibliographic Notes
664(1)
Exercises
665(2)
PART Four Transaction Processing 667(284)
ACID Properties of Transactions
669(14)
Consistency
670(2)
Checking Integrity Constraints
671(1)
Atomicity
672(2)
Durability
674(1)
Isolation
675(3)
The ACID Properties
678(2)
Bibliographic Notes
680(1)
Exercises
680(3)
Models of Transactions
683(34)
Flat Transactions
683(2)
Providing Structure within a Transaction
685(13)
Savepoints
685(2)
Distributed Transactions
687(4)
Nested Transactions
691(3)
Multilevel Transactions*
694(4)
Structuring an Application into Multiple Transactions
698(15)
Chained Transactions
698(4)
Transaction Scheduling with Recoverable Queues
702(4)
Extended Transactions
706(3)
Workflows and Workflow Management Systems
709(4)
Bibliographic Notes
713(1)
Exercises
714(3)
Architecture of Transaction Processing Systems
717(44)
Transaction Processing in a Centralized System
717(3)
Organization of a Single-User System
717(2)
Organization of a Centralized Multiuser System
719(1)
Transaction Processing in a Distributed System
720(11)
Organization of a Distributed System
721(7)
Sessions and Context
728(2)
Queued Transaction Processing
730(1)
Heterogeneous Systems and the TP Monitor
731(6)
The Transaction Manager
732(2)
The TP Monitor
734(3)
The TP Monitor: Communication and Global Atomicity
737(15)
Remote Procedure Call
738(8)
Peer-to-Peer Communication
746(2)
Handling Exceptional Situations within a Transaction
748(4)
Transaction Processing on the Internet
752(5)
Common Architectures
753(1)
Organization of Transaction Systems on the Internet
754(3)
Bibliographic Notes
757(1)
Exercises
757(4)
Implementing Isolation
761(48)
Schedules and Their Equivalence
763(9)
Serializability
767(2)
Conflict Equivalence and View Equivalence
769(1)
Serialization Graphs
770(2)
Recoverability, Cascaded Aborts, and Strictness
772(2)
Models for Concurrency Control
774(2)
A Strategy for Immediate-Update Pessimistic Concurrency Controls
776(4)
Conflict Avoidance
776(3)
Deadlocks
779(1)
Design of an Immediate-Update Pessimistic Concurrency Control
780(4)
An Implementation Using Lock Sets and Wait Sets
780(2)
Two-Phase Locking
782(1)
Lock Granularity
783(1)
Objects and Semantic Commutativity*
784(6)
Atomicity, Recoverability, and Compensating Operations
788(2)
Isolation in Structured Transaction Models
790(7)
Savepoints
790(1)
Chained Transactions
791(1)
Recoverable Queues
791(1)
Nested Transactions
792(1)
Multilevel Transactions*
793(4)
Other Concurrency Controls
797(6)
Timestamp-Ordered Concurrency Controls
797(3)
Optimistic Concurrency Control
800(3)
Bibliographic Notes
803(1)
Exercises
803(6)
Isolation in Relational Databases
809(48)
Locking
809(5)
Phantoms
810(1)
Predicate Locking
811(3)
Locking and the SQL Isolation Levels
814(16)
Lost Updates, Cursor Stability, and Update Locks
820(2)
Case Study: Correctness and NonSERIALIZABLE Schedules---The Student Registration System
822(7)
Serializable, SERIALIZABLE, and Correct
829(1)
Granular Locking: Intention Locks and Index Locks
830(9)
Index Locks: Granular Locking without Phantoms
832(6)
Granular Locking in an Object Database*
838(1)
Improving System Performance
839(1)
Multiversion Concurrency Controls
840(10)
Read-Only Multiversion Concurrency Controls
842(1)
Read-Consistency Multiversion Concurrency Controls
843(1)
SNAPSHOT Isolation
844(6)
Bibliographic Notes
850(1)
Exercises
850(7)
Atomicity and Durability
857(24)
Crash, Abort, and Media Failure
857(2)
Immediate-Update Systems and Write-Ahead Logs
859(14)
Performance and Write-Ahead Logging
863(3)
Checkpoints and Recovery
866(5)
Logical and Physiological Logging*
871(2)
Recovery in Deferred-Update Systems
873(1)
Recovery from Media Failure
874(3)
Bibliographic Notes
877(1)
Exercises
878(3)
Implementing Distributed Transactions
881(34)
Implementing the ACID Properties
881(2)
Atomic Termination
883(10)
The Two-Phase Commit Protocol
884(4)
Dealing with Failures in the Two-Phase Commit Protocol
888(4)
Formats and Protocols: The X / Open Standard
892(1)
The Peer-to-Peer Atomic Commit Protocol
893(1)
Transfer of Coordination
893(2)
The Linear Commit Protocol
894(1)
Two-Phase Commit without a Prepared State
895(1)
Distributed Deadlock
895(1)
Global Serialization
896(2)
When Global Atomicity Cannot Be Guaranteed
898(2)
Weaker Commit Protocols
899(1)
Replicated Databases
900(9)
Synchronous-Update Replication Systems
902(3)
Asynchronous-Update Replication Systems
905(4)
Distributed Transactions in the Real World
909(1)
Bibliographic Notes
910(1)
Exercises
910(5)
Security and Internet Commerce
915(36)
Authentication, Authorization, and Encryption
915(1)
Encryption
916(3)
Digital Signatures
919(2)
Key Distribution and Authentication
921(6)
The Kerberos Protocol: Tickets
923(3)
Nonces
926(1)
Authorization
927(2)
Authenticated Remote Procedure Call
929(1)
Internet Commerce
930(17)
The Secure Sockets Layer Protocol: Certificates
931(2)
The Secure Electronic Transaction Protocol: Dual Signatures
933(4)
Goods Atomicity, Escrow, and Certified Delivery
937(4)
Electronic Cash: Blind Signatures
941(6)
Bibliographic Notes
947(1)
Exercises
947(4)
Appendix System Issues 951(12)
A.1 Basic System Issues
951(4)
A.1.1 Modules and Objects
951(3)
A.1.2 Clients and Servers
954(1)
A.2 Multiprogrammed Operating Systems
955(3)
A.3 Threads
958(1)
A.4 Communication
959(4)
References 963(16)
Index 979

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program