什么是数据库中的“数据冗余”?
数据冗余
1. 数据冗余:在⼀个数据中重复的数据称为
例如在设计数据库时,某⼀字段属于⼀个表,但它⼜同时出现在另⼀个或多个表,且完全等同于它在其本来所属表的意义表⽰,那么这个字段就是⼀个冗余字段。
1. 关系数据库中的数据冗余主要是指关系数据库中同⼀信息数据的重复存贮。
2. 数据冗余浪费了宝贵的资源,应尽量减少。但关系数据库中为实现⼀些功能有些数据冗余是必需的。必需的数据冗余主要⽤于以下⽤
途:
数据间建⽴联系,如两表间通过共同属性建⽴联系;
数据恢复,如建⽴备份⽂件以备正式⽂件被破坏时恢复;
数据核查,如设⽴数据校验位可以检查数据在存贮、传输等过程中的改变;
数据使⽤的便利,如为了查看数据的直观,使⽤数据的⽅便、⾼效。
减少数据通讯开销,如分布式数据库在不同场地重复。
2. 数据冗余的成因
关系数据库由表及附属⽂件组成,其表由属性定义的结构和元组(记录)组成,其属性值域有多种类型,故关系数据库的数据冗余形成的原因有表的重复、属性的重复、元组的重复、属性值的重复4类。
2.1 表的重复
为了数据安全的需要制作备份表,当主表被破坏时可⽤此恢复数据。分布式数据库为减少数据通讯开销也常重复放表,这种数据冗余在这⾥是必需数据冗余,不能删除。若是因其他原因产⽣的⾮必要的重复表则应予以删除。
2.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) 同⼀表内有相同属性内容的多个属性,若⾮数据安全检查的需要,应删除之。
2.3 元组的重复
表内不同记录内容有时会完全相同,若⾮必要,应予以删除。
2.4 属性值的重复
按属性值域集合基的特点可以将其分为有限类和⽆限类。
(1) ⽆限类属性值的重复。⽆限类属性值是指其属性值域集合的基为⽆限⼤或者数据库记录数为同⼀数量级的属性值,如实数、整数、⽇期、各种编号。
⽆限类属性值偶尔也可能重复,但这只是巧合,⽽并⾮数据冗余。
(2) 有限类属性值的重复。有限类属性值是指其属性值域集合的基⼩于数据库记录数⾄少⼀个数量级的属性值,如产品名,部门名,职称名,课程名。
有限类属性值的重复实际上是由⼀对多或多对多的关系引起的,有时可作为必需冗余数据不予以处理,这时不需程序就有较好的查看效果和⼯作效率。但当重复量很⼤时,也应当设法对所引起的数据冗余进⾏压缩,这通常要建⽴新表和相应的程序。
2.5 不同成因的数据冗余⽤不同层次上的操作来消除。
(1)消除表的重复所引起的数据冗余为磁盘⽂件级的操作。
什么是关系数据库(2)属性的重复所引起的数据冗余的消除为对数据库结构修改的操作。
(3)元组的重复所引起的数据冗余的消除由记录级的操作完成。
3. 数据冗余的缺点:
a) 存储空间的浪费。
b) 数据交互和数据库访问执⾏效率降低。
但适当的数据冗余⼜能加快查询
数据冗余究竟是好是坏还是要根据⾃⼰所做的项⽬进⾏合理的取舍
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论