Wiley
Wiley.com
Print this page Share
Textbook

Database Design and Implementation

October 2008, ©2009
Database Design and Implementation (EHEP000711) cover image
This new first edition is designed for use in a two-course DB sequence; it can also be used in either the first or second DB course. The book essentially has two parts -- "how to use a database" and "how to build a database". The first half contains comprehensive coverage of how to build database applications in Java, including chapters on JDBC, JPA, XML, and Servlet development. The latter half focuses on the internals of a databse server and sophisticated techniques and algorithms for indexing, sorting, intelligent buffer usage and query optimization.
See More

1. Introduction: Why a Database System?

1.1. Databases and Database Systems.

1.2. Record Storage.

1.3. Multi-User Access.

1.4. Memory Management.

1.5. Data Models and Schemas.

1.6. Physical Data Independence.

1.7. Logical Data Independence.

1.8. Chapter Summary.

1.9. Suggested Reading.

1.10. Exercises.

Part 1: Rational Databases.

2. Data Definition.

2.1. Tables.

2.2. Null Values.

2.3. Keys.

2.4. Foreign Keys and Referential Integrity.

2.5. Integrity Constraints.

2.6. Specifying Tables in SQL.

2.7. Chapter Summary.

2.8. Suggested Reading.

2.9. Exercises.

3. Data Design.

3.1. Designing Tables is Difficult.

3.2. Class Diagrams.

3.3. Transforming Class Diagrams to Tables.

3.4. The Design Process.

3.5. Relationships to Constraints.

3.6. Functional Dependancies and Normalization.

3.7. Chapter Summary.

3.8. Suggested Reading.

3.9. Exercises.

4. Data Manipulation.

4.1. Queries.

4.2. Relational Algebra.

4.3. SQL Queries.

4.4. SQL Updates.

4.5. Views.

4.6. Chapter Summary.

4.7. Suggested Reading.

4.8. Exercises.

5. Integrity and Security.

5.1. The Need for Integrity and Security.

5.2. Assertions.

5.3. Triggers.

5.4. Authorization.

5.5. Mandatory Access Control.

5.6. Chapter Summary.

5.7. Suggested Reading.

5.8. Exercises.

6. Improving Query Efficiency.

6.1. The Virtues of Controlled Redundancy.

6.2. Materialized Views.

6.3. Indexes.

6.4. Chapter Summary.

6.5. Suggested Reading.

6.6. Exercises.

Part 2: Client-Server Database Systems.

7. Clients and Servers.

7.1. The Data-Sharing Problem.

7.2. Database Clients and Servers.

7.3. The Derby and SimpleDB Database Servers.

7.4. Running Database Clients.

7.5. The Derby ij Client.

7.6. The SimpleDB Version of SQL.

7.7. Chapter Summary.

7.8. Suggested Reading.

7.9. Exercises.

8. Using JDBC.

8.1. Basic JDBC.

8.2. Advanced JDBC.

8.3. Computing in Java vs. SQL.

8.4. Chapter Summary.

8.5. Suggested Reading.

8.6. Exercises.

9. Persistent Java Objects.

9.1. The Domain Model and View of a Client Program.

9.2. The Problem with Our Domain Model.

9.3. The Java Persistence Architecture.

9.4. The Java Persistence Query Language.

9.5. Downloading a JPA Implementation.

9.6. Chapter Summary.

9.7. Suggested Reading.

9.8. Exercises.

10. Data Exchange.

10.1. Sharing Database Data with NonUsers.

10.2. Saving Data in an XML Document.

10.3. Restructuring an XML Document.

10.4. Generating XML Data from the Database.

10.5. Chapter Summary.

10.6. Suggested Reading.

10.7. Exercises.

11. Webserver-Based Database Clients.

11.1. Types of Database Clients.

11.2. Interacting with a Web Server.

11.3. Basic Servlet Programming.

11.4. Managing Database Connections.

11.5. Configuring a Servlet Container.

11.6. Chapter Summary.

11.7. Suggested Reading.

11.8. Exercises.

Part 3. Inside the Database Server.

12. Disk and File Management.

12.1. Persistent Data Storage.

12.2. The Block-Level Interface to the Disk.

12.3. The File-Level Interface to the Disk.

12.4. The Database System and the OS.

12.5. The SimpleDB File Manager.

12.6. Chapter Summary.

12.7. Suggested Reading.

12.8. Exercises.

13. Memory Management.

13.1. Two Principles of Database Memory Management.

13.2. Managing Log Information.

13.3. The SimpleDB Log Manager.

13.4. Managing User Data.

13.5. The SimpleDB Buffer Manager.

13.6. Chapter Summary.

13.7. Suggested Reading.

13.8. Exercises.

14. Transaction Management.

14.1. Transactions.

14.2. Using Transactions in SimpleDB.

