文档介绍:第16章关系数据库设计初步
数据库设计中的规范化技术
FoxPro数据库文件设计
数据的安全性
数据库设计中的规范化技术
所谓规范化技术, 就是用形式更为简洁、结构更加规范的关系模式取代原有关系的过程。
例有三个属性的工资表(姓名、级别、工资)关系模式。直接对应此模式建立的数据库如表16—1。
表16--1工资表
1. 表16—1数据库存在的问题
(1) 数据冗余度大。
表 16—1中, 工资是可从级别推导出的, 但却重复存放。能推导出数据的重复存放称数据冗余。冗余度大, 既浪费存储空间, 又易造成数据的不一致性。
2. 解决方法
上述现象的产生, 是由于数据库模式不合理。对应表16—1, 可采用两个模式表达: 工资表 1 (姓名, 级别), 工资表 2 (级别, 工资), 如表16--2, 表16—3所示。
表16—2工资表1
表16—3工资表2
改进后, 有如下好处:
(1) 数据量减少。
(2) 表达能力强。
1. 规范化的关系
当一个关系的所有分量都是不可分的数据项时, 该关系是规范化的。表16—4具有组合数据项, 表16—5具有多值数据项, 因此都不是规范化的表。
表16—4具有组合数据项的非规范表
二维表按其规范化程度从低到高可分为5级范式。规范化程度较高者必是较低者的子集。所有记录的属性值单一的关系模式满足第一范式, 简称1NF(First Normal Form)。 1NF是最低的规范化关系。
关系规范化程度如何, 由关系模式中属性间的函数依赖程度来确定。
下面从关系的概念上给出有关函数依赖的几个定义:
(1) 函数依赖。
(2) 完全函数依赖和部分函数依赖。
(3) 传递函数依赖。
2. 关系规范化过程
满足1NF的关系模式有许多不必要的重复值, 因此, 引出第二范式如下:
2NF(第二范式): 如果一个关系属于1NF, 且所有非主属性都完全依赖于关键字, 则它是第二范式的, 简记为2NF。
图16—1(a)的关系中, 非主属性“仓库地址”只依赖于关键字码的一部分——“仓库号码”, 因此不是2NF的。