INGRES
This paper describes the conception for a book
about INGRES.
INGRES is a relational
database system(DBS), developed and marketed by Relational
Technology Inc. (RTI). RTI has been amongst the first vendors to realize the
tremendous potential for relational database systems in the UNIX world.
Combining the
advantage of being one of a
firstcomers with
a series of state-of-the-art products,
RTI has the most versatile and the
most efficient product line in the UNIX
DBS market.
As well
as under UNIX, INGRES runs in many
other different environments, including
VMS, VM/CMS, MVS/XA and DOS. INGRES database system belongs to
the Open Desktop Software from Santa Cruz Operation, which gives INGRES a great potential in the
near future.
This
book describes the latest
version of INGRES – Version 6.3 -
and is practically written. The emphasis has been
placed not on theory, but on practice.
The book is intended to serve as a supplement to the INGRES-Manuals for end
users and application programmers. In
every chapter there are numerous examples. All these examples are based upon a
small database, which is extremely
simple, but is adequate to illustrate almost all of the points made in this
book.
The book has 20 chapters and aproximately 400
pages:
1.1
Database
1.2 Relational Databases
1.3 Database Design
1.4 Database Languages SQL and
QUEL
2.1 Basic Objects
2.2 Data Types
2.3 Scalar and Set Functions
2.4 Arithmetic and Boolean Operators
3.1
Creating a Table using INGRES/MENU
3.2 Examining a Table using
INGRES/MENU
4.1
Creating a Form using VIFRED
4.2 Editing a Table using INGRES/FORMS
5.1 Creating a Basic Report
5.2 Report Writer
6.1 Querying a Table using SQL
6.2 Querying a Table using QBF
6.3 Join Definitions
7.1 Creating Database Objects
7.2 Destroying Database Objects
8.1 SELECT Statement - Basic
Form
8.2 SELECT Statement - WHERE
Clause
8.3 Simple Subqueries
8.4
SELECT Statement - GROUP BY Clause
8.5 Set Functions in SELECT
Statement
9.1 Joining Tables
9.2 Correlated Subqueries
9.3 EXISTS Operator
10.1 INSERT Statement
10.2 UPDATE Statement
10.3 DELETE Statement
11.1 Basic Catalog
11.2 Extended Catalog
11.3 Global Catalog
11.4 Querying the System Catalog
12.1 Data Definition Statements
and Views
12.2 Querying a View
12.3 Updating a View
13.1 Introduction
13.2 MODIFY Statement
13.3 Heap, Hash and Isam
13.4 Indexes
14
Authorisation and Integrity
14.1 GRANT Statement
14.2 REVOKE Statement
14.3 Data Access and Views
14.4 Integrity Statements
15.1 Introduction
15.2 Savepoints
15.3 Database Backups
16
INGRES Command Line Interface
16.1 System Commands
16.2 Environment Variables
17.1 Introduction
17.2
Embedded SQL Statements Without Cursor
17.3 Embedded SQL Statements
With Cursor
18.1 Introduction
18.2 INGRES/NET
18.3 INGRES/STAR
20.1 Introduction
20.2 Implementing an Application
using
Windows 4GL
Appendix A. QUEL Statements
Appendix B. Referential Integrity
The first
chapter discusses databases in general and relational databases in particular. The notion of normal forms and the demonstration database
are also defined in this chapter. Finally, both INGRES database languages - SQL
and QUEL - are explained in general terms.
Chapter 2
discusses all components of the SQL
language. First, we introduce the basic objects and existing data types. All functions and
operators are also described in this
chapter.
In the third
chapter we present INGRES/MENU subsystem, and use this INGRES subsystem to
create and examine the tables of the demonstration database.
The fourth chapter explains the use of INGRES/FORMS. We use the utility
VIFRED to create different forms for tables of the demonstration database.
The functions of INGRES/FORMS(editing trims and
fields etc.) are also described in this chapter.
Chapter 5 has two parts. In the first part of this chapter we create basic reports. The second
part explains the use of the Report
Writer to create more sophisticated reports.
Chapter 6 explains the use of Query-by-Forms
and gives an introduction to the usage of SQL for querying tables.
With Chapter
7 we start a new section of the book.
We describe the data definition language (DLL) with all SQL
statements belonging to it. The creation of tables using SQL statements is also
shown in this chapter.
Chapters 8 and 9 discuss the most important SQL statement -
SELECT. These chapters consider the introduction of the SELECT
statement and describe the use of simple and complex queries. Each
clause concerning SELECT is separately defined and explained with reference to
the demonstration database.
In Chapter 10 we
discuss the three SQL statements
for the updating of data - INSERT, UPDATE and DELETE. Each of these three
statements is explained using numerous examples.
Chapter 11 discusses the
different parts of
the INGRES system catalog. All system tables belonging to the
Basic Catalog are explained and examples concerning querying these tables are
given. The other two parts of system catalog - the Extended
Catalog and the Global Catalog are described in general terms.
In Chapter 12 we introduce views and describe all SQL statements
concerning them. At the end of this chapter we discuss the existing
restrictions to update a view.
INGRES supports many different possibilities to store
database objects in memory. All these
possibilities are discussed in Chapter
13. The MODIFY statement, which converts the storage structure of a table or index is also explained in this chapter.
In Chapter
14 we discuss two important issues that
must be addressed when implementing a database system. The first –
database authorization - includes two
SQL statements - GRANT and REVOKE -
which provide the security of
portions of a database against unauthorized access. The use
of a view for the same purpose is
also explained. The
second issue - integrity - explains the possibility of keeping INGRES databases in a consistent
state with respect to the constraints specified in the database.
Chapter 15 describes
the concept of a transaction and the
SQL statements, which control the
transaction: SET AUTOCOMMIT,
COMMIT, ROLLBACK and SAVEPOINT. In the second part of this chapter we discuss the INGRES utilities
used in the recovery from failures.
Chapter 16
first introduces the
operating system commands which can
be used to
start INGRES Terminal Monitors, database utilities and other subsystems. In the
second part of this chapter we describe
numerous environment variables, which are
used by INGRES to influence
the behaviour of
different INGRES products.
In Chapter
17 we discuss Embedded SQL (ESQL) and explain the difference between Interactive and Embedded SQL. As a host language we use
the programming language C. All
examples in this chapter
are programmed with
reference to the
demonstration database.
Chapter 18 introduces the distributed
databases and two INGRES products concerning them - INGRES/NET and INGRES/STAR. We show in this chapter the architecture and the
functionality of both of these products.
Chapter 19
is continuation of the previous chapter. It describes another INGRES
product concerning distributed databases - Gateway. We explain the concept of
Gateway and the access to it.
The last
chapter, Chapter 20,
introduces the newest product from INGRES product line - INGRES/Windows 4GL.
Based on an application program we explain the
use and functions of Windows 4GL.
As far the author knows, two other books exist
in English concerning INGRES:
- Stonebraker, M. (ed.) - The INGRES Papers,
Addison
Wesley, 1986.
- Date, C.J. – A Guide to INGRES, Addison
Wesley,
1987.
The emphasis of the book "The INGRES
Papers" is on theory, and not on
practice. This book describes the design and construction
of INGRES and is therefore intended to serve as a textbook for database
researchers.
The main
drawback of the second book "A Guide to INGRES" is that it concentrate on the database
language QUEL. In the last 5 years
(the book was written in 1986) SQL has
become the most important database language, but this language is handled only
marginally in the book.