Information Processing Letters 16 (1983) 13- 19 North-Holland Publishing Company 24 January 1983 ARMSTRONG DATABASES FOR FUNCTIONAL AND INCLUSION DEPENDENCIES Ronald FAGIN IBM Research Laboratory, San Jose, CA 95193, U.S.A. Moshe Y. VARDI * Stanford Unmersity, Stanford, CA 94305, U.S.A Communicated by Ken C. Sevcik Received 17 June 1982 Revised 17 September 1982 An Armstrong database is a database that obeys precisely a given set of sentences (and their logical consequences) and no other sentences of a given type. It is shown that if the sentences of interest are inclusion dependencies and standard functional dependencies (functional dependencies for which the left-hand side is nonempty), then there is always an Armstrong database for each set of sentences. (An example of an inclusion dependency is the sentence that says that every MANAGER is an EMPLOYEE.) If, however, the sentences of interest are inclusion dependencies and unrestricted functional dependencies, then there need not exist an Armstrong database. This result holds even if we allow only ‘full’ inclusion dependencies. Thus. a fairly sharp line is drawn, in a case of interest, as to when an Armstrong database must exist. These results hold whether we restrict our attention to finite databases (databases with a finite number of tuples), or whether we allow unrestricted databases. Keywords: Armstrong relation, Armstrong database, relational database, functional dependency, inclusion dependency, direct product, faithfulness, logical consequence, mathematical logic zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON 1. Introduction The concept of Armstrong databases (and, as a special case, Armstrong relations) is relatively new, although a number of papers have now dealt with them explicitly [4,13,14,15,16,17,18,22,26,28]. A survey paper [14] about history and results on Armstrong databases has recently appeared. Let us begin by discussing Armstrong relations, which are a special case (where the database con- sists of a single relation). For simplicity, we further restrict our attention initially by considering only functional dependencies or FD’s [I I]. The defini- tion of FD’s (along with some other definitions) appears in Section 2. Let Z be a set of sentences, such as FD’s, and * Research supported by a Weizmann Post-doctoral Fellow- ship, Fulbright Award and NSF Grant MCS-80-12907. let u be a single sentence. When we say that I: logically implies (I or the 0 is a logical consequence of Z, we mean that whenever every sentence in Z holds for a relation r, then also u holds for r. That is, there is no ‘counterexample relation’ or ‘wit- ness’ r such that every sentence in Z holds for r, but such that (J fails in r. We write Z I= u to mean that Z logically implies u (and we write Z # u to mean that Z does not logically imply u). For example, {A-B, B+C} k A+C. Let Z be a set of FD’s, and let 8* be the set of all FD’s that are logical consequences of Z. For each FD u not in Z*, we know (by definition of k) that there is a relation r0 (a witness) such that r0 obeys Z but not u. An Armstrong relation for Z is a relation (a global witness) that can simultaneously serve the role of all of the r,‘s. That is, an 0020-O 190/83/0000-0000/$03.00 0 1983 North-Holland 13