《关系数据库系统》PPT课件.ppt_第1页
《关系数据库系统》PPT课件.ppt_第2页
《关系数据库系统》PPT课件.ppt_第3页
《关系数据库系统》PPT课件.ppt_第4页
《关系数据库系统》PPT课件.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、,2.1 关系数据库系统概述 2.2 关系模型 2.3 关系代数,第2章关系数据库系统,关系数据库是运用数学方法来处理数据库中数据的。 关系数据库系统是基于关系模型的数据库系统,它由美国IBM公司的E.F.Codd提出。E.F.Codd从1970年起陆续发表多篇论文,奠定了关系数据库的理论基础。20世纪70年代末以来,计算机厂商推出的数据库管理系统产品,其中90%以上为关系数据库,并取代了网状、层次数据库系统而成为主流数据库系统。,2.1关系数据库系统概述(略),2.1.1关系数据库系统的优点 2.1.2关系数据库的发展动向,2.1.1关系数据库系统的优点,(1) 数据高度结构化关系数据库系统

2、中采用统一的结构类型,即二维表作为数据结构,数据高度结构化,而且不存在复杂的内部连接关系,具有高度的简洁性。 (2) 易于编制应用程序关系数据库系统的使用不涉及系统内部的物理结构,而且所用数据语言均为非过程语言,因此开发、使用方便。 (3) 数据独立性高关系数据库系统的组织、使用不涉及物理存储因素和过程性因素,因此数据的物理独立性和程序独立性都很高。 (4) 功能强大关系数据库系统能直接构造复杂的数据模型,特别是多联系间的模型。它可以一次获取多个记录,可以修改数据间的联系,同时也有一定程度修改数据模式的能力。此外,路径选择灵活,存储结构简单。 (5) 理论基础深关系数据库的理论主要有关系运算理

3、论和关系模式设计理论。由于有理论工具的支撑,使得对关系数据库系统的进一步研究与提高有了可靠保证。,2.1.2关系数据库的发展动向,关系数据库技术已成熟,其产品全方位向纵深发展,主要表现在如下几个方面: (1) 可移植性 目前,大量的产品能同时适应多个机种与多个操作系统。如Oracle能适应70多种操作系统。 (2) 标准化 目前以SQL为代表的结构化查询语言已陆续被美国标准化组织ANSI、国际标准化组织ISO以及我国标准化组织确定为数据库使用的标准化语言,从而完成了关系数据库使用的统一性。可以说这是关系数据库领域的一次革命。 (3) 开发工具 由于用户对数据库直接操作的需要,要求数据库系统不仅

4、有数据定义、操纵与控制等功能,还需要有大量的用户界面生成、开发工具等以利于用户的开发应用。因此,自20世纪80年代以来,大多数关系数据库都提供了这类工具。如Oracle Developer-2000、Visual Basic、PowerBuilder、Delphi等,它们大都属于第4代语言范围。,(4) 分布式功能 由于数据库在计算机网络上的大量应用以及数据共享的要求,目前多数关系数据库都提供分布式功能。 (5) 开放性 现代关系数据库系统大都具有通用的ODBC、JDBC接口以快速的专用接口,能与不同的数据库、不同的应用接口相连,并能不断扩充。,(6)其他方面的扩展 由于计算机应用的发展,目前

5、关系数据库系统还出现了很多其他功能。 多媒体管理能力 在关系数据库中扩充多媒体的存储能力与表示手段,以利于它在多媒体中的应用。 知识管理能力 在数据库中增添知识表示与推理功能,以适应它在人工智能中的应用。 工程管理能力 在数据库中增添图形以及CAD/CAM功能,以适应它在工程领域中的应用。目前Oracle、Ingress都有此方面的功能。,2.2关系模型,关系模型由三部分组成 2.2.1关系数据结构 2.2.2关系操作 2.2.3关系完整性规则,2.2.1 关系数据结构,1. 关系 在用户观点下,关系模型中数据的逻辑结构是一张二维表,称为“关系”。无论是实体集还是实体之间的联系均由单一的“关系

6、”结构类型表示。 关系模型中的主要术语(与计算机中术语对照):,关系一般满足下面7个性质: (1)元组个数有限性:关系中元组个数是有限的; (2)元组的唯一性:关系中各元组均不相同; (3)元组的次序无关性:关系中元组的次序可以任意交换; (4)属性名唯一性:关系中属性名各不相同; (5)属性的次序无关性:关系中各属性次序无关,可任意交换; (6)分量值域的同一性:关系属性列中分量具有与该属性相同的值域(例,学生情况表中年龄域为14-50,成绩域为0-100);,(7)元组分量的原子性:关系中元组的分量是不可分割的基本数据项,即,不允许“表中有表”。 例,职工工资表具体如下: 若以“职工工资表

