数据库原理-2关系数据库

上传人:宝路 文档编号:48102558 上传时间:2018-07-09 格式:PPT 页数:99 大小:964.57KB
返回 下载 相关 举报
数据库原理-2关系数据库_第1页
第1页 / 共99页
数据库原理-2关系数据库_第2页
第2页 / 共99页
数据库原理-2关系数据库_第3页
第3页 / 共99页
数据库原理-2关系数据库_第4页
第4页 / 共99页
数据库原理-2关系数据库_第5页
第5页 / 共99页
点击查看更多>>
资源描述

《数据库原理-2关系数据库》由会员分享,可在线阅读,更多相关《数据库原理-2关系数据库(99页珍藏版)》请在金锄头文库上搜索。

1、数据库系统原理(第2章)第二章 关系数据库2-5章为本课程重点与难点 关系数据库的理论基础 1970, E.F.Codd “A Relational Model of Data for Shared Data Banks” 现代主流数据库几乎全部支持关系模型 Oracle(甲骨文),Sybase, IBM DB2, MS SQL Server, Ingres2.1 关系模型概述关系模型由关系数据库、关系操作集合和 关系完整性约束三部分组成。一.单一的数据结构关系 实体和实体之间的联系都用关系描述二. 关系操作 就关系模型而言,仅仅给出了关系操作的 能力,并不给定(限定)RDBMS语言的语 法要

2、求。 关系操作的特点:一次一集合的操作方式 Set-at-a-Time 操作的对象和结果都是关系。三种具有相同表达能力的抽象查询语言:关系代数 ISBL 元组关系演算语言 ALPHA,QUEL 域关系演算语言 QBESQL则是介于关系代数和关系演算之间的 标准查询语言。 由IBM提出,是应用得最广泛的关系数据 库标准语言。三. 关系的三类完整性约束条件 关系模型必须满足:实体完整性和参照完 整性约束。应用领域中的大量语义约束则由DBMS实现 的用户定义完整性保证。注意:这是由DBMS来保证的,而非应用程 序保证。2.2 关系数据结构及其形式化定义从集合论的角度给出关系数据结构的形式 化定义。(

3、需要离散数学集合论的概念) 2.2.1 关系 (Relation) 1.域 定义2.1: 域是具有相同数据类型的值的集 合。 如自然数,全班同学的名字等。2.2 笛卡儿集(卡氏集) 定义2.2 给定一组域D1,D2,Dn,这些域中 可以有相同的, D1,D2,Dn的笛卡儿 集为: D1D2Dn(d1,d2,dn)| diDi, i=1,2,n,其中每一个元素称为一个n 元组,元素中的每个值称为一个分量。例:D1=大,中,小,D2=红,绿例:D1=大,中,小,D2=红,绿D1D2=(大,红),(大,绿),(中,红) ,(中,绿),(小,红),(小,绿)共有326个2元组注意:集合论中笛卡儿集不满

4、足交换率, 即笛卡儿集的元组有序。基数的概念: 若Di(i=1,2,n)为有限集,其基数为|Di| ,则D1D2 Dn的基数为:|D1|D2| |Dn|3. 关系 定义2.3 D1D2 Dn的任意子集叫做 在域D1,D2, ,Dn上的关系,可记做: R(D1,D2, ,Dn),R为关系名,n是关系的 目或度(degree)。注意: 1. 这里的“子集”是“任意子集”,包括空集 。 2. 笛卡儿集不满足交换率,而关系通过给 关系的列附加属性名的方式取消元组的 有序性。 3. 按2.3的定义,关系可以是无限集。通常 我们在关系数据模型中限定关系为有限 关系。候选码若关系中的某一属性组的值 能唯一地

5、标识一个元组,则称该属性组 为该关系的一个候选码(Candidate Key) 。 一个关系可能有多个候选码,则选定其 中一个作为主码(Primary Key)。 包含在任何候选码中的属性称为主属性 ,不包含在任何候选码中的属性称为非 主属性。 全码(All-Key)关系模式的所有属 性组构成此关系模式的唯一候选码。基本关系六性质 1.列是同质的; 2.不同列可出自同一个域,每一列为一 个属性,不同属性(列)给不同属性名; 3.列的顺序可任意交换; 4.任意两个元组不能完全相同; 5.行的顺序可任意交换; 6.每一分量是不可分的数据项。 记忆方法:三列两行一分量。注意:在许多实际关系数据库产品

