efficient way to get a sufficient set of identifying attributes

Robin Becker robin at reportlab.com
Fri Oct 20 04:32:27 EDT 2017


On 19/10/2017 17:50, Stefan Ram wrote:
> Robin Becker <robin at reportlab.com> writes:
>> .......
>> this sort of makes sense for single attributes, but ignores the possibility of
>> combining the attributes to make the checks more discerning.
> 
>    What I wrote also applies to compound attributes
>    (sets of base attributes).
> 
>    When there are n base attributes, one can form 2^n-1
>    compound attributes from them, or 2^n-1-n proper compound
>    attributes. Therefore, a combinatoric explosion might impede
>    the brute-force approach. A heuristics might start to
>    explore combinations of keys with the best s/l ratio first
>    and/or use preferences for certain fields set by a human.
> 

all good

>    In database design, the keys are usually chosen by a
>    human database designer using world knowledge. It sounds
>    as if you want to have the computer make such a choice
>    using only the information in the table as knowledge.

I think I am tending towards the chosen by real world knowledge approach :(


>    Your "identifying attributes" are called "super keys"
>    in database science. You probably want minimal
>    identifying attribute sets (without unneeded attributes),
>    which are called "candidate keys".
> 

thanks for this and the reference below.


>    So, now you can find and read literature, such as:
> 
> Journal of Al-Nahrain University
> Vol.13 (2), June, 2010, pp.247-255
> Science
> 247
> Automatic Discovery Of Candidate In The Relational
>      Databases Keys By Using Attributes Sets Closure
> Yasmeen F. Al-ward
> Department of Computer Science, College of Science,
> Al-Nahrain University.
> 
>    (The title was copied by me as found, the contents is
>    in the web and makes more sense than the title.)
> 


-- 
Robin Becker




More information about the Python-list mailing list