1、第第2 2章章 关系数据库基础关系数据库基础关系模型关系模型1关系规范化理论关系规范化理论2关系代数关系代数3关系数据库系统设计关系数据库系统设计42.1 2.1 关系模型关系模型n 数据库领域常见的数据模型有数据库领域常见的数据模型有4 4种:种:l(1)(1)层次模型层次模型(Hierarchical Model)(Hierarchical Model)l(2)(2)网状模型网状模型(Network Model)(Network Model)l(3)(3)关系模型关系模型(Relational Model)(Relational Model)l(4)(4)面向对象的模型面向对象的模型(Ob
2、ject Oriented Model)(Object Oriented Model)其中,关系模型是目前使用最广泛的数据模型。其中,关系模型是目前使用最广泛的数据模型。l19701970年,美国年,美国IBMIBM公司的研究员首次提出数据库系统的公司的研究员首次提出数据库系统的关系模型,开创了数据库关系方法和关系数据理论的关系模型,开创了数据库关系方法和关系数据理论的研究。此后推出的数据库管理系统几乎都支持关系模研究。此后推出的数据库管理系统几乎都支持关系模型。型。l支持关系模型的数据库管理系统称为关系数据库管理支持关系模型的数据库管理系统称为关系数据库管理系统,简称系统,简称RDBMSRD
3、BMS。n 关系模型的组成关系模型的组成l关系数据结构关系数据结构l关系操作集合关系操作集合l关系完整性约束关系完整性约束l1.1.关系数据结构关系数据结构关系模型中数据的逻辑结构是一张二维表,由行和列组成。关系模型中数据的逻辑结构是一张二维表,由行和列组成。例如:学生信息表例如:学生信息表4学号学号姓名姓名性别性别出生日期出生日期所在学院所在学院202201001张涛男2003-10-12计算机学院202201002李明男2002-05-03计算机学院202202001刘心女2002-06-24机电学院202203001陈立女2003-01-16法学院202202002王方男2002-09-
4、09电子学院(1)(1)关系关系:一个关系对应一张二维表,都有一个关系名,如一个关系对应一张二维表,都有一个关系名,如“学生信学生信息息”。(2)(2)元组元组:表中的一行,对应于存储文件中的一个记录。表中的一行,对应于存储文件中的一个记录。(3)(3)属性属性:表中的一列。属性名对应于存储文件中的字段。表中的一列。属性名对应于存储文件中的字段。(4)(4)主码:主码:表中的某个属性组,可以唯一确定一个元组。表中的某个属性组,可以唯一确定一个元组。例如,学号可例如,学号可做为做为“学生信息学生信息”关系的主码。关系的主码。(5)(5)关系模式:对关系的描述。一般表示为:关系模式:对关系的描述。
5、一般表示为:关系名关系名(属性属性1 1,属性,属性2 2,属性,属性n)n)例如:例如:“学生信息学生信息”是一个关系,表示为:是一个关系,表示为:学生信息学生信息(学号,姓名,性别,出生日期,所在学院学号,姓名,性别,出生日期,所在学院)5(6)(6)域:属性的取值范围。域:属性的取值范围。例如:性别域:例如:性别域:(男、女男、女),年龄域,年龄域:大于大于0 0的整数。的整数。(7)(7)分量:元组分量:元组(一行一行)中的一个属性值。例如:中的一个属性值。例如:“李明李明”。在关系模型中,实体和实体之间的联系都用关系来表示。如:学在关系模型中,实体和实体之间的联系都用关系来表示。如:
6、学生、课程和选修关系可以表示为:生、课程和选修关系可以表示为:学生信息学生信息(学号,姓名,学号,姓名,性别,出生日期,所在学院性别,出生日期,所在学院)课程课程(课程号,课程课程号,课程名,学分名,学分)选修选修(学号,课程号,成绩学号,课程号,成绩)关系模型要求关系必须是规范化的,即要求关系必须满足一定的关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件,这些规范条件中最基本的一条就是:关系的每一个分规范条件,这些规范条件中最基本的一条就是:关系的每一个分量必须是一个不可分的数据项。量必须是一个不可分的数据项。6l2.2.关系操作关系操作包括:数据的查询、插入、修改、删除包括
7、:数据的查询、插入、修改、删除特点:操作的对象和结果都是关系,即元组的集合特点:操作的对象和结果都是关系,即元组的集合l3.3.关系关系的完整性约束的完整性约束:对关系的某种约束条件:对关系的某种约束条件主要包括三类主要包括三类:实体完整性实体完整性参照完整性参照完整性用户定义的完整性用户定义的完整性实体完整性和参照完整性是关系模型必须满足的完整性约束条实体完整性和参照完整性是关系模型必须满足的完整性约束条件件;用户定义的完整性是指针对具体应用需要自行定义的约束条件。用户定义的完整性是指针对具体应用需要自行定义的约束条件。7(1)(1)实体完整性实体完整性实体具有唯一性标识,则关系模型中以主码
8、作为唯一性标识。实体具有唯一性标识,则关系模型中以主码作为唯一性标识。主属性不能取空值。若主属性为空,则说明存在某个不可标识的主属性不能取空值。若主属性为空,则说明存在某个不可标识的实体,即存在不可区分的实体,这与应用相矛盾,因此这个实体实体,即存在不可区分的实体,这与应用相矛盾,因此这个实体一定不是一个完整的实体。这就是实体的完整性规则。一定不是一个完整的实体。这就是实体的完整性规则。8(2)(2)参照完整性参照完整性在关系模型中,实体及实体间的联系都用关系来描述,因此需要在关系模型中,实体及实体间的联系都用关系来描述,因此需要在关系与关系之间通过某些属性建立它们之间的联系。在关系与关系之间
9、通过某些属性建立它们之间的联系。例如,对于以下三个关系模式:例如,对于以下三个关系模式:学生信息学生信息(学号学号,姓名,性别,出生日期,所在学院,姓名,性别,出生日期,所在学院)主码主码:学学号号 课程课程(课程号课程号,课程名,学分,课程名,学分)主码主码:课程号课程号 选修选修(学号,课程号学号,课程号,成绩,成绩)主码主码:(:(学号,课程号学号,课程号)选修关系的学号必须是学生信息中的学号,而选修关系的课程号选修关系的学号必须是学生信息中的学号,而选修关系的课程号 必须是在课程关系中的课程号。必须是在课程关系中的课程号。9参照完整性定义:设参照完整性定义:设F F是基本关系是基本关系
10、R R的一个或一组属性,但不是关的一个或一组属性,但不是关系系R R的码,如果的码,如果F F与基本关系与基本关系S S的主码相对应,则称的主码相对应,则称F F是基本关系是基本关系R R的外码,并称基本关系的外码,并称基本关系R R为参照关系,基本关系为参照关系,基本关系S S为被参照关系。为被参照关系。例如,设有以下两个关系模式:例如,设有以下两个关系模式:员工员工(员工编号员工编号,姓名,性别,姓名,性别,部门编号部门编号)部门部门(部门编号部门编号,名称,地址,简介,名称,地址,简介)在在“员工员工”关系中,主码为员工编号,在关系中,主码为员工编号,在“部门部门”关系中,主码关系中,主
11、码为部门编号,所以为部门编号,所以“员工员工”关系中的部门编号是该关系的外码。关系中的部门编号是该关系的外码。“员工员工”关系为参照关系;关系为参照关系;“部门部门”关系为被参照关系。关系为被参照关系。10参照完整性参照完整性规则规则:若属性若属性(或属性组或属性组)F)F是基本关系是基本关系R R的外码,它与的外码,它与基本关系基本关系S S的主码相对应,则对于的主码相对应,则对于R R中每个元组在中每个元组在F F上的值必须为:上的值必须为:1)1)或空值或空值(F(F的每个属性值均为空值的每个属性值均为空值);2)2)或或等于等于S S中某个元组的主码值。中某个元组的主码值。参照完整性规
12、则就是定义外码与主码之间的引用规则。参照完整性规则就是定义外码与主码之间的引用规则。11(3)(3)用户定义的完整性用户定义的完整性针对某一具体应用所涉及的数据必须满足的语义要求,对数据定针对某一具体应用所涉及的数据必须满足的语义要求,对数据定义的约束条件。义的约束条件。例如:对于关系模式:例如:对于关系模式:学生信息学生信息(学号,姓名,性别,出生日期,所在学院学号,姓名,性别,出生日期,所在学院)可以定义可以定义:性别字段的值只能为性别字段的值只能为“男男”和和“女女”所在学院的值不能为空所在学院的值不能为空124 4、对关系、对关系的的限制限制w 每一个数据项必须是单值,每一个属性必须是
13、不可再分的基本数每一个数据项必须是单值,每一个属性必须是不可再分的基本数据项。据项。例如,下表就是一个不满足该要求的表。例如,下表就是一个不满足该要求的表。职工编号职工编号姓名姓名工资工资基本工资基本工资职务工资职务工资工龄工资工龄工资001001赵军赵军20002000500500500500002002刘娜刘娜18001800400400300300003003李东李东2300230070070080080013w 每一列中的数据项具有相同的数据类型,来自同一个域。如姓每一列中的数据项具有相同的数据类型,来自同一个域。如姓名都是字符类型,成绩都是整数类型。名都是字符类型,成绩都是整数类型。
14、w 每一列的名称在表中唯一每一列的名称在表中唯一w 列次序任意列次序任意w 任意两行任意两行(即元组即元组)不能相同不能相同w 行次序任意行次序任意目前常用的数据库设计软件:目前常用的数据库设计软件:PowerDesigner,ERwinPowerDesigner,ERwin14员员2.2 2.2 关系规范化理论关系规范化理论n 关系关系规范化理论规范化理论 E-RE-R模型的方法讨论了实体与实体之间的数据联系模型的方法讨论了实体与实体之间的数据联系 关系规范化理论讨论实体内部属性与属性之间的数据联关系规范化理论讨论实体内部属性与属性之间的数据联系,其目标是要设计一个系,其目标是要设计一个“好
15、好”的关系数据库模型的关系数据库模型 1 1)问题的提出)问题的提出设有以下关系:设有以下关系:学生学生(学号学号,姓名姓名,性别性别,课程号课程号,课程名称课程名称,成绩成绩)该关系存在以下问题该关系存在以下问题:(1)(1)数据冗余数据冗余就是数据重复出现,会导致数据库存储性能下降,同时还会带就是数据重复出现,会导致数据库存储性能下降,同时还会带来数据的不一致性问题。来数据的不一致性问题。学号学号姓名姓名性别性别课程号课程号课程名称课程名称成绩成绩06010010601001张军张军男男001001数据库应用数据库应用787806010020601002李辉李辉男男002002程序设计程序
16、设计898906010030601003赵心赵心女女003003管理信息系统管理信息系统858506010040601004林梅林梅女女004004数据结构数据结构797906010040601004林梅林梅女女001001数据库应用数据库应用909006010040601004林梅林梅女女002002程序设计程序设计787816(2)(2)不一致性不一致性 由于数据冗余,因此,如果某个数据需要修改,则可能会因由于数据冗余,因此,如果某个数据需要修改,则可能会因为其多处存在而导致在修改时不能全部修改过来,产生数据为其多处存在而导致在修改时不能全部修改过来,产生数据的不一致,也叫更新异常。的不一
17、致,也叫更新异常。(3)(3)插入异常插入异常 如果新生刚入校,没有选修课程,则学生信息就无法插入到如果新生刚入校,没有选修课程,则学生信息就无法插入到表中,因为根据关系模型的实体完整性规则,主码不能为空,表中,因为根据关系模型的实体完整性规则,主码不能为空,因此无法插入新生数据,这就是插入异常,即数据不能正常因此无法插入新生数据,这就是插入异常,即数据不能正常插入到表中。插入到表中。(4)(4)删除异常删除异常 当需要删除学生记录时,就会删除对应的课程信息。这就是当需要删除学生记录时,就会删除对应的课程信息。这就是删除异常。删除异常就是不该删除的数据被异常地删除了。删除异常。删除异常就是不该
18、删除的数据被异常地删除了。17为了解决以上问题,可以将为了解决以上问题,可以将“学生学生”关系分解为:关系分解为:学生基本信息(学生基本信息(学号学号,姓名,性别),姓名,性别)课程课程(课程号课程号,课程名称),课程名称)选修(选修(学号学号,课程号课程号,成绩),成绩)分解后的关系分解后的关系:在一定程度上解决了数据冗余在一定程度上解决了数据冗余解决了插入异常问题解决了插入异常问题解决了删除异常的问题解决了删除异常的问题为什么可以解决上述问题?为什么可以解决上述问题?这是因为这是因为“学生学生”关系中的某些属性之间存在数据依赖,这种关系中的某些属性之间存在数据依赖,这种数据依赖会造成数据冗
19、余、插入异常、删除异常等问题。数据依赖会造成数据冗余、插入异常、删除异常等问题。数据依赖是对属性间数据的相互关系的描述。数据依赖是对属性间数据的相互关系的描述。18l2 2)函数依赖)函数依赖是数据依赖的一种描述形式是数据依赖的一种描述形式定义定义1 1:若属性:若属性X X的值决定属性的值决定属性Y Y的值的值(即若知道即若知道X X的值就可以获的值就可以获得得Y Y的值的值),则,则Y Y函数依赖于函数依赖于X X,记为,记为XYXY。若若XYXY,并且,并且YXYX,则记为,则记为XYXY。若若Y Y不函数依赖于不函数依赖于X X,则记为,则记为XYXY19例如例如:1)1)设有关系模式
20、:商品设有关系模式:商品(商品名称商品名称,价格价格)如果根据商品名称,就可以得知该商品的价格,则可以说如果根据商品名称,就可以得知该商品的价格,则可以说:商品名称商品名称价格。价格。2)2)设有关系模式设有关系模式:学生学生(学号学号,姓名姓名,年龄年龄,性别性别,专业专业)学生关系中有唯一的标识号学生关系中有唯一的标识号“学号学号”,每个学生有且只有一个,每个学生有且只有一个 专业,则学号决定专业的值,因此:学号专业,则学号决定专业的值,因此:学号专业。专业。3)3)对于选修关系:选修对于选修关系:选修(学号学号,课程号课程号,成绩成绩)则:则:(学号学号,课程号课程号)成绩。成绩。20
21、定义定义2 2:在关系模式在关系模式R(U)R(U)中,如果中,如果XYXY,并且对于,并且对于X X的任何一个真子集的任何一个真子集XX,都,都有有X XY Y,则称,则称Y Y完全函数依赖于完全函数依赖于X X,记作,记作XYXY。若若XYXY,但,但Y Y不完全函数依赖于不完全函数依赖于X X,则称,则称Y Y部分函数依赖于部分函数依赖于X X,记作记作XYXY。例如,关系:选修(学号,课程号,成绩)由于:学号成绩,课程号成绩 而:(学号,课程号)成绩 因此:(学号,课程号)成绩又如,关系:学生(学号,姓名,性别,课程号,课程名称,成绩)由于有:(学号,课程号)姓名,同时有:学号姓名,因
22、此存在部分函数依赖:(学号,课程号)姓名21fpfp 定义定义3 3:在关系模式在关系模式R(U)R(U)中,如果中,如果XYXY,YZYZ,且,且Y Y X X,YXYX,则称则称Z Z传递函数依赖于传递函数依赖于X X。注注:如果如果YXYX,即即XYXY,则则Z Z直接函数依赖于直接函数依赖于X X。例例:设有关系模式:学生信息设有关系模式:学生信息(学号,姓名,所在系,系主任学号,姓名,所在系,系主任)经分析有经分析有:学号学号所在系,所在系所在系,所在系系主任,系主任,因此因此:“系主任系主任”传递函数依赖于传递函数依赖于“学号学号”。22n 范式和规范化范式和规范化 规范化理论用于
23、改造关系模式,通过分解关系模式来消规范化理论用于改造关系模式,通过分解关系模式来消除不合适的数据依赖,以解决数据冗余、插入删除异常除不合适的数据依赖,以解决数据冗余、插入删除异常等问题等问题 规范化,就是用形式更简洁、结构更规范的关系模式取规范化,就是用形式更简洁、结构更规范的关系模式取代原有关系的过程代原有关系的过程 要设计一个好的关系,必须使关系满足一定的约束条件,要设计一个好的关系,必须使关系满足一定的约束条件,这种约束条件已经形成规范这种约束条件已经形成规范(normal forms)(normal forms),分成几个,分成几个等级:等级:第一范式第一范式(1NF)(1NF)第二范
24、式第二范式(2NF)(2NF)第三范式第三范式(3NF)(3NF)BCNFBCNF 第四范式第四范式(4NF)(4NF)第五范式第五范式(5NF)(5NF)5NF 4NF BCNF 3NF 2NF 1NF一个较低的范式,可以通过关系的无损分解转换为若干个高一一个较低的范式,可以通过关系的无损分解转换为若干个高一级范式的关系,这一过程叫做关系的规范化。级范式的关系,这一过程叫做关系的规范化。(1)(1)第一范式(第一范式(1NF1NF)定义:如果一个关系模式定义:如果一个关系模式R R的所有属性都是不可分的基本数据的所有属性都是不可分的基本数据项,则项,则R R属于属于1NF1NF。第一范式是对
25、关系模式的最起码的要求。不满足第一范式的数第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。据库模式不能称为关系数据库。24例如,以下例如,以下“学生学生”关系满足第一范式。关系满足第一范式。学号学号姓名姓名性别性别课程号课程号课程名称课程名称成绩成绩06010010601001张军张军男男001001数据库应用数据库应用787806010020601002李辉李辉男男002002程序设计程序设计898906010030601003赵心赵心女女003003管理信息系统管理信息系统858506010040601004林梅林梅女女004004数据结构数据结构7979
26、06010040601004林梅林梅女女001001数据库应用数据库应用909006010040601004林梅林梅女女002002程序设计程序设计787825以下以下“工资工资”表具有组合数据项,不属于第一范式。表具有组合数据项,不属于第一范式。职工编号职工编号姓名姓名工资工资基本工资基本工资职务工资职务工资工龄工资工龄工资001001赵军赵军20002000500500500500002002刘娜刘娜18001800400400300300003003李东李东2300230070070080080026将将“工资工资”表规范化为第一范式:表规范化为第一范式:满足第一范式的关系模式不一定就是
27、一个好的关系模式。满足第一范式的关系模式不一定就是一个好的关系模式。例如,对于前面的例如,对于前面的“学生学生”关系,已经分析过,它存在数据关系,已经分析过,它存在数据冗余、插入异常、删除异常等问题。冗余、插入异常、删除异常等问题。职工编号职工编号姓名姓名基本工资基本工资职务工资职务工资工龄工资工龄工资001001赵军赵军20002000500500500500002002刘娜刘娜18001800400400300300003003李东李东2300230070070080080027(2)第二范式(第二范式(2NF2NF)定义:若关系模式定义:若关系模式R R是是1NF1NF,并且每一个非主属
28、性都完全函数依,并且每一个非主属性都完全函数依赖于赖于R R的码,则的码,则R R属于属于2NF2NF。例如,对于学生关系:例如,对于学生关系:学生学生(学号学号,姓名姓名,性别性别,课程号课程号,课程名称课程名称,成绩成绩)存在部分函数依赖:存在部分函数依赖:学号学号姓名姓名 学号学号性别性别 课程号课程号课程名称课程名称即存在非主属性对码的部分函数依赖,因此不是即存在非主属性对码的部分函数依赖,因此不是2NF2NF。28改进方法:改进方法:对该关系进行分解,生成若干关系,以消除部分函数依赖。分对该关系进行分解,生成若干关系,以消除部分函数依赖。分解为以下三个关系:解为以下三个关系:学生基本
29、信息(学生基本信息(学号学号,姓名,性别),姓名,性别)课程(课程(课程号课程号,课程名称),课程名称)选修(选修(学号,课程号学号,课程号,成绩),成绩)可以看出,在这三个关系中不存在部分函数依赖,问题解决。可以看出,在这三个关系中不存在部分函数依赖,问题解决。实际上,这里就是把描述不同主题的内容分别用不同的关系来实际上,这里就是把描述不同主题的内容分别用不同的关系来表示。表示。29(3)(3)第三范式(第三范式(3NF3NF)定义:如果关系模式定义:如果关系模式R R是第二范式,且每个非主属性都非传递是第二范式,且每个非主属性都非传递函数依赖于主码,则函数依赖于主码,则R R属于属于3NF
30、3NF。也可以说,如果关系也可以说,如果关系R R的每一个非主属性既不部分函数依赖于的每一个非主属性既不部分函数依赖于主码,也不传递函数依赖于主码,则主码,也不传递函数依赖于主码,则R R属于属于3NF3NF。30例如,关系例如,关系HousingHousing是学生住宿收费表,是学生住宿收费表,SIDSID为学生编号,为学生编号,SnameSname为为学生姓名,学生姓名,BuildingBuilding为楼的编号,为楼的编号,FeeFee为每季度需支付的费用。假为每季度需支付的费用。假设一个学生只住在一个大楼里,一个大楼只有一种收费标准。设一个学生只住在一个大楼里,一个大楼只有一种收费标准
31、。SIDSIDSnameSnameBuildingBuildingFeeFee1010TomTomA A110011001111JerryJerryA A110011001212KateKateB B120012001313TonyTonyB B120012001414JohnJohnC C130013001515MaryMaryD D1400140031主码主码:SID:SID 存在函数依赖:存在函数依赖:SIDBuildingSIDBuilding BuildingFeeBuildingFee 即存在非主属性即存在非主属性FeeFee对码对码SIDSID的传递函数依赖,因此关系的传递函数依
32、赖,因此关系HousingHousing不是第三范式。不是第三范式。该关系存在插入异常、删除异常等问题。该关系存在插入异常、删除异常等问题。32改进方法:将关系改进方法:将关系HousingHousing分解为两个关系。分解为两个关系。1)1)“Stu-Housing”Stu-Housing”关系:关系:SIDSIDSnameSnameBuildingBuilding1010TomTomA A1111JerryJerryA A1212KateKateB B1313TonyTonyB B1414JohnJohnC C1515MaryMaryD D33 2)“Housing-Fee”Housing
33、-Fee”关系:关系:BuildingBuildingFeeFeeA A11001100B B12001200C C13001300D D1400140034分解后的关系解决了插入异常、删除异常、数据冗余的问题。分解后的关系解决了插入异常、删除异常、数据冗余的问题。(4)BC BCNF(Boyce Codd Normal Form)NF(Boyce Codd Normal Form),是修正的第三范式,是修正的第三范式定义:一个满足定义:一个满足BCNFBCNF的关系模式有:的关系模式有:1)1)所有非主属性对每一个码都是完全函数依赖;所有非主属性对每一个码都是完全函数依赖;2)2)所有主属性
34、对每一个不包含它的码是完全函数依赖;所有主属性对每一个不包含它的码是完全函数依赖;3)3)没有任何属性完全函数依赖与非码的任何一组属性。没有任何属性完全函数依赖与非码的任何一组属性。(5)第四范式(第四范式(4NF4NF)4NF4NF限制关系模式的属性之间不允许有非平凡且非函数依赖的限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。多值依赖。(6)第五范式(第五范式(5NF5NF)是最终范式,消除了是最终范式,消除了4NF4NF中的连接依赖。中的连接依赖。35规范化的本质是把表示不同主题的信息分解到不同的关系中,规范化的本质是把表示不同主题的信息分解到不同的关系中,如果某个关系包含有
35、两个或两个以上的主题,就应该将它分解如果某个关系包含有两个或两个以上的主题,就应该将它分解为多个关系,使每个关系只包含一个主题。为多个关系,使每个关系只包含一个主题。在分解关系之后,需要注意建立起关系之间的关联约束(参照在分解关系之后,需要注意建立起关系之间的关联约束(参照完整性约束)。完整性约束)。关系变得更加复杂,对关系的使用也会变得复杂,因此并不是关系变得更加复杂,对关系的使用也会变得复杂,因此并不是分解得越细越好。一般来说,用户的目标是第三范式(分解得越细越好。一般来说,用户的目标是第三范式(3NF3NF)数据库,因为在大多数情况下,这是进行规范化功能与易用程数据库,因为在大多数情况下
36、,这是进行规范化功能与易用程度的最好平衡点。在理论上和一些实际使用的数据库中,有比度的最好平衡点。在理论上和一些实际使用的数据库中,有比3NF3NF更高的等级。更高的等级。362.3 2.3 关系代数关系代数n 关系代数关系代数l是一种抽象的查询语言是一种抽象的查询语言l运算对象是:关系运算对象是:关系l运算结果是:关系运算结果是:关系l每个关系运算将一到两个关系做为输入,并产生一个每个关系运算将一到两个关系做为输入,并产生一个新关系做为输出新关系做为输出l因此,关系模型是关系上的运算的集合因此,关系模型是关系上的运算的集合l关系代数的运算关系代数的运算并并(Union)(Union)交交(I
37、ntersection)(Intersection)差差(Difference)(Difference)笛卡尔积笛卡尔积(Cartesian Product)(Cartesian Product)选择选择(Selection)(Selection)投影投影(Projection)(Projection)连接连接(Join)(Join)除除(Division)(Division)38传统的集合运算传统的集合运算专门的关系运算专门的关系运算并并(Union)(Union)关系关系R R和和S S的并由属于的并由属于R R或属于或属于S S的所有元组构成。的所有元组构成。记作:记作:RS=t|tRS
38、=t|tR Rt tSS 39交交(Intersection)(Intersection)关系关系R R和和S S的交由属于的交由属于R R同时又属于同时又属于S S的所有元组构成。的所有元组构成。记作:记作:R RS=t|tS=t|tR Rt tSS 40差差(Difference)(Difference)关系关系R R和和S S的差由属于的差由属于R R但不属于但不属于S S的所有元组构成。的所有元组构成。记作:记作:R-S=t|tR-S=t|tR Rt tSS41笛卡尔积笛卡尔积(Cartesian Product)(Cartesian Product)设设R R为为k1k1元关系,元关
39、系,S S为为k2k2元关系,则关系元关系,则关系R R和和S S的笛卡尔积是一个的笛卡尔积是一个(k1+k2)(k1+k2)元的关系,其中每个元组的前元的关系,其中每个元组的前k1k1个分量取自个分量取自R R中的一个元组,中的一个元组,后后k2k2个分量取自个分量取自S S中的一个元组。中的一个元组。记作:记作:R R S=tS=tr rt ts s|t|tr rR Rt ts sSS 42选择选择(Selection)(Selection)又称为限制又称为限制(Restriction)(Restriction)。它是在关系。它是在关系R R中选择满足给定条件的元中选择满足给定条件的元组组
40、 记作:记作:F F(R(R)=t|tRF(t)=t|tRF(t)=真真 其中其中F F表示选择条件,它是一个逻辑表达式,取值为表示选择条件,它是一个逻辑表达式,取值为“真真”或或“假假”。逻辑表达式。逻辑表达式F F由逻辑运算符由逻辑运算符,连接各算连接各算术表达式组成。术表达式组成。算术表达式的基本形式为:算术表达式的基本形式为:X X1 1Y Y1 1其中其中表示比较运算符,它可以是,表示比较运算符,它可以是,=或或。X X1 1,Y Y1 1等是属性名,或为常量,或为简单函数;属性名也可以等是属性名,或为常量,或为简单函数;属性名也可以用它的序号来代替。用它的序号来代替。选择运算实际上
41、是从关系选择运算实际上是从关系R R中选取使逻辑表达式为真的元组。中选取使逻辑表达式为真的元组。这是从行的角度进行的运算。这是从行的角度进行的运算。43投影投影(Projection)(Projection)基本思想:从一个关系中选择需要的属性成分,并按要求排列基本思想:从一个关系中选择需要的属性成分,并按要求排列组成一个新的关系。新的关系的各属性值来自原来关系中相应组成一个新的关系。新的关系的各属性值来自原来关系中相应的属性值,并去掉重复元组。的属性值,并去掉重复元组。44连接连接(Join)(Join)连接运算把两个关系的共同的域按某种条件约束结合在一连接运算把两个关系的共同的域按某种条件
42、约束结合在一起形成新的关系。设起形成新的关系。设R R为为k k1 1元关系,元关系,S S为为k k2 2元关系,算术元关系,算术比较符是比较符是。则关系。则关系R R的第的第i i列和关系列和关系S S的第的第j j列的连接定义列的连接定义为:为:从定义可以看出,连接运算是从两个关系的笛卡尔积中选从定义可以看出,连接运算是从两个关系的笛卡尔积中选取满足一定连接条件的元组的集合,连接的结果是一个取满足一定连接条件的元组的集合,连接的结果是一个(k(k1 1+k+k2 2)元的关系。元的关系。45除除(Division)(Division)w 给定关系R(X,Y)和S(Y,Z),其中X,Y,Z
43、为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X)。该P中只包含R中投影下来的的X属性组,且该X属性组应满足:R(Y)=S(Y)w 记作:记作:除操作是同时从行和列角度进行的运算。除操作是同时从行和列角度进行的运算。|()rryxRSt XtRSY46l以上介绍了以上介绍了8 8种关系代数运算,其中并、差、笛卡尔积、种关系代数运算,其中并、差、笛卡尔积、选择和投影选择和投影5 5种运算为基本的运算。其他种运算为基本的运算。其他3 3种运算交、种运算交、连接和除,均可以用这连接和除,均可以用这5 5种基本运算来表达。种基本运算来表达。l关
44、系代数对数据库的数据操作是完备的,利用关系代关系代数对数据库的数据操作是完备的,利用关系代数可以实现一切数据操作。数可以实现一切数据操作。473.4 3.4 关系数据库系统设计关系数据库系统设计 n 数据库系统的设计包括数据库系统的设计包括:l数据库的设计数据库的设计l数据库应用系统设计数据库应用系统设计n 数据库设计是指设计数据库的结构特性。数据库设计是指设计数据库的结构特性。n 数据库应用系统设计是指设计对数据库应用需求数据库应用系统设计是指设计对数据库应用需求的应用程序,用户通过应用程序来访问和操作数的应用程序,用户通过应用程序来访问和操作数据库。据库。n 数据库设计分数据库设计分6 6
45、个阶段:个阶段:l需求分析阶段需求分析阶段l概念结构设计阶段概念结构设计阶段l逻辑结构设计阶段逻辑结构设计阶段l物理结构设计阶段物理结构设计阶段l数据库实施阶段数据库实施阶段l数据库运行和维护阶段数据库运行和维护阶段以上步骤既是数据库设计的过程,也以上步骤既是数据库设计的过程,也是是数据库应用系统设计的数据库应用系统设计的过程。过程。49l1 1.需求分析阶段需求分析阶段数据库设计的第一步。数据库设计的第一步。任务:任务:准确了解并分析用户对系统的要求,确定所要开发的准确了解并分析用户对系统的要求,确定所要开发的应用系统的目标应用系统的目标。结果:产生结果:产生需求说明书需求说明书,成成为下一
46、步概念结构设计的基础。为下一步概念结构设计的基础。需求分析主要是考虑需求分析主要是考虑“做什么做什么”,而不是考虑,而不是考虑“怎么做怎么做”。50l2.2.概念结构设计概念结构设计阶段阶段对需求分析阶段收集到的数据进行分类、组织,确定实体之对需求分析阶段收集到的数据进行分类、组织,确定实体之间的联系类型间的联系类型(1:1(1:1,1:n1:n,m:n)m:n),最终,最终形形成整体的成整体的E-RE-R图。图。结果:产生结果:产生E-RE-R图图该阶段设计的该阶段设计的概念模型是数据库逻辑设计的依据,是整个概念模型是数据库逻辑设计的依据,是整个数据库设计的关键。数据库设计的关键。51l3.
47、3.逻辑逻辑结构设计结构设计阶段阶段任务:将概念结构转化为任务:将概念结构转化为DBMSDBMS支持的数据模型,包括数据库支持的数据模型,包括数据库模式和外模式。模式和外模式。E-RE-R图向关系模型转换,并用规范化理论进行优化。图向关系模型转换,并用规范化理论进行优化。结果:产生结果:产生关系模型关系模型可能需要设计外模式,即用户可直接访问的数据模式。定义可能需要设计外模式,即用户可直接访问的数据模式。定义用户外模式应注重考虑用户的习惯与方便,包括以下三个方用户外模式应注重考虑用户的习惯与方便,包括以下三个方面面:w 1 1)使用符合用户习惯的别名。)使用符合用户习惯的别名。w 2 2)针对
48、不同级别的用户定义不同的外模式,以满足系统)针对不同级别的用户定义不同的外模式,以满足系统 对安对安全性的要求。全性的要求。w 3 3)若要经常使用某些复杂的查询,可将这些复杂查询定义为外)若要经常使用某些复杂的查询,可将这些复杂查询定义为外模式模式(视图视图),以方便用户使用。,以方便用户使用。52l4.4.物理物理结构设计结构设计阶段阶段任务:设计任务:设计数据库在物理设备上的存储结构和存取方法。数据库在物理设备上的存储结构和存取方法。目的:设计的物理目的:设计的物理数据库结构满足事务在数据库上运行时响数据库结构满足事务在数据库上运行时响应时间少、存储空间利用率高和事务吞吐率大的要求应时间
49、少、存储空间利用率高和事务吞吐率大的要求。结果:结果:物理物理数据库结构数据库结构53l5.5.数据库实施数据库实施阶段阶段设计人员用数据定义语言设计人员用数据定义语言(DDLDDL)和实用程序将数据库逻辑设计和实用程序将数据库逻辑设计和物理设计结果描述出来和物理设计结果描述出来。具体内容如下:。具体内容如下:用用DDLDDL描述数据库结构描述数据库结构;组织数据入库组织数据入库;编制与调试应用程序编制与调试应用程序;数据库试运行数据库试运行及及测试测试。54l6.6.数据库运行和维护数据库运行和维护阶段阶段数据库投入正式运行,则标志着开发任务完成、维护工作数据库投入正式运行,则标志着开发任务
50、完成、维护工作开始。开始。在数据库运行阶段,数据库的维护工作主要由在数据库运行阶段,数据库的维护工作主要由DBADBA完成。完成。工作主要包括:工作主要包括:(1)(1)数据库的转储和恢复;数据库的转储和恢复;(2)(2)数据库的安全性、完整性控制;数据库的安全性、完整性控制;(3)(3)数据库性能的监督、分析和改进;数据库性能的监督、分析和改进;(4)(4)数据库的重组织和重构造。数据库的重组织和重构造。55n 关系数据理论关系数据理论l关系模型关系模型l关系操作关系操作l关系的完整性关系的完整性l关系的规范化理论关系的规范化理论l关系代数关系代数n 关系数据库系统设计关系数据库系统设计本章
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。