暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

正确认识数据库中的数据冗余

贵州电大一数据库原理与应用 2018-04-04
1181

下面的学生选课数据库,存在大量冗余,比如表中课程名字有大量重复,专业名字大量重复,我们说这样的数据库存在冗余,是一个不好的数据库设计。

于是我们将上面的表分解为下面三张表。

专业名,课程名没有了冗余的现象,但有同学会说,学号出现在两张表中,而且比原表出现次数多,这算不算冗余。我们说,主键与外键在多表中的重复出现,不属于数据冗余非键字段的重复出现,才是数据冗余!而且是一种低级冗余,即重复性的冗余。

其实,没有冗余的数据库设计可以做到。但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。

比如商品中的单价、数量、金额三个字段,金额就是由单价乘以数量派生出来的,它就是冗余。金额这个字段的存在,表明该表的设计不满足第三范式,因为金额可以由单价乘以数量得到,说明金额是冗余字段。但是,增加金额这个冗余字段,可以提高查询统计的速度,这就是以空间换时间的作法。



文章转载自贵州电大一数据库原理与应用,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论