姓名
课程名
成绩
001
张三
数学
90
001
张三
语文
91
002
李四
数学
90
002
李四
语文
91
我们常常把这样的表分为两个表,如:
表1
学号
姓名
001
张三
002
李四
表2
学号
课程名
成绩
001
数学
90
001
语文
91
002
数学
90
002
语文
91
这样处理后既可满足数据的第二范式要求,当然还不是最好的。通过关系模式的范式可以消除数据冗余,基本的数据库应满足第三范式(3NF)。
看看数据库的“范式”内容
你就更好理解了。
数据库设计时为了提高读取速度可能造成的冗余。
比如有一个学生表,字段为学号,姓名,电话,住址等。有一个成绩表,字段有,课程id,学生id,分数等。有一个课程表,字段有,课程名,教师id等。如果我们需要查询某个学生某个课程的成绩即获取学生名,课程名,分数字段。就需要三个表连接查询。
首先你要明白连接查询是要耗费资源的。远没有在一个表快,所以当业务对这种连接查询过多,连接更复杂时,就会影响查询效率,拖慢响应时间。所以我们可能在某些表中加入一些字段用来减少表之间的连接。比如在成绩表中直接加入学号,学生姓名等字段,这就造成数据的冗余。
在数据库中的数据冗余大概是这么个意思:数据重复,浪费空间例如:
一个数据库中有两个表,一个表中有一字段存放某个人员的照片,如果在第二个表中再次存放照片就是典型的数据冗余
其实我们在描述一个对象的时候,这个对象又很多的属性在用数据库保存这些属性时,就应该将这些属性恰当的放到数据库中的某个具体的表中去设计好的表,数据冗余就小例如描述一个学生的属性有一些基本星信和成绩信息等,这样就应该将基本信息和成绩信息分成两个表分别存储,否则当你查看基本信息时,成绩信息就是多余的,影响性能,浪费时间
数据库冗余 指的多余的相同数据
举个例子
表 s (学号, 班级,姓名 ) c(课程名, 课程号 ) 表 cc(学号 课程号)
表 d(学号 班级 课程名)
学生选课关系 ,s表定义学生信息 ,c表定义课程信息 ,cc表定义选课信息
表 d则属于数据数据 , 因为表d可以用语句
select 学号 班级 课程名
from s,cc
where s学号=cc学号
来表示
以上就是关于什么是数据库中的数据冗余如何消除数据冗余全部的内容,包括:什么是数据库中的数据冗余如何消除数据冗余、excel工作表产生数据冗余的原因、电脑中冗余是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)