Let’s call identity set such subset of attributes in relation that are represent identity of a row in this relation and at the same time, when excluding any of the attribute from this identity set, the resulting set of attributes wouldn’t be identity set, i.e. in our subject area cannot simultaneously exist two rows that has matching values of all attributes that belongs to specific identity set, but they could exist if they have different value of at least one attribute.
For example, assume relation with attributes A,B,C,D and identity set {A, B}
A B C D
--------------------------
1 2 3 4
1 3 2 4
2 2 4 6
1 3 4 6
In this relation second and fourth rows have the same values (1,3) in identity set {A,B}, so that they mutually exclusive and this relation not allowed in our subject area.
Is there exist some formalized techniques to finding all ‘identity sets’ in arbitrary relation?
Per my previous comment, the thing to do is to google on “find all candidate keys”.
Here is one of the articles found.
http://csc.lsu.edu/~jianhua/fd_slide2_09.pdf