数据库原理与应用 课件全套 张千帆 第1-14章 绪论、-关系型数据库 -数据库技术的新发展_第1页
数据库原理与应用 课件全套 张千帆 第1-14章 绪论、-关系型数据库 -数据库技术的新发展_第2页
数据库原理与应用 课件全套 张千帆 第1-14章 绪论、-关系型数据库 -数据库技术的新发展_第3页
数据库原理与应用 课件全套 张千帆 第1-14章 绪论、-关系型数据库 -数据库技术的新发展_第4页
数据库原理与应用 课件全套 张千帆 第1-14章 绪论、-关系型数据库 -数据库技术的新发展_第5页
已阅读5页,还剩527页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章绪论本章介绍数据库系统的基本概念。数据库系统原理及应用1.2数据管理技术的发展1.3数据库系统的结构1.4数据模型1.5E-R模型主要内容1.6逻辑数据模型的分类1.1数据库系统基本概念数据库系统基本概念1.1基本概念信息(Information)人们对于客观事物属性和运动状态的反映。信息所描述的内容能够通过某种载体,如符号、声音、文字、图形、图像等来表征和传播。信息具有可感知、可存储、可加工、可传递和可再生等属性。数据(Data)描述现实世界事物的符号记录,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。对于计算机科学而言,数据的含义极其广泛,如数字、文字、图形、图像、声音等都可以通过编码而归之于数据的范畴。基本概念信息与数据的关联信息是指经过加工处理并可以对人类客观行为产生影响的数据表现形式。任何事物的属性都是可以通过数据来表示的。数据是信息的符号表示,是信息的具体表现形式,或称载体;信息是数据的内涵,是数据的语义解释。数据是现象,信息更反映本质。信息处理的基本环节将原始信息表示成源数据,然后对源数据进行处理而抽取或推导出新的数据,即结果数据。信息处理的基本环节主要包括信息的收集、信息的输入、信息的加工、信息的输出、信息的存储和传输,其中信息加工是信息处理的核心。基本概念数据库(DataBase,简称DB)长期储存在计算机内、有组织的、可共享的大量数据集合数据库是数据库系统的核心部分,是数据库系统的管理对象数据库特征①数据按一定的数据模型组织、描述和储存的;②长期存储;③可为多用户共享;④数据独立性较高;⑤统一管理。

基本概念数据库管理系统(DBMS)是位于用户与操作系统之间的一层数据管理软件。是基础软件,是一个大型复杂的软件系统。科学地组织和存储数据、高效地获取和维护数据。DBMS的主要功能1)数据库定义功能2)数据库查询和操纵功能3)数据库运行管理功能4)数据库的建立和维护功能5)数据字典DBMS数据子语言(1)数据定义语言(简称DDL);(2)数据操纵语言(简称DML);(3)数据控制语言(简称DCL)。基本概念数据库系统(DatabaseSystem,简称DBS)通常是指带有数据库的计算机应用系统。数据库系统的组成数据库数据库管理系统计算机软件硬件系统人员用户数据管理技术的发展1.2数据管理技术的发展过程20世纪50年代中期以前人工管理阶段20世纪50年代后期到60年代中期文件系统阶段20世纪60年代后期数据库系统阶段21世纪至今数据库系统新发展1)人工管理阶段背景计算机主要用于科学计算数据量小、结构简单,如高阶方程、曲线拟和等外存为顺序存取设备磁带、卡片、纸带,没有磁盘等直接存取设备没有操作系统,没有数据管理软件用户用机器指令编码,通过纸带机输入程序和数据,程序运行完毕后,由用户取走纸带和运算结果,再让下一用户上机操作1)人工管理阶段访问访问访问数据集1数据集2数据集n应用程序1应用程序2应用程序n1)人工管理阶段特点用户完全负责数据管理工作数据的组织、存储结构、存取方法、输入输出等数据完全面向特定的应用程序用户使用自己的数据,数据不保存,用完就撤走数据与程序没有独立性程序中存取数据的子程序随着存储结构的改变而改变磁带的特点优点:廉价地存放大容量数据缺点:顺序访问;1%所需,100%访问2)文件系统阶段背景计算机不但用于科学计算,还用于管理外存有了磁盘、磁鼓等直接存取设备有了专门管理数据软件,一般称为文件系统2)文件系统阶段数据集1数据集2数据集n文件系统应用程序1应用程序2应用程序n2)文件系统阶段特点系统提供一定的数据管理功能存取方式支持对文件的基本操作,用户不必考虑物理细节数据仍是面向应用的一个数据文件对应一个或几个用户程序数据与程序有一定的独立性文件的逻辑结构与存储结构由系统进行转换,数据在存储上的改变不一定反映在程序上2)文件系统阶段人事处洗衣房宿管中心文件系统学号姓名性别出生年月学院专业年级籍贯人事处洗衣房宿管中心文件系统学号姓名性别出生年月学院专业年级籍贯人事处洗衣房宿管中心文件系统学号姓名性别出生年月学院专业年级籍贯学号姓名性别学院专业住址人事处学号卡号姓名密码余额文件系统管理数据示例2)文件系统阶段缺点数据与程序的独立性差数据的共享性差,冗余度大数据的不一致性数据查询困难数据完整性难于保证3)数据库系统阶段背景计算机管理的数据量大,关系复杂,共享性要求强外存有了大容量的磁盘,光盘硬件价格下降,编制和维护软件及应用程序成本相对增加3)数据库系统阶段数据1统一存取数据2数据n应用程序2应用程序1应用程序n3)数据库系统阶段数据库管理数据应用示例宿管中心洗衣房人事处卡号密码学号姓名性别住址籍贯学院出生年月专业余额3)数据库系统阶段特点1面向全组织的复杂的数据结构支持全企业的应用而不是某一个应用数据反映了客观事物间的本质联系,而不是着眼于面向某个应用,是有结构的数据。这是数据库系统的主要特征之一,与文件系统的根本差别。文件系统只是记录的内部有结构,一个文件的记录之间是个线性序列,记录之间无联系特点2数据的冗余度小,易扩充数据面向整个系统,而不是面向某一应用,数据集中管理,数据共享,因此冗余度小节省存储空间,减少存取时间,且可避免数据之间的不相容性和不一致性每个应用选用数据库的一个子集,只要重新选取不同子集或者加上一小部分数据,就可以满足新的应用要求,这就是易扩充性3)数据库系统阶段特点3具有较高的数据独立性把数据库的定义和描述从应用程序中分离出去数据描述是分级的(全局逻辑、局部逻辑、存储)数据的存取由系统管理,用户不必考虑存取路径等细节,从而简化了应用程序特点4数据由DBMS统一管理与控制数据的安全性控制(Security)数据的完整性控制(Integrity)并发控制(Concurrency)4)数据库新发展随着互联网技术、大数据、云计算、人工智能等新一代信息技术的发展,传统数据库系统与其它新兴技术结合,形成了多种满足特定应用领域的新型数据库。数据库技术与网通信络技术融合的分布式数据库系统与面向对象技术融合的面向对象数据库系统与多媒体技术融合的多媒体数据库与人工智能技术融合的智能数据库与大数据融合的NoSQL(NotOnlySQL)数据库。……数据库系统的结构1.33.1三级模式