7、(职工号,姓名,职称,工资,扣除,实发)”作为该二维表的关系模式,则出现了还可细分的数据项“工资-基本、工龄、职务”、“扣除-房租、水电”,不满足该性质,不是规范的“关系”。,2. 码(key) 码是关系模型中的一个重要概念,它具有标识元组、建立元组间联系等重要作用。在关系中凡能最小唯一标识元组的属性集称为该表的码或关键字。 (1)候选码(candidate key):关系中的某一属性集,它的值能唯一地标识一个元组。 (2)主码(primary key):若一个关系有多个候选码,则选定其中一个为主码或主关键字,简称“码”。 (4)外码(foreign key):如果关系A中的某属性集是关系B的

8、主码,则称该属性集为A的“外码”或外关键字。 有如下两个关系Zgqkb(职工情况表)和Qybmb(企业部门表): Zgqkb(职工号Zgh,姓名Xm,性别Xb,年龄Nl,部门编号Bmbh,) Qybmb(部门编号Bmbh,部门名称Bmmc,部门主管Bmzg,) 其中部门编号Bmbh是关系Qybmb的主码,是关系Zgqkb的外码。,3. 关系的分类 按照不同的标准,关系有不同的分类。 (1)按属性分:具有n个属性的关系称为n元关系。n=0时称空关系。 (2)按元组数目分:如果一个关系的元组数目是无限的,则称为无限关系,否则称为有限关系。由于计算机存储系统的限制,通常我们只研究有限关系。,(3)按

9、关系的存储状况分: 基本表:实际存在的表(实表),是实际存储的数据的逻辑表示。 查询表:是查询结果表或查询中生成的临时表。 视图表:是由基本表或其他视图表导出的表,是为了数据查询方便、数据处理简便以及数据安全要求而设计的数据虚表,不对应实际存储的数据。,2.2.2 关系操作,1.关系数据库所使用的关系语言的特点是:高度非过程化;即用户只需说明“做什么”,而不必说明“怎么做”,由DBMS完成。 2.早期的关系操作能力是用两种方法表示的:代数方式和逻辑方式,即“关系代数”和“关系演算”,理论上这两种方式功能是完全等价的(下节介绍)。 3.关系操作方式的特点是“集合操作”,即操作对象和结果都是集合。

10、这种操作方式也称为一次一集合(set-at-a-time)的方式。而非关系型的数据操作方式是一次一记录(record-at-a-time)。 关系模型常用的操作有查询、删除、插入、修改等操作。,是对主码、主码与外码的关系以及用户对数据的约束要求。关系数据库的数据与更新操作必须遵循下列三类完整性规则。 1. 实体完整性规则(entity integrity rule) 若属性A是基本关系R的主属性,则属性A不能取空值。 该规则规定基本关系的所有主属性不能取空值。 例1,在关系单位编码表Dwbmb(单位编码Dwbm, 单位名称Dwmc)中,单位编码为主码,则单位编码不能取空值。 例2,在学生信息表

11、Xsxxb(学号No, 姓名Name, 性别Sex,)中,学号为主码,则学号不能取空值。 一个基本关系通常对应现实世界的一个实体集,而各实体依其“标识属性”-主码来唯一标识,其主码取空值则说明存在不可识别的实体。,2.2.3 关系完整性规则,2. 参照完整性规则(reference integrity rule) 若属性(或属性组)F是基本关系R相对另一基本关系S的外码,则对于R中每个元组在F上的取值只允许两种可能,或者为空值(F的每个属性值均为空值),或者等于S中某个元组主码Ks的值(即,F与Ks应该取自同一个域,且必须是Ks已取的值)。 例3,Zgqkb(职工情况表)和Qybmb(企业部门

12、表): Zgqkb(职工号Zgh,姓名Xm,性别Xb,年龄Nl,部门编号Bmbh,) Qybmb(部门编号Bmbh,部门名称Bmmc,部门主管Bmzg,) 这两个关系之间存在着属性的引用,职工情况表引用了企业部门表的主码“Bmbh”。显然,职工情况表中的“Bmbh”或者取空值,或者是企业部门表中已存在的部门编号。,参照完整性规则是定义外码与主码之间的引用规则。这条规则的实质是“不允许引用不存在的实体”。 在上例中,关系模式Qybmb的关系称为“参照关系”,关系模式Zgqkb的关系称为“依赖关系”。在PowerBuilder系统中称为“主表”和“副表”,在Visual FoxPro系统中称为“父

13、表”和“子表”。,3. 用户定义的完整性规则(user-defined integrity rule) 实体完整性规则和参照完整性规则适用于任何关系数据库系统。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性规则就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。比如,学生学籍管理DB中,可要求:学生年龄限制在1450之间: CHECK(Age between 14 AND 50),2.3 关系代数,2.3.1传统的集合运算 2.3.2专门的关系运算,关系代数是一种抽象的查询语言,是通过对“关系”的运算来“表

