1、数据库实用教程(第三版)数据库实用教程(第三版)第五章 规范化设计第五章 规范化设计本章讨论如何 设计关系数据库 的模式问题。 关系数据库规范化设计理论即 “模式设计理论 ”数据依赖 研究数据之间的联系范 式 关系模式的标准 模式设计方法 规范化的方法 关系模式的一般形式和关系模式的冗余和异常问题。 数据依赖的定义、数据依赖与关键码的联系;平凡的 FD。 关系模式的范式: 1NF, 2NF, 3NF, BCNF。 逻辑蕴涵、闭包、数据依赖的公理系统和推理规则;属性集的 闭包; FD集的等价;最小依赖集。 无损分解的定义、性质、测试;保持依赖的分解定义。 分解算法:分解成 3NF、 BCNF模式
2、集的算法。本章重要概念 :一、关系模式的一般形式 : R 1 概 述R 其中:U: 为组成关系 R的全部属性的集合,即 U A1,A2, An。D: 为域的集合,即属性的取值范围的集合。Dom: 为 U与 D之间的映象,即 Dom: UD| Dom安全约束集。F: 为 属性 U上 的 一组约束,即数据依赖集。例如:学习关系 SC中存在如下数据依赖: ( SNO,CNO) GRADE 学生关系 S中存在如下数据依赖:SNO SNAME( SNO,SNAME) AGE关系模式一般形式可简化为:R 泛关系模式 满足上述 制约条件 F的关系用符号 r 表示r 表示的关系称为 : 泛关系例如 : 学习关
3、系模式 SC 其 中 : U= SNO, CNO, GRADE F= ( SNO, CNO ) GRADE 设计关系数据库的 核心 问题是关系模式的设计。对于一个数据库设计,可以有多个关系模式的选择。按照什么原则来选择关系模式?标准是什么?如何实现?二关系模式的存储异常问题在数据管理中 ,数据冗余一直是影响系统性能的大问题。 数据冗余是指同一个数据在系统中多次重复出现。例: Score( Stu_id,Stu_Name,Cou_id, Cou_Name, tea_Name)属性分别表示 :学 号 、学生名 、课程 号、课程名、教师名vScore的一个实例:存在的 问题: 数据冗余 修改异常 插入异常 删除异常关系可定义为笛卡儿积的一个子集,并不是每个子集都是有意义的。对关系的值要作各种限制,这种限制称为数据完整性约束条件。 数据完整性约束主要有两种:1. 依赖于值域的限制 -由 DBMS完整性子系统实现;2 . 只依赖于属性间取值的相等与否的 限制 -仅取决于两个元组的某些分量是否相等 -统称为数据依赖数据依赖描述的是属性与属性之间的对应关系。2 函数依赖