This concise guide sheds light on the principles behind the relational model, which underlies all database products in wide use today. It goes beyond the hype to give you a clear view of the technology -- a view that's not influenced by any vendor or product. Suitable for experienced database developers and designers.
When it comes to choosing, using, and maintaining a database, understanding its internals is essential. But with so many distributed databases and tools available today, it’s often difficult to understand what each one offers and how they differ. With this practical guide, Alex Petrov guides developers through the concepts behind modern database and storage engine internals. Throughout the book, you’ll explore relevant material gleaned from numerous books, papers, blog posts, and the source code of several open source databases. These resources are listed at the end of parts one and two. You’ll discover that the most significant distinctions among many modern databases reside in subsystems that determine how storage is organized and how data is distributed. This book examines: Storage engines: Explore storage classification and taxonomy, and dive into B-Tree-based and immutable Log Structured storage engines, with differences and use-cases for each Storage building blocks: Learn how database files are organized to build efficient storage, using auxiliary data structures such as Page Cache, Buffer Pool and Write-Ahead Log Distributed systems: Learn step-by-step how nodes and processes connect and build complex communication patterns Database clusters: Which consistency models are commonly used by modern databases and how distributed storage systems achieve consistency
Understanding and implementing the database management systems concepts in SQL and PL/SQL Ê KEY FEATURESÊÊ _ Practice SQL concepts by writing queries and perform your own data visualization and analysis. _ Gain insights on Entity Relationship Model and how to implement in your business environment. _ Series of question banks and case-studies to develop strong hold on RDBMS concepts. Ê DESCRIPTIONÊÊ Relational Database Management Systems In-Depth brings the fundamental concepts of database management systems to you in more elaborated learning with conceptual clarity of RDBMS.Ê This book brings an extensive coverage of theoretical concepts on types of databases, concepts of relational database management systems, normalization and many more. You will explore exemplification of Entity Relational Model concepts that would teach the readers to design accurate business systems. Backed with a series of examples, you can practice the fundamental concepts of RDBMS and SQL queries including OracleÕs SQL queries, MySQL and SQL Server. In addition to the illustration of concepts on SQL, there is an implementation of crucial business rules using PL/SQL based stored procedures and database triggers.Finally, by the end of this book there is a mention of the useful data oriented technologies like Big Data, Data Lake etc and the crucial role played by such techniques in the current data driven decisions. Throughout the book, you will come across key learnings and key terms that will help you to understand and revise the concepts learned. Along with this, you will also come across questions and case studies by the end of every chapter to prepare for job interviews and certifications. WHAT YOU WILL LEARN _ Depiction of Entity Relationship Model with various business case studies. _ Illustration of the normalization concept to make the database stronger and consistent. _ Designing theÊ successful client-server applications using PL/SQL concepts. _ Learning the concepts of OODBS and Database Design with Normalization and Relationships. _ Knowing various techniques regarding Big Data technologies like Hadoop, MapReduce and MongoDB. Ê WHO THIS BOOK IS FORÊÊ This book is meant for academicians, students, developers and administrators including beginners and readers experienced in some other programming languages and database systems. Ê TABLE OF CONTENTS 1. Database Systems Architecture 2. Database Management System Models 3. Relational query languages 4. Relational Database Design 5. Query Processing and Optimization 6. Transaction Processing 7. Implementation Techniques 8. SQL Concepts 9. PL/SQL Concepts 10. Collections in PL/SQL 11. What Next? Ê
This book sheds light on the principles behind the relational model, which is fundamental to all database-backed applications--and, consequently, most of the work that goes on in the computing world today. Database in Depth: The Relational Model for Practitioners goes beyond the hype and gets to the heart of how relational databases actually work.Ideal for experienced database developers and designers, this concise guide gives you a clear view of the technology--a view that's not influenced by any vendor or product. Featuring an extensive set of exercises, it will help you: understand why and how the relational model is still directly relevant to modern database technology (and will remain so for the foreseeable future) see why and how the SQL standard is seriously deficient use the best current theoretical knowledge in the design of their databases and database applications make informed decisions in their daily database professional activities Database in Depth will appeal not only to database developers and designers, but also to a diverse field of professionals and academics, including database administrators (DBAs), information modelers, database consultants, and more. Virtually everyone who deals with relational databases should have at least a passing understanding of the fundamentals of working with relational models.Author C.J. Date has been involved with the relational model from its earliest days. An exceptionally clear-thinking writer, Date lays out principle and theory in a manner that is easily understood. Few others can speak as authoritatively the topic of relational databases as Date can.
Because databases often stay in production for decades, careful design is critical to making the database serve the needs of your users over years, and to avoid subtle errors or performance problems. In this book, C.J. Date, a leading exponent of relational databases, lays out the principles of good database design.
This textbook examines database systems from the viewpoint of a software developer. This perspective makes it possible to investigate why database systems are the way they are. It is of course important to be able to write queries, but it is equally important to know how they are processed. We e.g. don’t want to just use JDBC; we also want to know why the API contains the classes and methods that it does. We need a sense of how hard is it to write a disk cache or logging facility. And what exactly is a database driver, anyway? The first two chapters provide a brief overview of database systems and their use. Chapter 1 discusses the purpose and features of a database system and introduces the Derby and SimpleDB systems. Chapter 2 explains how to write a database application using Java. It presents the basics of JDBC, which is the fundamental API for Java programs that interact with a database. In turn, Chapters 3-11 examine the internals of a typical database engine. Each chapter covers a different database component, starting with the lowest level of abstraction (the disk and file manager) and ending with the highest (the JDBC client interface); further, the respective chapter explains the main issues concerning the component, and considers possible design decisions. As a result, the reader can see exactly what services each component provides and how it interacts with the other components in the system. By the end of this part, s/he will have witnessed the gradual development of a simple but completely functional system. The remaining four chapters then focus on efficient query processing, and focus on the sophisticated techniques and algorithms that can replace the simple design choices described earlier. Topics include indexing, sorting, intelligent buffer usage, and query optimization. This text is intended for upper-level undergraduate or beginning graduate courses in Computer Science. It assumes that the reader is comfortable with basic Java programming; advanced Java concepts (such as RMI and JDBC) are fully explained in the text. The respective chapters are complemented by “end-of-chapter readings” that discuss interesting ideas and research directions that went unmentioned in the text, and provide references to relevant web pages, research articles, reference manuals, and books. Conceptual and programming exercises are also included at the end of each chapter. Students can apply their conceptual knowledge by examining the SimpleDB (a simple but fully functional database system created by the author and provided online) code and modifying it.
Information Modeling and Relational Databases, Third Edition, provides an introduction to ORM (Object-Role Modeling) and much more. In fact, it is the only book to go beyond introductory coverage and provide all of the in-depth instruction you need to transform knowledge from domain experts into a sound database design. This book is intended for anyone with a stake in the accuracy and efficacy of databases: systems analysts, information modelers, database designers and administrators, and programmers. Dr. Terry Halpin and Dr. Tony Morgan, pioneers in the development of ORM, blend conceptual information with practical instruction that will let you begin using ORM effectively as soon as possible. The all-new Third Edition includes coverage of advances and improvements in ORM and UML, nominalization, relational mapping, SQL, XML, data interchange, NoSQL databases, ontological modeling, and post-relational databases. Supported by examples, exercises, and useful background information, the authors’ step-by-step approach teaches you to develop a natural-language-based ORM model, and then, where needed, abstract ER and UML models from it. This book will quickly make you proficient in the modeling technique that is proving vital to the development of accurate and efficient databases that best meet real business objectives. "This book is an excellent introduction to both information modeling in ORM and relational databases. The book is very clearly written in a step-by-step manner and contains an abundance of well-chosen examples illuminating practice and theory in information modeling. I strongly recommend this book to anyone interested in conceptual modeling and databases." — Dr. Herman Balsters, Director of the Faculty of Industrial Engineering, University of Groningen, The Netherlands Presents the most in-depth coverage of object-role modeling, including a thorough update of the book for the latest versions of ORM, ER, UML, OWL, and BPMN modeling. Includes clear coverage of relational database concepts as well as the latest developments in SQL, XML, information modeling, data exchange, and schema transformation. Case studies and a large number of class-tested exercises are provided for many topics. Includes all-new chapters on data file formats and NoSQL databases.
This third edition of a classic textbook can be used to teach at the senior undergraduate and graduate levels. The material concentrates on fundamental theories as well as techniques and algorithms. The advent of the Internet and the World Wide Web, and, more recently, the emergence of cloud computing and streaming data applications, has forced a renewal of interest in distributed and parallel data management, while, at the same time, requiring a rethinking of some of the traditional techniques. This book covers the breadth and depth of this re-emerging field. The coverage consists of two parts. The first part discusses the fundamental principles of distributed data management and includes distribution design, data integration, distributed query processing and optimization, distributed transaction management, and replication. The second part focuses on more advanced topics and includes discussion of parallel database systems, distributed object management, peer-to-peer data management, web data management, data stream systems, and cloud computing. New in this Edition: • New chapters, covering database replication, database integration, multidatabase query processing, peer-to-peer data management, and web data management. • Coverage of emerging topics such as data streams and cloud computing • Extensive revisions and updates based on years of class testing and feedback Ancillary teaching materials are available.
Data is getting bigger and more complex by the day, and so are your choices in handling it. Explore some of the most cutting-edge databases available - from a traditional relational database to newer NoSQL approaches - and make informed decisions about challenging data storage problems. This is the only comprehensive guide to the world of NoSQL databases, with in-depth practical and conceptual introductions to seven different technologies: Redis, Neo4J, CouchDB, MongoDB, HBase, Postgres, and DynamoDB. This second edition includes a new chapter on DynamoDB and updated content for each chapter. While relational databases such as MySQL remain as relevant as ever, the alternative, NoSQL paradigm has opened up new horizons in performance and scalability and changed the way we approach data-centric problems. This book presents the essential concepts behind each database alongside hands-on examples that make each technology come alive. With each database, tackle a real-world problem that highlights the concepts and features that make it shine. Along the way, explore five database models - relational, key/value, columnar, document, and graph - from the perspective of challenges faced by real applications. Learn how MongoDB and CouchDB are strikingly different, make your applications faster with Redis and more connected with Neo4J, build a cluster of HBase servers using cloud services such as Amazon's Elastic MapReduce, and more. This new edition brings a brand new chapter on DynamoDB, updated code samples and exercises, and a more up-to-date account of each database's feature set. Whether you're a programmer building the next big thing, a data scientist seeking solutions to thorny problems, or a technology enthusiast venturing into new territory, you will find something to inspire you in this book. What You Need: You'll need a *nix shell (Mac OS or Linux preferred, Windows users will need Cygwin), Java 6 (or greater), and Ruby 1.8.7 (or greater). Each chapter will list the downloads required for that database.
The aim of this work is to provide a correct and up-to-date understanding of the practical aspects of crucial, yet little- understood core database issues. The author identifies fundamental concepts, principles, and techniques and assesses the treatment of those issues in SQL (both the standard and commercial implementations) and gives advice on how to deal with them. Topics covered include complex data types, missing information, data hierarchies, and quota queries. Annotation copyrighted by Book News, Inc., Portland, OR