数据库技术基础.ppt_第1页
数据库技术基础.ppt_第2页
数据库技术基础.ppt_第3页
数据库技术基础.ppt_第4页
数据库技术基础.ppt_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

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

文档简介

1、1,数据库知识,SDRJ,2,数据库技术基础,SDRJ,3,数据模型,在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟。 数据模型应满足三方面要求 能比较真实地模拟现实世界 容易为人所理解 便于在计算机上实现 数据模型分成两个不同的层次 (1) 概念模型 也称信息模型,它是按用户的观点来对数据和信息建模。 (2) 数据模型 主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。,SDRJ,4,客观对象的抽象过程-两步抽象 现实世界中的客观对象抽象为概念模型; 把概念模型转换为某一DBMS支持的数据模型。,概念模型是现实

2、世界到机器世界的一个中间层次,它是按用户的观点来对数据和信息建模。 数据模型是按计算机系统有观点对数据建模,是数据库的基础和核心。,SDRJ,5,E-R模型,定义: E-R model(实体关系模型)是陈品山(Peter P.S Chen)博士于1976年提出的一套数据库的设计工具 ,他运用真实世界中事物与关系的观念,来解释数据库中的抽象的数据架构。 适用于需求分析和概念设计阶段,是系统分析师与使用者沟通的工具。 用来表示各个实体之间的关系。 E-R model采用实体、联系和属性来描述数据。,SDRJ,6,实体(Entities),是ER model的最基本要素,是在真实世界种独立存在的一个

3、事物。 Entity(实体):可以使一个独立存在的一个物体,或是一个存在的概念。(如:一个学生,一个任务,等) 即:可以被明确识别之事物 在ER model中,以方块图形表示一群相同实体的集合 实体集(Entity Set) 相同属性的实体集合。,SDRJ,7,属性,每一个实体都有一些特别的性质可以用来描述它,这些性质称为属性。 属性可分为以下几种类型: 一般属性(General attributes) 多值属性(Multivalued attributes) 复合属性(Composite attributes) 派生属性(Derived attributes),SDRJ,8,一般属性,对于E

4、ntity而言,大多数的一般属性是单独的一个值,像这样的属性又称为单值属性(Single-Value Attribute)。同时,每一个一般属性的值不可以再分割,故又称为简单属性(Simple Attribute)或是不可分割属性(Atomic Attribute) Ex:性别Sex 此属性在ER Model的图形表示为椭圆:,Sex,SDRJ,9,多值属性,在该类属性中,可包含一个以上的值 例如:“学生”这个实体中有一个“电话”的属性。一个学生可能有很多个电话号码,表示这个属性有很多可能的值。 此属性在ER Model的图示为双椭圆图形:,电话,SDRJ,10,复合属性,属性中的值是由多个其

5、它属性所组成。即,此属性的值可以分割成更小部分的属性值,且分割的部分有自己独立的意义,为更基本的属性值。 如:“学生”这个实体中包含一个“姓名”的属性,而“姓名”这个属性的值可以分别有“姓”、“名”这两个属性的值组成。 此属性在ER Model中的图示为:,SDRJ,11,派生属性,这个属性的值可以完全由其它属性之值计算出来。因此可以不用实际存在于数据库中。 如“学生”这个实体中不用实际存放一个“年龄”属性,因为这个属性的值可以完全由其“生日”计算出来。 实现的时候,可以不用画在ER Model上。当数据库构建出来之后,若有使用者需要此资料时,可以计算出来,并将此放在使用的View中。 此属性

6、在ER Model的图示为虚线椭圆:,年龄,SDRJ,12,联系(Relationship),是指不同实体间的一种结合(Association)或联系集合(Relationship Set),它表达了实体之间所隐含的关联性。,员工,项目,SDRJ,13,基数(Cardinality),基数是关于一个对象可以与另一个对象的出现次数相关联的出现次数的规约。 常见的基数有3种: 一对一联系(1:1) 一对多联系(1:N) 多对多联系(M:N),SDRJ,14,基数(Cardinality),一对一(One-to-one, 1:1) (对象)A的一次出现可以并且只能关联到(对象)B的一次出现,B的一次

7、出现只能关联到A得一次出现。例:一个丈夫只能有一个妻子,一个妻子只能有一个丈夫。 一对多(One-to-many, 1:N) (对象)A的一次出现可以关联到(对象)B的一次或多次出现,但B得一次出现只能关联到A的一次出现。例:一个母亲可以有多个孩子,但一个孩子只能有一个母亲。 多对多(Many-to-many, M:N) (对象)A的一次出现可以关联到(对象)B的一次或多次出现,同时B的一次出现也可以关联到A的一次或多次出现。例:一个叔叔可以有多个侄子,一个侄子可以有多个叔叔。,SDRJ,15,参与限制(Participation Constraint),是实体类型中,对参与联系的实体数目所设