14.3. Recovery Management.

14.4. Concurrency Management.

14.5. Implementing SimpleDB Transactions.

14.6. Testing Transactions.

14.7. Chapter Summary.

14.8. Suggested Reading.

14.9. Exercises.

15. Record Management.

15.1. The Record Manager.

15.2. Implementing a File of Records.

15.3. The SimpleDB Record Manager.

15.4. Chapter Summary.

15.5. Suggested Reading.

15.6. Exercises.

16. Metadata Management.

16.1. The Metadata Manager.

16.2. Table Metadata.

16.3. View Metadata.

16.4. Statistical Metadata.

16.5. Index Metadata.

16.6. Implementing the Metadata Manager.

16.7 .Chapter Summary.

16.8. Suggested Reading.

16.9. Exercises.

17. Query Processing.

17.1. Scans.

17.2. Update Scans.

17.3. Implementing Scans.

17.4. Pipelined Query Processing.

17.5. The Cost of a Scan.

17.6. Plans.

17.7. Predicates.

17.8. Chapter Summary.

17.9. Suggested Reading.

17.10. Exercises.

18. Parsing.

18.1. Syntax vs. Semantics.

18.2. Lexical Analysis.

18.3. Implementing the Lexical Analyzer.

18.4. Grammars.

18.5. Recursive-Descent Parsers.

18.6. Adding Actions to the Parser.

18.7. Chapter Summary.

18.8. Suggested Reading.

18.9. Exercises.

19. Planning.

19.1. The SimpleDB Planner.

19.2. Verification.

19.3. Query Planning.

19.4. Update Planning.

19.5. Implementing the SimpleDB Planner.

19.6. Chapter Summary.

19.7. Suggested Reading.

19.8. Exercises.

20. The Database Server.

20.1. Server Databases vs. Embedded Databases.

20.2. Client-Server Communication.

20.3. Implementing the Remote Interfaces.

20.4. Implementing the JDBC Interfaces.

20.5. Chapter Summary.

20.6. Suggested Reading.

20.7. Exercises.

Part 4: Efficient Query Processing.

21. Indexing.

21.1. The Index Interface.

21.2. Static Hash Indexes.

21.3. Extendable Hash Indexes.

21.4. B-Tree Indexes.

21.5. Index-Aware Operator Implementations.

21.6. Index Update Planning.

21.7. Chapter Summary.

21.8. Suggested Reading.

21.9. Exercises.

22. Materialization and Sorting.

22.1. The Value of Materialization.

22.2. Temporary Tables.

22.3. Materialization.

22.4. Sorting.

22.5. Grouping and Aggregation.

22.6. Merge Joins.

22.7. Chapter Summary.

22.8. Suggested Reading.

22.9. Exercises.

23. Effective Buffer Utilization.

23.1. Buffer Usage in Query Plans.

23.2. MultiBuffer Sorting.

23.3. MultiBuffer Product.

23.4. Implementing the Multibuffer Operations.

23.5. Hash Joins.

23.6. Comparing the Join Algorithms.

23.7. Chapter Summary.

23.8. Suggested Reading.

23.9. Exercises.

24. Query Optimization.

24.1. Equivalent Query Trees.

24.2. The Need for Query Optimization.

24.3. The Structure of a Query Optimizer.

24.4. Finding the Most Promising Query Tree.

24.5. Finding the Most Efficient Plan.

24.6. Combining the Two Stages of Optimization.

24.7. Merging Query Blocks.

24.8 Chapter Summary.

24.9. Suggested Reading.

24.10. Exercises.

References.

Index.

See More
Edward Sciore is an Associate Professor in the Computer Science Department at Boston College. He received his Ph.D. from Princeton University in 1980, and has been studying and teaching about database systems ever since. He is the author of numerous research articles about database systems. His favorite activity, however, is to teach database courses to college students. These teaching experiences, accumulated over a 25-year period, are what led to the writing of this book.
See More
  • Complete coverage of topics covered in both a first and second DB course

  • Comes with SimpleDB, a free-to-download, fully functional simplified database system that is (unlike commercial DB systems) small, easily readable and easily modified. SimpleDB can be used as the platform on which students complete homework projects and implement the concepts covered in the book.

  • The online supplementary material also includes a set of test programs that instructors can provide to their students to help them debug their code.
  • See More
    Instructors Resources
    Wiley Instructor Companion Site
    See More
    See Less
    Students Resources
    Wiley Student Companion Site
    See More
    See Less
    Purchase Options
    Wiley E-Text   
    Database Design and Implementation
    ISBN : 978-0-470-47290-3
    October 2008, ©2009
    $62.50   BUY

    Hardcover   
    Database Design and Implementation
    ISBN : 978-0-471-75716-0
    784 pages
    October 2008, ©2009
    $183.95   BUY

    Back to Top