版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 关系数据库,3.1 关系模型及其定义 3.1.1 关系数据结构 3.1.2 关系操作概述 3.1.3 关系的完整性 3.2 关系代数 3.2.1 传统的集合运算 3.2.2 专门的关系运算 3.2.3 用关系代数表示检索的例子,3.1 关系模型及其定义,3.1.1 关系数据结构 1. 关系的数学定义 1) 域的定义:域是一组具有相同数据类型的值的集合。 2) 笛卡儿积(Cartesian Product)的定义:给定一组域D1,D2,Dn,这些域中可以有相同的部分,则笛卡儿积为: D1D2Dn =(d1,d2,dn)di Di,i1,2,n. 其中:每一个元素(d1,d2,dn )称为
2、一个n元组,简称元组。元素中的每一个值di称作一个分量,例如给出三个域: D1 = 姓名 = 王平,李丽,张晓刚; D2 = 性别 = 男,女; D3 = 年龄 = 19,20,则D1,D2,D3的笛卡儿积为D1D2D3,1. 关系的数学定义,3) 关系(Relation)的定义:D1 D2 Dn的子集称作在域D1,D2,Dn上的关系,表示为: R(D1,D2,Dn).这里:R表示关系的名字,n是关系的目或度,从D1D2D3中取出有用的元组,所构造的学生关系如表所示,2. 关系中的基本名词,1) 元组:关系表中的每一横行称作一个元组,组成元组的元素为分量。2) 属性:关系中的每一列称为一个属性
3、。3) 候选码、主码、全码:若关系的候选码中只包含一个属性,则称它为单属性码;若候选码是由多个属性构成的,则称为它为多属性码。若关系中只有一个候选码,且这个候选码中包括全部属性,则这种候选码为全码。4) 主属性和非主属性:关系中,候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性,3. 数据库中关系的类型 1) 基本表:关系数据库中实际存在的表,是实际存储数据的逻辑表示。2) 视图表:视图表是由基本表或其他视图表导出的表。3) 查询表:查询表是指查询结果表或查询中生成的临时表。4. 数据库中基本关系的性质1) 同一属性的数据具有同质性。2) 同一关系的属性名具有不能重复性。3)
4、关系中的列位置具有顺序无关性。4) 关系具有元组无冗余性。5) 关系中的元组位置具有顺序无关性。6) 关系中每一个分量都必须是不可分的数据项,5. 关系模式的定义形式化地表示为:R(U,D,Dom,F)其中:R为关系名,它是关系的形式化表示;U为组成该关系的属性集合;D为属性组U中属性所来自的域;Dom为属性向域的映象的集合;F为属性间数据的依赖关系集合。关系模式通常可以简单记为:R(U)或 R(A1,A2,An).其中:R为关系名,A1,A2,An为属性名,6. 关系数据库在某一应用领域中,所有实体集及实体之间联系所形成关系的集合就构成了一个关系数据库,3.1.2 关系操作概述,1. 关系操
5、作的基本内容 关系操作包括数据查询、数据维护和数据控制三大功能:数据查询指数据检索、统计、排序、分组以及用户对信息的需求等功能;数据维护指数据增加、删除、修改等数据自身更新的功能;数据控制是为了保证数据的安全性和完整性而采用的数据存取控制及并发控制等功能。 关系操作的数据查询和数据维护功能使用关系代数中的选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)以及广义笛卡儿积( Extended Cartesian Product)8种操作,2. 关系操作的特点,1)关系操作语言操作一体化
6、具有数据定义、查询、更新和控制一体化的特点,既可以作为宿主语言嵌入到主语言中,又可以作为独立语言交互使用。 (2) 关系操作的方式是一次一集合方式 其他系统的操作是一次一记录方式,而关系操作的方式则是一次一集合方式。关系操作数据结构单一的特点,能够使其利用集合运算和关系规范化等数学理论进行优化和处理操作,但关系操作与其他系统配合时需要解决处理方式的矛盾。 (3) 关系操作语言是高度非过程化的语言 具有强大的表达能力。用户使用关系语言时,只需要指出做什么,而不需要指出怎么做,数据存取路径的选择、数据操作方法的选择和优化都由DBMS自动完成,3. 关系操作语言的种类,1) 关系代数语言 用对关系的
7、运算来表达查询要求的语言。 (2) 关系演算语言 用查询得到的元组应满足的谓词条件来表达查询要求的语言。关系演算语言又可以分为元组演算语言和域演算语言两种:元组演算语言的谓词变元的基本对象是元组变量,例如APLHA语言;域演算语言的谓词变元的基本对象是域变量,QBE(Query By Example)是典型的域演算语言。 (3) 基于映象的语言 具有关系代数和关系演算双重特点的语言。SQL是基于映象的语言。SQL包括数据定义、数据操作和数据控制三种功能,具有语言简洁,易学易用的特点,它是关系数据库的标准语言和主流语言,3.1.3 关系的完整性,1. 关系模型的实体完整性(Entity Inte
8、grity) 若属性A是基本关系R的主属性,则属性A的值不能为空值。说明如下:1) 实体完整性能够保证实体的唯一性。2) 实体完整性能够保证实体的可区分性。 2. 关系模型的参照完整性1) 外码和参照关系 设F是基本关系R的一个或一组属性,但不是关系R的主码(或候选码)。如果F与基本关系S的主码相对应,则称F是R的外码,并称R为参照关系,S为被参照关系或目标关系,例如,“基层单位数据库”中有“职工”和“部门”两个关系,其关系模式如下: 职工(职工号,姓名,工资,性别,部门号); 部门(部门号,名称,领导人号).其中:主码用下划线标出,外码用曲线标出,再例,在学生课程库中,关系模式表示为: 学生
9、(学号,姓名,性别,专业号,年龄); 课程(课程号,课程名,学分); 选修(学号,课程号,成绩).其中:主码用下划线标出,2) 参照完整性规则 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值,3 用户定义的完整性。 用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求,3.2 关系代数,1) 集合运算符:(并运算),(差运算),(交运算),(广义笛卡儿积)。 2) 专门的关系运算符:(选择),
10、(投影),(连接),(除)。 3) 比较运算符:(大于),(大于等于),(小于),(小于等于),(等于),(不等于)。 4) 逻辑运算符:(非),(与),(或,3.2.1 传统的集合运算,设关系R和S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域。1. 并(Union)运算 RS=t| t R t S. R和S并的结果仍为n目关系,其数据由属于R或属于S的元组组成。2. 差(Difference)运算 R S = t | t R t S. R和S差运算的结果关系仍为n目关系,其数据由属于R而不属于S的所有元组组成,3. 交(Intersection)运算 RS = t |
11、tR t S . 运算的结果关系仍为n目关系,其数据由既属于R同时又属于S的元组组成。交可用差来表示: RS = R(RS),4. 笛卡儿积运算 设n目和m目的关系R和S,它们的笛卡儿积是一个(n+m)目的元组集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡儿积应当有k1k2个元组。R和S的笛卡儿积表示为: RS = tr ts | tr R ts S,传统集合运算的实例,R S RS,RS RS,3.2.2 专门的关系运算,1. 记号说明(1) 关系模式、关系、元组和分量 设关系模式为R(A1,A2,An),它的一个
12、关系设为R,tR表示t是R的一个元组,t Ai则表示元组t中相对于属性Ai的一个分量。(2) 域列和域列非 若A = A i1,A i2,A ik,其中A i1,A i2,A ik是A1,A2,An中的一部分,则A称为属性列或域列,t A = t Ai1,t A i2,t A ik 表示元组t在属性列A上诸分量的集合。A则表示 A1,A2 , , An 中去掉 A i1,A i2,A ik后剩余的属性组,它称为A的域列非,3) 元组连串(Concatenation) 设R为n目关系,S为m目关系,且tr R,tSS,则tr tS 称为元组的连串。连串是一个(n+m)列的元组,它的前n个分量是R
13、中的一个n元组,后m个分量为S中的一个m元组,4) 属性的象集(Images Set) 给定一个关系R(X,Z),X和Z为属性组。定义当t X=x时,x在R中的象集为: Zx = t Z | t R,t X = x . 上式表示,x在R中的象集为R中Z属性对应分量的集合,而这些分量所对应的元组中的属性组X上的值应为x,2. 专门关系运算的定义,1) 选择(Selection)运算选择运算又称为限制运算。选择运算指在关系R中选择满足给定条件的元组,记作: F(R)= t | t R F(t)= 真 .其中:F表示选择条件,是一个逻辑表达式,取值为“真”或“假”。F由逻辑运算符(非)、(与)和(或
14、)连接各条件表达式组成。 条件表达式的基本形式为:X1Y1.其中:是比较运算符,它可以是、中的一种;X1和Y1是属性名、常量或简单函数;属性名也可以用它的序号来代替,用关系代数表示下列操作,设学生课程数据库,其关系模式为: 学生(学生,姓名,年龄,所在系); 课程(课程号,课程名,学分); 选课(学号,课程号,成绩,例3-1】用关系代数表示在学生课程数据库中查询计算机系的全体学生的操作。 所在系= 计算机系 (学生,例3-2】用关系代数表示在学生课程数据库中查询年龄小于20岁的学生的操作。 年龄20(学生,2) 投影(Projection)运算 关系R上的投影是从R中选择出若干属性列组成新的关
15、系,记作: A(R)= t A | t R,例3-3】在学生课程数据库中,查询学生的姓名和所在系。 表示为: 姓名,所在系(学生,3) 连接运算,连接是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。记作: R S=tr ts| trR tsS tr Ats B. AB其中:A和B分别为R和S上度数相等且可比的属性组,是比较运算符。 等值连接表示为: R S=tr ts| trR tsS tr Ats B. A =B 自然连接是一种特殊的等值连接: R S=tr ts| trR tsS tr Ats B,例3-4】设学生和选课关系中的数据如下,学生与选课之间的笛卡儿积、等值连接和自然连接的
16、结果如表所示,学生 选课,学生选课,学生 选课 学生.学号=选课.学号,学生 选课,4) 除(Division)运算,给定关系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上的投影,即: RS=tr X| t r R Y(S) Yx. 其中的Yx为x在R中的象集,x = trX。关系除法运算分下面4步进行:1) 将被除关系的属性分为象集属性和结果属性:与除关系相同的属性属于象集属性,不相同的属性属于结果属
17、性。2) 在除关系中,对与被除关系相同的属性(象集属性)进行投影,得到除目标数据集。3) 将被除关系分组,原则是,结果属性值一样的元组分为一组。4) 逐一考察每个组,如果它的象集属性值中包括除目标数据集,则对应的结果属性值应属于该除法运算结果集,例3-5】给出选课、选修课和必修课3个关系,它们的关系模式为: 选课(学号,课号,成绩);选修课(课号,课名);必修课(课号,课名,选课必修课 学号,课号(选课)必修课,3.2.3 用关系代数表示检索的例子,学生选课库的关系模式为: 学生(学号,姓名,性别,年龄,所在系); 课程(课程号,课程名,先行课); 选课(学号,课程号,成绩).【例3-6】求选修了课程号为“C2”课程的学生学号。 学号(课程号= C2(选课)【例3-7】求选修了课程号为“C2”课的学生学号和姓名。 学号,姓名(课程号= C2(选课学生)【例3-8】求没有选修课程号为“C2”课程的学生学号。 学号(学生)-学号(课程号= C2(选课)本题不能写为: 学号(课程号 C2(选课,用关系代数表示检索的例子,例3-9】求既选修“C2”课程,又选修“
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论