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.

9780130353009

First Course in Database Systems, A

by ;
  • ISBN13:

    9780130353009

  • ISBN10:

    0130353000

  • Edition: 2nd
  • Format: Hardcover
  • Copyright: 2008-01-01
  • Publisher: Prentice Hall
  • 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: $102.00

Summary

Written by well-known computer scientists, this accessible and succinct introduction to database systems focuses on database design and use. Provides a more extensive treatment of query processing than other books on the market.The authors provide in-depth coverage of databases from the point of view of the database designer, user, and application programmer. It covers the latest database standards: SQL: 1999, SQL/PSM, SQL/CLI, JDBC, ODL, and XML, with broader coverage of SQL than most other books. Now includes coverage of the technologies used to connect database programming with C or Java code-SWL/PSM, SQL/CLI, and JDBC.For database systems and database design and application professionals.

Table of Contents

The Worlds of Database Systems
1(22)
The Evolution of Database Systems
2(7)
Early Database Management Systems
2(2)
Relational Database Systems
4(1)
Smaller and Smaller Systems
5(1)
Bigger and Bigger Systems
6(1)
Client-Server and Multi-Tier Architectures
7(1)
Multimedia Data
8(1)
Information Integration
8(1)
Overview of a Database Management System
9(6)
Data-Definition Language Commands
10(1)
Overview of Query Processing
10(2)
Storage and Buffer Management
12(1)
Transaction Processing
13(1)
The Query Processor
14(1)
Outline of Database-System Studies
15(4)
Database Design
16(1)
Database Programming
17(1)
Database System Implementation
17(2)
Information Integration Overview
19(1)
Summary of Chapter 1
19(1)
References for Chapter 1
20(3)
The Entity-Relationship Data Model
23(38)
Elements of the E/R Model
24(15)
Entity Sets
24(1)
Attributes
25(1)
Relationships
25(1)
Entity-Relationship Diagrams
25(2)
Instances of an E/R Diagram
27(1)
Multiplicity of Binary E/R Relationships
27(1)
Multiway Relationships
28(1)
Roles in Relationships
29(2)
Attributes on Relationships
31(1)
Converting Multiway Relationships to Binary
32(1)
Subclasses in the E/R Model
33(3)
Exercises for Section 2.1
36(3)
Design Principles
39(8)
Faithfulness
39(1)
Avoiding Redundancy
39(1)
Simplicity Counts
40(1)
Choosing the Right Relationships
40(2)
Picking the Right Kind of Element
42(2)
Exercises for Section 2.2
44(3)
The Modeling of Constraints
47(7)
Classification of Constraints
47(1)
Keys in the E/R Model
48(2)
Representing Keys in the E/R Model
50(1)
Single-Value Constraints
51(1)
Referential Integrity
51(1)
Referential Integrity in E/R Diagrams
52(1)
Other Kinds of Constraints
53(1)
Exercises for Section 2.3
53(1)
Weak Entity Sets
54(5)
Causes of Weak Entity Sets
54(2)
Requirements for Weak Entity Sets
56(1)
Weak Entity Set Notation
57(1)
Exercises for Section 2.4
58(1)
Summary of Chapter 2
59(1)
References for Chapter 2
60(1)
The Relational Data Model
61(70)
Basics of the Relational Model
61(4)
Attributes
62(1)
Schemas
62(1)
Tuples
62(1)
Domains
63(1)
Equivalent Representations of a Relation
63(1)
Relation Instances
64(1)
Exercises for Section 3.1
64(1)
From E/R Diagrams to Relational Designs
65(11)
From Entity Sets to Relations
66(1)
From E/R Relationships to Relations
67(3)
Combining Relations
70(1)
Handling Weak Entity Sets
71(4)
Exercises for Section 3.2
75(1)
Converting Subclass Structures to Relations
76(6)
E/R-Style Conversion
77(1)
An Object-Oriented Approach
78(1)
Using Null Values to Combine Relations
79(1)
Comparison of Approaches
79(1)
Exercises for Section 3.3
80(2)
Functional Dependencies
82(8)
Definition of Functional Dependency
83(1)
Keys of Relations
84(2)
Superkeys
86(1)
Discovering Keys for Relations
87(1)
Exercises for Section 3.4
88(2)
Rules About Functional Dependencies
90(12)
The Splitting/Combining Rule
90(2)
Trivial Functional Dependencies
92(1)
Computing the Closure of Attributes
92(3)
Why the Closure Algorithm Works
95(1)
The Transitive Rule
96(2)
Closing Sets of Functional Dependencies
98(1)
Projecting Functional Dependencies
98(2)
Exercises for Section 3.5
100(2)
Design of Relational Database Schemas
102(16)
Anomalies
103(1)
Decomposing Relations
103(2)
Boyce-Codd Normal Form
105(2)
Decomposition into BCNF
107(5)
Recovering Information from a Decomposition
112(2)
Third Normal Form
114(3)
Exercises for Section 3.6
117(1)
Multivalued Dependencies
118(9)
Attribute Independence and Its Consequent Redundancy
118(1)
Definition of Multivalued Dependencies
119(1)
Reasoning About Multivalued Dependencies
120(2)
Fourth Normal Form
122(1)
Decomposition into Fourth Normal Form
123(1)
Relationships Among Normal Forms
124(2)
Exercises for Section 3.7
126(1)
Summary of Chapter 3
127(2)
References for Chapter 3
129(2)
Other Data Models
131(58)
Review of Object-Oriented Concepts
132(3)
The Type System
132(1)
Classes and Objects
133(1)
Object Identity
133(1)
Methods
133(1)
Class Hierarchies
134(1)
Introduction to ODL
135(12)
Object-Oriented Design
135(1)
Class Declarations
136(1)
Attributes in ODL
136(2)
Relationships in ODL
138(1)
Inverse Relationships
139(1)
Multiplicity of Relationships
140(1)
Methods in ODL
141(3)
Types in ODL
144(2)
Exercises for Section 4.2
146(1)
Additional ODL Concepts
147(8)
Multiway Relationships in ODL
148(1)
Subclasses in ODL
149(1)
Multiple Inheritance in ODL
150(1)
Extents
151(1)
Declaring Keys in ODL
152(3)
Exercises for Section 4.3
155(1)
From ODL Designs to Relational Designs
155(11)
From ODL Attributes to Relational Attributes
156(1)
Nonatomic Attributes in Classes
157(1)
Representing Set-Valued Attributes
158(2)
Representing Other Type Constructors
160(2)
Representing ODL Relationships
162(2)
What If There Is No Key?
164(1)
Exercises for Section 4.4
164(2)
The Object-Relational Model
166(7)
From Relations to Object-Relations
166(1)
Nested Relations
167(2)
References
169(1)
Object-Oriented Versus Object-Relational
170(2)
From ODL Designs to Object-Relational Designs
172(1)
Exercises for Section 4.5
172(1)
Semistructured Data
173(5)
Motivation for the Semistructured-Data Model
173(1)
Semistructured Data Representation
174(1)
Information Integration Via Semistructured Data
175(2)
Exercises for Section 4.6
177(1)
XML and Its Data Model
178(8)
Semantic Tags
178(1)
Well-Formed XML
179(1)
Document Type Definitions
180(2)
Using a DTD
182(1)
Attribute Lists
183(2)
Exercises for Section 4.7
185(1)
Summary of Chapter 4
186(1)
References for Chapter 4
187(2)
Relational Algebra
189(50)
An Example Database Schema
190(1)
An Algebra of Relational Operations
191(23)
Basics of Relational Algebra
192(1)
Set Operations on Relations
193(2)
Projection
195(1)
Selection
196(1)
Cartesian Product
197(1)
Natural Joins
198(1)
Theta-Joins
199(2)
Combining Operations to Form Queries
201(2)
Renaming
203(2)
Dependent and Independent Operations
205(1)
A Linear Notation for Algebraic Expressions
206(1)
Exercises for Section 5.2
207(7)
Relational Operations on Bags
214(7)
Why Bags?
214(1)
Union, Intersection, and Difference of Bags
215(1)
Projection of Bags
216(1)
Selection on Bags
217(1)
Product of Bags
218(1)
Joins of Bags
219(1)
Exercises for Section 5.3
220(1)
Extended Operators of Relational Algebra
221(10)
Duplicate Elimination
222(1)
Aggregation Operators
222(1)
Grouping
223(1)
The Grouping Operator
224(2)
Extending the Projection Operator
226(1)
The Sorting Operator
227(1)
Outerjoins
228(2)
Exercises for Section 5.4
230(1)
Constraints on Relations
231(5)
Relational Algebra as a Constraint Language
231(1)
Referential Integrity Constraints
232(1)
Additional Constraint Examples
233(2)
Exercises for Section 5.5
235(1)
Summary of Chapter 5
236(1)
References for Chapter 5
237(2)
The Database Language SQL
239(76)
Simple Queries in SQL
240(14)
Projection in SQL
242(1)
Selection in SQL
243(2)
Comparison of Strings
245(2)
Dates and Times
247(1)
Null Values and Comparisons Involving NULL
248(1)
The Truth-Value UNKNOWN
249(2)
Ordering the Output
251(1)
Exercises for Section 6.1
252(2)
Queries Involving More Than One Relation
254(10)
Products and Joins in SQL
254(1)
Disambiguating Attributes
255(1)
Tuple Variables
256(2)
Interpreting Multirelation Queries
258(2)
Union, Intersection, and Difference of Queries
260(2)
Exercises for Section 6.2
262(2)
Subqueries
264(13)
Subqueries that Produce Scalar Values
264(2)
Conditions Involving Relations
266(1)
Conditions Involving Tuples
266(2)
Correlated Subqueries
268(2)
Subqueries in FROM Clauses
270(1)
SQL Join Expressions
270(2)
Natural Joins
272(1)
Outerjoins
272(2)
Exercises for Section 6.3
274(3)
Full-Relation Operations
277(9)
Eliminating Duplicates
277(1)
Duplicates in Unions, Intersections, and Differences
278(1)
Grouping and Aggregation in SQL
279(1)
Aggregation Operators
279(1)
Grouping
280(2)
HAVING Clauses
282(2)
Exercises for Section 6.4
284(2)
Database Modifications
286(6)
Insertion
286(2)
Deletion
288(1)
Updates
289(1)
Exercises for Section 6.5
290(2)
Defining a Relation Schema in SQL
292(9)
Data Types
292(1)
Simple Table Declarations
293(1)
Modifying Relation Schemas
294(1)
Default Values
295(1)
Indexes
295(2)
Introduction to Selection of Indexes
297(3)
Exercises for Section 6.6
300(1)
View Definitions
301(11)
Declaring Views
302(1)
Querying Views
302(2)
Renaming Attributes
304(1)
Modifying Views
305(3)
Interpreting Queries Involving Views
308(2)
Exercises for Section 6.7
310(2)
Summary of Chapter 6
312(1)
References for Chapter 6
313(2)
Constraints and Triggers
315(34)
Keys and Foreign Keys
316(11)
Declaring Primary Keys
316(1)
Keys Declared With UNIQUE
317(1)
Enforcing Key Constraints
318(1)
Declaring Foreign-Key Constraints
319(2)
Maintaining Referential Integrity
321(2)
Deferring the Checking of Constraints
323(3)
Exercises for Section 7.1
326(1)
Constraints on Attributes and Tuples
327(6)
Not-Null Constraints
328(1)
Attribute-Based CHECK Constraints
328(2)
Tuple-Based CHECK Constraints
330(1)
Exercises for Section 7.2
331(2)
Modification of Constraints
333(3)
Giving Names to Constraints
334(1)
Altering Constraints on Tables
334(1)
Exercises for Section 7.3
335(1)
Schema-Level Constraints and Triggers
336(11)
Assertions
337(3)
Event-Condition-Action Rules
340(1)
Triggers in SQL
340(4)
Instead-Of Triggers
344(1)
Exercises for Section 7.4
345(2)
Summary of Chapter 7
347(1)
References for Chapter 7
348(1)
System Aspects of SQL
349(76)
SQL in a Programming Environment
349(16)
The Impedance Mismatch Problem
350(2)
The SQL/Host Language Interface
352(1)
The DECLARE Section
352(1)
Using Shared Variables
353(1)
Single-Row Select Statements
354(1)
Cursors
355(3)
Modifications by Cursor
358(2)
Protecting Against Concurrent Updates
360(1)
Scrolling Cursors
361(1)
Dynamic SQL
361(2)
Exercises for Section 8.1
363(2)
Procedures Stored in the Schema
365(14)
Creating PSM Functions and Procedures
365(1)
Some Simple Statement Forms in PSM
366(2)
Branching Statements
368(1)
Queries in PSM
369(1)
Loops in PSM
370(2)
For-Loops
372(2)
Exceptions in PSM
374(2)
Using PSM Functions and Procedures
376(1)
Exercises for Section 8.2
377(2)
The SQL Environment
379(6)
Environments
379(1)
Schemas
380(1)
Catalogs
381(1)
Clients and Servers in the SQL Environment
382(1)
Connections
382(2)
Sessions
384(1)
Modules
384(1)
Using a Call-Level Interface
385(8)
Introduction to SQL/CLI
385(3)
Processing Statements
388(1)
Fetching Data From a Query Result
389(3)
Passing Parameters to Queries
392(1)
Exercises for Section 8.4
393(1)
Java Database Connectivity
393(4)
Introduction to JDBC
393(1)
Creating Statements in JDBC
394(2)
Cursor Operations in JDBC
396(1)
Parameter Passing
396(1)
Exercises for Section 8.5
397(1)
Transactions in SQL
397(13)
Serializability
397(2)
Atomicity
399(2)
Transactions
401(2)
Read-Only Transactions
403(2)
Dirty Reads
405(2)
Other Isolation Levels
407(2)
Exercises for Section 8.6
409(1)
Security and User Authorization in SQL
410(12)
Privileges
410(2)
Creating Privileges
412(1)
The Privilege-Checking Process
413(1)
Granting Privileges
414(2)
Grant Diagrams
416(1)
Revoking Privileges
417(4)
Exercises for Section 8.7
421(1)
Summary of Chapter 8
422(2)
References for Chapter 8
424(1)
Object-Orientation in Query Languages
425(38)
Introduction to OQL
425(11)
An Object-Oriented Movie Example
426(1)
Path Expressions
426(2)
Select-From-Where Expressions in OQL
428(1)
Modifying the Type of the Result
429(2)
Complex Output Types
431(1)
Subqueries
431(2)
Exercises for Section 9.1
433(3)
Additional Forms of OQL Expressions
436(7)
Quantifier Expressions
437(1)
Aggregation Expressions
437(1)
Group-By Expressions
438(3)
HAVING Clauses
441(1)
Union, Intersection, and Difference
442(1)
Exercises for Section 9.2
442(1)
Object Assignment and Creation in OQL
443(6)
Assigning Values to Host-Language Variables
444(1)
Extracting Elements of Collections
444(1)
Obtaining Each Member of a Collection
445(1)
Constants in OQL
446(1)
Creating New Objects
447(1)
Exercises for Section 9.3
448(1)
User-Defined Types in SQL
449(6)
Defining Types in SQL
449(2)
Methods in User-Defined Types
451(1)
Declaring Relations with a UDT
452(1)
References
452(2)
Exercises for Section 9.4
454(1)
Operations on Object-Relational Data
455(6)
Following References
455(1)
Accessing Attributes of Tuples with a UDT
456(1)
Generator and Mutator Functions
457(1)
Ordering Relationships on UDT's
458(2)
Exercises for Section 9.5
460(1)
Summary of Chapter 9
461(1)
References for Chapter 9
462(1)
Logical Query Languages
463(40)
A Logic for Relations
463(8)
Predicates and Atoms
463(1)
Arithmetic Atoms
464(1)
Datalog Rules and Queries
465(1)
Meaning of Datalog Rules
466(3)
Extensional and Intensional Predicates
469(1)
Datalog Rules Applied to Bags
469(2)
Exercises for Section 10.1
471(1)
From Relational Algebra to Datalog
471(9)
Intersection
471(1)
Union
472(1)
Difference
472(1)
Projection
473(1)
Selection
473(3)
Product
476(1)
Joins
476(1)
Simulating Multiple Operations with Datalog
477(2)
Exercises for Section 10.2
479(1)
Recursive Programming in Datalog
480(12)
Recursive Rules
481(1)
Evaluating Recursive Datalog Rules
481(5)
Negation in Recursive Rules
486(4)
Exercises for Section 10.3
490(2)
Recursion in SQL
492(8)
Defining IDB Relations in SQL
492(2)
Stratified Negation
494(2)
Problematic Expressions in Recursive SQL
496(3)
Exercises for Section 10.4
499(1)
Summary of Chapter 10
500(1)
References for Chapter 10
501(2)
Index 503

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