DB02数据库第二章教学.ppt_第1页
DB02数据库第二章教学.ppt_第2页
DB02数据库第二章教学.ppt_第3页
DB02数据库第二章教学.ppt_第4页
DB02数据库第二章教学.ppt_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

第二章第二章 关系数据库关系数据库 数据库原理 教学要求:本章重点掌握关系模型的概念、特点及 关系运算的基本运算:笛卡儿乘积、交、并、差、选 择、投影、商、连接、自然连接等;掌握关系数据结 构及其形式化定义,关系的三类完整性约束的概念。 重点和难点:关系模型的数据完整性约束和关系代 数运算 数据库原理 2.1关系模型概述 组成三要素:关系数据结构数据结构、关系操作集合操作集合、关系完完 整性约束整性约束。 一、单一的数据结构:二维表 二、关系操作:选择、投影、连接、除、并等查询操 作及添加、删除、修改操作。 关系操作特点是:集合操作。 关系操作描述:关系代数、关系演算、双重特点语言 。 语言特点:表达能力完备、非过程化。 三、完整性约束:实体、参照、用户自定义 数据库原理 关系模型的数据结构简单,无论是实体还是实关系模型的数据结构简单,无论是实体还是实 体之间的联系均由单一的结构类型即关系(表)来体之间的联系均由单一的结构类型即关系(表)来 表示的。表示的。 2.2关系数据结构及形式化定义 学 号 姓名 性别系 别 年龄 籍贯 95001 李勇男计算机 19 江苏 95002 刘晨女机 械 20 北京 95003 王名女机 械 19 上海 - - - - - - 数据库原理 2.2.1 2.2.1 关系关系 域:域:一组具有相同数据类型的集合一组具有相同数据类型的集合, ,如实数、整数如实数、整数 、字母表等。、字母表等。 笛卡尔积笛卡尔积(Cartesian Product)(Cartesian Product) 给定一组域给定一组域D D 1 1 ,D D 2 2 , D D n n ,则称则称 D D1 1 D D2 2 D D n n =(=(d d 1 1 , , d d 2 2 , , d d n n )| )| d d i i D D i i , , i i=1,2,n=1,2,n 为这组集合的为这组集合的笛卡尔积笛卡尔积 ,其中:,其中: 笛卡尔积的每个元素笛卡尔积的每个元素( (d d 1 1 , , d d 2 2 , , d d n n ) )称作一个称作一个 n n元组元组( (n-tuplen-tuple) )。 元组的每一个值元组的每一个值d d i i 叫做一个分量叫做一个分量(component)(component)。 数据库原理 例:设例:设 D D 1 1 为教师集合为教师集合(T)= t(T)= t 1 1 ,t t 2 2 D D 2 2 为学生集合为学生集合(S)= s(S)= s 1 1 ,s s 2 2 ,s s 3 3 D D 3 3 为课程集合为课程集合(C)= c(C)= c 1 1 ,c c 2 2 则则D D 1 1 DD 2 2 DD 3 3 是个三元组集合,元组个数是个三元组集合,元组个数 (基数)为(基数)为232232,是所有可能的(教师,学,是所有可能的(教师,学 生,课程)元组集合。生,课程)元组集合。 T T S S C C t t 1 1 s s1 1 c c1 1 t t 1 1 s s1 1 c c2 2 t t 1 1 s s2 2 c c1 1 t t 2 2 s s3 3 c c2 2 数据库原理 例如给出三个域:例如给出三个域: D D 1 1 = =导师集合导师集合 SUPERVISOR=SUPERVISOR=张清玫张清玫, , 刘逸刘逸 D D 2 2 = =专业集合专业集合 SPECIALITY=SPECIALITY=计算机专业计算机专业, , 信息专业信息专业 D D 3 3 = =研究生集合研究生集合 POSTGRADUATE=POSTGRADUATE=李勇李勇, , 刘晨刘晨, , 王敏王敏 则则D D 1 1 ,D D 2 2 ,D D 3 3 的笛卡尔积为:的笛卡尔积为: D D 1 1 DD 2 2 DD 3 3 ( (张清玫张清玫, ,计算机专业计算机专业, ,李勇李勇),(),(张清玫张清玫, ,计算机专业计算机专业, ,刘晨刘晨), ), ( (张清玫张清玫, ,计算机专业计算机专业, ,王敏王敏),(),(张清玫张清玫, ,信息专业信息专业, ,李勇李勇), ), ( (张清玫张清玫, ,信息专业信息专业, ,刘晨刘晨),(),(张清玫张清玫, ,信息专业信息专业, ,王敏王敏), ), ( (刘逸刘逸, ,计算机专业计算机专业, ,李勇李勇),(),(刘逸刘逸, ,计算机专业计算机专业, ,刘晨刘晨), ), ( (刘逸刘逸, ,计算机专业计算机专业, ,王敏王敏),(),(刘逸刘逸, ,信息专业信息专业, ,李勇李勇), ), ( (刘逸刘逸, ,信息专业信息专业, ,刘晨刘晨),(),(刘逸刘逸, ,信息专业信息专业, ,王敏王敏) ) 数据库原理 例如关系:例如关系: SAP(SUPERVISOR, SPECIALITY,SAP(SUPERVISOR, SPECIALITY, POSTGRADUATE) POSTGRADUATE) 可以包含元组:可以包含元组: (张清玫,信息专业,李勇)(张清玫,信息专业,李勇) (张清玫,信息专业,刘晨)(张清玫,信息专业,刘晨) (刘逸,信息专业,王敏)(刘逸,信息专业,王敏) 有效元组有效元组实际的、现实世界当中的具体情况实际的、现实世界当中的具体情况 数据库原理 关系关系 !是笛卡尔积的一个子集,记做是笛卡尔积的一个子集,记做R R( (D D 1 1 , ,D D 2 2 , , D D n n ) , ) , R R D D 1 1 D D 2 2 D D n n , , 其中,其中,R R表示关系的名字,表示关系的名字,n n 是关系的目或度是关系的目或度(Degree)(Degree),关系中的每个元素是关系中的每个元素是 关系的元组,用关系的元组,用t t表示。表示。 !关系是一个属性数目相同的元组的集合。关系是一个属性数目相同的元组的集合。 !关系是一种规范化了的二维表格。关系是一种规范化了的二维表格。 !有时习惯上称呼有时习惯上称呼关系为表或表格关系为表或表格,元组为行,元组为行 (Row)(Row),属性为列属性为列(Column)(Column)。 !关系中属性的个数为关系中属性的个数为元数元数( (ArityArity) ),元组的个数为元组的个数为 基数基数(Cardinality)(Cardinality)。 数据库原理 候选码候选码/ /键(键(Candidate KeyCandidate Key) !若关系中的某一属性组的值能唯一地标识一个元若关系中的某一属性组的值能唯一地标识一个元 组,称该属性组为候选码。组,称该属性组为候选码。 主码主码/ /主键(主键(Primary KeyPrimary Key) !若一个关系有多个候选码,用户可以选定其中一若一个关系有多个候选码,用户可以选定其中一 个做为主码。个做为主码。 数据库原理 主属性(主属性(Prime AttributePrime Attribute) !候选码的诸属性称为主属性。候选码的诸属性称为主属性。 非码非码/ /主属性(主属性(Non-key attributeNon-key attribute) !不包含任何候选码中的属性称为非主属性。不包含任何候选码中的属性称为非主属性。 全码全码(All-KeyAll-Key) !关系模式的所有属性是这个关系模式的候选码关系模式的所有属性是这个关系模式的候选码 。 数据库原理 关系的三种类型: 基本关系的性质: 1、列同质; 2、不同列可出自同一个域; 3、列无 序; 4、元组相异; 5、行无序;6、分量不可再分;7、元组有限。 基本表基本表: : 实际存在的表,是实际存储数据的逻辑表 示; 查询表:查询表:查询结果所对应的表; 视图表视图表: : 是由基本表或其它视图表导出的表,是虚表 ,不对应实际存储的数据。 数据库原理 关系模式是对关系的描述。关系实际上是关系关系模式是对关系的描述。关系实际上是关系 模式在某一时刻的状态或内容。也就是说,关系模模式在某一时刻的状态或内容。也就是说,关系模 式是型,关系是它的值。关系模式是静态的、稳定式是型,关系是它的值。关系模式是静态的、稳定 的。关系是动态的、随时间变化的。的。关系是动态的、随时间变化的。 2.2.2关系模式 形式化表示为五元组:R( U, D, DOM ,F ) R是关系名,U是属性全集(属性名集合),D是属性 来自的域,DOM是U向D的映像集合,F是数据依赖集 合。 数据库原理 关系模型中,实体及实体间的联系都是用关系来表 示的。从而,对一个实际应用领域,所有表示有关实 体和实体间联系的关系的集合构成了一个关系数据库 。 关系数据库的型称为关系数据库模式,是对关系数 据库的描述,包括若干域的定义以及这些域上定义的 若干关系模式。 关系数据库的值是关系模式在某一时刻对应的关系 的集合,通常称为关系数据库。 2.2.3关系数据库 数据库原理 在关系型数据库中,完整性约束用于确保数据的在关系型数据库中,完整性约束用于确保数据的 准确性和一致性准确性和一致性 2.3 关系完整性 关系完整性规则是对关系的某种约束条件。 完整性有三类:实体、参照、自定义。 实体、参照完整性被称为关系的两个不变性,由关 系系统自动支持。 一、实体完整性: 规则:主属性不能取空值。 在主码由多个属性组成的情况下,要求每个属性都不 能为空,而不是主码整体不为空。 数据库原理 学号课程号成绩 S01C0180 S02C0290 100 S0299 学号年龄籍贯 S0121辽宁 S0222安徽 S0324福建 S0321山西 主属性全部为 空 主属性不全为 空 主属性值重复 数据库原理 二、参照完整性: 也被称为引用完整性,原则是不引用不存在的实体; 一个关系某些属性取值需参照其它关系的属性取值; 同一个关系也可能遇到这种情况。 定义: 设设F F是基本关系是基本关系R R的一个或一组属性,但不是关系的一个或一组属性,但不是关系R R的码的码 ,如果,如果F F与关系与关系S S的主码的主码K K S S 相对应,则称相对应,则称F F是基本关系是基本关系R R的的 外码外码,并称关系,并称关系R R为为参照关系参照关系,关系,关系S S为为被参照关系被参照关系。 关系关系R R和和S S不一定是不同的关系。不一定是不同的关系。 数据库原理 学号姓名性别专业号年龄 S01A男ZY00122 S02B男ZY00323 S03C女ZY00121 S04D男ZY00224 专业号专业 ZY001机械制造 ZY002微电子 ZY003土木工程 被被参照关系参照关系 参照关系参照关系 数据库原理 学号姓名性别专业号年龄 S01王逸男ZY00122 S02刘三男ZY00323 被被参照关系参照关系 参照关系参照关系 学号课程号成绩 S01C0180 S02C0278 课程号 课程名学分 C01语文4 C02数学4 被被参照关系参照关系 数据库原理 学号姓名性别班长年龄 S01A男S0122 S02B男S0123 S03C女S0121 S04D男S0124 被被参照关系参照关系 参照关系参照关系 学号姓名性别班长年龄 S01A男S0122 S02B男S0123 S03C女S0121 S04D男S0124 数据库原理 参照完整性规则 :若属性(或属性组)F是基本关系R 的外码,它与基本关系S的主码Ks相对应(基本关系R 和S不一定是不同的关系),则对于R中每个元组在F上 的值必须为: 或者取空值(F的每个属性值均为空值); 或者等于S中某个元组的主码值。 只有满足该规则,引用才会和客观实际符合。 数据库原理 BB 参照完整性规则的三点变通参照完整性规则的三点变通 1. 1. 外键和相应的主键可以不同名,只要定义在外键和相应的主键可以不同名,只要定义在 相同值域上即可。相同值域上即可。 2. 2. 基本关系基本关系S S和和R R可以是同一个关系模式,此时可以是同一个关系模式,此时 表示了同一个关系中不同元组之间的联系。表示了同一个关系中不同元组之间的联系。 3. 3. 外外键是否允许为空,应该视具体问题而定。键是否允许为空,应该视具体问题而定。 三、用户定义的完整性 用户定义的完整性就是针对某一具体关系数据库的约 束条件,它反映某一具体应用所涉及的数据必须满足 的语义要求。 数据库原理 2.4关系代数 关系代数是以关系为运算对象的一组高级运关系代数是以关系为运算对象的一组高级运 算的集合。算的集合。 关系代数是一种抽象的查询语言。关系代数是一种抽象的查询语言。 关系代数运算的分类关系代数运算的分类 传统的集合运算:并、差、交、广义笛卡尔积 专门的关系运算:投影、选择、连接、除法 数据库原理 关系代数的运算符关系代数的运算符 !关系代数的运算对象是关系,运算关系代数的运算对象是关系,运算 结果也是关系;结果也是关系; !关系代数的运算符包括关系代数的运算符包括 1. 1. 集合运算符集合运算符 2. 2. 专门的关系运算符专门的关系运算符 3. 3. 算术比较运算符算术比较运算符 4. 4. 逻辑运算符逻辑运算符 数据库原理 运 算 符 含 义 运 算 符 含 义 交 大于 集合 并 比较 小于 运算 - 差 运算 大于等于 符 广义笛卡 符 小于等于 尔积 不等于 专门 选择 的关 投影 逻辑 与 系运 连接 运算 或 算符 除 符 非 数据库原理 一、传统的集合运算(二目运算) 包括并、交、差、广义笛卡尔积四种运算 设关系R和S同为n元关系,且相应的属性取自同 一个域,则可定义: 1 . 并(Union) R S=ttRtS 结果为n目关系,由属于R或属于S的元组组成。 2.差(Difference) R-S=ttRtS 结果为n目关系,由属于R而不属于S的所有元组组 成。 数据库原理 3.交(Intersection) RS= ttRtS 结果为n目关系,由既属于R又属于S的元组组成。 可用差表示: RS=R-(R-S) 4.广义笛卡尔积(Extended Cartesian Product) 两个分别为n目和m目的关系R和S的广义笛卡尔积是一 个(m+n)列的元组的集合。元组的前n列是关系R的 一个元组,后m列是关系S的一个元组。若R有a个元组 ,S有b个元组,则关系R和关系S的广义笛卡尔积有 ab个元组。记为R S。 R S=trts trRtsS 数据库原理 数据库原理 二、专门的关系运算 包括选择运算、投影运算、连接运算、除运算等。 先引入几个记号: (1) R,tR,tAi 设关系模式为R(A1,A2,An) 它的一个关系设为R tR表示t是R的一个元组 tAi则表示元组t中相应于属性Ai的一个分量 数据库原理 (2) A,tA, A 若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik 是A1,A2,An中的一部分,则A称为属性列 或属性组。 tA=(tAi1,tAi2,tAik)表示元组t在属性 列A上诸分量的集合。 A则表示A1,A2,An中去掉Ai1,Ai2, Aik后剩余的属性组。 数据库原理 (3) tr ts R为n目关系,S为m目关系。 tr R,tsS, tr ts称为元组的连接。 tr ts是一个n + m列的元组,前n个分量为R中 的一个n元组,后m个分量为S中的一个m元 组。 数据库原理 (4)象集Zx 给定一个关系R(X,Z),X和Z为属性组。 当tX=x时,x在R中的象集(Images Set)为: Zx=tZ|t R,tX=x 它表示R中属性组X上值为x的诸元组在Z上分量 的集合 数据库原理 象集举例 x1在R中的象集 Zx1 =Z1,Z2,Z3, x2在R中的象集 Zx2 =Z2,Z3, x3在R中的象集 Zx3=Z1,Z3 数据库原理 (a) Student 学生-课程数据库: 学生关系Student、课程关系Course和选修关系SC 学号 Sno 姓名 Sname 性别别 Ssex 年龄龄 Sage 所在系 Sdept 200215121李勇男20CS 200215122刘晨女19IS 200215123王敏女18MA 200215125张张立男19IS 数据库原理 课课程号 Cno 课课程名 Cname 先行课课 Cpno 学分 Ccredit 1数据库库54 2数学2 3信息系统统14 4操作系统统63 5数据结结构74 6数据处处理2 7PASCAL语语 言 64 Course (b) 数据库原理 (c) 学号 Sno 课课程号 Cno 成绩绩 Grade 200215121192 200215121285 200215121388 200215122290 200215122380 SC 数据库原理 1. 选择(Selection) 1) 选择又称为限制(Restriction) 2) 选择运算符的含义 在关系R中选择满足给定条件的诸元组 F(R) = t|tRF(t)= 真 F:选择条件,是一个逻辑表达式,基本形式 为: X1Y1 数据库原理 3)选择运算是从关系R中选取使逻辑表达式F为真的 元组,是从行的角度进行的运算 数据库原理 例1 查询信息系(IS系)全体学生 Sdept = IS (Student) 或 5 =IS (Student) SnoSnameSsexSageSdept 200215122刘晨女19IS 200215125张立男19IS 结果: 数据库原理 例2 查询年龄小于20岁的学生 Sage 20(Student) 或 4 20(Student) 结果: SnoSnameSsexSageSdept 20021512 2 刘晨女19IS 20021512 3 王敏女18MA 20021512 5 张立男19IS 数据库原理 2. 投影(Projection) 1)投影运算符的含义 从R中选择出若干属性列组成新的关系 A(R) = tA | t R A:R中的属性列 2)投影操作主要是从列的角度进行运算 但投影之后不仅取消了原关系中的某些列,而 且还可能取消某些元组(避免重复行) 数据库原理 例3 查询学生的姓名和所在系 即求Student关系上学生姓名和所在系两个属性上 的投影:Sname,Sdept(Student) 或 2,5(Student) SnameSdept 李勇CS 刘晨IS 王敏MA 张立IS 结果: 数据库原理 例4 查询学生关系Student中都有哪些系 Sdept(Student) Sdept CS IS MA 结果: 数据库原理 3. 连接(Join) 1)连接也称为连接 2)连接运算的含义 从两个关系的笛卡尔积中选取属性间满足一定条件 的元组 R S = | tr Rts StrAtsB A和B:分别为R和S上度数相等且可比的属性组 :比较运算符 连接运算从R和S的广义笛卡尔积RS中选取(R关 系)在A属性组上的值与(S关系)在B属性组上 值满足比较关系的元组 AB tr ts 数据库原理 3)两类常用连接运算 等值连接(equijoin) 什么是等值连接 为“”的连接运算称为等值连接 等值连接的含义 从关系R与S的广义笛卡尔积中选取A、B属 性值相等的那些元组,即等值连接为: R S = | tr Rts StrA = tsB A=B tr ts 数据库原理 自然连接(Natural join) 自然连接是一种特殊的等值连接 两个关系中进行比较的分量必须是相同的 属性组 在结果中把重复的属性列去掉 自然连接的含义 R和S具有相同的属性组B R S = | tr Rts StrB = tsB tr ts 数据库原理 4)一般的连接操作是从行的角度进行运算 自然连接还需要取消重复列,所以是同时从行和 列的角度进行运算。 AB R S 数据库原理 例5 关系R和关系S 如下所示: 数据库原理 CE 一般连接 R S的结果如下: 数据库原理 R.B=S.B 等值连接 R S 的结果如下: 数据库原理 自然连接 R S的结果如下: 数据库原理 外连接 如果把舍弃的元组也保存在结果关系中,而在其 他属性上填空值(Null),这种连接就叫做外连接( OUTER JOIN)。 左外连接 如果只把左边关系R中要舍弃的元组保留就叫做 左外连接(LEFT OUTER JOIN或LEFT JOIN) 右外连接 如果只把右边关系S中要舍弃的元组保留就叫做 右外连接(RIGHT OUTER JOIN或RIGHT JOIN)。 数据库原理 下图是例5中关系R和关系S的外连接 数据库原理 图(b)是例5中关系R和关系S的左外连接,图(c)是右外连接 数据库原理 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 | tr RY (S) Yx Yx:x在R中的象集,x = trX 数据库原理 除操作是同时从行和列角度进行运算 R S 数据库原理 例6 设关系R、S分别为下图的(a)和(b),RS的结果 为图(c) 数据库原理 分析 在关系R中,A可以取四个值a1,a2,a3,a4 a1的象集为 (b1,c2),(b2,c3),(b2,c1) a2的象集为 (b3,c7),(b2,c3) a3的象集为 (b4,c6) a4的象集为 (b6,c6) S在(B,C)上的投影为 (b1,c2),(b2,c1),(b2,c3) 只有a1的象集包含了S在(B,C)属性组上的投影 所以 RS =a1 数据库原理 除运算步骤:设R(X,Y),S(Y,Z),其中X,Y,Z都是属 性列。结果为M(X)。 1)分组:

温馨提示

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

评论

0/150

提交评论