8、定的限制。 参与限制分为两种: 全部参与(Total Participation) 部分参与(Partial Participation),SDRJ,16,参与限制,全部参与(Total Participation):是指实体集合中的每一个实体都必须全部参与该联系。 部分参与(Partial Participation):是指实体集合中每一个实体不必全部参与该联系,只要部分参与即可。 例: 本例中,”课程”中每一个实体必须全部参与联系“上课”。因为每一个课程一定是拿来上课用的! 所以课程中参与此联系的实体最少有一个,最多为*个(多个) 本例中,“教室”中的每一个实体仅需部分参与联系“上课”。因

9、为每一个教室不一定是用来上课的! 所以教室中参与此联系的实体最少有0个,最多为*个(多个),SDRJ,17,弱实体,实体依其存在条件又可分为两类: 一般实体(Regular Entity)(或称为强实体(Strong Entity) 弱实体(Week Entity)(或称附属实体(Subordinate Entity),一般实体 弱实体,SDRJ,18,弱实体,弱实体必须依赖其他的实体才能存在。如果某一个弱实体所依赖的实体消失,那么该弱实体也会一并消失。 例如:数据库中有的“员工”和“员工家属”这两个实体,SDRJ,19,SDRJ,20,习题1,假定每一车次具有唯一的始发站和终点站。如果实体“

10、列车时刻表”属性为车次、始发站、发车时间、终点站、到达时间,该实体的主键是_(1)_;如果实体“列车运行表”属性为车次、日期、发车时间、到达时间,该实体的主键是_(2)_。通常情况下,上述“列车时刻表”和“列车运行表”两实体型间_(3)_联系。 (1)A.车次 B.始发站 C.发车时间 D.车次,始发站 (2)A.车次 B.始发站C.发车时间D.车次,日期 (3)A.不存在 B.存在一对一 C.存在一对多 D.存在多对多 答案:(1)A(2)D (3)C,SDRJ,21,数据库技术基础,SDRJ,22,关系语言,关系操作特点: 操作对象和结果都是集合 高度非过程化的语言,不必借助循环结构就可以

11、完成数据操作,能嵌入高级语言中使用,关系数据语言,关系代数语言,关系演算语言,具有关系代数和关系演算双重特点的语言,元组关系演算语言,域关系演算语言,例如ISBL,例如APLHA, QUEL,例如QBE,例如SQL,SDRJ,23,关系数据结构的形式化定义,定义1:域(Domain) 一组具有相同数据类型的值的集合,如整数、实数等。形式化表示为D。 定义2:笛卡尔积(Cartesian Product) 一组域D1,D2,Dn的笛卡尔积 (d1,d2,d3,dn)称为一个元组,di称为一个分量 若Di的基数(值的个数)为Mi,则笛卡尔集的基数M为,SDRJ,24,例:已知三个域 D1=导师集合

12、张清正,刘逸 D2=专业集合计算机,信息 D3=学生集合李勇,刘晨,王敏,SDRJ,25,关系数据结构的形式化定义,定义3:D1D2Dn的子集叫做在D1, D2, , Dn上的关系,表示为 R(D1, D2, , Dn) 关系的相关名词: 目或度:n是关系的度或目,表的列数,一般称为n元关系。 候选码:能够唯一标识一个元组的属性组(一个关系可以有多个候选码)。 主码:一个关系中选定的一个候选码。 主属性:包含在任何候选码中的诸属性。 非码属性:不包含在任何候选码中的属性。 外码:如果关系模式R中的属性或属性组非该关系的码,但它是其他关系的码,那么该属性集对关系模式R而言是外码。 全码:若关系模

13、式的所有属性组是这个关系模式的候选码,称为全码。,SDRJ,26,例已知三个域 D1=导师集合S张清正,刘 逸 D2=专业集合SP计算机, 信息 D3=学生集合P李勇,刘晨, 王敏 从笛卡尔集中取出一个子集, 选择有意义的结果组成关系 R(导师,专业,研究生),限定一个学生只能有一个导师,如张是计算机导师,刘是信息专业导师,导师S,专业SP,研究生P,张清正计算机李勇 张清正计算机刘晨 张清正计算机王敏 张清正信息李勇 张清正信息刘晨 张清正信息王敏 刘逸计算机李勇 刘逸计算机刘晨 刘逸计算机王敏 刘逸信息李勇 刘逸信息刘晨 刘逸信息王敏,一个研究生只能有一个专业,如李勇和王敏是计算机专业、刘

14、晨是信息专业,SDRJ,27,关系模式,关系模式是对关系的描述,形式化表示为 R(U, D, dom, F) U:组成该关系的属性名集合 D:属性组U中属性所来自的域 dom:属性向域的映象集合,如属性的类型、长度 F:属性间数据的依赖关系集合 可简记为R(U)或R(A1, A2, , An),其中Ai为属性名 关系模式与关系 关系模式是型,是对关系的描述,是静态的,稳定的。 关系是值,由赋予它的元组语义来确定的,是动态的,不断变化的 关系是关系模式在某一时刻的状态或内容 实际应用中常常将关系模式和关系都称为关系,SDRJ,28,关系的完整性,实体完整性 参照完整性 用户定义完整性 实体完整性

15、和参照完整性是关系模型必须满足的,被称作关系的不变性,由关系数据库系统自动支持,SDRJ,29,实体完整性,规则:若属性A是基本关系R的主属性,则属性A不能取空值 说明:基本关系的主码中的任何属性都不能取空值,而不仅是主码整体不能取空值 依据:现实世界的实体是唯一可分的 例:学生(学号,姓名,性别,专业号,年龄) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩),SDRJ,30,参照完整性,现实世界种的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述。这样就自然存在着关系与关系间的引用。,SDRJ,31,例:学生实体与专业实体间的关系: 学生(学号,姓名,性别,

16、专业号,年龄) 专业(专业号,专业名) 关系参照图,例:学生,课程,学生与课程之间的多对多联系: 学生(学号,姓名,性别,专业号,年龄) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩) 关系参照图,参照关系,学生关系专业关系,专业号,学生关系 选修关系课程关系,学号,课程号,参照完整性,主码?外码?,SDRJ,32,参照完整性,定义:外码 设F是参照关系R的一个或一组属性,但不是R的码,若F与被参照关系S的主码相对应,则称F是R的外码 规则:参照关系R中每个元组在外码F上的值必须为: 或者取空值(F的每个属性值均为空值) 或者等于S中某个元组的主码值,例:学生(学号,姓名,性别,专业

17、号,年龄,班长),参照关系,被参照关系,外码,SDRJ,33,用户定义的完整性,用户定义的完整性就是针对某一个具体的关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求,由应用的环境决定。 成绩:0100之间 身份证:身份证和生日对应关系,SDRJ,34,关系代数,关系代数语言 用传统的集合运算和专门的关系运算来表达查询的抽象语言 关系代数运算符 关系代数表达式 关系代数中有限次运算复合后形成的式子,SDRJ,35,表示记号,R,tR,tAi,A,tA, A 设关系模式为R(A1,A2,An),它的一个关系设为R tR表示t是R的一个元组 tAi则表示元组t中相应于属性Ai的一