数据库系统的三级模式结构…用户An用户A3用户A2用户A1宿主语言+DML宿主语言+DML宿主语言+DML宿主语言+DML数据库概念模式内模式

概念级数据库DBA视图物理级数据库系统程序员视图

外模式1外模式2用户级数据库用户视图…外模式N数据库管理系统操作系统3.1三级模式外模式(Sub-Schema)又称为子模式、用户模式或用户视图。是数据库用户(包括程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述。数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。模式(Schema)又称逻辑模式、概念模式。所有用户的公共数据视图。是数据库中全体数据的全局逻辑结构和特性的描述。内模式(StorageSchema)又称存储模式、物理模式是数据物理结构和存储方式的描述。是数据在数据库内部的表示方式。3.2二级映像概念模式/外模式映像外模式1外模式2概念模式内模式概念模式/内模式映像…外模式N数据的逻辑独立性数据的物理独立性两级映像3.2二级映像外模式/模式映像定义某一个外模式和模式之间的对应关系,映象定义通常包含在各外模式中。当模式改变时,修改外模式/模式映像,使外模式保持不变,从而应用程序可以保持不变,称为数据的逻辑独立性。模式/内模式映像定义数据逻辑结构与存储结构之间的对应关系。存储结构改变时,修改模式/内模式映像,使模式保持不变,从而应用程序可以保持不变,称为数据的物理独立性。数据模型1.4信息的抽象过程现实世界信息世界计算机世界三个数据范畴:现实世界、信息世界和计算机世界应用概念模型数据模型抽象、概念化转换、形式化信息的抽象过程信息的循环经历了三个领域:现实世界、信息世界和数据世界。1)现实世界(RealWord),指存在于人们头脑之外的客观世界,是具体事物和抽象概念的总和,是数据处理的源泉。事物可分成“对象”与“性质”两大类。2)信息世界(InformationWorld),指现实世界在人们头脑中的反映。信息世界的主要对象是实体以及实体间的相互联系。3)数据世界(DataWorld),指数据库系统的处理对象。现实世界中的事实经过信息世界转换成信息,并经过加工、编码进入计算机世界。三类数据模型1)概念数据模型,简称为概念模型,是独立于任何计算机实现的。这类数据模型完全不涉及信息在计算机系统中的表示问题,只用来描述某个特定的组织所关心的信息结构。2)逻辑数据模型,简称为逻辑模型,是按计算机系统的观点对数据建模,直接面向数据库中的数据的逻辑结构。3)物理数据模型,简称为物理模型,属于底层数据模型,通过诸如记录格式、记录顺序和存取路径等表示信息,描述数据在数据库系统中的实际存储方式。存取路径是一个特殊的结构,用于在数据库文件中有效地搜索一个特定的数据库记录。概念模型中的基本概念实体(Entity)客观存在并可相互区分的事物叫实体属性(Attribute)实体所具有的某一特性码(Key)能唯一标识实体的属性或属性组域(Domain)属性的取值范围概念模型中的基本概念实体型(EntityType)实体名与其属性名集合共同构成实体型例:学生(学号、姓名、年龄、性别、系、年级)注意实体型与实体(值)之间的区别,后者是前者的一个特例如(0308100,王平,19,男,管理学院,2)是一个实体(值)实体集(EntitySet)同型实体的集合称为实体集如全体学生E-R模型1.5E-R模型组成要素实体(Entity)ER模型中实体即实体型用矩形表示,矩形框内写明实体名。属性(Relationship)用椭圆形表示,并用无向边将其与相应的实体连接起来。E-R模型组成要素联系实体之间的相互关联用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型。联系的种类(如右图)一对一联系(1:1)一对多联系(1:n)多对多联系(m:n)联系也可以有属性,如学生与课程之间有选课联系,每个选课联系都有一个成绩作为其属性。元或度(Degree)参与联系的实体集的个数称为联系的元。数据抽象方法定义某一类概念作为现实世界中一组对象的类型。抽象了对象值和对象型之间的“ismemberof”的语义。分类(Classification)定义某一类型的组成部分。抽象了对象内部类型和成分之间“

ispartof

”的语义。聚集(Aggregation)定义类型之间的一种子集联系。抽象了类型之间的“

issubsetof

”的语义。概括(Generalization)学生

张军学生姓名学号系别本科生研究生学生姓名学号论文军训

王平E-R模型设计流程是是局部E-R模型确定公共实体类型合并两个局部E-R模型检查并消除冲突还有冲突否无还有未合并的局部E-R模型全局E-R模型否基本E-R模型是还可优化否E-R模型设计流程图1)局部E-R模型设计现实世界的事物能作为属性对待的,尽量作为属性对待。属性不能再有需要描述的性质,必须是不可分的数据项。属性不能与其他实体具有联系。2)全局E-R模型设计集成方法多个局部E-R模型一次集成逐步集成,用累加的方式一次集成两个局部E-R模型

