什么是数据库冗余,如何避免数据库冗余?

Metreus 2009-07-24 01:28:29
如果不清理数据库冗余会导致什么后果?
...全文
2791 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
alzw2022 2009-10-27
  • 打赏
  • 举报
回复
不错不错 楼上的很好用 强调下实际设计中依据需要允许数据冗余的
只是我们要尽量避免数据冗余
Hide1984 2009-07-24
  • 打赏
  • 举报
回复
避免数据冗余的方法就是无损分解(拆分到BC范式就可以)~ 这个楼主可以去查查书看看
对于上面的小例子就是,拆分表
上面的例子有依赖关系
学生ID=>学生姓名
学生ID=>班主任ID ===>(班主任姓名,班主任家庭住址) 传递依赖
班主任ID=>班主任姓名
班主任ID=>班主任家庭住址

表拆分为
学生班主任表
学生ID 学生姓名 班主任ID

班主任表
班主任ID 班主任姓名 班主任住址
Hide1984 2009-07-24
  • 打赏
  • 举报
回复
数据冗余,最简单的例子。
有一个学生班主任表字段如下(班主任和学生的关系是1:N)
学生ID  学生姓名  班主任ID 班主任姓名 班主任家庭住址

那么这里,我们每插入一条学生记录,都必须要插入一次班主任的姓名和家庭住址信息,这就是典型的数据冗余。
这样的冗余带来的麻烦就是:
1。班主任姓名和住址要多次插入同样数据,存在插入错误的危险。
2。班主任搬家了。。。那么要更新班主任家庭住址N次~
。。。

这只是一个很简单的例子,楼主可以举一反三~
moonshineidolon 2009-07-24
  • 打赏
  • 举报
回复
一点冗余没有,也不好。查询时间会变长。
适当的增加冗余,可以提高查询速度,也可以保证数据更好恢复。
yqyqyoyo 2009-07-24
  • 打赏
  • 举报
回复
需不需要数据冗余,这个要根据具体的需求来看吧! 并不是说设计的数据库的范式越高越好。有的时候范式越高反而更加麻烦。而且有的情况下数据冗余 也会带来很大的方便。不过冗余会占用磁盘空间。
amwip110 2009-07-24
  • 打赏
  • 举报
回复
一般设计数据库是都在达到3范式或更高,否则数据的冗余程度非常高。同时有时也得有一定的冗余,否时在查询数据时很不方便
chenwei175528 2009-07-24
  • 打赏
  • 举报
回复
比如数据库设计的不好
某一字段下出现大量重复数据

我觉得这也算是一种冗余
设计数据库的时候尽量想的周全一点
尽量的遵循范式(当然也不是必须遵守)
xiedu414 2009-07-24
  • 打赏
  • 举报
回复
占空间

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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