Theory and Practice of Relational Databases
by Stefan Stanczyk, Bob Champion and Richard Leyton
 

Book Preface


Welcome

Book overview

Book preface

Book Chapters

Software downloads

Ordering

References

Online resources

Book errata

Authors

Copyright

First published a decade ago, the Theory and Practice of Relational Databases gained fairly noticeable popularity, particularly amongst those readers to whom it was primarily addressed -the students. After a decade, however, any book needs reviewing, for the field will have developed, presentation could be improved, choice of topics might be reflected upon and, importantly, the comments from the readers addressed.

Databases evolved into a classic component of computing degrees. The subject became well supported by a wealth of research, exceptional industrial experience and numerous books covering a wide range of topics. However, books on databases run into voluminous proportions and tend to cover the whole spectrum of the subject thus constituting a monographic source of reference rather than being a learning aide.

The book we are presenting now is meant to be just that - a tutorial text that assists the process of learning. It is supposed to have a technological bias, to present the chosen topics in a concise manner, and to incite better understanding through explanations and illustrative examples. In short, the book is meant to retain those features that made the previous edition successful.

Naturally, the book does not aspire to cover all aspects of databases nor does it pretend to present the relational theory in its entirety. The focus is on a coherent, systematic coverage of database design. The primary objective of this book is to present a reasonably comprehensive explanation of the process of the development of database application systems within the framework of the set processing paradigm.

Amongst the rich variety of data models advocated by their authors from time to time, the relational approach has prevailed. However, for applications that require processing of complex data structures the relational approach may not necessarily be advantageous. Application software built around the relational DBMS may require user-defined, complex data structures, appropriate to the domain of that application. Furthermore, certain types of applications do not naturally lend themselves to the relational paradigm. Thus we chose, and not without iscussion and controversies, to include a separate chapter covering the object-oriented paradigm as applicable to databases.

Other than that, how different is this edition from the previous one? Well, we have noticed that learning Relational Calculus distracted many students from appreciating the principles of the relational model rather than contributing to its deeper understanding. Relational calculus, being isomorphic to algebra, does not greatly enhance the model per se; rather it constitutes an alternative view on its operational part. Accordingly, the chapter on calculus was removed and the exposition of relational algebra strengthened to include the aspects of query optimization and algorithms for algebraic operations.

Furthermore, we have taken the view that relational algebra, being a programming language, deserves a proper software support. Thus LEAP, a straightforward relational DBMS, written by Richard Leyton as an open-source project, has been presented in a separate chapter. The system, equipped with an algebraic interface, can be downloaded from the book s website and used freely by the readers. This brought about an additional benefit -the readers are given an opportunity to study some internal mechanisms of DBMS by inspecting, and possibly experimenting with, the source code -an experience that cannot easily be attempted with any commercially available DBMS.

SQL - by now firmly established as the database language - received in this present edition a far more prominent exposition. A reasonably comprehensive description and explanation of the language (largely based on Programming in SQL, Pitman 1993) with particular attention to its set-theoretical pedigree is presented;developing more complex SQL programs out of primitive expressions follows. Secondly, an overview of a programming extension is given using as an example PL/SQL -the system developed by ORACLE to support, amongst others, user-defined data types, conditional and looping structures, exception handling, functions, procedures, triggers and packages. Importantly, we have constrained the presentation of SQL to its existing software support;hence no details of constructs specific to say SQL 3 are considered.

The case study gathers all relevant solutions analyzed throughout the book and culminates in a fairly extensive model for a University Information System, partly implemented in mySQL and using Apache to illustrate the problems and solutions of developing an interface between a database system and the Internet. The choice of software tools was dictated by their free availability, their technical merits and a reasonably high popularity amongst the database developers.

Finally, the book was given a semi-interactive companion, that is its own Internet site www.theorypractice.org with references to books, software, iscussion groups, research centres and software producers. In the context of the above amendments, the structure of the book is now as follows:

  • Chapter 1 Database approach to information systems, the generic 3-level database architecture, characteristics of various database models.
  • Chapter 2 Entity-Attribute-Relationship as a technology-independent notation for logical data modelling.
  • Chapter 3 The relational data model introduced as a formal system composed of the structural, behavioural and operational parts. Properties of the model. Relational representation of EAR.
  • Chapter 4 Relational Algebra and its use for data manipulation. Implementation and optimization of algebraic expressions.
  • Chapter 5 Description of a didactic DBMS based on relational algebra. Structure, operations and an example of running the system.
  • Chapter 6 Functional dependencies, Boyce Codd Normal Form. Normalisation as mechanism for optimizing the relational structures.
  • Chapter 7 Multivalued and join dependencies and the relevant normal forms. Selected theoretical aspects of normalization.
  • Chapter 8 Structured Query Language. Data definition and manipulation. Specifying and programming update transactions.
  • Chapter 9 Object-orientation as a means for developing databases with inherently complex structures. Object relational database model.
  • Chapter 10 Procedural extensions to SQL with particular attention to non- relational retrievals and update transactions.
  • Chapter 11 Case study

We gratefully acknowledge the comments from our colleagues and students, past and present, in the School of Computing and Mathematical Sciences of Oxford Brookes University.

We feel greatly indebted to Dilys Alam and Grant Soanes, our editors at Taylor & Francis. That this book has appeared is a credit to their patience, support and encouragement. We are also very grateful for Alison Nick's sterling work as our Project Manager.

Finally, our thanks to Urszula, Lucille and Frances for them being more than forgiving of our preoccupation with writing this book. Oxford, May 2001