一、数据冗余
要回答这个问题,我们首先要知道,什么是数据冗余,来看看智库给出的定义:
数据冗余:是指同一个数据在系统中多次重复出现。例如在设计数据库时,某一字段属于一个表,但它又同时出现在另一个或多个表,且完全等同于它在其本来所属表的意义表示,那么这个字段就是一个冗余字段。
我相信以上解释应该已经很明了,数据冗余就是重复的数据嘛,此时我们可以考虑来回答这个问题了,适当的冗余可以提高系统安全性,如数据备份,但是如果冗余度过高,则会浪费掉宝贵的存储资源。
刚才我提了一句“适当的冗余”,其实,适当的冗余还是有非常多好处的,具体有以下主要的功能:
①数据间建立联系:如两表间通过共同属性建立联系;
②数据恢复:如建立备份文件以备正式文件被破坏时恢复;
③数据核查:如设立数据校验位可以检查数据在存贮、传输等过程中的改变;
④数据使用的便利:如为了查看数据时的直观,使用数据的方便、高效;
⑤减少数据通讯开销:如分布式数据库在不同场地重复。
二、数据冗余的成因
关系数据库由表及附属文件组成,其表由属性定义的结构和元组(记录)组成,其属性值域有多种类型,故关系数据库的数据冗余形成的原因有表的重复、属性的重复、元组的重复、属性值的重复4类:
1.表的重复
为了数据安全的需要制作备份表,当主表被破坏时可用此恢复数据。分布式数据库为减少数据通讯开销也常重复放表,这种数据冗余在这里是必需数据冗余,不能删除。若是因其他原因产生的非必要的重复表则应予以删除。
2.属性的重复
有不同表的属性重复和同一表内属性重复2种情况:
(1)不同表中属性重复常用来建立表之间联系,这只需要一个公共属性,这是必需数据冗余,不能删除;各表间的多于一个的属性应当删除。如有以下3个表:
T1(A,B,C);T2(A,B,D);T3(A,C,D,E)
其中属性A为三表所共有;属性B为T1,T2 两张表所共有,属性C为T1,T3 两张表所共有;属性D为T2,T3 二表所共有。
如取A为公共属性则,T1,T2 两张表中只能保留一个B属性;T1,T3 两张表中只能保留一个C属性;T2,T3 两张表中只能保留一个D属性。
(2) 同一表内有相同属性内容的多个属性,若非数据安全检查的需要,应删除之。
3.元组的重复
表内不同记录内容有时会完全相同,若非必要,应予以删除。
4.属性值的重复
按属性值域集合基的特点可以将其分为有限类和无限类。
(1) 无限类属性值的重复:无限类属性值是指其属性值域集合的基为无限大或者数据库记录数为同一数量级的属性值,如实数、整数、日期、各种编号。值得注意的是无限类属性值偶尔也可能重复,但这只是巧合,而并非数据冗余。
(2) 有限类属性值的重复:有限类属性值是指其属性值域集合的基小于数据库记录数至少一个数量级的属性值,如产品名,部门名,职称名,课程名。
三、数据冗余的消除
1.表的重复所引起的数据冗余为磁盘文件级的操作完成。
2.属性的重复所引起的数据冗余的消除为对数据库结构修改的操作完成。
3.元组的重复所引起的数据冗余的消除由记录级的操作完成。
四、数据冗余的缺点(回答为什么要冗余度较小)
1.存储空间的浪费。
2.数据交互和数据库访问执行效率降低。
五、参考文献
[1]数据冗余 – MBA智库百科 (mbalib.com)
[2]什么是数据库中的“数据冗余”? – zw1sh – 博客园 (cnblogs.com)
今天的文章数据库中的数据冗余度低,能尽可能_数据库中不存在数据冗余分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/86410.html