辅导3第3章数据库规范化与完整性.docx
- 文档编号:7302554
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:7
- 大小:18.90KB
辅导3第3章数据库规范化与完整性.docx
《辅导3第3章数据库规范化与完整性.docx》由会员分享,可在线阅读,更多相关《辅导3第3章数据库规范化与完整性.docx(7页珍藏版)》请在冰豆网上搜索。
辅导3第3章数据库规范化与完整性
第3章 数据库规范化与完整性
学习目标
本章从理论上讲解关系数据库的规范化和完整性理论。
具体包括
1.理解关系模型、关系模式的基本概念
2.理解关系运算的基本方法
3.理解数据库完整性的概念
4.掌握关系规范化理论
1.1关系模型与关系模式
1.关系模型
关系模型是建立在严格的数学概念的基础上的,其最大的优点是概念单一,是目前应该最广泛的数据模型。
一个关系模型的逻辑结构就是一张二维表,它由行和列组成。
(1)关系:
对应通常所说的二维表,关系是笛卡尔积的一个子集;
(2)元组:
表中的一行即为一个元组,也称为记录;
(3)属性:
表中的一列即为一个属性,也称为字段;
(4)域:
属性的取值范围;
(5)主关键字:
指表中的一个或多个属性组,它可以惟一确定一个元组,也称主键、主码(PrimaryKey),主关键字可以是多个属性的结合体,即属性组。
(6)外关键字:
也称外键、外码(ForeignKey)。
如果一个关系(R1)中的属性或属性组是另一个关系(R2)的主键,那么我们称这个属性或属性组为R1的外关键字,简称外键。
2.关系模式
关系模式是对关系的描述,一般表示为:
关系名(属性1,属性2,…)。
关系实际上就是关系模式在某一时刻的状态或内容。
也就是说,关系模式是型,关系是它的值。
关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。
1.2关系操作
1.2.1关系操作概述
关系模型中常用的关系操作包括:
选择、投影、连接、除、并、交、差等。
关系代数和关系演算两种语言在表达能力上是完全等价的。
1.2.2传统的集合运算
传统的集合运算包括并、交、差和笛卡尔积等四种运算,对应的运算符分别用∪、∩、―和×表示。
1.并运算(unin)
两个关系的并运算是指,将第一个关系的记录加到第二个关系中,生成新关系的过程。
假设有两个关系R和S,它们具有完全相同的结构,那么R和S的并仍是一个关系,这个新关系的结构与R或S的结构相同,它的值是R中所有记录与S中所有记录共同组成的集合。
R和S的并记作R∪S。
对应的SQL语句
SELECT*FROM篮球爱好者
UNION
SELECT*FROM足球爱好者
2.交运算(intersect)
两个关系的交运算是指,把第一和第二个关系中相同的记录提取出来,形成新关系的过程。
假设两个关系R和S具有完全相同的结构,那么R和S的交仍是一个关系,这个新关系的结构与R或S的结构相同,它的值是R和S中共同具有的记录的集合。
R和S的交记作R∩S。
对应的SQL语句
SELECT*FROM篮球爱好者
INTERSECT
SELECT*FROM足球爱好者
注意:
SQLServer2000不支持上述操作。
3.差运算(difference)
两个关系的差是指,在第一个关系中出现,而在第二个关系中不出现的记录组成的新关系。
假设两个关系R和S具有完全相同的结构,则R和S的差仍是一个关系,这个新关系的结构与R或S的结构相同,它的值是从R中去掉在S中同时出现的记录后,由R中剩余记录所组成的集合。
R和S的差记作R―S。
对应的SQL语句
SELECT*FROM篮球爱好者
EXCEPT
SELECT*FROM足球爱好者
注意:
SQLServer2000不支持上述操作。
4.笛卡尔积(cartesianproduct)
两个关系的积是指,一个关系中每条记录和第二个关系的每条记录的连接。
假设有一个具有n个属性的关系R和另一个具有m个属性的关系S,则它们的笛卡尔积仍是一个关系,这个新关系的结构是R和S的结构之连接,即前n个属性来自R,后m个属性来自S,属性个数等于n+m,该关系的值是由R中的每条记录连接S中的每个元组所构成记录的集合。
R和S的笛卡尔积记作R×S。
对应的SQL语句
SELECT*FROM篮球爱好者,足球爱好者
1.2.3专门的关系运算
专门的关系运算包括选择、投影、连接和除四种。
1.选择运算(select)
选择运算是指,从一个关系R中选择出满足给定条件的所有记录。
这些被选择出的记录组成了一个新的关系,新关系同R具有相同的结构。
选择运算实际上是一种横向划分(或称分割)关系的手段。
它对应的SQL语句是:
SELECT*FROM表名WHERE条件
2.投影运算(project)
投影运算是指,从一个关系R中按所需顺序选取若干个属性构成新关系。
这个新关系的记录数必然小于等于原关系R中的记录数,因为要从中去掉在新关系模式下重复的记录。
选择运算实际上是一种纵向划分(或称分割)关系的手段。
它对应的SQL语句是:
SELECT列1,列2,...FROM表名
3.连接运算(join)
连接运算是指,把两个关系R和S按相应属性值的比较条件连接起来,它是R和S的笛卡尔积的一个子集。
比较条件就是比较运算表达式,运算符一般包括大于连接、小于等于连接、等于连接等。
1.3关系完整性
1.3.1关系完整性概述
关系完整性就是关系模型中数据的正确性、一致性和有效性。
关系完整性又包括实体完整性、参照完整性和用户定义的完整性三个方面。
1.实体完整性(entityintegrity)
主键惟一标识相应的对象,它绝对不能取空值。
简单地说,关系中的主键不能取空值就是实体完整性规则。
2.参照完整性(refrenceintegrity)
参照完整性规则就是指:
在两个参照和被参照关系中,参照关系中每条记录的外键或者为空,或者等于被参照关系中某条记录的主键。
3.用户定义的完整性(used-definedintegrity)
1.3.2使用约束实施完整性
SQLServer根据不同的用途提供了多种约束,主要包括:
PrimaryKey约束、ForeignKey约束、Default约束、Unique约束、Check约束等。
1.PrimaryKey约束
PrimaryKey约束也称主键约束,它有以下特征:
(1)创建PrimaryKey约束时,SQLServer会自动创建一个惟一的聚集索引;
(2)定义了PrimaryKey约束的字段的取值不能重复,并且不能取NULL值;
(3)每个表只能定义一个PrimaryKey约束;
(4)如果表中已经有了聚集索引,那么在创建PrimaryKey约束之前,要么指定所创建的是非聚集索引,要么删除已有的聚集索引。
2.ForeignKey约束
ForeignKey也称外键约束,指某列的取值必须参照另外表的主键值,它的主要特征如下:
(1)一旦ForeignKey约束定义了某个字段,则该字段的取值必须参照(References)同一表或另一表中的PrimaryKey约束或Unique约束。
(2)ForeignKey约束不能自动建立索引。
3.DEFAULT约束
DEFAULT约束也称默认约束,主要作用是当用户没有为定义了Default约束的字段输入数据时,由Default约束提供默认数据。
它的主要特征是:
(1)每一个字段只能有一个Default约束;
(2)Default约束不能放在Identity字段上或者TimeStamp字段上。
因为这两种字段都能够自动插入数据。
4.UNIQUE约束
具有Unique(惟一)约束的字段的值不能重复。
主要特征是:
(1)任何两条记录的相同字段的值不能重复,这是Unique约束最主要的特征。
NULL值是最容易重复的值,因此最好将被定义了Unique约束的列定义为非空。
(2)一个表可以有多个Unique约束;
(3)创建Unique约束时,系统自动创建了非聚集索引。
5.CHECK约束
CHECK约束限制了字段的取值范围,比如人的性别只能是“男或女”两个取值,此时可以使用CHECK约束。
其主要特征是:
(1)限制了向特定的字段列输入数据的类型
(2)表级定义的CHECK约束可以对多个字段列进行核查
6.删除约束
如果需要将某个约束删除,可以使用ALTERTABLE语句,其语法格式是:
ALTERTABLE表名
DROPCONSTRAINT约束名
1.4关系的规范化
1.4.1关系规范化的必要性
关系规范化理论的基本思想是,每个关系都应满足一定的规范,才能使关系模式设计合理,达到减少冗余,提高查询效率的目的。
看下面的关系模式:
学生(学号,姓名,所在系,系主任姓名,课程名,成绩)。
表1学生表
学号
姓名
所在系
系主任姓名
课程名
成绩
刘峰
计算机
杨光
数据库原理
83
张丽
计算机
杨光
VB语言
87
张新
自动化
李冰
软件工程
90
李伟
自动化
李冰
数据库原理
70
钱红
会计
史新
财务会计
83
在这个学生关系模式中至少存在以下4个问题:
数据冗余、更新异常、插入异常、删除异常>
1.4.2函数依赖关系
1.函数依赖与函数决定
设一个关系为R,X和Y是它的两个属性集。
若对于X上的每个值都有Y上的一个惟一值与之对应,则称X和Y具有函数依赖关系,并称X函数决定Y,或称Y函数依赖于X,称X为决定因素。
2.部分函数依赖
设一个关系为R,X和Y是它的两个属性集。
若X函数决定Y,同时X的一个子集X’也能够函数决定Y,则称X部分函数决定Y,或Y部分函数依赖于X。
换句话说,只需拿出X属性集的一部分,就可以函数决定Y了,根本不需要全部属性。
3.传递函数依赖
一个关系为R,X,Y和Z是它的三个属性集,其中X→Y,Y→Z(但Y不包含Z,X也不函数依赖Y),则存在X→Z,称此为传递函数依赖,即X传递函数决定Z,Z传递函数依赖于X。
1.4.3范式与规范化
规范化致力于解决关系模式中不合适的数据依赖问题,以便使其成为“好”的关系。
1.第一范式(FirstNormalForm)
(1)定义
设一个关系为R,如果它的每个属性都是不可再分的,则称这个关系是符合第一范式的,简称为1NF
(2)规范化方法
达到第一范式的方法非常简单,只需把每个子属性提升为一般属性,就能变为满足第一范式的规范化关系。
2.第二范式(SecondNormalForm)
(1)定义
设一个关系为R,它是满足第一范式的,若R中不存在非主属性对主键的部分函数依赖,则称该关系是符合第二范式的,简称为2NF。
(2)规范化的方法
一般可通过关系分解的方法,消除部分函数依赖,达到第二范式。
3.第三范式(ThirdNormalForm)
(1)定义
设一个关系为R,它是满足第二范式的,若R中不存在非主属性对主键的传递函数依赖,则称该关系是符合第三范式的,简称为3NF。
若一个数据库中所有关系都达到的第三范式则称该数据库是符合第三范式的。
(2)规范化的方法
消除关系中的传递依赖也是通过不断的关系分解的方法来实现的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 辅导 数据库 规范化 完整性