Database 查找函数依赖项和候选键

Database 查找函数依赖项和候选键,database,database-normalization,functional-dependencies,candidate-key,Database,Database Normalization,Functional Dependencies,Candidate Key,在下面的关系X中,p、Q、R、S、T和U是关系的属性。 查找功能依赖项和候选键 Relation X +---+---+---+---+---+---+ | P | Q | R | S | T | U | +---+---+---+---+---+---+ | p | c | e | i | k | v | | p | d | f | j | k | w | | p | d | g | j | n | y | | p | d | g | i | n | z | | q | d | f | i |

在下面的关系X中,p、Q、R、S、T和U是关系的属性。 查找功能依赖项和候选键

Relation X +---+---+---+---+---+---+ | P | Q | R | S | T | U | +---+---+---+---+---+---+ | p | c | e | i | k | v | | p | d | f | j | k | w | | p | d | g | j | n | y | | p | d | g | i | n | z | | q | d | f | i | k | x | | q | c | g | j | m | y | +---+---+---+---+---+---+ 关系X +---+---+---+---+---+---+ |P | Q | R | S | T | U| +---+---+---+---+---+---+ |p | c | e | i | k | v| |p | d | f | j | k | w| |p | d | g | j | n | y| |p | d | g | i | n | z| |q | d | f | i | k | x| |q | c | g | j | m | y| +---+---+---+---+---+---+
我不明白怎么找。谢谢。

函数依赖关系表达了这样一种思想:给定A的一个值,我们会找到B的一个值,并且只有一个值,其中A和B表示属性集。因此,要找到X中的函数依赖关系,您需要问自己以下问题

  • 从P到Q有FD吗?(给定P的一个值,我们能找到一个吗 Q只有一个值,答案是“否”。给定这个值 ‘p’代表p,我们发现‘c’和‘d’代表Q。)
  • 从P到R有FD吗?(否)
  • 从P到S有FD吗?(否)
  • 。等等
  • 从{PQ}到R有FD吗?(否)
  • 。等等
对{PQRSTU}的每个可能组合重复此操作。这将为您提供所有函数依赖项的集合


根据这组函数依赖关系,按照教科书给出的算法确定候选键。

同样,这看起来像是家庭作业。你自己尝试过什么?@Imran Ali Khan:编辑时,请仅对代码使用
代码标记。“……等等”意味着所有6*2^5属性组合都需要检查?必须检查从X到Y的FD,对于Y=P,必须检查X=Q R S T U QR QS QT QU RS RT RU ST SU TU QRS QRT QRU QST QSU QTU RST RSU RTU QRSU QRTU RSTU QRSTU,这是31个组合,可能还必须检查X是否为空,因为Y=P有32个组合,Y=也是如此!RST或U给出6*32=192个检查