集成的步骤合并局部E-R模型,生成初步E-R模型属性冲突:属性类型不同、属性取值范围不同、属性取值单位不同结构冲突:同一对象在不同应用中的抽象不同、同一实体在不同E-R模型中属性组成不同、实体之间的联系在不同E-R模型中呈现不同的类型命名冲突:同名异义、异名同义修改和重构,消除不必要的冗余,生成基本E-R模型E-R模型设计实例1)数据需求描述考虑一个机械制造厂的工厂技术部门和工厂供应部门。技术部门关心的是产品性能参数、产品由哪些零件组成、零件的材料和耗用量等;工厂供应部门关心的是产品的价格、使用材料的价格和材料的库存量等。E-R模型设计实例2)局部E-R模型设计技术部门的局部E-R模型产品组成零件mn零件数零件号零件名耗用量材料名产品号产品名性能参数E-R模型设计实例2)局部E-R模型设计供应部门的局部E-R模型库存量仓库仓库号仓库名类别地点材料价格材料号材料名产品号产品产品名价格n存放m存放量耗用量使用mnE-R模型设计实例3)全局E-R模型的设计地点耗用量使用材料价格库存量mn仓库仓库号仓库名n类别存放材料号材料名m存放量性能参数产品产品号产品名价格组成零件零件号零件名m零件数n耗用量消耗mn集成的初步E-R模型E-R模型设计实例3)全局E-R模型的设计类别产品号图4改进的E-R模型性能参数零件数材料价格产品仓库仓库号仓库名n地点存放材料号材料名m产品名价格存放量组成零件零件号零件名m耗用量n消耗mn逻辑数据模型的分类1.6逻辑数据模型的分类1层次数据模型12网状数据模型23关系数据模型31)层次模型层次模型是用树形结构来表示实体与实体之间联系的模型。其中树的结点表示实体,边表示联系。学校管理学院计算机学院生命科学学院外国语学院信息管理系市场营销系工商管理系计算机系计算中心网络中心生物系环境系动物中心生物工程中心资源所英语系日语系

学校院系设置的层次模型1)层次模型层次模型描述了数据之间的层次关系层次模型中的树为有序树,实体之间的联系关系是单向的,树结点中任何结点的任何属性都是不可再分的简单型数据。有且仅有一个结点无双亲,这个结点称为根结点其它结点有且仅有一个双亲结点层次模型只能描述数据之间一对一或一对多的关系多对多联系在层次模型中的表示冗余结点法虚拟结点法层次数据模型的存储结构邻接法链接法2)网状模型网状模型用网状结构来表示实体与实体间联系。其中结点表示实体,边表示联系。结点之间的联系可以是一对一、一对多和多对多的。网状模型描述了数据之间的网状关系。网络数据模型3)关系模型关系数据模型是三种基本数据中最晚发展但相对建模能力最强的。关系数据模型用二维表格(即集合论中的关系)来表示实体和实体间的联系,保证了对实体和联系的描述的一致性。表中的每一行是一个元组,相当于一个记录。每一列是一个属性值集,列可以命名称为属性名。关系是元组的集合。关系数据模型有严格的数学基础,可直接表达多对多的联系。3)关系模型校园卡和商户之间的多对多联系可以表示为下图“消费清单”表的关系,包含五个属性(列),分别是流水号、卡号、商户编号、消费金额、消费时间关系数据模型用简单的线性数据结构表示了校园卡与商户之间多对多的联系。第2章关系型数据库本章主要介绍关系数据模型的数据结构、数据完整性、数据操作的相关概念和常见的关系型数据库数据库系统原理及应用2.1关系数据库概述2.2E-R模型转换为关系模型2.3关系完整性约束2.4关系代数主要内容2.5常见的关系型数据库管理系统关系数据库概述2.12.1.1关系域:一组具有相同数据类型的值的集合。例:整数、介于某个取值范围的整数实数、指定长度的字符串集合……笛卡尔积:给定一组域D1,D2,…,Dn,其笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}元组:笛卡儿积中每一个元素(d1,d2,…,dn)称为n元组。分量:元素中的每一个值di叫做一个分量。关系:D1ⅩD2Ⅹ…ⅩDn的子集叫作域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn

)其中R是关系名,n为关系的度关系是笛卡儿积的有限子集,所以关系也是一个二维表。表的每行对应一个元组,每列对应一个域,称为属性。2.1.1关系码:能够唯一标识一个元组的属性或属性集,又称键、关键字。码分为超码、候选码、主码、外码。超码:能够唯一标识一个元组的一个或多个属性的集合。如果K是一个超键,那么所有包含K的集合也是超键。候选码:能够唯一标识一个元组的最小属性集,即候选键是没有多余属性的超键。候选键中的属性称为主属性(PrimeAttribute),不包含在任何候选键中的属性称为非主属性(Non_primeAttribute)。主码:若一个关系有多个候选键,选定其中一个为主键。主键的诸属性称为主属性。外码:设属性F是关系R的一个属性,但不是关系R的主键,并对应着关系S的主键K,如图2-1所示。F在R中的取值要参照关系S中K的取值,称关系R为参照关系(ReferencingRelation)或从表,关系S为被参照关系(ReferencedRelation)或主表,并称F是关系R的外键(ForeignKey)。关系R和S不一定是不同的关系,但是K与F的域相同。非码属性:不包含在任何候选码中的属性。全码:关系模式的所有属性组是这个关系模式的候选码。2.1.1关系2.1.1关系基本关系的性质关系是一种规范化的二维表,作为关系的二维表必须满足下列6条性质:(1)同一属性(列)中的分量是相同类型的数据,即取自同一个域。(2)属性(列)的顺序可以是任意的。(3)元组(行)的顺序可以是任意的。(4)任意两个元组(即两行)不能完全相同。(5)属性必须有不同的名称,但不同的属性可以取自相同的域。(6)所有属性必须都是不可分解的,即表中不允许有子表。2.1.1关系9800019198000281980003719800028939800029812.1.2关系模式关系模式(RelationSchema):对关系的描述。元组集合的结构

属性构成

属性来自的域

属性与域之间的映象关系完整性约束条件关系模式是型、关系是值关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的关系模式可以形式化地表示为:

R(U,D,DOM,F)R

关系名U

组成该关系的属性名集合D

U中属性所来自的域DOM

属性向域的映象集合F

属性间数据的依赖关系的集合2.1.3关系模型关系模型组成要素数据结构在关系模型中,无论是实体还是实体之间的联系均由单一的结构类型即关系来表示。关系操作增加、删除、修改、查询(并、交、差、选择、投影、连接、除)关系代数、关系演算、SQL关系完整性实体完整性参照完整性用户自己定义的完整性2.1.4关系数据库关系数据库:在一个给定的应用领域中,所有关系的集合构成一个关系数据库关系数据库的型与值关系数据库的型:关系数据库模式,是对关系数据库的描述关系数据库的值:关系模式在某一时刻对应的关系的集合,通常称为关系数据库关系数据库系统(RelationalDBMS,简称为RDBMS)以其结构简单、通俗易懂、使用方便等特点,深受广大用户的欢迎,是目前使用最广泛的数据库系统。E-R模型转换为关系模型2.2E-R模型转换为关系模型模型与关系数据模型的要素对照表关系数据模型可由基本E-R模型转换得到2.2.1具有简单属性的实体的表示(1)设E为只具有n个简单属性的实体,则关系E表示为这n个属性的集合。(2)实体的主键为转换得到的关系的主键。(3)关系中的一个元组对应一个实体值。S(SNO,SNAME,DEPT)学生姓名学号系别例:简单属性:不可再分的属性一个实体型转换为一个同名的关系模式。实体的属性就是关系的属性,实体的码就是关系的码。2.2.2具有复杂属性的实体的表示1)复合属性:可以划分为更小的属性如果实体具有复合属性,可以用子属性替代复合属性,也可以把复合属性升级为一个实体,用一个新的关系表示。2)多值属性:属性上有多于一个的取值多值属性需要升级为一个新的关系,例如,对于实体的一个多值属性M,构建关系R,该关系由M以及M所在的实体的主键构成。R的主键由其所有属性构成的全键。R的外键是由M所在实体的主键所生成的属性。3)派生属性:从其他相关的属性或实体派生出来的属性值派生属性不在关系模式中显性表示,只是在需要时通过计算得到。2.2.2具有复杂属性的实体的表示教师

