数据库设计原理

来源:互联网 发布:神魔诛天进阶数据 编辑:程序博客网 时间:2024/05/21 10:47

2016.12.6

十九.数据库设计原理

数据库设计要解决的两个问题:

(1)如何把数据组织到一组相关的表中?

(2)在每个表中应该放什么样的数据元素?

18.1 规范化

规范化的目标:

(1)消除冗余数据。

(2)消除插入、删除和更新异常。

规范化是指在数据库设计中消除冗余和更新异常所采取的一系列步骤,这些步骤通常称为第一范式,第二范式和第三范式等。当数据是第3范式的形式时,它已经足够规范了。

规范化数据的3个原则如下:

(1)消除重复数据,意味着不允许多值属性。若一个数据单元格中有多个值,会给数据检索造成问题。同时,不允许有重复的列。

(2)消除部分依赖,部分依赖就是指表中的数据和多个实体有关。这条规则表明表中没有列能够只和主键的一部分相关。表中的所有非键列指向的是整个键,而不是键的一部分。

(3)消除过度依赖。这条规则所指的情况就是表中的列指向的不是主键,而是指向的是同一表中的另一个非键的列。

18.2 数据库设计

数据库设计不止简单的走完规范化的过程,实际上是一种艺术,它需要结合业务问题来综合考虑。数据库的设计往往有多种可能,这取决于实际上如何访问和修改数据。可以通过提出问题来确定设计是否像需要的一样灵活和有意义。如:

(1)有其他的表需要添加到数据库中吗?

(2)可以把可能联合的列加到一起吗?

(3)如何区分旧数据?

(4)对数据有特殊的分析需求吗?

数据库设计必须和现实需求结合起来,数据库设计是一个平衡活,优秀的数据库设计不仅有足够的灵活性而且直观,易于理解。

18.3 规范化的替代方法

规范化是数据库设计中的重要原则,但是在某些情况下,切实可行的替代方案可能更合理。例如星型模式。

星型模式的主要思想是创建一个核心的事实表,该表和任意数目的维度表相关联。事实表包含了本质上是可以相加的所有定量数字。维度表包含了所有的实体信息。

此外,也有从星型数据库中创建数据立方。

 

 

0 0