数据库中有候选码,主码,全码,超码!这些码的定义是什么,它们之间有什么关系,请详细说明!
数据库中的各种范式分别怎么判定?比如给出一个R(U,F),U,F都已知,怎么确定它属于第几范式,最好结合例子说明!

解决方案 »

  1.   

    码的函数依赖表示
    前面章节中给出了关系模式的码的非形式化定义,这里使用函数依赖的概念来严格定义关系模式的码。
    定义4.5 设K为关系模式R(U,F)中的属性或属性集合。若K→U,则K称为R的一个超码(Super Key)。
    定义4.6 设K为关系模式R(U,F)中的属性或属性集合。若K—→F U,则K称为R的一个候选码(Candidate Key)。候选码一定是超码,而且是“最小”的超码,即K的任意一个真子集都不再是R的超码。候选码有时也称为“候选键”或“码”。
    若关系模式R有多个候选码,则选定其中一个作为主码(Primary Key)。
    组成候选码的属性称为主属性(Prime Attribute),不参加任何候选码的属性称为非主属性(Non-key Attribute)。
    在关系模式中,最简单的情况,单个属性是码,称为单码(Single Key);最极端的情况,整个属性组都是码,称为全码(All Key)
    定义4.7 关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码(Foreign Key),也称为外码。
    码是关系模式中的一个重要概念。候选码能够惟一地标识关系的元组,是关系模式中一组最重要的属性。另一方面,主码又和外部码一起提供了一个表示关系间联系的手段。