职工号

姓名

通讯地址

街道

街道号

街道名

门牌号

{电话号码}

出生日期

年龄()teacher(TID,name,province,city,street_number,street_name,apt_number,birthday)TID是主键teacher_phone(TID,phone)(TID,phone)是主键,TID是外键复杂属性的表示示例2.2.3二元联系的表示1)1:1联系的表示把任意一端的主键及联系本身的属性与另一端对应的关系合并。厂长号姓名年龄厂长厂名地点工厂管理11方法一:厂长(厂长号,厂号,姓名,年龄)

工厂(厂号,厂名,地点)方法二:厂长(厂长号,姓名,年龄)

工厂(厂号,厂长号,厂名,地点)厂号1:1联系的表示示例2.2.3二元联系的表示2)1:n联系的表示把“1”端的关键字以及联系的属性与“n”端对应的关系合并。合并后的关系的键是“n”端实体的键。1:n联系的表示示例学号教工号姓名工作单位教师姓名专业学生指导1n教师(教工号,教师姓名,工作单位)学生(学号,教工号,姓名,专业,班级)班级2.2.3二元联系的表示3)m:n联系的表示m:n联系必须转换为一个新的关系,新关系的属性包括与该联系相关的各实体的键以及联系的属性。各实体主键的集合构成了该关系的主键,各主键对应的属性是该关系的外键。m:n联系的表示示例学号姓名年龄学生课程号课程名学时数课程学习mn成绩学生(学号,姓名,年龄)课程(课程号,课程名,学时数)学习(学号,课程号,成绩)

2.2.4多元联系的表示多元联系的转换方法与二元联系转化方法相同,具体表述如下:1)1:1:1联系可以把任选意两个实体的键以及联系的属性放在第三个实体的关系中。2)1:1:n联系可以把两个1端实体的键以及联系的属性放在n端实体的关系中。3)1:m:n联系转换成由m端和n端实体的键以及联系的属性构成的新关系,新关系的键为m端和n端实体的键的组合。4)m:n:p联系转换成由三端实体的键以及联系的属性构成的新关系,新关系的键为三个实体的键的组合。关系完整性约束2.3关系完整性约束数据库通过完整性约束保证数据的相容性和正确性。

一是数据库中的数据与现实世界中的应用需求的相容性和正确性;二是数据库中数据之间的相容性和正确性。关系模型中有三类完整性约束:实体完整性参照完整性用户定义完整性。1)实体完整性实体完整性规则1)主键约束

每个表只能有一个主键,构成主键的每一列值不

能为空值,且主键必须能够唯一标识表中每一行,任意两行在主键上不能具有相同的值。2)候选键约束

候选键与主键一样,必须非空且唯一。1)实体完整性学号不能为空值或重复的值。因为没有学号的学生在这个数据库中是不存在的,而且也不存在不同学生具有相同学号的情况。实体完整性可以保证数据库中记录的唯一性1)实体完整性(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。(3)关系模型中以主码作为唯一性标识。(4)主码中的属性即主属性不能取空值。主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性。说

明2)参照完整性参照完整性规则设F是关系R的外键,并对应关系S的主键K,则F在关系R中的取值要么是空值,要么等于关系S中某个元组的主键值。关系R和关系S可以是不同的关系,也可以是同一个关系2)参照完整性插入规则:在子表中插入记录时应遵循的规则限制(Constraint):若父表中不存在匹配的关键字值,则禁止插入操作进行。忽略(Abort):允许插入,不遵守参照完整性约束条件。这时数据库完全处于自由状态。2)参照完整性删除规则:在父表中删除记录时应遵循的规则级联(Cascade):先删除子表中的所有相关记录。限制(Constraint):若子表中存在相关匹配的记录,则禁止删除操作进行。忽略(Abort):允许删除,不理会子表中的相应记录,即不遵守参照完整性约束条件。这时数据库完全处于自由状态。2)参照完整性更新规则:当父表的关键字被修改时应遵循的规则;级联(Cascade):用新的关键字值更新子表中的所有相关记录。限制(Constraint):若子表中存在匹配的相关记录,则禁止更新操作进行。忽略(Abort):允许更新,不遵守参照完整性约束条件。这时数据库完全处于自由状态。2)参照完整性例:班级(班级编号,班级名称)

学生(学号,班级编号,姓名,性别)3)用户完整性用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。用户定义的完整性没有统一的规则,由数据库设计人员根据具体应用中数据的语义要求来创建。3)用户完整性3)用户完整性3)用户完整性由用户自定义的完整性,数据库必须同样遵守。实体完整性和参照完整性是关系模型必须满足的约束条件,应该由关系系统自动支持。而用户自定义完整性反映了用户的要求,是用户自行定义的。完整性的实现uniquechecknot

