The interior of this book was set in Minion and Akzidenz Grotesk. Fundamentals of database systems / Ramez Elmasri, Shamkant B. Navathe.—6th ed. p. cm. PDF | On Jan 1, , Garcia-Molina and others published Database Systems: The Complete Book. Database Design - 2nd Edition by Adrienne Watt and Nelson Eng is licensed under a part of the remix for this book are listed at the end of each chapter.
|Language:||English, Spanish, Portuguese|
|Distribution:||Free* [*Register to download]|
A database-management system (DBMS) is a collection of interrelated data and a set of You may have recorded this data in an indexed address book, or you. This book is dedicated to the researchers at IBM United Kingdom's Scientific . This book introduces you to the theory of relational databases, focusing on the. to as the universe of discourse or as the database miniworld. Whatever it is called , it must A database management system (DBMS) is a collection of programs.
Their coverage in some chapters is oddly platform-specific. For example, the data types they introduce in detail in chapter 15 SQL Structured Query Language do not apply to all or perhaps even most DBMS, and the differences between DBMS implementations are likely to cause major difficulties if students were to try to apply these concepts in a context where they don't apply.
SQLite, for example, only has about native data types and it is one of the most commonly used environments these days due to its small size, portability, and the fact that it is built-in to browsers and mobile devices.
Clarity rating: 3 As explained above in the "Accuracy" section, I worry that the explanations of key concepts were too short, not well organized, and therefore are likely to be unclear to beginners in this field. Consistency rating: 3 Most of the time the book stays at a very high level, but on occasion, and without warning it jumps into great depth. For example, chapter 11 functional dependencies takes a sudden and deep dive into the subject of set theory and related axioms.
This is not consistent in tone or apparent level of understanding of the reader. This would be quite jarring from the perspective of a student. Modularity rating: 3 Although the chapter titles suggest modularity, I didn't feel there was a great deal of discipline in terms of where content was placed. I think students being introduced to the concepts here would be very confused by this. For example, both chapters 10 and 11 begin by introducing the concept of functional dependency.
I would have expected the concept to be fully defined and explained in one chapter or the other, not both, or at the very least make it clear that the concept is broken up into multiple chapters. Some topics seemed to appear out of the blue in the middle of some chapters without warning. Chapters were inconsistent in terms of their length and the depth and care with which they treated a subject. For example, chapter 14 Database Users was extremely short, and could have been covered perhaps was?
Interface rating: 3 In general, navigating through the book was straightforward. However, many of the images were very small and of poor resolution.
The chapters in this part describe data manipulation: queries, updates, insertions, and deletions, assuming a schema design has been provided.
Schema design issues are deferred to Part 2.
Chapter 7 provides an overview of the database-design process, with major emphasis on database design using the entity-relationship data model. The entity-relationship data model provides a high-level view of the issues in database design, and of the problems that we encounter in capturing the semantics of realistic applications within the constraints of a data model. UML class-diagram notation is also covered in this chapter.
Chapter 8 introduces the theory of relational database design. The theory of functional dependencies and normalization is covered, with emphasis on the motivation and intuitive understanding of each normal form.
This chapter begins with an overview of relational design and relies on an intuitive understanding of logical implication of functional dependencies. This allows the concept of normalization to be introduced prior to full coverage of functional-dependency theory, which is presented later in the chapter. Instructors may choose to use only this initial coverage in Sections 8.
Instructors covering the entire chapter will benefit from students having a good understanding of normalization concepts to motivate some of the challenging concepts of functional-dependency theory. Chapter 9 covers application design and development. This chapter emphasizes the construction of database applications with Web-based interfaces.
In addition, the chapter covers application security. Chapter 10 deals with storage devices, files, and data-storage structures. Chapters 12 and 13 address query-evaluation algorithms and query optimization. These chapters provide an understanding of the internals of the storage and retrieval components of a database.
Chapter 14 focuses on the fundamentals of a transaction-processing system: atomicity, consistency, isolation, and durability. It provides an overview of the methods used to ensure these properties, including locking and snapshot isolation. Chapter 15 focuses on concurrency control and presents several techniques for ensuring serializability, including locking, timestamping, and optimistic validation techniques.
The chapter also covers deadlock issues. Alternatives to serializability are covered, most notably the widely-used snapshot isolation, which is discussed in detail. Chapter 16 covers the primary techniques for ensuring correct transaction execution despite system crashes and storage failures.
These techniques include logs, checkpoints, and database dumps. Chapter 17 covers Apago PDF Enhancer computer-system architecture, and describes the influence of the underlying computer system on the database system.
We discuss centralized systems, client—server systems, and parallel and distributed architectures in this chapter. The chapter also describes parallel-system design. Chapter 19 covers distributed database systems, revisiting the issues of database design, transaction management, and query evaluation and optimization, in the context of distributed databases.
The chapter also covers issues of system availability during failures, heterogeneous distributed databases, cloud-based databases, and distributed directory systems. Chapter 20 introduces the concepts of data warehousing and data mining. Chapter 21 describes information-retrieval techniques for querying textual data, including hyperlink-based techniques used in Web search engines.
Part 6 uses the modeling and language concepts from Parts 1 and 2, but does not depend on Parts 3, 4, or 5. It can therefore be incorporated easily into a course that focuses on SQL and on database design. Chapter 22 covers objectbased databases. The chapter describes the object-relational data model, which extends the relational data model to support complex data types, type inheritance, and object identity. The chapter also describes database access from object-oriented programming languages.
Chapter 23 covers the XML standard for data representation, which is seeing increasing use in the exchange and storage of complex data. The chapter also describes query languages for XML.
Chapter 24 covers advanced issues in application development, including performance tuning, performance benchmarks, database-application testing, and standardization. Chapter 25 covers spatial and geographic data, temporal data, multimedia data, and issues in the management of mobile and personal databases. Finally, Chapter 26 deals with advanced transaction processing. Topics covered in the chapter include transaction-processing monitors, transactional workflows, electronic commerce, high-performance transaction systems, real-time transaction systems, and long-duration transactions.
These chapters outline unique features of each of these systems, and describe their internal structure. They provide a wealth of interesting information about the respective products, and help you see how the various implementation techniques described in earlier parts are used in real systems. They also cover several interesting practical aspects in the design of real systems. An exception is Appendix A, which presents details of our university schema including the full schema, DDL, and all the tables.
This appendix appears in the actual text. Appendix C describes advanced relational database design, including the theory of multivalued dependencies, join dependencies, and the project-join and domain-key normal forms.
This appendix is for the benefit of individuals who wish to study the theory of relational database design in more detail, and instructors who wish to do so in their courses. This appendix, too, is available only online, on the Web site of the book.
Although most new database applications use either the relational model or the object-relational model, the network and hierarchical data models are still in use in some legacy applications.
For the benefit of readers who wish to learn about these data models, we provide appendices describing the network and hierarchical data models, in Appendices D and E respectively. Preface xix The Sixth Edition The production of this sixth edition has been guided by the many comments and suggestions we received concerning the earlier editions, by our own observations while teaching at Yale University, Lehigh University, and IIT Bombay, and by our analysis of the directions in which database technology is evolving.
We have replaced the earlier running example of bank enterprise with a university example. This example has an immediate intuitive connection to students that assists not only in remembering the example, but, more importantly, in gaining deeper insight into the various design decisions that need to be made.
We have reorganized the book so as to collect all of our SQL coverage together and place it early in the book. Chapters 3, 4, and 5 present complete SQL coverage. Chapter 3 presents the basics of the language, with more advanced features in Chapter 4. We present triggers and recursion, and then conclude with coverage of online analytic processing OLAP.
Introductory courses may choose to cover only certain sections of Chapter 5 or defer sections until after the coverage of database design without loss of continuity. Beyond these two major changes, we revised the material in each chapter, bringing the older material up-to-date, adding discussions on recent developments in database technology, and improving descriptions of topics that students found difficult to understand. We have also added new exercises and updated references.
Many instructors use SQL as a key component of term projects see our Web site, www. In order to give students ample time for the projects, particularly for universities and colleges on the quarter system, it is essential to teach SQL as early as possible. These chapters also discuss variants supported by different database systems, to minimize problems that students face when they execute queries on actual database systems.
Only our discussion of query optimization in Chapter 13 depends on the relational algebra coverage of Chapter 6. We adopted a new schema, which is based on university data, as a running example throughout the book.
This schema is more intuitive and motivating for students than the earlier bank schema, and illustrates more complex design trade-offs in the database-design chapters. To facilitate following our running example, we list the database schema and the sample relation instances for our university database together in Appendix A as well as where they are used in the various regular chapters.
This encourages students to run example queries directly on a database system and to experiment with modifying those queries. The chapter also makes good use of the new university database schema to illustrate more complex design trade-offs. Chapter 8 now has a more readable style, providing an intuitive understanding of functional dependencies and normalization, before covering functional dependency theory; the theory is motivated much better as a result.
Chapter 10 has been updated with new technology, including expanded coverage of flash memory. Chapter 13 has new material on advanced query-optimization techniques. Chapter 14 provides full coverage of the basics for an introductory course, with advanced details following in Chapters 15 and Chapter 14 has been expanded to cover the practical issues in transaction management faced by database users and databaseapplication developers. The chapter also includes an expanded overview of topics covered in Chapters 15 and 16, ensuring that even if Chapters 15 and 16 are omitted, students have a basic knowledge of the concepts of concurrency control and recovery.
Preface xxi Chapters 14 and 15 now include detailed coverage of snapshot isolation, which is widely supported and used today, including coverage of potential hazards when using it. Chapter 16 now has a simplified description of basic log-based recovery leading up to coverage of the ARIES algorithm.
We now cover cloud data storage, which is gaining significant interest for business applications. Cloud storage offers enterprises opportunities for improved costmanagement and increased storage scalability, particularly for Web-based applications. We examine those advantages along with the potential drawbacks and risks. Multidatabases, which were earlier in the advanced transaction processing chapter, are now covered earlier as part of the distributed database chapter.
Although object-oriented languages and XML are widely used outside of databases, their use in databases is still limited, making them appropriate for more advanced courses, or as supplementary material for an introductory course.
These topics have therefore been moved to later in the book, in Chapters 22 and Apago PDF Enhancer All topics not listed above are updated from the fifth edition, though their overall organization is relatively unchanged. Review Material and Exercises Each chapter has a list of review terms, in addition to a summary, which can help readers review key topics covered in the chapter. The exercises are divided into two sets: practice exercises and exercises.
The solutions for the practice exercises are publicly available on the Web site of the book. Students are encouraged to solve the practice exercises on their own, and later use the solutions on the Web site to check their own solutions. Many chapters have a tools section at the end of the chapter that provides information on software tools related to the topic of the chapter; some of these tools can be used for laboratory exercises.
SQL DDL and sample data for the university database and other relations used in the exercises are available on the Web site of the book, and can be used for laboratory exercises. These sections may be omitted if so desired, without a loss of continuity. It is possible to design courses by using various subsets of the chapters. Some of the chapters can also be covered in an order different from their order in the book.
We expect most courses will cover at least Section 5. Alternatively, this chapter may be omitted from an introductory course. We recommend covering Section 6. However, Sections 6. You might choose to use Chapters 14 and 17, while omitting Chapters 15, 16, 18 and 19, if you defer these latter chapters to an advanced course.
Alternatively, they can be used as an illustration of concepts when the earlier chapters are presented in class. Model course syllabi, based on the text, can be found on the Web site of the book.
Answers to the practice exercises. The five appendices. An up-to-date errata list. Laboratory material, including SQL DDL and sample data for the university schema and other relations used in exercises, and instructions for setting up and using various database systems and tools.
We would appreciate it if you would notify us of any errors or omissions in the book that are not on the current list of errata. We would be glad to receive suggestions on improvements to the book. We also welcome any contributions to the book Web site that could be of use to other readers, such as programming exercises, project suggestions, online labs and tutorials, and teaching tips. Acknowledgments Many people have helped us with this sixth edition, as well as with the previous five editions from which it is derived.
Sarda for feedback that helped us improve several chapters, in particular Chapter 11; Vikram Pudi for motivating us to replace the earlier bank schema; and Shetal Shah for feedback on several chapters.
Lu, Alex N. Napitupulu, H. Kaplan, Graham J. The developmental editor was Melinda D. The project manager was Melissa Leick.