试题详情
简答题 假设有一个名为参加的关系,该关系有属性:职工(职工名)、工程(工程名)、时数(花费在工程上的小时数)和工资(职工的工资);一个参加记录描述一个职工花费在一个工程上的总时数和他的工资;另外,一个职工可以参加多个工程,多个职工可以参加同一个工程。请回答如下各问题:用A、B、C、D分别代表属性职工、工程、时数和工资,则: 1)确定这个关系的关键字; 2)找出这个关系中的所有函数依赖; 3)指出这个关系上的哪些函数依赖会带来操作异常现象; 4)这个关系是第几范式关系? 5)计算该关系上函数依赖集的最小覆盖; 6)将该关系分解成尽可能高的范式,并指明是第几范式?
  • 1)AB
    2)AB->C,A->D
    3)D对关键字AB的部分函数依赖可能会带来如下问题:
    数据冗余:一个职工参加多个工程,则职工的工资值会重复;
    更新异常:当改变职工的工资时,可能会只修改了一部分,从而造成数据不一致;
    插入异常:当一个职工尚未承担工程,但要插入职工信息(如工资)则不允许(因为没有完整的关键字);
    删除异常:当某个工程结束,删除工程信息时,可能会将职工信息(如工资)一同删除(如果职工只参加了一项工程)。
    4)2NF
    5)Fm={AB->C,A->D}
    6)分解为R1(A,B,C)和R2(A,D)
    结果为4NF
  • 关注下方微信公众号,在线模考后查看

热门试题