null关系代数2.4关系代数概述运算对象是关系运算结果亦为关系关系代数的集合运算分类:传统的集合运算(并、交、差、广义笛卡尔积)专门的关系运算两种类型(投影、选择、连接、除)关系代数运算符关系代数概述2.4.1传统的集合运算并设关系R和关系S都有n个属性,且相应的属性取自同一个域。对关系R与关系S进行并操作,结果仍是一个具有n个属性的关系。该关系由关系R和关系S中的所有元组组成,相同的元组只保存一次,可记作:R∪S≡{t|t∈R∨t∈S}2.4.1传统的集合运算2.4.1传统的集合运算交设关系R和关系S都有n个属性,且相应的属性取自同一个域。对关系R与关系S进行交操作,结果仍是一个有n个属性的关系,该关系由既属于关系R又属于关系S的所有元组组成,可记作:R∩S≡{t|t∈R∧t∈S}2.4.1传统的集合运算2.4.1传统的集合运算差设关系R和关系S都有n个属性,且相应的属性取自同一个域。对关系R与关系S进行差(Difference)操作,结果仍是一个有n个属性的关系,该关系由属于关系R且不属于关系S的所有元组组成,可记作:R-S≡{t|t∈R∧t∉S}2.4.1传统的集合运算2.4.1传统的集合运算广义笛卡尔积设关系R有n个属性,关系S有m个属性,关系R和关系S的广义笛卡尔积是一个有n+m个属性的关系,该关系的元组由关系R的元组和关系S的元组两两组合而成,元组的个数为关系R和关系S元组个数的乘积,可记作:R×S≡{(tr,ts)|tr∈R∧ts∈S}2.4.1传统的集合运算2.4.2专门的关系运算π投影(选列)投影(Projection)是根据某些条件对关系进行垂直分割,产生一个只有部分属性的新关系,新关系中的属性可以重新安排顺序。投影运算可记作:πA1,A2,…,An(R)其中,A1,A2,…,An是对关系R进行投影运算后保留在新关系中的属性。2.4.2专门的关系运算ABC123456223关系R

B,C(R)BC2356ABC1234562232.4.2专门的关系运算δ选择(选行)根据条件对关系作水平分割,产生一个仅由符合条件的元组构成的新关系。选择运算可记作:σF(R)其中,F表示选择条件。2.4.2专门的关系运算ABC123456223关系R

A=1∨B=5(R)ABC1234562.4.2专门的关系运算⋈连接(拼表)连接(Join)是从两个关系的笛卡尔积中选取属性间满足特定条件的元组,可记作:R

FS其中,F表示连接条件。如果连接条件中使用“=”作为连接运算符,将从两个关系的笛卡尔积中选取公共属性的取值相等的元组构成新的关系,则该连接运算称为等值连接(EqualJoin),可记为:R

A=BS自然连接(NaturalJoin)是一种特殊的等值连接,会去掉等值连接中重复的属性,语法格式种省略等值连接条件,可记为:R

S

2.4.2专门的关系运算关系R1关系R2等值连接R1.B=R2.B自然连接R1.B=R2.B2.4.2专门的关系运算÷除给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集YX包含S在Y上投影的集合。可记作:R÷S={tr[X]|tr∈R∧πY(S)⊆Yx}其中,Yx为x在R中的象集,x=tr[X]。2.4.2专门的关系运算关系R1关系R2R1÷R22.4.3关系代数运算的应用实例饭卡管理系统中共有6个数据表,如下所示:学生(学号,饭卡号,姓名,性别,院系

)主码为学号,外部码为饭卡号;饭卡(饭卡号,密码,办卡日期,注销日期,状态,余额),主码为饭卡号;消费记录(消费记录号,售饭机号,饭卡号,消费金额,消费日期)主码为消费记录号,外部码为售饭机号、饭卡号;售饭机(售饭机编号,状态,位置)主码为售饭机号;工作人员(工作人员编号,姓名,性别,年龄)主码为工作人员编号;操作(工作人员编号,售饭机编号,操作日期)主码为工作人员编号和售饭机编号的组合编码。2.4.3关系代数运算的应用实例例1:检索学号为012006033925的学生姓名与所在院系。π姓名,院系(σ学号=‘012006033925’(学生))π3,5(σ1=‘012006033925’(学生))例2:检索持有00000001号饭卡的学生的学号与姓名。π学号,姓名(σ饭卡号=‘00000001’(学生))例3:检索管理学院或机械学院的学生学号和姓名。π学号,姓名(σ院系=‘管理学院’∨院系=‘机械学院‘(学生))2.4.3关系代数运算的应用实例2.4.3关系代数运算的应用实例例6:检索操作过所有售饭机的工作人员的姓名。(1)工作人员对售饭机的操作情况π工作人员编号,售饭机编号(操作)(2)全部售饭机π售饭机编号

(售饭机)(3)操作过全部售饭机的工作人员编号π工作人员编号,售饭机编号(操作)÷π售饭机编号(售饭机)(4)所有工作人员的编号和姓名π工作人员编号,姓名(工作人员)(5)从工作人员编号求工作人员姓名π姓名(π工作人员编号,姓名(工作人员)

(π工作人员编号,售饭机编号(操作)÷π售饭机编号(售饭机)))可见,当查询涉及到否定或全部值时,就要用到差操作或除操作。常见的关系型数据库管理系统2.5常见的关系型数据库管理系统关系数据库管理系统RDBMS指包括相互联系的逻辑组织和存取这些数据的一套程序(数据库管理系统软件)。关系数据库管理系统就是管理关系数据库,并将数据逻辑组织的系统。当前主流的关系型数据库管理系统有Oracle、MySQL、SQLServer、IBMDB2等2.5.1OracleDatabaseORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。2.5.1OracleDatabase1)高开放性Oracle数据库可以在所有主流平台上运行,并且所提供的系统工具完全支持企业级实体关系,可以提供对企业级开发商的全面支持。2)安全保密Oracle提供多层安全性机制。用户标识鉴定可以有效防止非法用户进入数据库系统;数据文件加密机制可以在数据不幸泄露的情况下也难以被破译;数据逻辑备份可以在计算机发生故障和其它异常时也可以快速通过备份恢复数据库,使系统回到正常状态。3)高效性能Oracle系统具备基于规则的优化器和基于代价的优化器,可以对复杂的SQL形成优异的执行计划,可以支持开发人员编写含有大量复杂运算的SQL语句。4)跨界架构Oracle的实时应用集群技术使得利用成本较低的服务器实现高性能和可靠性成为可能。同时还可以自动实现数据库并行处理和负载均衡。Oracle数据库的特点:2.5.2MySQLMySQL是一个精巧的SQL数据库管理系统,而且是开源的数据管理系统。由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。2.5.2MySQL1)开源免费无版权制约MySQL数据库是开源的,提供社区版、企业版、集群版和高级集群版等不同复杂度的软件版本,其中社区版是免费的。2)体积小巧使用简单MySQL的安装体积最小可以达到10M,安装和配置过程非常简单。3)性能卓越运行稳定MySQL的性能非常强大,与Linux、Apache和PHP组成的开发环境应用在许多中小型网站中。由于性能非常稳定,这套开发环境还被称之为LAMP。4)活跃用户群体庞大MySQL的开源特性使众多数据库爱好者参与到版本的优化和改进中,持续不断的高度参与使MySQL的用户形成了自己的社区,用户在社区内通过分享解决方案和优化特性建立的知识体系能使新用户的问题得到快速解答。MySQL的特点2.5.3MicrosoftSQLServerSQLServer是Microsoft公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2012的大型多处理器的服务器等多种平台使用。MicrosoftSQLServer是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。MicrosoftSQLServer数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。2.5.3MicrosoftSQLServerSQLServer的特点1)完整的数据解决方案SQLServer提供了一整套数据解决方案,其中包括了数据存储、智能分析、大数据集成和数据挖掘等完整的工具和方案。2)图形化用户界面SQLServer采用图形用户界面,富UI界面和强大的调试工具实现了操作可视化,使用户更容易上手使用。3)易于安装部署SQLServer提供了一系列的管理和开发工具,支持在多个站点上安装、部署和使用。在Windows平台中具有强大的可伸缩性。4)高强度组件协作配合藉由微软平台的合作伙伴可以在数据库的基础上继续开发更高层次的集成方案,能满足大型Web站点和企业级数据存储和分析的需要。

