Foreword
Preface
- Why this book and why now?
- This book is a work-in-progress
- Who is this book for?
- How to read this book?
- Please help improve this book!
- About the author
- IBest practices for the relational model
1Introduction
- 1.1Why a new book about the relational database?
- 1.2Is the RDBMS becoming less relevant?
- 1.3The foundation of the RDBMS revisited
2A common question of life: What makes me unique?
- 2.1The database recognises all its rows: Internal unique identifiers
- 2.2The unchallenged unique identifier: Primary key constraints
- 2.3Being more unique than just a number: Unique Key constraints
- 2.4Uniqueness as inheritance: Unique indexes
- 2.5Some examples of unique identifiers
- 2.6Best practices when defining unique identifiers
- 2.7Best practices for sequences and identity columns
3A foreigner is not a stranger
- 3.1Happy together: The pure Master-detail relationships
- 3.2When relationships break up
- 3.3Join the club: Many-to-many relationships
- 3.4Click for more information : A one-to-many relationship for look-up data
- 3.5Limiting the choice: Restricted foreign keys
- 3.6The family tree: Self-references, tree-structures and networks
- 3.7To whom do I belong? The exclusive-arc relation
- 3.8Without relations data will not be coherent
- IIImplementing Data Integrity
4A brief history of business rule implementation
- 4.1Java rules the world!
- 4.2It’s the process, stupid!
- 4.3Keep it simple: everything in the database!
- 4.4The proper way: Use all three methods
5Implementing Data Integrity Rules
- 5.1What is a data integrity rule?
- 5.2Why data integrity rules should always be implemented in the database
- 5.3Specifying business rules
- 5.4Categories of business rules
- 5.5Implicit Data Integrity Rules of table definitions
- 5.6Implementing Data Integrity using constraints
- 5.7Implementing Data Integrity Rules using database triggers
- 5.8Implementing business rules and functionality using APIs
- IIIThe relational database in an Object Oriented world
6Which language do we speak? Communicating with the database
- 6.1Application development frameworks using Object Relational Mapping
- 6.2Why objects are not tables and vice versa
- 6.3Integration, what integration?
- 6.4Choosing between object type, XML or JSON for data manipulation APIs
- 6.5Choosing between object type, XML, JSON or SQL methods for data retrieval APIs
7PL/SQL APIs for data manipulation and retrieval
- 7.1Using PL/SQL functions with object type parameters
- 7.2Using PL/SQL functions with JSON parameters
- 7.3Using PL/SQL functions with XML parameters
8Database APIs for data retrieval
- 8.1Using database views as APIs
- 8.2Using Pipelined PL/SQL functions for data retrieval
- 8.3Using PL/SQL functions that return a ref cursor
9Using Oracle REST Data Services (ORDS) for database APIs
10Using JSON Duality Views as database APIs
- 10.1Declarative ORM Mapping using JSON Duality Views
- 10.2Using JSON Duality Views for ACID compliant transactions