6、中,基 本表并不完全具有这六条性质,例如, 有的数据库产品(如FoxPro)仍然区分 了属性顺序和元组的顺序;许多关系数 据库产品中,例如Oracle,FoxPro等,它 们都允许关系表中存在两个完全相同的 元组。2.2.2 关系模式 关系模式是对关系的描述。(是对型的描述 ) 需描述元组集合的结构:由哪些属性构成 ,这些属性来自哪些域,以及属性与域 之间的映象关系。此外,关系模式应刻划出完整性约束条件 。定义2.4 关系的描述称为关系模式,可表 述为:R(U,D,dom,F) 其中R为关系名,U为组成该关系地属性名 集合,D为属性组U中属性所来自的域, dom为属性向域的映象集合,F为属性间

7、 数据的依赖关系集。关系模式通常可以简记为: R(U)或R(A1,A2, ,AN) 其中R为关系名,A1,A2, ,AN为属性名。 而域名及属性向域的映象常常直接说明 为属性的类型、长度。关系模式是静态度、稳定的,而关系是动 态的、随时间变化的,两者是型与值的 关系。2.2.3 关系数据库在给定应用领域中,用于描述所有实 体和实体间的联系的关系的集合构成一 个关系数据库。同样,关系数据库也有 型和值之分。型:关系数据库模式 是对关系数据库的描 述。 值:一般就称为关系数据库。2.3 关系的完整性关系模型的完整性规则是对关系的某种约 束条件。 关系模型的三类完整性: 1.实体完整性 2.参照完整

8、性 3.用户定义的完整性其中实体完整性和参照完整性是关系模型 必须满足的完整性约束条件,被称为是 关系的两个不变性,应该由关系系统自 动支持。 一、实体完整性 实体完整性规则(规则2.1):每一关系必有 一主码,构成主码的各属性值均不能取空 值。 实体完整性规则规定基本关系的所有主码 的各属性都不能取空值,而不仅是主码 整体不能取空值。例如学生选课关系“选修(学号,课程号, 成绩)”中,“学号、课程号”为主码,则“ 学号”和“课程号”都不能取空值,而不是 整体不为空。实体完整性可以引申一下,主码也不能取 重复值。有关实体完整性的说明: (1)实体完整性规则是针对基本关系而言的 。一个基本表通常

9、对应现实世界的一个 实体集。(名字怎么来的) (2) 现实世界中的实体是可区分的,即它们 具有某种唯一性标识。 (3) 相应地,关系模型中以主码作为唯一标 识。 (4) 主码中的属性即主属性不能取空值。所 谓空值就是“不知道”或“不确定”的值。二、参照完整性 现实世界中的实体之间往往存在某种联系 ,在关系模型中实体及实体间的联系都 是用关系来描述的。这样就自然存在着 关系与关系之间的引用。 引用的时候,必须取基本表中已经存在的 值。由此引出参照的引用规则。 参照完整性规则就是定义外码与主码之间 的引用规则。 定义2.5 设F是基本关系R的一个或一组属 性,但不是关系R的码,如果F与基本关 系S

10、的主码Ks相对应,则称F是基本关系R 的外码(Foreign key),并称基本关系R 为参照关系(Referencing relation), 基本关系S为被参照关系(Referenced relation)或目标关系(Target relation) 。关系R和S不一定是不同的关系。参照完整性规则(规则2.2):若属性(或属 性组)F是基本关系R的外码,它与基本 关系S的主码Ks相对应(基本关系R和S不 一定是不同的关系),则对于R中每个元 组在F上的值必须为: 或者取空值(F的每个属性值均为空值) ; 或者等于S中某个元组的主码值。 例如,学生选课系统,选课关系的学号按 实体完整性要求,

