Download free books at BookBooN.com
An Introduction to Relational Database Theory
10
Preface
Preface
This book introduces you to the theory of relational databases, focusing on the application of that theory to
the design of computer languages that properly embrace it. The book is intended for those studying
relational databases as part of a degree course in Information Technology (IT). Relational database
theory, originally proposed by Edgar F. Codd in 1969, is a topic in Computer Science. Codd’s seminal
paper (1970) was entitled A Relational Model of Data for Large Shared Data Banks (reference [5] in
Appendix B).
An introductory course on relational databases offered by a university’s Computer Science (or similarly
named) department is typically broadly divided into a theory component and what we might call an
“industrial” component. The “industrial” component typically teaches the language, SQL (Structured
Query Language
i
), that is widely used in the industry for database purposes, and it might also teach other
topics of current significance in the industry. Although this book is only about the theory, I hope it will be
interesting and helpful to you even if your course’s main thrust is industrial.
The book is directly based on a course of nine lectures delivered annually to undergraduates at the
University of Warwick, England, as part of a 14-lecture module entitled Fundamentals of Relational
Databases. The remaining five lectures of that module are on SQL. We encourage our students to
compare and contrast SQL with what they have learned in the theory part. We explain that study of the
theory, and an example of a computer language based on that theory, should:
x enable them to understand the technology that is based on it, and how to use that technology (even
if it is only loosely based on the theory, as is the case with SQL systems);
x provide a basis for evaluating and criticizing the current state of the art;
x illustrate of some of the generally accepted principles of good computer language design;
x equip those who might be motivated in their future careers to bring about change for the better in
the database industry.
Examples and exercises in this book all use a language, Tutorial D, invented by the author and C.J. Date
for the express purpose of teaching the subject matter at hand. Implementations of Tutorial D, which is
described in reference [11], are available as free software on the Web. The one we use at the University of
Warwick is called Rel, made by Dave Voorhis of the University of Derby. Rel is freely available at
http://dbappbuilder.sourceforge.net/Rel.html. At the time of writing Rel supports the whole of Tutorial D,
apart from certain features that are in any case beyond the scope of this book.
The book consists of eight chapters and two appendixes, as follows.
Chapter 1, Introduction, is based on my first lecture and gives a broad overview of what a database is,
what a relational database is, what a database management system (DBMS) is, what a DBMS is expected
to do, and how a relational DBMS does those things.