qishi821的个人博客分享 http://blog.sciencenet.cn/u/qishi821

博文

数据库基础(二)

已有 1670 次阅读 2016-9-28 11:22 |个人分类:数据库|系统分类:科研笔记| 数据库相关知识

非规范化设计

 规范化的最终产物是一系列相关的表,这些表构成了数据库。但是,有时为了得到简单的输出,得连接多个表,这就影响查询的性能。在这种情况下,更明智的做法是引入一定程度的冗余,包括引入额外的列或额外的表。为了提高性能,在表中故意引入冗余的做法称为非规范化

 非规范化设计的基本思想是,现实世界并不总是依从于某一完美的数学化的关系模式。强制性地对事物进行规范化设计,形式上显得简单,内容上趋于复杂化。更重要的是,导致数据库运行效率的降低。非规范化要求适当地降低甚至抛弃关系模式的范式,不再要求一个表只描述一个实体或者实体间的一种联系。其主要目的在于提高数据库的运行效率。

非规范化处理的主要技术包括增加冗余或派生列,对表进行合并、分割或增加重复表。一般认为,在下列情况下可以考虑进行非规范化处理。

大量频繁的查询过程所涉及的表都需要进行连接。

主要的应用程序在执行时要将表连接起来进行查询。

对数据的计算需要临时表或进行复杂的查询。

非规范化设计的主要优点是减少了查询所需的连接;减少了外键和索引的数量;可以预先进行统计计算,提高了查询时的相应速度。

非规范化存在的主要问题是增加了数据冗余;影响数据库的完整性;降低了数据更新的速度;增加了存储表所占用的物理空间。其中最重要的是数据库的完整性问题。这一问题可以通过建立触发器、应用事物逻辑、在适当的时间间隔运行屁处理命令或存储过程等方法得到解决。

   




https://blog.sciencenet.cn/blog-2355761-1005542.html

上一篇:数据库基础(一)
下一篇:数据库基础(三)
收藏 IP: 219.221.197.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-24 09:56

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部