Path: news.f.de.plusline.net!news-fra1.dfn.de!news-stu1.dfn.de!news.germany.com!postnews.google.com!64g2000cwx.googlegroups.com!not-for-mail
From: "Mike M" <mike.m.news@googlemail.com>
Newsgroups: comp.databases.theory
Subject: Find Candiate Keys - is there a short cut?
Date: 3 Mar 2007 08:19:32 -0800
Organization: http://groups.google.com
Lines: 23
Message-ID: <1172938772.027328.258740@64g2000cwx.googlegroups.com>
NNTP-Posting-Host: 84.163.175.196
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
X-Trace: posting.google.com 1172938782 16239 127.0.0.1 (3 Mar 2007 16:19:42 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Sat, 3 Mar 2007 16:19:42 +0000 (UTC)
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2,gzip(gfe),gzip(gfe)
Complaints-To: groups-abuse@google.com
Injection-Info: 64g2000cwx.googlegroups.com; posting-host=84.163.175.196;
   posting-account=06vaSQ0AAACKDfjgxXnr5dGnja9RrJSl
Xref: news.f.de.plusline.net comp.databases.theory:42926

Hi,

I'm wondering if there is any tip or trick how to find ALL candidate
keys (CK) for a relation and its FDs, w/o using kind of "brute force"
mechanism and trying whether a certain attribute (or composites of
attributes) is CK?

Eg, if there is a relation R=ABCDEFG with following dependencies:
F={AB-->CD, DE-->AB, AC-->F, BF-->EG, E-->C, G-->H, H-->BF}

I found {A,B}, {A,G}, [A,H}, {D,E}, {D,G}, {D,H}, and {B,D,F} as CKs.
I used brute force taktic to get them, but it took me quite a while -
and if I don't want to go through all possibilities of composed
attributes of R, I'm not even sure whether this list is exhaustive (to
my knowledge...).

Sure, finding eg CK {A,B} eliminates other possibilities containing A
and B. Still, it just seems not to be the best way. Is there any
other?

Thanks for help!
Mike