2.5.4IBMDB2IBMDB2是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBMi(旧称OS/400)、z/OS,以及Windows服务器版本。DB2具备高安全性和高可靠性,还内置了数据仓库管理的功能,在商业智能解决方案中,还具备数据挖掘工具,因此被业界公认为电子商务的数据基础。

2.5.4IBMDB2DB2的特点1)开放性和可移植性DB2能在所有主流平台上运行,适用于大量结构化数据的应用场景。此外,DB2数据库还能非常方便地将其它数据库的数据移植过来,因此在企业中得到广泛应用。2)处理性能DB2可以轻松应对超过1TB级的数据,数据库系统提供了一系列优化分析工具,如DB2PD、RUNSTATS和DB2DART等,以分析数据库的运行状态。3)并行性DB2把数据库扩充到并行、多点环境,支持位图索引和对象关系,这使得DB2拥有更好的扩展性和性能。4)分布式数据库第3章关系模式设计本章介绍关系模式中属性之间的依赖关系以及关系数据库规范化理论数据库系统原理及应用3.1关系模式的规范化3.2关系规范化3.3求解关系模式的候选键3.4关系模式的分解原则主要内容

该关系模式存在什么问题?问题的引入StudentIDSnameSchoolTnumberCourseIDCnameScoreCardIDPassword1204020001Ross机械学院320C0002数控编程8500011231204020001Ross机械学院320C0007大学英语8800011231205030020Joey机械学院320C0002数控编程76000245191206021354Monic管理学院130C0010管理信息系统9000044529关系模式Table_Student的实例关系模式Table_Student存在的问题:数据冗余更新异常:由于数据冗余,数据需要修改时产生数据的不一致。插入异常:该插的数据插不进去。删除异常:不该删除的数据被异常地删除了。SnameSchoolCnameScorePasswordStudentIDCourseIDCardIDTnumberTable_Student中属性间的依赖关系示例原因:存在于模式中的某些属性之间不合理的数据依赖。解决方法:通过分解关系模式来消除其中不合适的数据依赖。将关系模式Table_Student分解为如下5个关系模式:Student(StudentID,Sname,School,CardID)School_Teacher(School,Tnumber)Course(CourseID,Cname)Card(CardID,Password)Student_Course(StudentID,CourseID,Score)关系模式的规范化3.13.1.1关系模式的描述方式3.1.2规范化理论1)范式

不同的数据依赖条件下关系模式的分离程度2)规范化

需要对现存表结构进

行修改,把表转化使遵循一系列先进的范式规范化各级范式的关系3.1.2规范化理论函数依赖

设关系模式R(U)中,U是属性集,X和Y是U的子集。如果该关系模式的任意一个可能的关系中都不可能存在两行在X上的值相等而在Y上的值不等,即X为决定因素,Y为依赖因素,X的值决定着Y的值,则称“Y函数依赖于X”或者“X函数决定Y”,记为X→Y。3.1.2规范化理论(1)平凡的函数依赖如果Y⊆X,则对于任何一个关系模式,X→Y都是必然成立的,并没有反映新的语义。这种函数依赖称为平凡的函数依赖。(2)非平凡的函数依赖如果X→Y且Y⊈X,这种函数依赖称为非平凡的函数依赖。若不特别声明,总是讨论非平凡的函数依赖。(3)完全函数依赖如果X→Y且X的任何一个真子集都不能函数决定Y,则称Y完全函数依赖于X,记为XY。3.1.2规范化理论[例]Table_Student(StudentID,Sname,School,Tnumber,CourseID,Cname,Score,CardID,PassWord)(StudentID,CourseID)→Score其真子集:StudentID↛Score,CourseID↛Score于是有(StudentID,CourseID)Score。3.1.2规范化理论[例]Table_Student(StudentID,Sname,School,Tnumber,CourseID,Cname,Score,CardID,PassWord)(StudentID,CourseID)→Sname其真子集:StudentID→Sname于是有(StudentID,CourseID)

Sname。3.1.2规范化理论[例]Table_Student(StudentID,Sname,School,Tnumber,CourseID,Cname,Score,CardID,PassWord)因为StudentID→School,School→Tnumber,且School↛StudentID所以StudentID

Tnumber。3.1.2规范化理论多值依赖有关系模式R(U),其中X、Y、Z是U的子集,并且Z=U–X–Y,关系模式R(U)中,当且仅当满足下列性质:对R(U)的任一关系r,给定一对(x,z)值,就有一组y值与其相对应,而且这组y值只依赖于x值,而与z值无关,则称Y多值依赖于X,记为X→→Y。若X→→Y,而Z=Φ即Z为空,则称X→→Y为平凡的多值依赖,否则称X→→Y为非平凡的多值依赖。3.1.2规范化理论

在某高校,每位教师可以为多个系的学生授课,可以主讲多门课程。而且在每个系都是教授同样的几门课。即每位教师无论在哪个系授课都对应一组自己所教授的课程。[例]TDC张芳信息管理系数据结构张芳物流管理系数据结构李君信息管理系数据库技术李君财务管理系数据库技术李君物流管理系数据库技术李君信息管理系管理信息系统李君财务管理系管理信息系统李君物流管理系管理信息系统………………关系模式TDC(T,D,C)T代表教师D代表系C代表课程。候选码是(T,D,C)TDC中存在两个多值依赖:

T→→D和T→→C关系规范化3.23.2关系规范化1NF在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系。记为R

1NF。学生基本信息StudentIDSnameSchoolTnumber120402000Ross机械学院320120503002Joey机械学院320StudentIDSnameSchoolTnumber120402000Ross机械学院320120503002Joey机械学院320转化为1NF3.2关系规范化2NF根据部分函数依赖中属性的性质,把部分函数依赖分为非主属性对候选键的部分函数依赖和主属性对候选键的部分函数依赖。如果关系模式R(U,F)中的所有非主属性都完全函数依赖于任一候选码,则称关系R是第二范式的。记为R