14、达查询”的方式。 它的操作对象、运算结果均为“关系”。与具体的DBMS中实现的实际语言并不完全一样。 关系代数用到的运算符包括四类:传统集合运算符、专门的关系运算符、算术比较运算符、逻辑运算符,如表2.2所示,见下页。,关系代数的运算可以分为两类: (1)传统的集合运算:并、差、交、广义笛卡尔积。其运算是从关系的“水平”方向即行的角度来进行。 (2)专门的关系运算:投影(对关系进行垂直分割)、选择(水平分割)、连接(关系的结合)、除(笛卡尔积的逆运算)。专门的关系运算不仅涉及行而且涉及列。算术比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的。,2.3.1 传统的集合运算,设关系R和关

15、系S具有相同的关系模式,均由相同数目的属性组成)(属性数目称为“目数”或“度数”,设为m),相应的属性取自同一个域。 1. 并(union) 结果仍为m目,由属于R或属于S的元组构成,记为RS。 RS = t|tRtS 2. 差(difference) 结果仍为m目,由属于R但不属于S的元组构成,记为RS。 RS = t|tRtS ,3. 交(intersection) 结果仍为m目,由既属于R又属于S的元组构成,记为RS。 RS = t|tRtS 关系的交可以用差来表示,即RS =R(RS) 。,例1,关系R: 关系S: RS: R-S : RS :,4. 广义笛卡尔积(extended c

16、artesian product) 设关系R和S分别为m目(属性数)和n目,R和S的广义笛卡尔积是一个(m+n)列的元组的集合。元组的前m列是关系R的一个元组,后n列是关系S的一个元组。记为RS。形式定义如下: RS = trts| trRtsS 若R有k1个元组,S有k2个元组,则RS有k1k2个元组。,例2,R:,S:,R S:,2.3.2 专门的关系运算,专门的关系运算包括选择、投影、连接、除等。 1. 选择(selection) 选择又称为限制(restriction),它是在关系R中选取符合条件F的元组。是从行的角度进行的运算。记为:F(R) = t|tRF(t)=True 其中F表

17、示选择条件, 它是一个逻辑表达式,取逻辑值“True”或“False”。,逻辑表达式F有两种成分: (1)运算对象:有常量(用引号括起来)和属性名(或列的序号)两种表示方式。 (2)运算符:有比较运算符(也称为符)和逻辑运算符两种形式。 逻辑表达式F就是由逻辑运算符连接各算术表达式组成。而算术表达式的基本形式为: X1X2 ,其中为比较运算符,X1、X2为运算对象。,例3,设有一“学生学籍管理RDB”,包含:学生信息表(S)、课程信息表(C)、学生选课表(CS)三个关系。 S:,C:,CS:,求: (1)计算机科学系(CS)的学生信息。 SD=CS(S) 或 3=CS(S) (2)年龄大于或等

18、于20的学生信息。 SA20(S) 或 420(S),2. 投影(projection) 是从R中选择出若干属性列组成新的关系。也就是对一个关系R进行垂直分割,消去某些列,并重新安排列的顺序,是从列的角度进行的运算。 记为:A(R) = tA|tR 其中A是R中的属性列。 投影后不仅消去了原关系中的某些列,而且还可能消去某些元组。因为消去了某些属性列后,就可能出现重复行,应消去这些完全相同的行。,在上例基础上求: (1)所有学生的姓名及所属系; SN,SD(S) 或 2,3(S),3. 连接 (join) (1)也称为连接。它是从两个关系的广义笛卡尔积中选取属性间满足给定条件的元组。记为: R

19、 S = trts|trRtsStrAtsB 其中A和B分别为关系R和S上度数相等且可比的属性组。是比较运算符。连接运算是从R和S的广义笛卡尔积RS中选取R关系在A属性组上的值与S关系在B属性组上的值满足比较关系的元组。,A B,例4,R:,S:,R S :,C E,具体步骤:先求RS;再从中按条件选取部分元组。,例5,R:,S:,(2)等值连接:当为“=”时的连接。,具体步骤同上例。,(3)自然连接(natural join):是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中须消去重复的属性列,它是从行和列的角度进行运算。即R和S若具有相同的属性组,则自然

20、连接可记为: R S = trts|trRtsStrBtsB 自然连接的具体计算过程如下: 计算RS。 选取满足自然连接条件的元组。 去掉重复的属性列。,补充:关系代数中,关系运算经有限次集合而成的式子称为“关系代数表达式”。 例6, S、C、SC表结构及内容同本节例3(课件P31-33)。 求:(1)选修了“C2”课程的学生学号。 S#(C#=C2(SC) (2)至少选修了这样一门课程-直接先修课程为C2的学生姓名。 SN(PC#=C2(C) S#,C#(SC) S#,SN(S),4. 除(division) 给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:

温馨提示

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

评论

0/150

提交评论