N. Rishe. Database Design: The Semantic Modeling Approach. McGraw-Hill, 1992, 528 pp, ISBN 0-07-052955-8. This server provides the book's chapters, except problems, solutions, and indices. The chapters are available in postscript and a non-graphic ASCII version. Transparency masters in postscript are also available.
Copyright (c) McGraw-Hill 1992
Should you wish to purchase a hard copy of this book, please contact McGraw-Hill Customer Service at 1(800)-822-8158.
In the following you will find the book's preface, table of contents and links to chapters.
This book is intended for present and future designers of database applications, software engineers, systems analysts, and programmers. It focuses on the fundamental knowledge needed by designers of database applications and on methodologies of structured design. With the exception of an optional chapter on implementational aspects, the book does not go into the system's internals, which are irrelevant to the application designers. The current database technology isolates its users from its internals. Therefore, in-depth understanding of internals will be important only to that small category of system designers who develop new database management systems. In contrast, most software engineers will develop or maintain database applications at one time or another.
The semantic approach
This book presents the field of database design from the perspective of semantic modeling. The focus on semantic modeling serves three purposes:
Chapter 1 introduces the fundamental aspects of databases. These aspects are described in terms of a semantic database model, the Semantic Binary Model (SBM). (In later chapters, other database models, such as the relational, network, and hierarchical models, are defined technically as subsets of the semantic model of Chapter 1.) This chapter defines and discusses the concepts of a database, a database management system (DBMS), a database schema, modeling real- world information, categorization of real-world objects, relations between objects, graphic representation of database schemas, integrity constraints, quality of database schemas, sub-schemas, userviews, database languages, services of DBMS, and multimedia databases.
Chapter 2 presents two fundamental database languages, from which most database languages can be derived with some adjustment of syntax. The first language is a fourth-generation data manipulation language. It is shown as a structured extension of Pascal. The second language is a nonprocedural language called Database Predicate Calculus. Chapter 2 defines these languages in terms of the Semantic Binary Model. Later chapters show the use of these languages in other database models.
Chapter 4 describes relational database languages. Sections 1 and 2 show examples of how the languages of Chapter 2 (the fourth-generation and the logic-based languages) apply to the relational databases. A case study in Section 1 discusses the principles of writing a transaction-processing program for an application. The optional Section 3 defines the Relational Algebra. Section 4 describes SQL, a popular commercial language related to the logic-based language of Section 2. The expressive power and the equivalence of relational languages are discussed in Section 5.
Chapter 5 begins with a case study of the design of an actual database application. Section 2 summarizes the flow of database design. Section 3 compares the methodology of this book to the older methodology of normalization.
Chapter 6 defines the Network (CODASYL) data model and adapts the top-down database design methodology to network databases. Section 3 of this chapter discusses network database languages: application of the generic fourth-generation and logic-based languages and a special navigational language for the Network Model.
Chapter 7 defines the hierarchical data model and adapts the top-down database design methodology to hierarchical databases. Section 3 of this chapter discusses hierarchical database languages: application of the generic fourth-generation and logic-based languages.
Chapter 9 discusses aspects of DBMS implementation. Section 1 describes an efficient algorithm for the implementation of semantic databases. Section 2 addresses questions of transaction handling, including the enforcement of integrity constraints, backup and recovery, and concurrency control. Section 3 addresses issues of data definition languages and data dictionaries.
Chapter 10 addresses object-oriented databases. This chapter discusses the similarities and the minor difference between the semantic and object-oriented databases and augments the Semantic Binary Model with object-oriented features related to modeling database behavior.
Chapter 11 discusses several fifth-generation languages. Sections 1 through 3 address issues of expressive power of logic-based database languages and discuss Prolog-like languages and a logic-based language which attains computational completeness. Section 4 discusses user- friendly interfaces, using the Query-By-Example language as an example.
Chapter 12 is the bibliography. Section 1 gives annotated references to papers on issues of semantic modeling addressed in this book. Section 2 is a listing of recent books on databases.
Chapter 13 contains solutions of problems. (Not available online.)
The reader who wants to obtain the definition of a database term can look it up in the index, which provides a pointer to the page on which the term is defined. On that page the user will find the term set in bold face (for easy locating), normally followed by an example. When a term has different uses or aspects in several database models, the index contains several references marked according to their use.
Prerequisites
The reader is expected to be familiar with the fundamentals of the art of programming. Knowledge of structured programming is desirable, preferably in Pascal or a similar language. No knowledge of file organization or data structures is required, except for the optional Chapter 9.
Structure of the book
The book is composed primarily of explanations of concepts and examples. The examples are offset and boxed so that the experienced reader or browser can easily skip them. The examples constitute a continuous case study of an application, for which databases are designed in different models, application programs are written in different languages, etc.
Most sections are followed by problems. Many of the problems are solved in the last chapter of this book. Page-number pointers direct the reader from the problems to their solutions. If after reading a chapter the reader fails to solve a problem marked ``Advanced'' or ``Optional,'' it does not mean a lack of understanding of the chapter but probably means that the reader has a lack of mathematical knowledge or experience, which is not prerequisite to the reading of this book.
The sections marked with an asterisk (*) contain optional advanced material and may be skipped. Optional advanced material within the regular sections is given in the footnotes.
If you are reading the ASCII version you might want to view the gif files containing a semantic schema and a relational schema of a sample University Application, which is referred to in most examples throughout the book. (A textual description of those schemas is attached to all ASCII versions.)