18、个分量 若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中的一部分,则A称为属性列或域列 tA=(tAi1,tAi2,tAik)表示元组t在属性列A上诸分量的集合 A 则表示A1,A2,An中去掉Ai1,Ai2,Aik后剩余的属性组,SDRJ,36,关系代数运算,若R和S是同类关系(即它们都具有n个属性且相应属性取自同一个域),则可进行并、差、交运算。,SDRJ,37,表示记号,tr ts R为n目关系,S为m目关系 tr R,tsS, tr ts称为元组的连接。它是一个n + m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组,SDRJ,38,广

19、义的笛卡尔积,广义笛卡尔积 R X S,其关系模式是R和S的模式的并集,是R和S的元组以所有可能的方式组合起来。当R和S有同名的属性,至少要为其中一个属性重新命名。 数学描述:若关系R有k1个元组n个属性,关系S有k2个元组m个属性,则两个关系的广义笛卡尔积有k1 * k2个元组n+m个属性(前n个属性来自于R,后m个属性来自于S),SDRJ,39,RS,R.A R.B R.C S.A S.B S.C a1 b1 c1 a1 b2 c2 a1 b1 c1 a1 b3 c2 a1 b1 c1 a2 b2 c1 a1 b2 c2 a1 b2 c2 a1 b2 c2 a1 b3 c2 a1 b2 c

20、2 a2 b2 c1 a2 b2 c1 a1 b2 c2 a2 b2 c1 a1 b3 c2 a2 b2 c1 a2 b2 c1,SDRJ,40,关系运算举例,学生课程数据库 包括Student,Course,三个关系 Student(Sno, Sname, Ssex, Sage, Sdept) Course(Cno, Cname, Cpno, Ccredit) SC(Sno, Cno, Grade),SDRJ,41,例:学生课程数据库,包括Student,Course,SC三个关系,Sno Sname Ssex Sage Sdept 95001 李勇 男 20 CS 95002 刘晨 女 1

