分享

3-5

 昵称233866 2009-11-07


3.5.1 多值依赖

1.实例
   ①关系模式R(COURSE,STUDENT,PRECOURSE)的属性分别表示课程、选修该课程的学生以及该课程的先修课。这个模式表达了两件事情:选修课程的学生,课程的先修课。
   ②COURSE值与STUDENT值、COURSE值与PRECOURSE值之间都是1:N联系,并且这两个1:N联系是独立的。也就是选修一门课程的学生,必须选修这门课程的所有先修课。
   ③模式的键是全部属性,因此R已是BCNF模式,但有很大的冗余。如果C4这门课程有100个学生选修,并且C4这门课程有4门直接的先修课,那么在表中将会有400个元组。
   ④如果把R分解成R1(COURSE,STUDENT)和R2(COURSE,PRECOURSE),就能消除冗余。
   ⑤非形式地说,只要两个独立的1:N联系出现在一个关系中,那么就可能出现多值依赖。

2.多值依赖的形式定义
  (1)设U是关系模式R的属性集,X和Y是U的子集,Z=R―X―Y,小写的xyz表示属性集XYZ的值。对于R的关系r,在r中存在元组(x,y1,z1)和(x,y2,z2)时,就也存在元组(x,y2,z1)和(x,y1,z2),那么称多值依赖(multivalued dependency,简记为MVD)X→→Y在模式R上成立。
  (2)可看出,每个X值对应一组Y值,但与Z值无关,则X→→Y成立。
  (3)另外还可看出,这个定义具有对称性,即R中只要有X→→Y,R中也就有X→→Z。
  (4)即X→→Y和X→→Z同时成立,故有时写成X→→Y│Z。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多