Buy Used
Buy Used from BN.com
$77.64
Used and New from Other Sellers
Used and New from Other Sellers
from $7.98
Usually ships in 1-2 business days
(Save 93%)
Other sellers (Hardcover)
-
All (20)
from
$7.98
-
New (4)
from
$38.98
-
Used (16)
from
$7.98
Note: Marketplace items are not eligible for any BN.com coupons and promotions
$38.98
Seller since Thu Jan 01 01:01:01 EST 2009
Hardcover New 0130319953 NEW: Packaged Carefully & Shipped Promptly. 100% Satisfaction Guaranteed!
Ships from: Berkeley, CA
Usually ships in 1-2 business days
- •Canadian
- •International
- •Standard, 48 States
- •Standard (AK, HI)
- •Express, 48 States
- •Express (AK, HI)
$95.49
Seller since Tue Oct 07 09:35:53 EDT 2014
Brand New Item.
Ships from: Chatham, NJ
Usually ships in 1-2 business days
- •Canadian
- •International
- •Standard, 48 States
- •Standard (AK, HI)
- •Express, 48 States
- •Express (AK, HI)
$145.00
Seller since Tue Oct 07 09:37:03 EDT 2014
Brand new.
Ships from: acton, MA
Usually ships in 1-2 business days
- •Standard, 48 States
- •Standard (AK, HI)
$145.00
Seller since Tue Oct 07 09:37:03 EDT 2014
Brand new.
Ships from: acton, MA
Usually ships in 1-2 business days
- •Standard, 48 States
- •Standard (AK, HI)
More About This Textbook
Overview
Product Details
Related Subjects
Meet the Author
Hector Garcia-Molina is the L. Bosack and S. Lerner Professor of Computer Science and Electrical Engineering at Stanford University. His research interests include digital libraries, information integration, and database applications on the Internet. He was a recipient of the SIGMOD Innovations Award and a member of PITAC (President's Information-Technology Advisory Council). He currently serves on the Board of Directors of Oracle Corp.
Jeffrey D. Ullman is the Stanford W. Ascherman Professor of Computer Science (emeritus) at Stanford University. He is the author or co-author of 16 books, including Elements of ML Programming (Prentice Hall 1998). His research interests include data mining, information integration, and electronic education. He is a member of the National Academy of Engineering, and recipient of a Guggenheim Fellowship, the Karl V. Karlstom Outstanding Educator Award, the SIGMOD Contributions and Edgar F. Codd Innovations Awards, and the Knuth Prize.
Jennifer Widom is Professor of Computer Science and Electrical Engineering at Stanford University. Her research interests span many aspects of nontraditional data management. She is an ACM Fellow and a member of the National Academy of Engineering, she received the ACM SIGMOD Edgar F. Codd Innovations award in 2007 and was a Guggenheim Fellow in 2000, and she has served on a variety of program committees, advisory boards, and editorial boards.
Read an Excerpt
At Stanford, we are on the quarter system, and as a result, our introductory database instruction is divided into two courses. The first, CS145, is designed for students who will use database systems but not necessarily take a job implementing a DBMS. It is a prerequisite for CS245, which is the introduction to DBMS implementation. Students wishing to go further in the database field then take CS345 (theory), CS346 (DBMS implementation project), and CS347 (transaction processing and distributed databases).
Starting in 1997, we published a pair of books. <I>A First Course in Database Systems</I> was designed for CS145, and <I>Database System Implementation</I> was for CS245 and parts of CS346. Because many schools are on the semester system or combine the two kinds of database instruction into one introductory course, we felt that there was a need to produce the two books as a single volume. At the same time, the evolution of database systems has made a number of new topics imperative for a modern course. Thus, we have added, mostly to the application-programming area, topics such as object-relational data, SQL/PSM (stored programs), SQL/CLI (the emerging standard for the C/SQL interface), and JDBC (the same for Java/SQL).
Use of the Book
We recommend that two quarters be devoted to the material in this book. If you follow the Stanford approach, you would cover the first ten chapters in the first quarter and the last ten in the second quarter. Should you wish to cover the material in a single semester, then there will have to be some omitted portions. In general, we suggest that Chapters 2-7, 11-13, and 17-18 should be givenhighest priority, but there are pieces from each of these chapters that can be skipped.
If, as we do in CS145, you give students a substantial database-application design and implementation project, then you may have to reorder the material somewhat, so that SQL instruction occurs earlier in the Book. You may wish to defer material such as dependencies, although students need normalization for design.
Prerequisites
We have used the book at the "mezzanine" level, in courses taken both by undergraduates and beginning graduate students. The formal prerequisites for the courses are Sophomore-level treatments of: (1) Data structures, algorithms, and discrete math, and (2) Software systems, software engineering, and programming languages. Of this material, it is important that students have at least a rudimentary understanding of such topics as: algebraic expressions and laws, logic, basic data structures such as search trees and graphs, object-oriented programming concepts, and programming environments. However, we believe that adequate background is surely acquired by the end of the Junior year in a. typical computer science program.
Exercises
The book contains extensive exercises, with some for almost every section. We indicate harder exercises or parts of exercises with an exclamation point. The hardest exercises have a double exclamation point.
Some of the exercises or parts are marked with a star. For these exercises, we shall endeavor to maintain solutions accessible through the book's web page. These solutions are publicly available and should be used for self-testing. Note that in a few cases, one exercise B asks for modification or adaptation of your solution to another exercise A. If certain parts of A have solutions, then you should expect the corresponding parts of B to have solutions as well.
Support on the World Wide Web
Here are solutions to starred exercises, errata as we learn of them, and backup materials. We are making available the notes for each offering of CS145 and CS245 as we teach them, including homeworks, projects and exams.
Table of Contents
1 The worlds of database systems 1
I Relational database modeling 15
2 The relational model of data 17
3 Design theory for relational databases 67
4 High-level database models 125
II Relational database programming 203
5 Algebraic and logical query languages 205
6 The database language SQL 243
7 Constrains and triggers 311
8 Views and indexes 341
9 SQL in a server environment 369
10 Advanced topics in relational databases 425
III Modeling and programming for semistructured data 481
11 The Semistructured-data model 483
12 Programming languages for XML 517
IV Database system implementation 555
13 Secondary storage management 557
14 Index structures 619
15 Query execution 701
16 The query compiler 759
17 Coping with system failures 843
18 Concurrency control 883
19 More about transaction management 953
20 Parallel and distributed databases 985
V Other issues in management of massive data 1035
21 Information integration 1037
22 Data mining 1093
23 Database systems and the internet 1141
Index 1183
Preface
Starting in 1997, we published a pair of books. <I>A First Course in Database Systems</I> was designed for CS145, and <I>Database System Implementation</I> was for CS245 and parts of CS346. Because many schools are on the semester system or combine the two kinds of database instruction into one introductory course, we felt that there was a need to produce the two books as a single volume. At the same time, the evolution of database systems has made a number of new topics imperative for a modern course. Thus, we have added, mostly to the application-programming area, topics such as object-relational data, SQL/PSM (stored programs), SQL/CLI (the emerging standard for the C/SQL interface), and JDBC (the same for Java/SQL).
Use of the Book
We recommend that two quarters be devoted to the material in this book. If you follow the Stanford approach, you would cover the first ten chapters in the first quarter and the last ten in the second quarter. Should you wish to cover the material in a single semester, then there will have to be some omitted portions. In general, we suggest that Chapters 2-7, 11-13, and 17-18 should be given highestpriority, but there are pieces from each of these chapters that can be skipped.
If, as we do in CS145, you give students a substantial database-application design and implementation project, then you may have to reorder the material somewhat, so that SQL instruction occurs earlier in the Book. You may wish to defer material such as dependencies, although students need normalization for design.
Prerequisites
We have used the book at the "mezzanine" level, in courses taken both by undergraduates and beginning graduate students. The formal prerequisites for the courses are Sophomore-level treatments of: (1) Data structures, algorithms, and discrete math, and (2) Software systems, software engineering, and programming languages. Of this material, it is important that students have at least a rudimentary understanding of such topics as: algebraic expressions and laws, logic, basic data structures such as search trees and graphs, object-oriented programming concepts, and programming environments. However, we believe that adequate background is surely acquired by the end of the Junior year in a. typical computer science program.
Exercises
The book contains extensive exercises, with some for almost every section. We indicate harder exercises or parts of exercises with an exclamation point. The hardest exercises have a double exclamation point.
Some of the exercises or parts are marked with a star. For these exercises, we shall endeavor to maintain solutions accessible through the book's web page. These solutions are publicly available and should be used for self-testing. Note that in a few cases, one exercise B asks for modification or adaptation of your solution to another exercise A. If certain parts of A have solutions, then you should expect the corresponding parts of B to have solutions as well.