21、9 IS 95003 王敏 女 18 MA 95004 张立 男 19 IS,Student,Cno Cname Cpqo Ccredit 1 数据库 5 4 2数学 2 信息系统 1 4 4 操作系统 6 3 5 数据结构 7 4 6 数据处理 2 7 Pascal语言 6 4,Course,Sno Cno Grade 95001 1 92 95001 2 85 95001 3 88 95002 2 90 95002 3 80,SC,SDRJ,42,选择,选择 从关系R中选取使逻辑表达式F为真的元组,行选。记作 逻辑表达式F由逻辑运算符连接算术表达式,算术表达式基本形式为 X1 Y1 其中表

22、示比较运算符,X1,Y1是属性名或常量或简单函数,属性名可以用它的序号来代替,SDRJ,43,选择运算例子,查询信息系全体学生: Sdept = IS(Student) 或 = IS(Student) 查询年龄小于20岁的学生: Sage (Student) 或 (Student) 结果如下:,Sno Sname Ssex Sage Sdept 95002 刘晨女 19 IS 95004 张立男 19 IS,Sno Sname Ssex Sage Sdept 95002 刘晨女 19 IS 95003 王敏女 18 MA 95004 张立男 19 IS,SDRJ,44,投影,定义:从关系R中选

23、择出若干属性列并组成新的关系,列选 其中 表示元组t中相应于属性Ai的一个分量。,SDRJ,45,投影运算举例,查询学生的姓名和所在系: Sname,Sdept(Student)或2,5(Student) 查询学生关系中有哪些系: Sdept(Student)或5(Student) 结果如下:,Sname Sdept 李勇 CS 刘晨 IS 王敏 MA 张立 IS,Sdept CS IS MA,SDRJ,46,连接,连接 从关系R和S的笛卡尔积中选取属性间满足条件的元组 其中A和B分别是关系R和S上可比的属性组, 是比较运算符 等值连接 从关系R和S的笛卡尔积中选取A,B属性值相等的元组 自然

24、连接 特殊的等值连接,R和S具有相同的属性组B,在结果中去掉重复的属性列,SDRJ,47,连接,连接(包含等值连接):先将R和S做笛卡尔积,然后从RS的元组中选择满足条件C的元组集合。 自然连接:假设A1、A2、An是R和S的模式中的公共属性,那么如果R的元组r和S的元组s在这些属性上取值都相同,r和s组合而成的元组就归入该自然连接中。 一般的连接操作是从行的角度进行运算,自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。,SDRJ,48,连接举例,A B C a1 b1 5 a1 b2 6 a2 b3 8 a2 b4 12,R,B E b1 3 b2 7 b3 10 b3 2 b5

25、 2,S,A R.B C S.B E a1 b1 5 b2 7 a1 b1 5 b3 10 a1 b2 6 b2 7 a1 b2 6 b3 10 a2 b3 8 b3 10,R CE S,A R.B C S.B E a1 b1 5 b1 3 a1 b2 6 b2 7 a2 b3 8 b3 10 a2 b3 8 b3 2,等值连接, a1 b1 5 3 a1 b2 6 7 a2 b3 8 10 a2 b3 8 2,自然连接,R R.B=S.B S,R S,SDRJ,49,表示记号:象集Zx,给定一个关系R(X,Z),X和Z为属性组 当tX=x时,x在R中的象集(Images Set)为: Zx=

26、tZ|t R,tX=x,它表示R中属性组X上值为x的诸元组在Z上分量的集合。,例子: a1的象集为(b1,c2),(b2,c3),(b2,c1),SDRJ,50,关系代数运算:除,除 R与S 的除运算得到一个新的关系P(X), P是R中满足下列条件的元组在X属性列上的投影: 关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组 (R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集) 元组在X上分量值x的象集Yx包含S在Y上的投影,SDRJ,51,关系代数运算:除,除操作是同时从行和列角度进行运算,SDRJ,52,除运算举例,则结果如下 a1的象集为(b1,c2),(b2,c3),(b

27、2,c1) a2的象集为(b3,c7),(b2,c3) a3的象集为(b4,c6) a4的象集为(b6,c6) 在(,)上的投影为 (b1,c2),(b2,c1),(b2,c3) 因只有a1的象集包含了在(,)属性组上的投影,故 a1,SDRJ,53,外连接(Outer Join),外连接运算是连接的扩展,可以处理缺失的信息。外连接运算有3种: 左外连接( ):左外连接取出左侧关系中所有与右侧关系中任一元组都不匹配的元组,用空值NULL充填所有来自右侧关系的属性。 右外连接( ):取出右侧关系中所有与左侧关系中任一元组都不匹配的元组,用空值NULL填充所有来自左侧关系的属性。 全外连接( ):