2NF。3.2关系规范化关系模式Table_Student(StudentID,Sname,School,Tnumber,CourseID,Cname,Score,CardID,Password)的候选码是(StudentID,CourseID)和(CardID,CourseID),非主属性包括Sname,School,Tnumber,Cname,Score,Password。该模式是否满足二范式的要求?3.2关系规范化该关系模式存在非主属性对候选码的部分函数依赖:(StudentID,CourseID)

Sname(StudentID,CourseID)

School(StudentID,CourseID)

Cname(StudentID,CourseID)

Password(CardID,CourseID)

Sname(CardID,CourseID) School(CardID,CourseID) Cname(CardID,CourseID)

Password因此,关系模式Table_Student不属于2NF。3.2关系规范化将关系模式Table_Student分解成下列四个关系模式:Student(StudentID,Sname,School,Tnumber,CardID)Course(CourseID,Cname)Card(CardID,Password)Student_Course(StudentID,CourseID,Score)SnameSchoolStudentIDTnumberCardIDCnameCourseIDPasswordCardIDStudentIDCourseIDScore3.2关系规范化3NF根据传递函数依赖中属性的性质,把传递函数依赖分为非主属性对键的部分函数依赖和主属性对键的部分函数依赖。如果关系模式R(U,F)满足2NF的要求且所有非主属性对任何候选码都不存在传递函数依赖,则称关系模式R是第三范式,记为R

3NF。3.2关系规范化SnameSchoolStudentIDTnumberCardID关系模式Student(StudentID,Sname,School,Tnumber,CardID)中存在非主属性对候选码的传递函数依赖:StudentID→School,School→Tnumber,且School↛StudentID,故StudentIDTnumberCardID→School,School→Tnumber,且School↛CardID,故CardIDTnumber因此,关系模式Student不属于3NF。3.2关系规范化将关系模式Student(StudentID,Sname,School,Tnumber,CardID)分解成下列两个关系模式:Student(StudentID,Sname,School,CardID)School_Teacher(School,Tnumber)分解后的关系模式属于3NF。3.2关系规范化BCNF对于关系模式R,若R中的所有非平凡的、完全的函数依赖的决定因素是码,则R属于BC范式(BCNF)。

若关系模式R属于BCNF,则R有:R中所有非主属性对每一个码都是完全函数依赖;R中所有主属性对每一个不包含它的码也是完全函数依赖;R中没有任何属性完全函数依赖于非码的任何一组属性。一个关系模式属于BCNF,则在函数依赖的范畴内,它已实现了彻底的分离,已消除了插入和删除异常。3.2关系规范化[例]:在关系模式Student_Course(StudentID,CourseID,Score)中插入新的属性CardID,结构修改后的关系模式Student_Course2(StudentID,CourseID,Score,CardID)。StudentIDCourseIDScoreCardIDStudent_Course2中的函数依赖请问:

1)Student_Course2满足BCNF的要求吗?2)如果不满足BCNF的要求,请将其转化为BCNF。3.2关系规范化4NF对于存在多值依赖的关系模式需要分解和优化。如果关系模式R(U,F)属于1NF,对于R的每个非平凡多值依赖X→→Y(Y⊈X),X都含有键,则称R属于第四范式,记为R