11、不能为空;按参照完整 性要求,只能选学生关系中的学号,表示 语义关系“只有注册的学生才能选课”。课 程号也类似(请同学们自己考虑)。三、用户定义的完整性(User-defined integrity) 实体完整性和参照性适用于任何关系数据 库系统。除此之外,不同的关系数据库 系统根据其应用环境的不同,往往还需 要一些特殊的约束条件。用户定义的完 整性就是针对某一具体关系数据库的约 束条件,它反映某一具体应用所涉及的 数据必须满足的语义要求。关系模型应 提供定义和检验这类完整性的机制,以 便用统一的系统的方法处理它们,而不 要由应用程序承担这一功能。2.4 关系代数本节要求n给定关系和关系代数表

12、达式,要会算。n给定关系模式和查询(语义)要求,要会写 关系代数表达式。w关系代数是一种抽象的查询语言,用对 关系的运算来表达查询,作为研究关系 数据语言的数学工具。 w关系代数的运算对象是关系,运算结果 亦为关系。关系代数用到的运算符包括 四类:集合运算符、专门的关系运算符 、算术比较符和逻辑运算符。比较运算符和逻辑运算符是用来辅助专 门的关系运算符进行操作的,所以关系 代数的运算按运算符的不同,主要分为 传统的集合运算和专门的关系运算两类 。2.4.1 传统的集合运算是四种二目运算: ,把关 系看作元组的集合,于是,这四种 运算与传统集合运算类似。其中, 三种运算要求参与运 算的两个关系R

13、,S具有相同的目n ,且相应属性取自同一个域。1.并 :RSt|tRtS 2.交 :RSt|tRtS 3.差 :RSt|tRtS 广义笛卡尔积(Extended cartesian product) 元组连接的记号: R为n目关系,S为m目关系。 tr ts 称为元 组的连接(Concatenation)。它是一个 (n+m)列的元组,前n个分量为R中的一 个n元组,后m个分量为S中的一个m元组 。两个分别为n目和m目的关系R和S的广义笛 卡尔积是一个(n+m)列的元组的集合。 元组的前n列是关系R的一个元组,后m 列是关系S的一个元组。记作:RStr ts|trRtsS 若R有k1个元组,S

14、有k2个元组,则关系R 和关系S的广义笛卡尔积有k1k2个元组 。2.4.2 专门的关系运算一般包括选择、投影、连接和除。1.选择选择又称为限制(Restriction)。它是在关 系R中选择满足给定条件的诸元组,记 作: F(R) = t|tR F(t)=真 其中F表示选择条件,它是一个逻辑表达式 ,取逻辑值真或假。 逻辑表达式F的基本形式为: X1 Y1 X2 Y2 表示比较运算符,它可以是、 、或。X1、Y1等是属性名或常量 或简单函数。属性名也可以用它的序号 来代替。表示逻辑运算符,它可以是 、或。 因此选择运算实际上是从关系R中选取使 逻辑表达式F为真的元组。这是从行的角 度进行的运

15、算。设有一个学生-课程关系数据库,包括学生 关系Student、课程关系Course和选修关 系SC。(下面的例子都针对这三个关系进 行运算。) 例1 查询信息系(IS系)全体学生 Sdept=IS(Student) 或 4=IS(Student) 例2 查询年龄小于20岁的元组 Sage=90)(注:结果表达式中出现的表不需要存 在量词)(8)用全称量词的检索 例:不选1号课程的学生的姓名,类似上例 : GET W (Student.Sname):SCX(Student.Sno =SCX.SnoSCS.Cno=1)(理解:要求的学生不存在1号课程 的选课记录)也可改为全称量词: RANGE SC SCX GET W (Student.Sname): SCX(Student.SnoSCX.Sno CS.Cno1)(理解:对于要求的学生,每一条选课记 录要么不是他选的,要么不是选的1号课 程)(9)用两种量词的检索 根据语义分清使用全称和存在量词的条件 。 例13 查询选修了全部课程的学生姓名 RANGE Course CX RANGE SC SCX GET W (Student.Sname): CX SCX (SCX.Sno=Student.Sno SCX.Cno=CX.Cno) (理解:要求的学生,对每一门课程都存在相应

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号