多值依赖是什么?

hiloves 2007-01-23 10:58:07
4NF删除了表中不必要的冗余结构:多值依赖。

多值依赖到底是什么???能否举个例子。
...全文
1155 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhjzju 2012-09-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
如果将此模式进行分解,成为{课程,参考书}{课程,教师},则记录数就会减少为6(2+4)条
[/Quote]
针对三楼的朋友举的例子举得很好,但我有个问题:
从原来的记录中是可以知道哪个教师用哪本参考书这个信息的,
但如果分解成{课程,参考书}{课程,教师},请问这个信息该怎么体现?
ccjiby 2010-08-23
  • 打赏
  • 举报
回复
我觉得可以将多值依赖和函数依赖对比来理解:
函数依赖表示一种一对一的关系,是一种直接确定的关系;
多值依赖表示一种一对多的关系,是一种间接相关的关系;

可以用 课程,教师,参考书,这两者的关系来说明;
同一门课程,可以是多个教师教,
同一个教师,可是上多门课;
同一门课,可以有多本参考书;


而为什么说4NF删除了不必要的冗余结构呢?

如上面那个例子:如果一个表中,
课程 教师 参考书
会计 A 管理学入门
会计 A 基础会计
会计 B 管理学入门
会计 B 基础会计
会计 C 管理学入门
会计 C 基础会计
会计 D 管理学入门
会计 D 基础会计
……
1.在这个关系模式{课程,教师,参考书}里,可以看见,课程只有一门,而参考书有2本,任课老师4个,
记录数目(元组个数)=2*4=8条;
2.如果将此模式进行分解,成为{课程,参考书}{课程,教师},则记录数就会减少为6(2+4)条;而随着记录数据的增加,前者的乘法效应会使得数据库的记录出现较大的冗余;后者不仅减少了冗余,而且只要通过连接查询就可以查询到(课程,教师,参考书)的关系了。

p.s.虽然这是07年的帖子,也许楼主的问题早就解决完了,但我想也许还会有人检索相似的问题吧,所以尽自己的能力解答,希望可以有用。
hiloves 2007-01-27
  • 打赏
  • 举报
回复
仓库号→→仓库管理员
outwindows 2007-01-24
  • 打赏
  • 举报
回复
课本知识:
在关系模式中,函数依赖不能表示属性值之间的一对多联系,这些属性之间有些虽然没有直接关系,但存在间接的关系,把没有直接联系、但有间接的联系称为多值依赖的数据依赖。例如,教师和学生之间没有直接联系,但教师和学生可通过系名,或任课把教师和学生联系起来。
举例如下,有这样一个关系<仓库管理员,仓库号,库存产品号>,假设一个一个产品只能放到一个仓库中,但是一个仓库可以由若干管理员,那么对应于一个<仓库管理员,库存产品〉有一个仓库号,而实际上,这个仓库号只与库存产品号有关,与管理员无关,就说这是多值依赖。

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