[comp.databases] Integrities -- referential AND OTHERWISE

dennism@menace.rtech.COM (Dennis Moore (x2435, 1080-276) INGRES/teamwork) (08/01/89)

As Rob says, referential integrity implies that the DBMS does not allow
the user to violate a particular kind of rule: that a primary key (for
instance) must exist in one table for each foreign key in another table.
Of course, there are many rule types and integrity types other than this.
No vendor supplies all types with all invocations, but some of us listen
to our customers and will release new features as they are developed.

	- Referential integrity -- as above.
	- Semantic integrity -- a user is prevented from completing a query
	that makes no sense.  Example: select name_of_person, name_of_product
	from people, products where name_of_person = name_of_product;
	The domain of name_of_person is all names of people; the domain of
	name_of_product is all names of products.  Does it make sense to
	query for the names of all people which are also names of products?
	It is possible to set up a database where this does not make sense,
	and therefore it is desirable to prevent this query.
	- Business Rules integrity -- such as "average salary increases must
	be less than 7.5%"

There are many general classes of integrities, and these are just a few.
All are available in INGRES through database procedures TODAY.

For a further discussion of integrities, see the (seminal) Date book, "An
Introduction to Database Systems, Volume 1."  In my copy (4th ed.), Chapter
19 is "Security and Integrity," although there are some references to other
chapters.

I highly recommend that anyone interested in the subject, or the general
subject of databases, read this book.

-- Dennis Moore
Manager, INGRES/teamwork Product Development