欢迎来到天天文库
浏览记录
ID:50485534
大小:294.00 KB
页数:54页
时间:2020-03-09
《数据库系统原理与应用教程(第三版) 教学课件 作者 978-7-302-17185-0ch06.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章关系模式的规范化设计本章概述本章的学习目标主要内容1本章概述前面4章介绍了如何建立数据模型的问题,并把所建立的数据模型转换成最流行的关系模式。在研究如何把所建立的数据库模型转变成关系模式时,存在一些数据冗余的问题,即客观世界中的一个事实在关系元组中重复出现。这些问题影响了关系模式的设计和使用,因此需要采取合适的方法来消除这些设计过程中出现的问题。本章将要讲述的关系模式的规范化设计能够解决这些问题。规范化设计就是在函数依赖理论基础上,通过对关系模式的进行不同层次的分解,使最终得到的关系模式符合用户的需要。2本章的学习
2、目标了解关系模式设计时的数据异常问题;了解和掌握函数依赖的基本概念;掌握计算属性闭包的基本方法;掌握关系模式分解的基本原理;了解关系模式范式的基本概念和类型;掌握各种范式设计的基本技术和原则。3主要内容6.1概述6.2函数依赖6.3关系模式的分解6.4关系模式的范式6.5多值依赖6.6范式之间的关系6.7数据库模式的实例6.8本章小结46.1概述为了理解关系模式的设计目标,首先需要理解关系模式中的异常问题。本节首先研究异常问题的特点,然后介绍泛关系模式和数据库模式的概念。5异常问题在深入研究关系模式的设计之前,首先了解什
3、么样的关系模式合适,什么样的关系模式不合适。另外还需要理解造成关系模式不合适的原因是什么。一般认为,如果某个关系实例中的数据存在异常现象,那么称该关系模式是不合适的。在设计关系模式时,应该避免出现这种不合适的问题。这些异常现象包括数据冗余、修改异常、插入异常和删除异常等。6存在异常的Book关系实例7泛关系模式和数据库模式在关系模式设计过程中,应该采取一些方法消除这些数据异常现象,把最初的关系模式分解成最终的合适的关系模式。这种最初设计的关系模式也称为泛关系模式(universalrelationscheme)。关系模式
4、的当前值称为关系实例,关系实例是特定元组的集合。可以把泛关系模式分解成一系列小的符合规范化要求的关系模式集合,这种比较小的最终的关系模式的集合称为数据库模式(databasescheme)。对数据库模式的每个关系模式赋予一个当前值,这时称为数据库实例。8主要内容6.1概述6.2函数依赖6.3关系模式的分解6.4关系模式的范式6.5多值依赖6.6范式之间的关系6.7数据库模式的实例6.8本章小结96.2函数依赖数据依赖是数据之间存在的各种联系现象。数据异常现象与数据依赖有着紧密的关联。在数据依赖中,函数依赖是最基本的一种依
5、赖形式。认识和掌握函数依赖知识,对于数据库的约束设计和规范化设计有重要意义。10函数依赖的定义函数依赖(FunctionDependency,FD)的定义可以叙述为:如果关系R的两个元组在属性A1,A2,…,An上一致,那么它在另一个属性B上也一致。这种函数依赖记作A1A2…An→B,读作属性A1,A2,…,An函数决定属性B,或属性B函数依赖于属性A1,A2,…,An。函数依赖的逻辑定义:设关系模式R的属性集是U,X和Y是U的子集,函数依赖是形如X→Y的命题,即r是R的当前实例值,对r中的任意两个元组t和s,如果t[X
6、]=s[X],则t[Y]=s[Y],那么X→Y在关系模式R中成立。其中,t[X]表示元组t在属性集X上的值。函数依赖的定义表示了关系模式属性集X值和Y值之间的多对一联系。11超键码首先研究超键码的概念。在某个关系中,如果一个或多个属性的集合{A1,A2,…,An}函数决定该关系的其他属性,那么称该属性的集合为该关系的超键码。超键码的含义是关系中不可能存在两个不同的元组在属性A1,A2,…,An的取值完全相同。根据上面的定义可以看到,在一个关系中,超键码的数量是没有限制的,例如如果属性集合{A1,A2,…,An}是超键码,
7、那么包含该属性集合的所有属性集合都是超键码。12关系Book中的部分超键码13键码在前面的超键码定义中,范围太宽,使得超键码过多,使用起来很不方便。现在,在超键码定义的基础上,增加一些限制条件来定义键码。在某个关系中,如果一个或多个属性的集合{A1,A2,…,An}函数决定该关系的其他属性,并且集合{A1,A2,…,An}的任何真子集都不能函数决定该关系的所有其他属性,那么称该属性的集合为该关系的键码。键码的定义包括两方面的含义,即关系中不可能存在两个不同的元组在属性A1,A2,…,An的取值完全相同,且键码必须是最小的
8、。14逻辑蕴含在讨论函数依赖时,经常需要从一些已知的函数依赖去判断另外一些函数依赖是否成立。例如,如果A→B和B→C在某个关系中成立,那么A→C在该关系中是否成立的问题称为逻辑蕴含问题。假定F是在某个关系上成立的函数依赖集,T是在该关系上成立的另外一个函数依赖集。如果对于该关系中满足F的每一个关系实例都满足T,那么称
此文档下载收益归作者所有