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