Complexity of Dependencies in Bounded Domains, Armstrong Codes, and Generalizations
Yeow Meng Chee, Hui Zhang, and Xiande Zhang

TL;DR
This paper investigates the maximum lengths of Armstrong codes related to dependency complexities in bounded domain databases, proving a key formula, disproving a conjecture, and introducing generalized codes with new bounds.
Contribution
It determines the maximum length for certain Armstrong codes, disproves a prior conjecture, and introduces generalized Armstrong codes with new bounds.
Findings
Exact formula for $f(q,3)$ for all $q \\geq 5$ with three exceptions
Disproof of Sali's conjecture on Armstrong codes
Construction of new classes of optimal generalized Armstrong codes
Abstract
The study of Armstrong codes is motivated by the problem of understanding complexities of dependencies in relational database systems, where attributes have bounded domains. A -Armstrong code is a -ary code of length with minimum Hamming distance , and for any set of coordinates there exist two codewords that agree exactly there. Let be the maximum for which such a code exists. In this paper, is determined for all with three possible exceptions. This disproves a conjecture of Sali. Further, we introduce generalized Armstrong codes for branching, or -dependencies, construct several classes of optimal Armstrong codes and establish lower bounds for the maximum length in this more general setting.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
Topicsgraph theory and CDMA systems · Algorithms and Data Compression · Coding theory and cryptography
Complexity of Dependencies in Bounded Domains,
Armstrong Codes, and Generalizations
Yeow Meng Chee, Hui Zhang, and Xiande Zhang Research of the authors was supported in part by the Singapore National Research Foundation under Research Grant NRF- CRP2-2007-03.Yeow Meng Chee, Hui Zhang and Xiande Zhang are with the School of Physical and Mathematical Sciences, Nanyang Technological University, 21 Nanyang Link, Singapore 637371, Singapore (email: {ymchee, huizhang, xiandezhang}@ntu.edu.sg).This paper was presented in part at the 2013 IEEE International Symposium on Information Theory [8].Copyright (c) 2014 IEEE. Personal use of this material is permitted. However, permission to use this material for any other purposes must be obtained from the IEEE by sending a request to [email protected].
Abstract
The study of Armstrong codes is motivated by the problem of understanding complexities of dependencies in relational database systems, where attributes have bounded domains. A -Armstrong code is a -ary code of length with minimum Hamming distance , and for any set of coordinates there exist two codewords that agree exactly there. Let be the maximum for which such a code exists. In this paper, is determined for all with three possible exceptions. This disproves a conjecture of Sali. Further, we introduce generalized Armstrong codes for branching, or -dependencies, construct several classes of optimal Armstrong codes and establish lower bounds for the maximum length in this more general setting.
Index Terms:
relational database, Armstrong codes, functional dependency, extorthogonal double covers
I Introduction
Let be a set of attributes. Each attribute is associated with a set , called its domain. A relation is a finite set of -tuples (called data items), such that . A relational database table is an array where each column is indexed by an attribute and each row corresponds to a data item in . We denote this table by . More specifically, if , then the cell in with row index and column index has entry . A relational database is a set of tables, where different tables may be defined over different attribute sets.
For a given table and , the -value of a data item in is the -tuple . Let and for a given table . We say that (functionally) depends on , written , if no two rows of agree in but differ in . In other words, if the -value of a data item is known, then its -value can be determined with certainty. A key for is a subset , such that for all . A key is called minimal if no subset of is a key.
Identifying functional dependencies, especially key dependencies, is important in relational database design [3, 5, 4, 22]. From the schema design point of view, the question of whether a given collection of functional dependencies has an Armstrong instance for , that is, a table that satisfies a functional dependency if and only if is implied by , is well studied. The existence of an Armstrong instance for any given set of functional dependencies was proved by Armstrong [3] and Demetrovics [9]. Further investigations (see for example, [11]) concentrated on the minimum size of an Armstrong instance, since it is a good measure of the complexity of a set of functional dependencies, or a set of minimal keys.
Earlier work on Armstrong instances were mostly studied by assuming that the domain of each attribute is countably infinite. Recently, the study of higher order data model in [18, 23] considered the question of Armstrong instances with bounded domains. Another reason for considering bounded domains is that for many attributes, their domains are well defined finite sets. For example, the age of a person can take values from the set .
Thalheim [27] investigated the maximum number of minimal keys in the case of bounded domains and showed that restrictions on the sizes of domains make significant differences. It is natural to ask what one can say about Armstrong instances if all attributes have domains restricted to size . Let denote the collection of all -subsets of an -element attribute set .
Definition 1**.**
Let be integers. Let denote the maximum such that there exists an Armstrong instance for being the system of minimal keys.
The problem of determining was introduced in [25] and investigated in [21, 26]. The only known values of are , which were determined in [21].
One of the main contributions of this paper is the determination of . We prove that for all , except possibly for . This disproves a conjecture of Sali [24].
When functional dependencies are not known, the concept was generalized to -dependencies to improve storage efficiency [11, 12, 13, 20]. In this paper, we introduce the analogous problem of determining when extended to -dependencies, that is the function (see Section IV for detailed definition). We show that , and establish several lower bounds of by constructive method and probabilistic method.
II Preliminaries
Throughout this paper, we view an Armstrong instance with domains of size as a -ary code of length and size , where the codewords are precisely the rows of the instance.
For a positive integer , denotes the set of integers and denotes the ring of integers modulo . For any subset , let and .
II-A Armstrong Codes
Katona et al. [21] characterized the -ary code corresponding to an Armstrong instance with as the set of minimal keys, as follows:
- (i)
has minimum Hamming distance at least ; 2. (ii)
for any set of coordinates there exist two codewords agreeing in exactly those coordinates.
A -set of coordinates can be considered as a “direction”, so in the minimum distance is attained in all directions. Such a code is called an Armstrong code, or more precisely, a -Armstrong code. It is obvious that is the maximum such that there exists a -Armstrong code. The following bounds on are known.
Theorem 1** (Blokhuis et al. [6], Katona et al. [21], Sali and Székely [26]).**
- (i)
*Let . Then for all sufficiently large . * 2. (ii)
* for all . Further, there exists a constant such that for all sufficiently large . * 3. (iii)
Let and . Then
[TABLE] 4. (iv)
If and , then the bound (1) can be improved to , except when . 5. (v)
For fixed , we have
[TABLE]
for all sufficiently large .
Proposition 1** (Katona et al. [21]).**
For , .
II-B Orthogonal Double Covers
The concept of orthogonal double covers originates in conjectures of Demetrovics et al. [10] concerning database constraints and was formalized later by Ganter et al. [15]. Let be a finite set. A partition of is said to cover if is contained in some part of the partition. Let denote a complete graph on vertices. For convenience, let denote the disjoint union of copies of , .
Definition 2**.**
Let be a set of size . A set of partitions of is called an orthogonal double cover (ODC) of (with its vertices identified with elements of ) if it satisfies the following properties:
- (i)
for any two partitions, there is exactly one 2-subset of that is covered by both partitions; 2. (ii)
each 2-subset of is covered by exactly two different partitions.
A construction of -Armstrong codes from ODC’s was introduced by Sali in [24]. View each part of a partition of as a complete subgraph of over . Then each partition can be regarded as a disjoint union of complete subgraphs of . Note that a part of size one corresponds to a complete subgraph consisting of only one isolated vertex. If an ODC consists of partitions, each of which is isomorphic to a graph , then we say the ODC is an ODC by ’s. Suppose that is a disjoint union of complete subgraphs, then an ODC of by ’s gives an Armstrong instance over as follows. For each partition of the ODC, arbitrarily order the parts, and construct a column of length , with coordinates indexed by elements of , such that for , if and only if is contained in the -th part of the partition. It is easy to check that the set of rows of this Armstrong instance is a -Armstrong code.
Example 1**.**
In [10], there is an ODC of by seven ’s over with each partition , consisting of three parts , and . Then a -Armstrong code is constructed as below.
[TABLE]
Ganter and Gronau [14] proved that for , there exists an ODC of by ’s, settling a conjecture of Demetrovics et al. [10]. This result also implies the existence of a -Armstrong code. Hence, we have . Furthermore, it is easy to show that . This led Sali [24] to make the following conjecture.
Conjecture 1** (Sali [24]).**
For all , .
Unfortunately, this conjecture is false. When , an ODC of by ’s has been constructed by Gronau et al. [17]. This gives a -Armstrong code and hence . Thus, Conjecture 1 is false for all odd . One of the primary aims of this paper is to prove that Conjecture 1 is also false for even . In fact, we determine that for all , with three possible exceptions.
III -Armstrong Codes
We prove by showing the existence of -Armstrong codes. Our proof is constructive and uses techniques from combinatorial design theory. We briefly review some required concepts below.
III-A Combinatorial Designs
A set system is a pair , where is a finite set of points and . Elements of are called blocks. The order of is the number of points in , and the size of is the number of blocks in . Let be a set of positive integers. A set system is -uniform if for all . A parallel class of a set system is a set that partitions . A resolvable set system is a set system whose set of blocks can be partitioned into parallel classes.
Definition 3**.**
A triple system TS is a -uniform set system of order such that every -subset of is contained in exactly blocks of .
Definition 4**.**
Let be a set system and let be a partition of into subsets, called groups. The triple is a group divisible design (GDD) when every 2-subset of not contained in a group is contained in exactly one block, and for all and .
We denote a GDD by -GDD if is -uniform. The type of a GDD is the multiset . When more convenient, the exponential notation is used to describe the type of a GDD: a GDD of type is a GDD where there are exactly groups of size , . The following results are known (see, for example, [1, 16]).
Theorem 2**.**
- (i)
A resolvable TS* exists if and only if and .* 2. (ii)
There exists a -GDD of type for each , and with , except for and possibly except for .
III-B Extorthogonal Double Covers
A suborthogonal double cover (subODC) is a collection of partitions of similar to an ODC except that for any two partitions there is at most one 2-subset of covered by both partitions. SubODCs were first studied by Hartmann and Schumacher [19], who considered them as generalized ODCs under circumstances when ODCs do not exist. Here, we consider another generalization, called extorthogonal double covers (extODC). These are similar to ODCs, except that for any two partitions there is at least one 2-subset of covered by both partitions. We construct -Armstrong codes from a special class of extODCs of by ’s.
Proposition 2**.**
If there exists an extODC of by ’s, then .
Proof.
By considering 2-subsets, the number of partitions in an extODC of by ’s is easily seen to be . For each partition, arbitrarily order the parts. Define a -ary array by indexing each column by a partition and each row by a point of the extODC. For each partition, the corresponding column has the symbol in the rows indexed by the points in the th part. The set of rows in this array is a -Armstrong code, by the definition of an extODC. This, together with Proposition 1, implies that . ∎
It is easy to see that an extODC of by ’s is a resolvable TS with the additional property that every two parallel classes cover a common 2-subset. Although is known for odd , it is still interesting to know when extODCs of , odd, can exist. We have the following result for , odd.
Proposition 3**.**
There exists an extODC of by ’s, for all odd .
Proof.
Let . Starting from a -GDD of type , whose existence is guaranteed by Theorem 2, we construct an extODC of over from . For each , let . Then is a partition of . We claim that is an extODC of .
Indeed, for any two partitions, say and , both of which cover if are in the same group, and cover if are in distinct groups. For each pair , if for some , then is covered by two partitions , ; if are in distinct groups, then there exists exactly one block such that , while is covered by two partitions , . Hence, is an extODC. ∎
We now construct extODCs of , where is even. Define a base partition of order , which is a partition of into triples with the following two properties:
- (i)
. 2. (ii)
, where .
Here we use angled brackets for multisets. For each , let . Then , are partitions of , which forms an extODC of . The first property ensures that each pair occurs exactly twice, while the second ensures that any two partitions cover at least one common 2-subset.
Proposition 4**.**
There exists an extODC of by ’s, for .
Proof.
The base partitions for extODC of , for , are given in Table I.
∎
Proposition 5**.**
There exists an extODC of by ’s, for all even , .
Proof.
Let . There exists a -GDD of type by Theorem 2. We construct an extODC of (on ) from . Let be the long group in of size . By Proposition 4, there exists an extODC of (on ) by ’s over . Let the set of partitions be . For each , let . For each , let . There are ’s in total and each is a partition of . We claim that the set of all ’s is an extODC.
Indeed, for any two partitions and , they both cover if are in the same group of size ; cover a common 2-subset if since and have a common 2-subset, and both cover if are in distinct groups. For each pair , if for some , then is covered in two partitions , . If , then is covered by both and , where is contained in and . If are in distinct groups, then there exists exactly one block such that , while occurs in , . Hence, is an extODC of . ∎
Combining Propositions 2, 3 and 5, we give the main result of this section.
Theorem 3**.**
For all and , there exists an extODC of by ’s, and consequently .
Before closing this section, we estimate the values of for and .
Proposition 6**.**
* and .*
Proof.
For , we have . Suppose that is a -Armstrong code of size . We consider the total number of pairs of equal entries in the same coordinates of . In any pair of codewords of at most two coordinates can have equal entries because the minimum distance of is six. Hence, . By the defining condition (ii) of Armstrong codes, for each pair of coordinates there is at least one pair of codewords agreeing in exactly those coordinates. Further, for different pairs of coordinates, the pairs of codewords are different, i.e., the pairs of equal entries are all different. Thus and then . However, since is also a ternary code of distance six, we have [7]. Now we claim that either or is impossible, hence does not exist. Consider as an array. When or , each column has at least or pairs of equal entries, respectively, which is achieved when the three symbols occur almost the same frequency. Since the total number of such pairs in is at most if or if , there are exactly or such pairs in each column when or , respectively. When , is equivalent to an ODC of by eight ’s, which does not exist by [14]. When , is equivalent to an extODC of by eight ’s, which could be excluded easily by computer search. So we conclude that . An optimal code exists by Example 1.
For , we have . A -Armstrong code exists by the existence of an ODC of by ten ’s [14]. ∎
IV Generalized Armstrong Codes
The concept of functional dependencies was generalized by Demetrovics, Katona, and Sali [11].
Definition 5**.**
Let and for a given table . Then for positive integers , we say that -depends on , written , if there do not exist data items (rows) of such that
- (i)
for each , and 2. (ii)
.
Our usual concept of functional dependency is equivalent to the special case of -dependency. When functional dependencies are not known, -dependencies identified in a relational database can still be exploited for improving storage efficiency [11, 12, 13, 20].
Given , an -dependent key is a subset of the attribute set , such that satisfies -dependencies for all . A key is called minimal if no subset of is an -dependent key. Here, we generalize Armstrong codes from functional dependencies into -dependencies.
A -ary code is called a -Armstrong code if
- (i)
for any rows of , there exist at most columns such that each column has at most distinct elements in the rows, and 2. (ii)
for any columns of , there exist rows such that each of the columns has at most distinct elements in the rows. Further, there exists a column having exactly distinct elements in these rows.
Consider the Armstrong code defined above as an Armstrong instance with attributes. The first property in the definition makes sure each -subset of is an -dependent key, while the second property ensures that each key is minimal. It is clear that we need and for a -Armstrong code to be meaningful. Note that a -Armstrong code is just a -Armstrong code.
Definition 6**.**
Let and . Then denotes the maximum such that there exists a -Armstrong code.
As with the Armstrong codes for functional dependencies [21], we have the following restrictions on -Armstrong codes. Let be the least number of submultisets of size with at most distinct elements, where ranges over all multisets of size over .
Proposition 7**.**
Let be a -Armstrong code and let . Then and .
Proof.
Let be a set of columns of . By condition (ii), there exists a set of rows such that each column of has at most distinct elements in . By the first defining condition (i) of a -Armstrong code, is distinct for distinct . The first inequality then follows. The second inequality holds by the definition of and the defining condition (i). ∎
As in [21], the two inequalities in Proposition 7 can give two upper bounds of , where one is obviously increasing in and the other could be proved to be decreasing in . Thus there is a universal upper bound of at certain where the two upper bounds intersect. However, it is impossible to give an explicit universal upper bound in most cases. We will use this method to explore values of for some special cases.
IV-A The Case and
Proposition 8**.**
When and , we have
[TABLE]
where , with .
Proof.
Similar to the proof in [21, Lemma 3.2], let and be the number of two distinct symbols in , where is a multiset of size over . The inequality follows by the fact that for all and satisfying . ∎
Proposition 9**.**
The function is decreasing in , where and are functions of such that with .
Proof.
We prove that in two cases. When , . We have to verify that
[TABLE]
After carrying out the obvious cancelations, this leads to which is trivially true. When , , it is easy to check that
[TABLE]
i.e., . ∎
Proposition 10**.**
.
Proof.
By Proposition 7, we have and , where , with . Since is increasing in and is decreasing in by Proposition 9, the upper bound is the universal upper bound obtained by setting (i.e., and ) where the two upper bounds intersect. The lower bound is given by construction. Construct a array as follows. For each column, we have exactly one subset of rows with equal symbols and all other symbols occurring exactly times. We do so such that each column has a distinct subset of rows with equal symbols. It is clear that this array satisfies the first property of a -Armstrong code.
For the second property, any column of the array has rows with equal symbols. Now for these rows, we need a column having distinct symbols in these rows. The above array does not have this property obviously. However, we can slightly rearrange the symbols occurring times in each column to satisfy this property. We do it as follows. Let each column be indexed by the -subset of rows which have equal symbols. Let denote the set of all the indices and be a copy of . Define a bipartite graph with two parts and , two -subsets are adjacent if and only if they intersect at most one common symbol. This is a regular bipartite graph, thus it has a perfect matching . Now for each edge , where and , rearrange the symbols occurring times in the column , such that symbols in the rows of are all distinct. We can do this since . This rearrangement will guarantee that for each rows there is a column having equal symbols and simultaneously a column having distinct symbols. ∎
IV-B The Case and
Proposition 11**.**
When and , we have , where
[TABLE]
Here and are functions of such that , with .
Proof.
Let and be the number of two distinct symbols in , where is a multiset of size over . The inequality follows by the fact that for all and satisfying . ∎
Proposition 12**.**
The function is decreasing in , where is defined above.
Proof.
As in the proof of Proposition 9, we first verify when and that
[TABLE]
Here . Since there are a large amount of computation, we use Maple to do the cancelations. This leads to which is true since . If , then , and
[TABLE]
We can also check by Maple that
[TABLE]
i.e., . ∎
When , we have and by Propositions 7 and 11. Since is decreasing by Proposition 12, we know that the universal upper bound is when . The solution is , which is achieved when and . Hence, we have the following upper bound for .
Proposition 13**.**
.
Next, we will give a construction of an Armstrong instance of columns over symbols for being the system of minimal -dependent keys. The construction is based on the classical near -factorization of complete graphs.
Let and be a complete graph with vertex set . For each , take
[TABLE]
where the addition is in . Then is a near -factorization of . Each is a near -factor which misses the point . The following fact is necessary for the construction of Armstrong code.
Proposition 14**.**
*Let . For any distinct , , , there exist three points , , , such that , and . *
Proof.
First note the fact that for each , an edge belongs to if and only if . Suppose for some . Then and form a path from the vertex to as follows.
[TABLE]
The last vertex is since . Note that the edges in are from and in turn and the length of is . Let be the set of edges by joining two vertices in of distance two. We claim that for any .
By the observation at the beginning, we only need to prove that there exists an edge in such that . Let . By the form of , we have . It is easy to check that elements in are all different, i.e., . Further, since and . Also, since for all and for all . Hence, , or for any , . This completes the proof. ∎
Proposition 15**.**
There exists a -Armstrong code for each .
Proof.
Let . We construct an array over as follows.
The columns of are indexed by (), while the rows are indexed by the vertices of , i.e., . In each column, say column indexed by , arbitrarily order the edges of , assign symbols in to this column, such that for each row , symbol is assigned if and only if is incident to the -th edge of ; for row , symbol is assigned to the column.
We claim that is a -Armstrong code. For each three rows of , we choose three columns , such that , and . Then these three columns have exactly two distinct symbols in rows . For any three columns , by Proposition 14, we have three rows such that , and , i.e., at most two distinct elements in these three rows. Further, since is a near -factorization, no pairs from occur in any with . That is for any other column , there are exactly three different elements in rows . Thus we prove the claim.∎
Here is an example of applying Proposition 15 to a near -factorization of .
Example 2**.**
For , we can get a near -factorization of as follows:
[TABLE]
Then a -Armstrong code is constructed as below.
[TABLE]
Combining Propositions 13 and 15, we determine the value of .
Theorem 4**.**
* for all integers .*
V Lower Bounds for
Since each -Armstrong code is trivially a -Armstrong code, , the problem of estimating values of seems more important. In this section, we focus on exploring lower bounds for when .
V-A A Construction from Reed-Solomon Codes
In this subsection, we assume that is a prime power. Let be a finite field with elements . For each polynomial , let denote the coefficient of in . A Reed-Solomon code over of length is constructed as follows.
[TABLE]
Proposition 16**.**
The code is a -Armstrong code for any . Thus for and a prime power.
Proof.
We prove it by definition of Armstrong code. View as a array with columns indexed by and rows indexed by polynomials in . Since , any coordinates determine a unique polynomial . Hence, any two codewords agree in at most positions, which means that the first condition of the definition holds. As for the second condition, choose any columns, say and any elements in , then there are exactly polynomials , such that , . Since any two codewords agree at most positions, then any columns outside have exactly distinct elements in the rows , . ∎
V-B An Existence Result Using the Probabilistic Method
In this subsection, we will give a lower bound for by using a similar probabilistic method as in [26]. First, we construct a random -ary code of length and size as follows.
For each subset of positions , choose a set of codewords randomly such that they pairwise agree exactly at the positions in . That is, in each position in , a random symbol is chosen with probability and assigned to this position for all codewords in . In each position out of , distinct symbols are randomly chosen and assigned to the rows. The choices are pairwise independent for distinct positions. Let . Then the choice of makes it satisfy the second property of a -Armstrong code. Next, we will prove that also satisfies the first property with positive probability under certain conditions.
Consider events , where and are -subsets of coordinate positions, that the two codewords agree in at least coordinates. Two such events and are independent if . If for any two distinct -subsets , and any pair , event doesn’t happen, then satisfies the first condition, i.e. is a -Armstrong code.
Define the dependency graph by being the set of events , and and are connected by an edge if and only if . Thus the degree of in the dependency graph is . On the other hand,
[TABLE]
By the well-known Chernoff bound,
[TABLE]
when .
Now, we will apply the following famous Lovász’ Local Lemma to give a lower bound for .
Lemma 1** ([2]).**
Let be events in an arbitrary probability space. Suppose that each event is mutually independent of a set of all the other events but at most , and that for all . If , then .
By Lemma 1, if
[TABLE]
then
[TABLE]
which means that a -Armstrong code exists with positive probability.
Assuming , (2) follows from
[TABLE]
Since , it is enough to show that
[TABLE]
Writing , we have
[TABLE]
It is clear that (3) is true when .
Proposition 17**.**
Assume that and are integers satisfying . Then a -Armstrong code exists for , i.e.,
[TABLE]
Proof.
The condition implies that and , which completes the proof by combining above analysis. ∎
VI Conclusion
We investigated the maximum number of minimal keys in relational database systems with attributes having bounded domains via the study of Armstrong codes. We showed that the maximum length for which a -Armstrong code can exist is for all with three possible exceptions, disproving a conjecture of Sali.
Our determination of involves introducing the new concept of extorthogonal double covers (extODC), a generalization of orthogonal double covers with property that any two partitions cover at least one common -subset. This new combinatorial design is interesting not only in database theory, but also in design theory. Similar to ODCs, there are several directions for the study of extODCs. For example, each partition could be extended to any spanning subgraph, or consider similar properties for hypergraphs.
Further, we generalized Armstrong codes to the case of -dependencies. The maximum length for which a -Armstrong code can exist seems to be quite difficult to determine. Classes of optimal Armstrong codes of this type are constructed. Several lower bounds of are also established.
VII Acknowledgement
The authors would like to thank Professor Tuvi Etzion for pointing out the construction from Reed-Solomon codes. The authors are also grateful to the anonymous referees and Professor Dr. Navin Kashyap for their invaluable and constructive comments and suggestions which have greatly improved the presentation of this paper and make this paper more readable.
The reference list from the paper itself. Each links out to its DOI / PubMed record.
- 1[1] R. J. R. Abel, G. Ge, and J. Yin, “Resolvable and near-resolvable designs,” in The CRC Handbook of Combinatorial Designs , 2nd ed., C. J. Colbourn and J. H. Dinitz, Eds.. Boca Raton: CRC Press, 2007, pp. 124–134.
- 2[2] N. Alon and J. Spencer, The Probabilistic Method , 3rd ed.. New Jersey: Wiley, 2008.
- 3[3] W. W. Armstrong, “Dependency structures of data base relationships,” in Proc. IFIP Congress , North-Holland, 1974, pp. 580–583.
- 4[4] C. Beeri, R. Fagin, and J. H. Howard, “A complete axiomatization for functional and multivalued dependencies in database relations,” in Proceedings of the 1977 ACM SIGMOD International Conference on Management of Data , 1977, pp. 47–61.
- 5[5] P. A. Bernstein, “Synthesizing third normal form relations from functional dependencies,” ACM Trans. Database Syst. , vol. 1, no. 4, pp. 277–298, 1976.
- 6[6] A. Blokhuis, A. Brouwer, and A. Sali, “Note on the size of binary armstrong codes,” Designs, Codes and Cryptography , vol. 71, no. 1, pp. 1–4, 2014.
- 7[7] A. Brouwer, H.O. Hamalainen, P.R.J. Ostergard, and N. Sloane, “Bounds on mixed binary/ternary codes,” IEEE Trans. Inf. Theory , vol. 44, no. 1, pp. 140–161, 1998.
- 8[8] Y.M. Chee, H. Zhang, and X. Zhang, “Complexity of dependencies in bounded domains, Armstrong codes, and generalizations,” in Proc. IEEE Int. Symp. Inf. Theory , Istanbul, Turkey, Jul. 2013, pp. 499–503.
