函数依赖

  1. 函数依赖的定义:
    如果存在模式(id,name),其中id是主码。
    那么函数依赖可以写为id->name
  2. 满足函数依赖(a->b)的条件
    对实例中的所有元组对t1和t2,如果t1[a]=t2[a],则t1[b]=t2[b]
  3. 函数依赖的好处
    可以表示不能用超码表示的约束。
    如stu(id,name,sex,apartment),其中id是主码,假设apartment只有两座(男女)。
    那么sex->apartment成立,因为男生只能住男生宿舍。所以性别可以约束公寓楼
  4. 平凡的函数依赖
    如果a包含b,那么函数依赖a->b称为平凡的
  5. Armstrong公理
    • 自反律:若a为一属性集且a包含b,则a->b
    • 增补律:若a->b且r为一属性集,则ar->br
    • 传递律:若a->b,b->c,则a->c成立
    • 推论
      • 合并律:若a->b,a->c,则a->bc
      • 分解律:若a->bc,则a->b, a->c
      • 伪传递律:若a->b,bc->r,则ac->r

简单例子

A B C D
a1 b1 c1 d1
a1 b2 c1 d2
a2 b2 c2 d2
a2 b3 c2 d3
a3 b3 c2 d4

可以说A->C(对于a3和c2,因为没有另外一个元组A的值是a3,所以a3可以唯一决定c2)
C->A不是满足的。
AB->C,AB->D成立

发布了161 篇原创文章 · 获赞 68 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_43179428/article/details/105562045