资源描述:
《数据库原理与应用 第3章 关系数据库规划和设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章关系数据库规划和设计【本章导读】本章主要讲述关系数据库的规范化理论、关系数据库的标准语言SQL、关系数据库的设计、关系数据库的保护以及数据库的最新技术。【本章要点】关系数据库理论关系规范化的方法和步骤SQL的功能数据库的安全性、完整性、备份和恢复的原理及方法数据库设计的内容、任务、步骤和方法数据库技术的发展以及与其他技术的结合第3章关系数据库规划和设计3.1关系数据库理论3.2关系数据库标准语言——SQL3.3数据库保护3.4数据库设计3.5数据库新技术3.1关系数据库理论3.1.1函数依赖3.1.2范式3.1.3数据依赖的公理系统
2、3.1.4关系模式的规范化3.1.1函数依赖1.函数依赖定义3.1设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称X函数确定Y或Y函数依赖于X,记作X→Y。说明(1)函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。(2)函数依赖是语义范畴的概念,只能根据数据的语义来确定函数依赖。(3)X→Y,但YX,则称X→Y是非平凡函数依赖。X→Y,但YX,则称X→Y是平凡函数
3、依赖。若不特别声明,总是讨论非平凡函数依赖。说明(4)若X→Y,则X称为这个函数依赖的决定属性集。(5)若X→Y,并且Y→X,则记为X←→Y。(6)若Y不函数依赖于X,则记为XY。2.完全函数依赖与部分函数依赖定义3.2在关系模式R(U)中,如果X→Y,并且对于X的任何一个真子集X',都有X'→Y,则称Y完全函数依赖于X,记作XY。若X→Y,但Y不完全函数依赖于X,称Y部分函数依赖于X,记作XY。例如,在选课关系SC(学号S#,课程号C#,成绩G)中,学生的成绩由学号和课程号共同决定,代表该学生的一次选课,所以函数依赖为:(S#,C#)→
4、G,但是单独由学号不能决定一门课的成绩,单独由课程号也不能决定某个学生的成绩,即S#G、C#G,所以(S#,C#)G。3.传递函数依赖定义3.3在关系模式R(U)中,如果X→Y(YX),YX,Y→Z,则称Z传递函数依赖于X,记作XZ。例如,在关系SD(学号S#,所在系SDEPT,系主任姓名MNAME)中,学号决定学生所在系,即S#→SDEPT,学生所在系决定系主任姓名SDEPT→MNAME,则S#MNAME。传递传递4.码定义3.4设K为关系模式R<U,F>中的属性或属性组合。若KU,则称K为R的一个候选码(CandidateKey)。若
5、关系模式有多个候选码,则选定其中的一个作为主码(PrimaryKey)。举例学生关系STUDENT(学号SNO,姓名SNAME,性别SSEX,年龄SAGE,所在系SDEPT)的主码是学号SNO,因为学号SNO能决定姓名、性别、年龄、所在系这几个属性,即SNOU。选课关系SC(学号S#,课程号C#,成绩G)的主码是(S#,C#),因为(S#,C#)G,则(S#,C#)(S#,C#,G),即(S#,C#)U。包含在任何一个候选码中的属性称为主属性(PrimeAttribute)不包含在任何候选码中的属性称为非主属性(NonprimeAttri
6、bute)或非码属性(Non-keyAttribute)。最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属性组都是这个关系模式的候选码,称为全码(All-key)。例如,选课关系SC(学号S#,课程号C#,成绩G)的主码是(S#,C#),主属性是主码的各个属性,即S#、C#,非主属性是G。3.1.2范式范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求。满足的要求不同,则范式不同。范式的概念最早是由E.F.Codd提出的,他从1971年相继提出了三级规范化形式,即满足最低要求的第一范式(1N
7、F),在1NF基础上又满足某些特性的第二范式(2NF),在2NF基础上再满足一些要求的第三范式(3NF)。1974年,E.F.Codd和Boyce共同提出了一个新的范式概念,即Boyce-Codd范式,简称BC范式(BCNF)。1976年Fagin提出了第四范式(4NF),后来又有人定义了第五范式(5NF)。至此,在关系数据库规范中建立了一个范式系列:1NF、2NF、3NF、BCNF、4NF和5NF。通常把某一关系模式R为第n范式简记为R∈nNF。1.1NF定义3.5如果一个关系模式的所有属性都是不可分的基本数据项,则R∈1NF。任何一个
8、关系模式都是1NF,不满足第一范式的数据库模式不能称为关系数据库。满足第一范式的关系模式不一定是一个好的关系模式。如关系模式SLC(学号SNO,学生所在系SDEPT,学生住处SLOC,课程号C