28、完成左外连接和右外连接的操作,SDRJ,54,外连接举例,R,S,R S,R S,R S,SDRJ,55,习题2,设有关系R、S如下所示,则关系代数表达式RS的结果集为_(1)_。,关系R,关系S,A,B,C,D,SDRJ,56,习题3,关系R、S如下表所示,R(A1,A2(13(S)的结果为(1),左外连接、右外连接和完全外连接的元组个数分别为(2)。 (1)A.dB.c,d C.c,d,8D.(a,b),(b,a),(c,d),(d,f) (2)A.2,2,4B.2,2,6C.4,4,6D.4,4,4 答案:(1)A(2)C,R关系,S关系,SDRJ,57,习题4,若有关系模式R(A,B,

29、C)和S(C,D,E),对于如下的关系代数表达式: E1=A,D(B2003R.C=S.CE=80(RS) E2=A,D(R.C=S.C(B2003(R)E=80(S) E3=A,D(B2003(R) E=80(S) E4=A,D(B2003E=80(R S)正确的结论是_(1)_ ,表达式 _(2)_ 的查询效率最高。 A. E1E2E3E4B. E3E4但E1E2 C. E1E2但E3E4D. E3E4但E2E4 (2) A. E1 B. E2 C. E3 D. E4 答案:(1)A(2)C,SDRJ,58,数据库技术基础,SDRJ,59,概念回顾,关系:描述实体、属性、实体间的联系。 从

30、形式上看,它是一张二维表,是所涉及属性的笛卡尔积的一个子集。 关系模式:用来定义关系。 关系数据库:基于关系模型的数据库,利用关系来描述现实世界。 从形式上看,它由一组关系组成。 关系数据库的模式:定义这组关系的关系模式的全体。,关系模式R(U, D, DOM, F) 简化为一个三元组: R(U, F) 当且仅当U上的一个关系r 满足F时,r称为关系模式 R(U, F)的一个关系,SDRJ,60,数据依赖,什么是数据依赖,1. 完整性约束的表现形式 限定属性取值范围:例如学生成绩必须在0-100之间 定义属性值间的相互关连(主要体现于值的相等与否),这就是数据依赖,它是数据库模式设计的关键。

31、2. 数据依赖 是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系; 是现实世界属性间相互联系的抽象是数据内在的性质是语义的体现。 3. 数据依赖的类型 函数依赖(Functional Dependency,简记为FD) 多值依赖(Multivalued Dependency,简记为MVD) 其他,SDRJ,61,数据依赖对关系模式的影响,例:描述学校的数据库: 学生的学号(Sno)、所在系(Sdept) 系主任姓名(Mname)、课程名(Cname) 成绩(Grade) 单一的关系模式 : Student U Sno, Sdept, Mname, Cname, Grade ,学校数

32、据库的语义: 一个系有若干学生, 一个学生只属于一个系; 一个系只有一名主任; 一个学生可以选修多门课程, 每门课程有若干学生选修; 每个学生所学的每门课程都有一个成绩。,SDRJ,62,数据依赖对关系模式的影响,属性组U上的一组函数依赖F: F Sno Sdept, Sdept Mname, (Sno, Cname) Grade ,SDRJ,63, 插入异常(Insertion Anomalies) 该插的数据插不进去, 数据冗余太大浪费大量的存储空间,例:每一个系主任的姓名重复出现,例:某系更换系主任后,系统必须修改与该系学生有关的每一个元组。,例,如果一个系刚成立,尚无学生,我们就无法把

33、这个系及其系主任的信息存入数据库。 。, 删除异常(Deletion Anomalies) 不该删除的数据不得不删,例,如果某个系的学生全部毕业了, 我们在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。,Student(Sno, Sdept, Mname, Cname, Grade ), 更新异常(Update Anomalies) 数据冗余 ,更新数据时,维护数据完整性代价大。,关系模式Student中存在的问题,SDRJ,64,结论: Student关系模式不是一个好的模式。 “好”的模式: 不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。 原因:由存在于模式中的某些

34、数据依赖引起的. 解决方法:通过分解关系模式来消除其中不合适的数据依赖。,分解成三个关系模式 : S (SNO, SDEPT, SNO DEPT); SG (SNO, CNAME, G, (SNO, CNAME) G); DEPT (SDEPT, MN, SDEPTMN);,SDRJ,65,规范化的一些概念,1.函数依赖,定义:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作:XY。 X称为这个函数依赖的决定属性集(决定因素)。

35、Y=f(x),说明: 1. 函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。 2. 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。 例如“姓名年龄”这个函数依赖只有在不允许有同名人的条件下成立 3. 数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在, 则拒绝装入该元组。,SDRJ,66,例: Student(Sno, Sname, Ssex, Sage, Sdept) 假设不允许重名,则有:,Sno Ssex, Sno Sage

36、, Sno Sdept, Sno Sname, Sname Ssex, Sname Sage Sname Sdept,SDRJ,67,规范化的一些概念,2.平凡函数依赖与非平凡函数依赖,在关系模式R(U)中,对于U的子集X和Y, 如果XY,但Y X,则称XY是平凡的函数依赖,例:在关系SC(Sno, Cno, Grade)中, 非平凡函数依赖: (Sno, Cno) Grade 平凡函数依赖: (Sno, Cno) Sno (Sno, Cno) Cno,对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义,因此若不特别声明, 我们总是讨论非平凡函数依赖。,SDRJ,68,规范化的一些

37、概念,3.完全函数依赖与部分函数依赖,例: 在关系SC(Sno, Cno, Grade)中, 由于:Sno Grade,Cno Grade, 因此:(Sno, Cno) F Grade,SDRJ,69,规范化的一些概念,4.传递函数依赖,注: 如果YX, 即XY,则Z直接依赖于X。,定义:在关系模式R(U)中,如果XY,YZ,且Y X,YX,则称Z传递函数依赖于X。,例: 在关系Std(Sno, Sdept, Mname)中,有: Sno Sdept,Sdept Mname Mname传递函数依赖于Sno,SDRJ,70,规范化的一些概念,码,定义:设K为关系模式R中的属性或属性组合。若K F

38、 U,则K称为R的一个侯选码(Candidate Key)。若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key)。,主属性与非主属性 全码 (ALL KEY),定义: 关系模式 R 中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码(Foreign key)也称外码 主码又和外部码一起提供了表示关系间联系的手段。,SDRJ,71,规范化(范式),范式是符合某一种级别的关系模式的集合。 关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。 范式的种类:,各种范式之间存在联系:,某一关系模式R为第n范式,可简记为:RnNF

39、。,范式,SDRJ,72,1NF,1NF定义 如果一个关系模式R的所有属性都是不可分的基本数据项,则R1NF。 第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。 但是满足第一范式的关系模式并不一定是一个好的关系模式。,例: 关系模式 S-L-C(Sno, Sdept, Sloc, Cno, Grade) Sloc为学生住处,假设每个系的学生住在同一个地方。,S-L-C的码为 (Sno, Cno) S-L-C满足第一范式。 非主属性Sdept和Sloc部分函数依赖于码(Sno, Cno),SDRJ,73,S-L-C (Sno, Sdept, Sloc, Cno,

40、 Grade)不是一个好的关系模式,(1) 插入异常 假设Sno95102,SdeptIS,SlocN的学生还未选课,因课程号是主属性,因此该学生的信息无法插入S-L-C。 (2) 删除异常 假定某个学生本来只选修了3号课程这一门课。现在因身体不适,他连3号课程也不选修了。因课程号是主属性,此操作将导致该学生信息的整个元组都要删除。 (3) 数据冗余度大 如果一个学生选修了10门课程,那么他的Sdept和Sloc值就要重复存储了10次。 (4) 修改复杂 例如学生转系,在修改此学生元组的Sdept值的同时,还可能需要修改住处(Sloc)。如果这个学生选修了K门课,则必须无遗漏地修改K个元组中全

41、部Sdept、Sloc信息。,SDRJ,74,函数依赖图:,原因 Sdept、 Sloc部分函数依赖于码。 解决方法 S-L-C分解为两个关系模式,以消除这些部分函数依赖 SC(Sno, Cno, Grade) SL(Sno, Sdept, Sloc),SDRJ,75,2NF,例:SLC(Sno, Sdept, Sloc, Cno, Grade) 1NF SLC(Sno, Sdept, Sloc, Cno, Grade) 2NF SC(Sno, Cno, Grade) 2NF SL(Sno, Sdept, Sloc) 2NF,定义: 若关系模式R1NF,并且每一个非主属性都完全函数依赖于R的码

42、,则R2NF。,采用投影分解法将一个1NF的关系分解为多个2NF的关系,可以在一定程度上减轻原1NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。 将一个1NF关系分解为多个2NF的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。,SDRJ,76,3NF,6.2.5 3NF,例:2NF关系模式SL(Sno, Sdept, Sloc)中 函数依赖: SnoSdept,SdeptSloc, SnoSloc,Sloc传递函数依赖于Sno,即SL中存在非主属性对码的传递函数依赖。,解决方法: 采用投影分解法,把SL分解为两个关系模式,以消除传递函数依赖: SD(Sno, Sde

43、pt) DL(Sdept, Sloc) SD的码为Sno, DL的码为Sdept。,SDRJ,77,3NF定义,例, SL(Sno, Sdept, Sloc) 2NF SL(Sno, Sdept, Sloc) 3NF SD(Sno, Sdept) 3NF DL(Sdept, Sloc) 3NF,定义: 关系模式R 中若不存在这样的码X、属性组Y及非主属性Z(Z Y), 使得XY,Y X,YZ,成立,则称R 3NF。,若R3NF,则R的每一个非主属性既不部分函数依赖于候选码也不传递函数依赖于候选码。 如果R3NF,则R也是2NF。 采用投影分解法将一个2NF的关系分解为多个3NF的关系,可以在一

44、定程度上解决原2NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。 将一个2NF关系分解为多个3NF的关系后,并不能完全消除关系模式中的各种异常情况和数据冗余。,SDRJ,78,BC范式(BCNF),定义:设关系模式R1NF,如果对于R的每个函数依赖XY,若Y X,则X必含有候选码,那么RBCNF。,若RBCNF 每一个决定属性集(因素)都包含(候选)码 R中的所有属性(主,非主属性)都完全函数依赖于码 R3NF 若R3NF 则 R不一定BCNF,SDRJ,79,例 对关系模式C、SC、S进行分析。 C(Cno,Cname,Pcno) SC(Sno,Cno,Grade) S(S

45、no,Sname,Sdept,Sage),它只有一个码Cno,这里没有任何属性对Cno部分依赖或传递依赖,所以C3NF。同时C中Cno是唯一的决定因素,所以CBCNF。,假定Sname也具有唯一性,那么S就有两个码,这两个码都由单个属性组成,彼此不相交。其他属性不存在对码的传递依赖与部分依赖,所以S3NF。同时S中除Sno,Sname外没有其他决定因素,所以SBCNF。,SDRJ,80,3NF与BCNF的关系与区别,如果关系模式RBCNF,必定有R3NF 如果R3NF,且R只有一个候选码,则R必属于BCNF。,3NF和BCNF是在函数依赖的条件下对模式分解所能达到的分离程度的测度。 一个模式中

46、的关系模式如果都属于BCNF,那么在函数依赖范畴内,它已实现了彻底的分离,已消除了插入和删除的异常。 3NF的“不彻底”性表现在可能存在主属性对码的部分依赖和传递依赖。,BCNF的关系模式所具有的性质, 所有非主属性都完全函数依赖于每个候选码; 所有主属性都完全函数依赖于每个不包含它的候选码; 没有任何属性完全函数依赖于非码的任何一组属性.,SDRJ,81,1NF 消除非主属性对码的部分函数依赖 消除决定属性 2NF 集非码的非平 消除非主属性对码的传递函数依赖 凡函数依赖 3NF 消除主属性对码的部分和传递函数依赖 BCNF 消除非平凡且非函数依赖的多值依赖 4NF,关系模式规范化的基本步骤

47、,SDRJ,82,习题5,建立一个供应商、零件数据库。其中“供应商”表S(Sno,Sname,Zip,City)分别表示:供应商代码、供应商名、供应商邮编、供应商所在城市,其函数依赖为:Sno(Sname,Zip,City),ZipCity。“供应商”表S属于_(1)_ (1)A.1NFB.2NFC.3NFD.BCNF 答案:2NF,SDRJ,83,数据依赖的公理系统,逻辑蕴含 定义:对于满足一组函数依赖 F 的关系模式R ,其任何一个关系r,若函数依赖XY都成立, 则称:F逻辑蕴含X Y,Armstrong公理系统 一套推理规则,是模式分解算法的理论基础 用途:1) 求给定关系模式的码 2)

48、从一组函数依赖求得蕴含的函数依赖,SDRJ,84,Armstrong公理系统,关系模式R 来说有以下的推理规则: Al.自反律(Reflexivity): 若Y X U,则X Y为F所蕴含。 A2.增广律(Augmentation):若XY为F所蕴含,且Z U,则XZYZ为F所蕴含。 A3.传递律(Transitivity):若XY及YZ为F所蕴含,则XZ为F所蕴含。 注意:由自反律所得到的函数依赖均是平凡的函数依赖,自反律的使用并不依赖于F,SDRJ,85,导出规则,1.根据A1,A2,A3这三条推理规则可以得到下面三条推理规则: 合并规则:由XY,XZ,有XYZ。 伪传递规则:由XY,WY

49、Z,有XWZ。 分解规则:由XY及 ZY,有XZ。 2.根据合并规则和分解规则,可得引理 引理 XA1 A2Ak成立的充分必要条件是XAi成立(i=l,2,k)。,SDRJ,86,函数依赖闭包,定义: 在关系模式R中为F所逻辑蕴含的函数依赖的全体叫作 F的闭包,记为F+。 定义: 设F为属性集U上的一组函数依赖,X U, XF+ = A|XA能由F 根据Armstrong公理导出,XF+称为属性集X关于函数依赖集F 的闭包 例:设R,U=A,B,C), FAB,BC,则: 当XA时,XF+ABC; 当XB时,XF+BC; 当XC时,XF+C。,SDRJ,87,F的闭包,F=AB,BC, F+计

50、算是NP完全问题,XA1A2.An F+= A, B, C, AB, AC, BC, ABC, AA, BB, CC, ABA, ACA, BCB, ABCA, AB, BC , AB B, ACB, BCC, ABCB, A C, BBC, AB C, ACC, BCBC, ABC C, AAB, ABAB, ACAB, ABCAB, AAC, ABBC, ACAC, ABCBC, ABC, ABAC, ACAB, ABCAC, AABC, AB ABC,ACABC, ABCABC ,SDRJ,88,求闭包的算法,算法1 求属性集X(X U)关于U上的函数依赖集F 的闭包XF+ 输入:X,F

51、 输出:XF+ 步骤: (1)令X(0)=X,i=0 (2)求B,这里B = A |( V)( W)(VWFV X(i)A W); (3)X(i+1)=BX(i) (4)判断X(i+1)= X (i)吗? (5)若相等或X(i)=U , 则X(i)就是XF+ , 算法终止。 (6)若否,则 i=i+l,返回第(2)步。,对于算法l, 令ai =|X(i)|,ai 形成一个步长大于1的严格递增的序列,序列的上界是 | U |,因此该算法最多 |U| - |X| 次循环就会终止。,SDRJ,89,求闭包的算法,例1 已知关系模式R,其中 U=A,B,C,D,E; F=ABC,BD,CE,ECB,A

52、CB。 求(AB)F+ 。 解 设X(0)=AB; (1)计算X(1): 逐一的扫描F集合中各个函数依赖, 找左部为A,B或AB的函数依赖。得到两个: ABC,BD。 于是X(1)=ABCD=ABCD。 (2)因为X(0) X(1) ,所以再找出左部为ABCD子集的那些函数依赖,又得到ABC,BD, CE,ACB, 于是X(2)=X(1)BCDE=ABCDE。 (3)因为X(2)=U,算法终止 所以(AB)F+ =ABCDE。,SDRJ,90,求关系模式的码,例2 已知关系R ,U=A,B,C,D,E,F=ABC,BD,CE,ECB,ACB。 求R 的码? 解法: 1.求出所有可能存在的闭包X

53、(i) =XF+ , 2.若X(i) =U,则选出其中的X, 3.在X中选出最简的主属性组Xi , 4. Xi 就是所求的码。 具体解为:,(AB)F+=ABCDE (B)F+=BD (C)F+=CBDE (EC)F+=CBDE (AC)F+=ABCDE(ABC)F+=ABCDE (ABCE)F+=ABCDE (BC)F+=BCDE (BEC)F+=BCDE (AEC)F+=ABCDE,包含全部属性的有(AB)F+ , (AC)F+ , (ABC)F+ , (ABCE)F+ , (AEC)F+ 挑选出最简的是: (AB)F+ , (AC)F+ 所以R 的码为: AB 和 AC,SDRJ,91,

54、习题6,给定关系模式R(U,F),U=A,B,C,D,E,F=BA,DA,AE,ACB,其属性AD的闭包为_(1)_,其候选关键字为_(2)_。 (1) A. ADE B. ABDC. ABCDD. ACD (1) A. ABD B. ADEC. ACDD. CD 答案:(1)A(2)D,SDRJ,92,最小依赖集,定义 如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集。亦称为最小依赖集或最小覆盖。 (1) F中任一函数依赖的右部仅含有一个属性。 (2) F中不存在这样的函数依赖XA,使得F与 F-XA等价。 (3) F中不存在这样的函数依赖XA, X有真子集Z 使得 F-XAZA与F

55、等价。,SDRJ,93,例 对于关系模式S,其中: U= SNO,SDEPT,MN,CNAME,G , F= SNOSDEPT,SDEPTMN, (SNO,CNAME)G 设F=SNOSDEPT,SNOMN, SDEPTMN,(SNO,CNAME)G, (SNO,SDEPT)SDEPT F是最小覆盖,而F 不是。 因为:F -SNOMN与F 等价 F -(SNO,SDEPT)SDEPT也与F 等价 F -(SNO,SDEPT)SDEPT SNOSDEPT也与F 等价,SDRJ,94,极小化过程,(1)逐一检查F中各函数依赖FDi:XY 若Y=A1A2 Ak,k 2, 则用 XAj |j=1,2, k 来取代XY。 (2)逐一检查F中各函数依赖FDi:XA, 令G=F-XA,若AXG+,则从F中去掉此函数依赖。 (由于F与G =F-XA等价的充要条件是AXG+ 。因此F变换前后是等价的。) (3)逐一取出F中各函数依赖FDi:XA, 设X=B1

温馨提示

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

最新文档

评论

0/150

提交评论