版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章数据库系统基本概念数据库(Database,简称DB),是一个有结构的、集成的、可共享的、统一管理的数据集合。数据库管理系统(DataBaseManagementSystem,DBMS)是用来管理数据库的一种商品化软件。所有访问数据库的请求都由DBMS来完成的。DBMS提供了操作数据库的许多命令(语言),即SQL语言。DBMS的主要功能:数据定义的功能。DBMS提供数据定义语言(DataDefinitionLanguage,DDL)。通过DDL,可以方便地定义数据库中的各种对象。如定义Students表结构。数据操纵的功能。DBMS提供数据操纵语言(DataManipulationLanguage,DML)。通过DML,实现数据库中数据的基本操作。如向Students表中插入一行数据。安全控制和并发控制的功能。如控制非法用户访问数据库。•数据库备份与恢复的功能。对数据库进行定义备份,以便数据库遭遇意外时,能恢复。数据库系统数据库系统的组成:数据库由若干张相互关联的表格组成。数据库系统各个部件之间的关系•用户与数据库应用(即应用程序)交互;应用程序与DBMS交互;DBMS访问数据库中的数据,返回给应用程序;应用程序按用户的习惯显示得到的数据。数据库系统管理数据特点:数据是集成的、共享的。--数据库系统中所有的数据都集中存储在一个数据库中。•数据重复小。•数据独立性好。--应用程序不依赖任何数据的结构与访问技术。数据结构化,易于按用户的视图表示。模式:就是数据的一种抽象描述。数据库的三级模式:外模式、概念模式、内模式。内模式是数据库中数据的存储结构、存储方法、存取策略等的描述,也称物理模式、存储模式。概念模式是数据库中数据的逻辑结构的描述,也称模式、概念结构。外模式是单个用户用到的数据逻辑结构的描述,通常也称视图、子模式。>一个数据库只有一个内模式,一个概念模式,但可以有多个外模式。>实际的物理数据库与内模式对应,用户使用外模式。
二级映射1)外模式到概念模式的转换,表示为“外模式/概念模式”映射。2)概念模式到内模式的转换,表示为“概念模式/内模式”映射。>数据库管理系统(DBMS),不仅提供三级模式的定义语言,而且还提供了三级模式之间相互转换的机制,即二级映射机制。外模式/概念模式映象的用途:保证数据的逻辑独立性当概念模式改变时,数据库管理员修改有关的外模式/概念模式映象,使外模式保持不变应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。概念模式/内模式映象的用途:保证数据的物理独立性当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改概念模式/内模式映象,使概念模式保持不变应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。数据独立性的定义与内容数据独立性是指应用程序不因物理存储的改变而改变。数据独立性包含逻辑独立性和物理独立性。逻辑独立性是指概念模式改变时,外模式保持不变,从而使应用程序保持不变。当数据库的概念模式改变时,DBMS只要改变外模式到模式的映射,就可保持外模式不变。从而使应用程序保持不变。物理独立性是指内模式改变时,概念模式保持不变。因为当内模式改变(如数据库的存储设备或存储结构改变)时,DBMS只要通过改变概念模式到内模式映射,从而使概念模式保持不变,实现了数据的物理独立性。第二章关系数据库2.1关系模型的数据结构学号,姓名,年令,性别,系名,年缀,95004^王小明,女Q社会学,95。照P黄大鹏,冲商品学,学号,姓名,年令,性别,系名,年缀,95004^王小明,女Q社会学,95。照P黄大鹏,冲商品学,心95008口女。法律学,…口…9…F学生登记表。SnoSnameSsexSageSdept20010101JoneM19Computer20010102SueF20Computer20010103SmithM19Math20030101AllenM18Automation20030102DeepaF21Art关系名:StudentsJ字符串I■域关系模式:Students(Sno9Sname,Ssex9Sage9Sdept)是关系。元组:关系中的一行称为一个元组。对应表中的一行,存放的是客观世界的一个实体,如表Students关系中的一行,存放的是一个学生的数据。属性:关系中的一列,称为一个属性。对应表中的一列。一个属性表示实体的一个特征,如表Students关系中的Sno属性表示学生实体的学号特征值。域:关系中一个属性的取值范围。例如,Ssex的取值范围是{'M','F'},代表性别为男性和女性。。关系的候选码与主码-表中某一列(或若干列的最小组合)的值能惟一标识一个行,称该列或列组为候选码。-对于一个表,可能有多个候选码。-如果一个表有多个候选码,数据库设计者通常选择其中一个候选码作为区分行的惟一性标识符,称为主码(primarykey,PK)。关系模式-关系模式是关系的形式化描述(没有具体的值)。-最简单的表示为:关系名(属性名1,属性名2,…,属性名n)关系数据库-关系数据库是相互关联的表或者说关系的集合(一个DATABASE是Table的集合)-一个关系用一个关系模式表示,所有关系模式集合构成数据库的模式,它是数据库整体逻辑结构的描述。2.2关系的完整性•关系模型的完整性指的是完整性规则,是对关系的某种约束条件。•完整性规则包括实体完整性规则、参照完整性规则和用户自定义完整性规则三大类。•实体完整性和参照完整性是关系模型必须满足的两个完整性规则。实体完整性规则:若属性A(指一个或一组属性)是基本关系R的主属性,则A不能取空值。参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性均为空值)或者等于S中某个元组的主码值。用户自定义完整性规则:是表格设计者为了保证表中某些行、列的数据满足具体应用要求而自定义的一些规则。2.3关系模型的数据操作一一关系代数关系代数中,运算的对象是关系(表),运算的结果是一个新关系(表)。关系的运算包含两部分,即传统的集合运算和特殊的关系运算。传统的集合运算:U(并运算),一(差运算),C(交运算),X(笛卡儿积运算)。4个特殊的关系运算:a(选择),n(投影),8(连接),:(除)。1)传统的关系运算-两个表的兼容性。所谓兼容,即两个表的表头结构相同,且对应列的数据类型相同。-并、差、交运算都要求有两个表参加运算,并且两个表是兼容的。2)专门的关系运算-包含:选择运算、投影运算和连接运算。-选择运算:从指定的R表中选择某些满足条件的行构成一个新表。记作6F(R)-投影运算:从指定的表R中选择某些列构成一个新表。记作nA(R)。-连接运算:从R与S的笛卡儿积RXS中选择满足连接条件的行。ss=aXrxS)记作:AeB两种特殊的连接:等值连接和自然连接。-等值连接:连接条件用=,则A。B—>A=B-自然连接:若等值连接的连接条件中的列名相同,且结果表中消除了重复列,则把此种等值连接称为自然连接,记作R8S。◊自然连接中不必标注连接条件。自然运算与等值连接的区别:
自然连接要求连接的两个表有相同的列(公共列),等值连接则不要求。自然连接结果表中去掉了重复的列,等值连接却可能包含重复的列。笛卡儿积:简称积运算,也是二元运算,即要求有两个表参加运算,但这两个表可以不兼容。笛卡儿积运算定义:给定两个表R和S,R和S的积运算的结果是一个新表,新表中的行由R中的每一行和S中的每一行组合而成。记作RXSo新表可能包含重复的列,因此不一定是一个关系。用关系代数表示查询。解题步骤:1)根据题意确定要输出的列以及这些列所在的表,由此确定被操作的表名称,可能有多个。2)根据题意,确定选择条件以及选择条件中用到的列在哪个表中,这里又确定一些被操作的表名称。3)根据1、2两步确定的表名称形成所有要操作的表名集。4)若表名集中只有一个表,则如果要输出的列是这个表的全部列,就只用选择运算;否则先用选择,后用投影选取要输出的(属性)列。5)如表名集中有两个或多个表,则一般用自然连接将它们连接起来,如果发现不存在公共列,即几个表不能进行自然连接,则要在表名集中加入一个或多个中间表,中间表中含有能进行自然连接的公共列,从而使得表名集中全部表可以进行自然连接;将选择条件作用于自然连接后产生的新表上,之后一般用投影操作选取要输出的列。第三章关系数据库语言SQLSQL语言分为三种子语言,分别是:>数据定义语言(DDL)用于定义数据库、表、视图等。主要有CREATE、ALTER、DROP语句。>数据操纵语言(DML)用于插入、修改、删除和查询数据。主要有:INSERT、DELETE>UPDATE、SELECT语句。>数据控制语言(DCL)用于管理数据库用户对数据库中表、视图等的使用权限。主要有GRANT、REVOKE语句3.1查询语句基本结构语法:对SELECT<目标列名表GRANT、REVOKE语句3.1查询语句基本结构语法:对SELECT<目标列名表〉FROM<数据源表〉[WHERE<查询条件>][GROUPBY<分组列>][HAVING<组选择条件>][ORDERBY<排序列>]3.2单表查询SQL的数据定义语句操作方式创建删除修改CREATETABLEDROPTABLEALTERTABLECREATEVIEWDROPVIEWCREATEINDEXDROPINDEXWHERE子句WHERE<查询条件〉<查询条件〉中常用的运算符:比较运算符和逻辑运算符。#比较运算符用于比较两个数值之间的大小是否相等。常用的比较运算符有:=(等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、!=或<>(不等于)、!>((不大于)、!>((不小于)共9种。#逻辑运算符主要有:•范围比较运算符:BETWEEN…AND…,NOTBETWEEN—AND•集合比较运算符:IN,NOTIN•字符匹配运算符:LIKE,NOTLIKE空值比较运算符:ISNULL,ISNOTNULL•条件连接运算符:AND,OR,NOT3.3多表连接查询多表查询指的是从多个源表中检索数据。因此,多表查询时,FROM子句中的<数据源表〉要给出所有源表表名,各个表名之间要用逗号分隔。⑴多表查询的FROM子句格式FROM<源表表名集〉例如,若一个查询用到三个表,表名分别为Students、Enrollment,Courses。则FROM子句为:FROMStudents,Enrollment,Courses⑵多表查询中的WHERE子句多表查询中往往要有多表的连接条件,当然还有表的一个或多个行选择条件,两者用AND操作符组合。3.4子查询子查询是一个SELECT查询语句,但它嵌套在SELECT、INSERT、UPDATE、DELETE语句或其他子查询语句中。•子查询可分为:非相关子查询和相关子查询。3.5数据更新用SQL的插入语句(INSERT语句)、修改语句(UPDATE语句)、删除语句(皿ETE语句)来向表中插入、修改、删除数据。3.6视图视图的建立、查询、更新第四章数据库安全性实现数据库系统安全性的技术和方法>存取控制技术>视图技术>审计技术自主存取控制功能>通过SQL的GRANT语句和REVOKE语句实现角色>使用角色来管理数据库权限可以简化授权过程>CREATEROLE语句创建角色»GRANT语句给角色授权第五章数据库完整性数据库的完整性>数据的正确性和相容性数据的完整性和安全性是两个不同概念>数据的完整性防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据防范对象:不合语义的、不正确的数据>数据的安全性保护数据库防止恶意的破坏和非法的存取防范对象:非法用户和非法操作为维护数据库的完整性,DBMS必须:提供定义完整性约束条件的机制提供完整性检查的方法违约处理第六章规范化规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。函数依赖-定义6.1:设一个关系模式R(U),R是关系的名称,U是关系R的所有属性的集合,X和Y为属性集U上的子集。若对于任一元组在X上的每一个值,都有Y上的一个惟一值与之对应,则称X函数决定Y,或称Y函数依赖于X,记作X—Y。X称为这个函数依赖的决定因子。平凡函数依赖与非平凡函数依赖-定义6.2:设一个关系模式R(U),R是关系的名称,U是关系R的所有属性的集合。X和Y为属性集U上的子集,如果X-Y,Y是X的子集,则称X-Y是平凡的函数依赖。如果Y不是X的子集,则称X-Y是非平凡的函数依赖。完全函数依赖与局部函数依赖-定义6.3:设一个关系R(U),R是关系的名称,U是关系R的所有属性的集合,X和Y为属性集U上的子集。若X—Y,同时X的一个真子集X’且也能够函数决定Y,即存在X’—Y,则称X部分函数决定Y,或Y部分函数依赖于X,记作:*「丫。-否则若不存在一个真子集X’,使得X’也能够函数决定Y,则称X完全函数决定Y,或者Y完全函数依赖于X。记作:X卜V。传递函数依赖-定义6.4:设一个关系R(U),R是关系的名称,U是关系R的所有属性的集合,X、Y和Z为属性集U上的子集。若X—Y,Y—Z,且Y—X,Y尘Z则存在x1z称X传递函数决定乙或者说Z传递函数依赖于X。例如:S(Sno,Sname,Ssex,Sage,Dno,Dname)有Sno—>Dno,Dno—>Dname则有:Sno、Dname第一范式(1NF)定义6.5:如果一个关系R的所有属性都是不可再分的基本数据项,则称关系R属于第一范式,记作RelNFo最低程度的规范化关系的异常分析满足1NF的关系是一个规范化的关系,但它是规范化程度最低的关系,这样的关系仍然存在:数据冗余与更新异常插入异常删除异常第二范式(2NF)定义6.6:如果关系RE1NF,并且关系R的每一个非主属性完全函数依赖于码,贝UR属于第二范式,记作:RW2NF。
第三范式(3NF)-定义6.7:关系模式R<U,F>中若不存在这样的码X、属性组Y及非主属性Z(ZY),使得X—Y,Y—Z成立,Y—X,则称R<U,F>E3NF。-若RE3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。BC范式(BCNF)•定义6.8:关系模式R<U,F>E1NF,若X—Y且Y^X时X必含有码,则R<U,F>EBCNFo•等价于:关系模式R<U,F>中,如果每一个决定属性因素都包含码,则R<U,F>EBCNFo•可以证明:若REBCNF,则RE3NF。反过来,若RE3NF,贝R未必属于BCNFo多值依赖•定义6.9:设R(U)是一个属性集U上的一个关系模式,X、Y和Z是U的子集,并且Z=U-X-Yo关系模式R(U)中多值依赖X一一Y成立,当且仅当对R(U)的任一关系X,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。4NF•定义6.10:关系模式R<U,F>E1NF,如果对于R的每个非平凡多值依赖X一一Y(Y》),X都含有码,则RE4NFo•如果RE4NF,贝REBCNF不允许有非平凡且非函数依赖的多值依赖允许的非平凡多值依赖是函数依赖•关系数据库的规范化理论是数据库逻辑设计的工具目的:尽量消除插入、删除一场,修改复杂,数据冗余基本思想:逐步消除数据依赖中不合适的部分曲实质:概念的单一化•关系模式规范化的基本步骤;消除决定属性;消除决定属性集非码的非平I凡函数依赖II消除非主属性对码的部分函数依赖2NF消除非主属性对码的传递函数依赖3NF消除主属性对码的部分和传递函数依赖BCNF消除非平凡且非函数依赖的多值依赖4NF不能说规范化程度越高的关系模式就越好>在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式上面的规范化步骤可以在其中任何一步终止数据依赖的公理系统1、逻辑蕴涵设F是关系模式R<U,F>的函数依赖集,X、Y是R的属性子集。对R的任一个关系r,若函数依赖X—Y均成立,则称F逻辑蕴涵X—Y。2、Armstrong公理
A1自反律:若YcXcU,则X—Y为F所蕴涵。简写:若YqX,则XtYA2增广律:若X—Y为F所蕴涵,且ZcU,XZ—YZ为F所蕴涵。简写:若XtY,则XZtYZA3传递律:若X—Y和Y—Z为F所蕴涵,则X—Z为F所蕴涵。简写:若XtY、YtZ,则XtZ属性集的闭包引理6.2:设F为属性集U上的一组函数依赖,X,YcU,X—Y能由F根据Armstrong公理导出的充分必要条件是YcXF+。于是判定X—Y能否由F根据Armstrong公理导出的问题,就转化为求出X;,判定Y是否为xf+的子集的问题。求属性集闭包xf+的算法分析:由定义,要求出所有这样的属性A:X—A能由F经数次使用Armstrong公理推出。A应具备何种特征?由公理的自反律,A可以是X中的属性,根据传递律,A可以是F中某个函数依赖的右部,而该函数依赖的左部属性应属于X的闭包。算法思想:采用逐步扩张X的策略求X的闭包。方法是:扫描F,找出左部属性属于当前X的闭包的函数依赖,将右部属性加入当前X的闭包。经若干次扩张,直到当前闭包集不再扩大为止。例:^F=(AC^PE,PGtA,BtCE,AtP,GAtB,GCtA,PABtG,AEtGB,DPF},X=BG,求Xf+求解过程初始:X(°)=X=BG迭代1:找左部为B、G或BG的函数依赖,将其右部属性放入闭包迭代2:迭代3:迭代4:X(〔)=X(°)oCE=BCEGX(2)=x(〔)uA=ABCEGX(3)=乂⑵uPEBG=ABCEGPX(4)=例:^F=(AC^PE,PGtA,BtCE,AtP,GAtB,GCtA,PABtG,AEtGB,DPF},X=BG,求Xf+求解过程初始:X(°)=X=BG迭代1:找左部为B、G或BG的函数依赖,将其右部属性放入闭包迭代2:迭代3:迭代4:X(〔)=X(°)oCE=BCEGX(2)=x(〔)uA=ABCEGX(3)=乂⑵uPEBG=ABCEGPX(4)=x(3)uAG=ABCEGP左部右部迭代号AC|PE3PG|a4BCE1Ap3GAB|3GC2PABG4AEGB3DPHX(4)=X(3),算法结束算法&1输入:X,U,F;输出:X关于F的闭包Xf+(1)初始:令X(o)=X,i=0;(2)迭代:逐个检查F中的函数依赖V-W,将所有VqX①的W与X①并在一起,记为X,+1);(3)判断:若X①=乂。+1)或X$"=U,则X<i+1)就是Xf+,算法终止;(4)j=i+1,转第(2)步。每次迭代都添加属性到当前闭包(不增加时算法就结束),故至多迭代|U|-|X|次算法终止【左部没有多余的属性】
jABtC,DtE,DtG,CtA,BEtC,BCtD,CGtD,ACDtB,CEtG先判ABtC是否多余?求(AB)g_{ab~>c}*={A,B},而C£{A,B},所以不能去掉ABtC;同样DtE,DtG,CtA,jABtC,DtE,DtG,CtA,BEtC,BCtD,CGtD,ACDtB,CEtG先判ABtC是否多余?求(AB)g_{ab~>c}*={A,B},而C£{A,B},所以不能去掉ABtC;同样DtE,DtG,CtA,BEtC,BCtD也不能去掉Be(CG)g{cg-b}+=(ABCDEG},故去掉CGF;令G=G—{CGtB},继续进行,可得CGtD,ACD^B保留,CEtA去掉,CEcG保留。最后得:|_|二ABtC,DtE,DtG,CtA,BEtC,BC—>D?CGtD,ACDtR,CEtG例:求下列函数依赖集F的极小依赖集。F=rABtC,DtEG,CtA,BEtC,IIbCtD,CGtBD,aCDtB,CEtAG「解:(1)分解右部为单属性[ABtC,DtE,DtG,CtA,BEtC,'G=<BCtD,CGtB,ACDtB,CEtA,‘CGtD,CEtG(2)去掉G中多余的函数依赖从G的第一个函数依赖开始,依次判别是否多余。设处理到XtY,先求Xgtx-y}*,再判属性Y是否属于该闭包。若是,则去掉XtY;否则,保留。然后处理下一个。把ACDtB换成CDtB,新的H为:H=1(3)从H中去掉左部多余的属性J依次检查左部为多属性的函数依赖,如XBtA,对CEtG,Ch+=(CA},Eh+={E},均不包含G,无求Xh+,如果包含A,贝归多余,用XtA替换XBtA,左部多余属性;否则B不多余。F的极小函数依赖集为:AB—>C,D—>E,D—>G,C—>A,BE—>C,BC—>D,CGtD,CDtR,CEtGFm1=ABtC,DtE,DtG,CtA,REtC,BC—>D»CGtD,CDtB,CEtG本题还有一个极小函数依赖集:Fm2=ABtC,DtE?DtG,CtA,BEtC,BCtD,CGtB,CEtGABtCDtE,DtG,CtA,1BEtC,BCtD,13G—D,ACDtB,CE—GiJH=.I看ABtC,因为A『={A},%+={B},均不包含c,故ABtC无左部多余属性;同样BErC,BCtD,CGtD中无左部多余属性;看ACDtB,/不含B,D不多余不含B,C不多余将F中所有形如X^A1A2-Ak(k>2)的函数依赖用{X—Aj|i=1,2,…号取代。这样每个函数依赖的右部都为单属性,由合并和分解规则知该函数依赖集与F等价。去多余依赖:对第一步处理后的F,逐一检查F中各函数依赖X—A,令G=F—{X—A},若AgXg+,则从F中去掉X—A。去左部多余属性:逐一检查第二步处理后的F中各函数依赖X—A,设X=B1B2-Bm,逐一考察B.,若Ag(X—B.)f+,则以X—B.取代X。m'这样得到的函数'依赖集仍与F等价,且去掉了左部多余的属性。模式的分解>分解准则>分解后的模式应和原来的模式“等价”。根据以上分析,可提出以下不同标准:分解具有“无损连接性”分解要“保持函数依赖”分解既要“保持函数依赖”,又要具有“无损连接性”无损连接性定义设p={R1<U1,F1>,R2<U2,F2>,…,Rk<Uk,Fk>}是R<U,F>的一个分解。若对R的任何一个关系r都有r=如(r)X?U2(「)、><|“X兀uM,成立,则称P具有无损连接性,简称p为无损分解。""定理(补充):设p={R1<U1,F1>,R2<U2,F2>}是R<U,F>的一个分解。那么p是无损分解的充分必要条件是F逻辑蕴涵(U1CU2)—(U1—U2)或(U1CU2)—(U2—U1)。U1CU2—U1—U2gF+或U1CU2—U2—U1gF+关系模式为R<U,F>,U={A,B,C},F={A—B,C—B},p1={R1(A,B),R2(B,C)}(U1CU2)—(U1—U2)为:B—A(U1CU2)—(U2—U1)为:B—C因为⑻不包含A,也不包含C,所以B—A和B—C不为F所蕴涵p1不是无损分解关系模式为R<U,F>,U={A,B,C},F={A—B,C—B},p2={R1(A,C),R2(B,C)}(U1CU2)—(U1—U2)为:C—A(U1CU2)—(U2—U1)为:C—B因为C—BgF,所以/p2是无损分解保持函数依赖定义:设p={R<U,F>,R<U,F>,R<U,F>}是R<U,F>的一个分解,若F+=11,1,22,2,•••,kk,k,,(F1uF2u_uFk)+,则称p保持函数依赖。无损连接分解不一定是保持函数依赖的分解保持函数依赖的分解不一定是无损连接分解算法6.3:分解关系模式为保持函数依赖的3NF将F极小化(处理后的函数依赖集仍记为F);把不在F中出现的属性从U中分离出去,组成一个关系模式(剩余的属性仍记为U);若有X—AgF,且XA=U,则p={R},算法终止;
按左部相同的原则对F分组,每组的全部属性形成一个属性集Uj。若有U^Uj(闰)就去掉U.。设最后保留下来U,U,…,U,]则p={R(U,F),R(U,F),…R(U,F)},算法终止。I12K111222KKK其中FI为F在UI上的投影。求候选码的方法1、先找出仅在左边出现,没有在右边出现过的属性(L类),以及不属于任何一边的属性(1^类),构成一个属性集合X=(L类,N类)。求出X+,若X+=U,则X是唯一候选码,算法终止。2、如果上述的X不是码,取LR类(在左右两边都出现过的属性)的每一个属性加入X集合,求每个闭包,判断其是否为候选码。3、再取LR类的每2个属性组合,加入X集合,求每个闭包,判断其是否为候选码。4、再取LR类的每3个属性组合,加入X集合,求每个闭包,判断其是否为候选码。5、以此类推,直到X集合包含所有属性,或者已找出所有的候选码。注意:子集从小到大找,大的子集中不要包含已找出的候选码转换为3NF既保持函数依赖又具有无损连接性的分解算法算法思想:在算法6.3分解的基础上,增加一个模式,该模式以原模式的一个码作为属性组,使该模式起到正确连接其它各模式的作用。算法6.4:输入:关系模式R<U,F>;输出:R的一个分解u部事顼.%},每个RI均为3NF,且u既保持函数依赖又具有无损连接性;用算法6.3将R分解为?*^])^/^)"%%)};求R的一个码X;若X是某个U|的子集,输出u=p;否则,'输出u=pu{R*(X)};算法结束。例题:设有关系模式R(ABCDEG),F=(A^BC,CD^G,B^DA}求R的所有候选码。R最高属于第几范式。将R分解为3NF,且既保持函数依赖又具有无损连接性。解:(1)R的所有候选码L类属性:没有;N类属性:E,(E)+={E}LR类属性:A,B,C,D(AE)+={A,B,C,D,E,G}(BE)+={A,B,C,D,E,G}(CE)+={C,E}(DE)+={D,E}(CDE)+={C,D,E,G}R的所有候选码为:AE、BE⑵R的所有候选码为:AE、BE,非主属性为C、D、G因为非主属性和候选码之间没有存在函数依赖关系,所以该关系模式最高属于第一范式。(3)⑴做保持函数依赖的3NF的分解:求F.:CDfG,BfD,BfA}CDfG,BfD,BfA}min分解右部为单属性:F={AfB,A*去掉多余函数依赖:F={A*B,A*C
c.去掉左部多余属性:F={AfB,AfC,CDfG,BfD,BfA}分离不在F中出现的属性:E判断是否需要分解:需要分解:按左部相同原则,去掉重复子集:{A,B,C},{C,D,G},{A,B,D},{E}⑵求出R的一个候选码:AE、BE⑶由于AE不是上述三个关系模式的属性集的子集,所以将AE构成一个新的关系模式,加入到?中,得:CDfG,BfD,BfA}CDfG,BfD,BfA}p={R1(A,B,C),R2(C,D,G),R3(A,B,D),R4(A,E)}r既保持函数依赖又具有无损连接性。或者:p={R1(A,B,C),R2(C,D,G),R3(A,B,D),R4(B,E)}解:(1)R的所有候选码L类属性:B;N类属性:E(BE)+={B,D,E,G}LR类属性:A,C(ABE)+={A,B,C,D,E,G}(BCE)+={A,B,C,D,E,G}R的所有候选码为:ABE、BCE(2)(AB)+={A,B,C,D,G}⑶⑴做保持函数依赖的3NF的分解:求F.:minC*6A,6A,BfD,BfG}BfD,BfG}BfD,BfG}分解右部为单属性:F={AfC去掉多余函数依赖:F={AfC去掉左部多余属性:F={AfC分离不在F中出现的属性:E判断是否需要分解:需要④分解:按左部相同原则,去掉重复子集:{A,C},{B,D,G},{E}⑵求出R的一个候选码:ABE、BCE由于ABE不是上述三个关系模式的属性集的子集,所以将ABE构成一个新的关系模式,加入到?中,得:C*6A,6A,BfD,BfG}BfD,BfG}BfD,BfG}p={R1(A,C),R2(B,D,G),R3(A,B,E)}r既保持函数依赖又具有无损连接性。或者:p={R1(A,C),R2(B,D,G),R3(B,C,E)}第七章数据库设计数据库设计:包括逻辑设计和物理设计。>逻辑设计:概念结构设计与逻辑结构设计。概念结构设计:实体-联系模型(E-R图)。>逻辑结构设计:关系数据库的模式设计。E-R图实体型:用矩形表示,矩形框内写明实体名。属性:用椭圆形表示,并用无向边将其与相应的实体连接起来实体的转换原则/一个实体型转换为一个关系模式。关系的属性:实体型的属性关系的码:实体型的码联系的转换实体型间的联系有以下不同情况:(1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。>转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。>与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。⑵一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。>转换为一个独立的关系模式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年云南外事外语职业学院单招职业适应性考试题库及参考答案详解
- 2026年齐齐哈尔理工职业学院单招综合素质考试题库及参考答案详解
- 2026年安徽财贸职业学院单招职业适应性测试题库参考答案详解
- 2026年重庆科技大学单招职业技能测试题库及参考答案详解一套
- 2026年江西艺术职业学院单招职业技能测试题库及完整答案详解1套
- 2026年仰恩大学单招职业倾向性考试题库及答案详解1套
- 乡镇会计岗面试题及答案
- 襄阳社工面试题及答案
- 交通主次责任医疗费用垫付协议书范本
- 2025年浙商银行福州分行招聘15人备考题库及完整答案详解一套
- 康复治疗技术职业生涯规划
- 2025年保密知识考试试题库教育考试试题库与答案
- 心脏超声十六节段分析规范
- 美容洗脚卫生管理制度
- 校园井盖安全管理制度
- 2025春季学期国开电大专科《EXCEL在财务中的应用》一平台在线形考形考作业(一至四)试题及答案
- 混合型高脂血症基层诊疗中国专家共识(2024年)解读课件
- 消防设施保养与维修培训
- 市政道路设计技术标投标方案(技术方案)
- 高教社马工程伦理学(第二版)教学课件11
- 2024-2025学年成都市高一上英语期末考试题(含答案和音频)
评论
0/150
提交评论