4NF。3.2关系规范化TDC中唯一的候选码是(T,D,C),存在两个多值依赖:T→→D和T→→C。这两个多值依赖都是非平凡的多值依赖,且其决定因素不含码,而只是码的一部分,所以TDC不属于4NF。消除其主码内的多值依赖可得到满足4NF的两个关系:TD和TC,如表所示。求解关系模式的候选键3.33.3.1候选键的求解方法关系模式的候选键是指能够唯一标识关系的元组的一个属性或属性组可以根据候选键的定义从属性之间的联系判断候选键。也可以根据函数依赖的定义判断关系模式的候选键,如果关系模式中所有的属性都函数依赖于某个属性或属性组,则该属性或属性组即为关系模式R的候选键。3.3.1候选键的求解方法1)逻辑蕴涵设关系模式R(U,F)中U为属性集,F为函数依赖集,任何一个F中的函数依赖或者能够从F中推导出来的函数依赖X→Y,都称F逻辑蕴涵X→Y,或称X→Y被F逻辑蕴含。[例]:设关系模式student(SID,sname,gender,college,MID)的函数依赖集合F={SID→sname,SID→gender,SID→college,college→MID},函数依赖SID→MID是否被F逻辑蕴含?由SID→college,college→MID可以推出SID→MID在student上也成立,则除了SID→sname,SID→gender,SID→college,college→MID被F逻辑蕴涵外,SID→MID也被F逻辑蕴涵,或称F逻辑蕴涵SID→MID。3.3.1候选键的求解方法2)函数依赖集合F的闭包设F为一个函数依赖集合,F的闭包是指F逻辑蕴涵的所有函数依赖集合。F的闭包记为F⁺[例]:关系模式student(SID,sname,gender,college,MID)中,函数依赖集合F的闭包F⁺={SID→sname,SID→gender,SID→college,college→MID,SID→MID}。3.3.1候选键的求解方法3)属性或属性集的闭包的闭包基于函数依赖集合F的闭包,可以求解任何一个属性或属性集能够函数决定的所有属性。属性或属性集能函数决定的所有属性,称为该属性或属性集的闭包,记为XF+。设关系模式R中,U为属性集,F为函数依赖集,如果一个属性或属性集X能函数决定关系模式的所有属性,即XF+=U,则X为关系模式的一个超键。如果XF+=U且X的任何真子集关于F的闭包都不为U,则X是关系模式R的一个候选键。3.3.1候选键的求解方法求解复杂关系模式的候选键,首先需要求解逻辑蕴涵,然后求解函数依赖集的闭包和属性集的闭包。3.3.2Armstrong公理设U为关系模式R上的属性全集,F为U上的一组函数依赖,对于关系模式R<U,F>有如下推理规则:(1)自反律。若属性集Y包含于属性集X,属性集X包含于U,则X→Y在R上成立。(2)增广律。若X→Y在R上成立,且属性集Z包含于属性集U,则XZ→YZ在R上成立。(3)传递律。若X→Y和Y→Z在R上成立,则X→Z在R上成立。(4)合并规则。若X→Y,X→Z同时在R上成立,则X→YZ在R上成立。(5)分解规则。若X→W在R上成立,且属性集Z包含于W,则X→Z在R上也成立。(6)伪传递规则。若X→Y在R上成立,且WY→Z,则XW→Z也成立。3.3.2Armstrong公理[例]:设关系模式R中,U={A,B,C,D,E,F},F={AD→E,AE→BC,BE→DF,CD→E,CEF→D,DE→F,E→C,F→AB},判断DF→CE是否属于F⁺。由F→AB知F→A,DF→AD。又知AD→E,E→C,由传递律得AD→C,由合并规则得AD→CE。由传递律得DF→CE,所以DF→CE属于F⁺。通过上述步骤找到了F的一个逻辑蕴含DF→CE。反复使用Armstrong公理,可以找出F逻辑蕴涵的所有函数依赖,进而得到F⁺。3.3.3求解属性集的闭包求解属性集X的闭包X⁺的算法如下:(1)选X作为闭包X⁺的初值X(0)。(2)由X(i)计算X(i+1)时,它是由X(i)并上属性集合A所组成,其中A满足下列条件:Y⊆X(i),且F中存在函数依赖Y→Z,而A⊆Z因为U是有穷的,所以上述过程经过有限步之后会达到X(i)=X(i+1),此时X(i)为所求的X⁺。3.3.3求解属性集的闭包[例]已知关系模式R<U,F>,U={A,B,C,D,E,G,H},F={A→B,B→C,A→E,B→H,CD→G},求关系R的码。①选AD为码,求(AD)⁺。设X(0)=AD。②计算X(1):在F中找其左边为A或D或AD的函数依赖,如A→B,A→E,所以,X(1)=AD⋃BE=ABDE。③计算X(2):在F中找包含X(1)的函数依赖,除去已使用过的函数依赖外,还有B→C,B→H,所以,X(2)=ABDE⋃CH=ABCDEH。④计算X(3):在F中找包含X(3)的函数依赖,除去已使用过的函数依赖外,还有CD→G,所以,X(3)=ABCDEH⋃G=ABCDEGH。因为(AD)⁺=ABCDEGH,根据码的定义,可知AD是关系R的码。3.3.3简化候选键的求解过程对于关系模式R中的任何一个函数依赖X→Y,左边的属性X是决定性属性,右边的属性Y是依赖性属性。如果关系模式的某个属性只出现在函数依赖的左边,这个属性不仅是决定性属性,且不能由其它决定性属性推导出来,一定是任一候选键的组成部分,称为L类属性。对于那些只出现在函数依赖右边的属性则一定不是主属性,不存在于关系模式的任何候选键中,称为R类属性。在函数依赖的左右两边都出现过的属性,称为LR类属性。没有办法直接判断LR类属性是否包含在候选键中,需要通过属性的闭包进行分析。在函数依赖左右两边均未出现的孤立属性,称为N类属性。N类属性虽然不能决定其他属性,但是也不能由其他属性推导出来,N类属性是任一候选键的组成部分。根据以上属性的分类方法,可以排除求解R类属性的闭包,简化候选键的求解过程。3.3.3简化候选键的求解过程[例]:设关系模式R(U,F),U={A,B,C,D,E},F={AB→CD,E→D,D→E,AE→BC,B→E},求所有候选键。A不在函数依赖集合F中任何一个函数依赖的右边出现,R的候选键必含A;A+=A,所以A不是候选键。(AB)(0)=AB,AB→CD,B→E,所以(AB)(1)=ABCDE。(AB)+=ABCDE=U,所以AB是候选键。(AC)(0)=AC,(AC)+=AC,所以AC不是候选键。(AD)(0)=AD,D→E,所以(AD)(1)=ADE。E→D,AE→BC,所以(AD)(2)=ADEBC。(AD)+=ADEBC=U,所以AD是候选键。(AE)(0)=AE,AE→BC,E→D,所以(AE)(1)=AEBCD。(AE)+=AEBCD=U,所以AE是候选键。3个及3个以上属性且含A的子集都含AB或AD或AE,都是超键,不是候选键。所以R的候选键有AB,AD,AE。关系模式的分解原则3.43.4关系模式的分解原则1)无损连接性可通过对分解后形成的关系的某种连接运算使之还原到分解前的关系。2)函数依赖保持性分解过程中不能丢失或破坏原有关系的函数依赖。关系的分解不是唯一的。3.4关系模式的分解原则R(U,F),U={A1,A2,……An},F是函数依赖集

={R1(U1,F1),R2(U2,F2),……RK(Uk,Fk)}是R的一个分解,如果对于R的任一满足F的关系r都有:r=

R1(r)⋈

R2(r)……

Rk(r)=m

(r)称

是满足F的无损连接分解。3.4关系模式的分解原则R(U,F),U={A1,A2,……An},F是函数依赖集,

={R1(U1,F1),R2(U2,F2),……RK(Uk,Fk)}是R的一个分解,若F=

R1(F)U

R2(F)U……U

Rk(F),称

具有函数依赖保持性。3.4.1无损连接性的判断方法设关系模式R的属性集U={A1,…,An},函数依赖集为F。R的一个分解ρ={R1,…,Rk}。(1)把关系模式的分解结果表示为一张k行n列的二维表格,每一行对应一个分解后的子模式Ri(1≤i≤k),每一列对应一个属性Aj(1≤j≤n)。单元格的值分为两类,一类是子模式中有的属性,一类是子模式中没有的属性,表示方法为:如果Aj在Ri中,那么在表格的第i行第j列处填上符号aj,否则填上符号bij。(2)对每一个函数依赖X→Y,做下列操作:如果表中存在两行或多行中X列上具有相同的符号,则将这些行上Y列上的值也改为相同。如果这些行的Y列上有一个值是aj,那么其它行的Y列上的值也改成aj;否则改动行下标最小的bmj(m为这些行的最小行号)。若某个bij被改动,则该列中凡是与bij相同的符号均作相同的改动。(3)直到某一个子模式所在的行全是a,即该子模式可以函数决定原关系模式R的所有属性,可以断定ρ相对于F是无损连接分解。3.4.1无损连接性的判断方法[例]:设关系模式R中属性集U={A,B,C,D,E,F},函数依赖集合F={A→BC,CD→E,B→D,BE→F,EF→A},分解ρ={R1(A,B,C),R2(B,D),R3(B,E,F)}是否具备无损连接性?根据关系模式R的函数依赖集合F,可知R1中存在函数依赖A→BC,R2中存在函数依赖B→D,R3中存在函数依赖是BE→F。(1)构造初始表格,如表所示。表13.4.1无损连接性的判断方法(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论