第2章关系数据库的基本理论(精品).ppt
《第2章关系数据库的基本理论(精品).ppt》由会员分享,可在线阅读,更多相关《第2章关系数据库的基本理论(精品).ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章第二章 关系数据库的基本理论关系数据库的基本理论2.1 关系模型概述2.2 关系数据结构2.3 关系的完整性2.4 关系代数2.5 关系的规范化2.1关系模型概述 关系模型是关系数据库的基础。关系模型有三个组成部分:数据结构、数据操作、完整性规则。(1)数据库中全部数据及其相互联系都被组织成关系(即二维表格)的形式。关系模型的基本的数据结构是关系。(2)关系模型提供一组完备的高级关系运算,以支持对数据库存量的各种操作。(3)关系模型的三类完整性规则。2.1.1 关系数据结构 关系模型的结构非常简单,在用户看来,一个关系模型的逻辑结构是一张二维表,它由行和列组成。表2.1是一张职工工资基本
2、信息表,它是一张二维表格。表2.1职工基本信息2.1.2 关系操作 关系模型中常用的关系操作有两类,一类是查询操作,包括选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)等;另一类是更新操作,是对数据库中的数据作增添新记录,删除和作废错误记录,修改变化了的记录等数据维护操作,简称为增、删、改操作。表达(或描述)关系操作的关系数据语言可以分为三类:(1)关系代数语言(简称关系代数)关系代数是用对关系的运算来表达查询要求的方式,如ISBL(Information System Base L
3、anguage)语言。(2)关系演算语言(简称关系演算)关系演算是用谓词来表达查询要求的方式。关系演算又可按谓词变元的基本对象是元组变量还是域变量分为元组关系演算和域关系演算。元组演算语言的典型代表是QUEL语言,域关系演算语言的典型代表是QBE(Query By Example)语言。关系代数、元组关系演算和域关系演算三种语言在表达能力上是完全等价的。(3)具有关系代数和关系演算双重特点的语言,如SQL(Standard Query Language)关系数据库系统实际提供给用户的关系数据语言是更加高级、更加方便的实际语言,除了提供上述语言的功能外,还提供了许多附加功能,如SQL不仅具有丰富
4、的查询功能,而且具有数据定义和数据控制功能,是集查询、数据定义(DDL)、数据操纵(DML)和数据控制(DCL)于一体的关系数据语言。2.1.3 完整性约束 关系模型可定义三类完整性规则,分别是实体完整性、参照完整性和用户定义完整性。其中实体完整性和参照完整性是关系模型必须满足的规则,应该由系统自动支持,而用户定义的完整性由应用环境所决定。2.2关系数据结构 关系模型是建立在集合代数基础上的,所以这里将从集合的角度给出关系数据结构的形式化定义。2.2.1 数学定义1域 域(Domain)是一组具有相同数据类型的值的集合。例如男,女、A,B,C、2,4,6,8,10等都可以是域。域要命名,例如:
5、性别男,女,姓名张力,阿法,胡爱军,2,4,6,8,10其中性别、姓名、称为域名。域中数据个数叫做域的基数,故性别的基数为,姓名的基数为3,的基数为。2笛卡尔积 给定一组域 ,则 的笛卡尔积定义为 其中 每个叫做一个 元组,元组中的每个 叫做一个分量,必是 域中的一个值。显然,若 为有限集,则笛卡尔积的基数等于 构成该积所有域的基数的连乘积,即 其中表示笛卡尔积基数,表示第个域基数,表示域的个数。3关系 当且仅当是 的一个子集,则称 是 上的一个关系,记为 。其中 是关系名,为 关系的度。当 时,关系仅含一个域,称单元关系;当 时,称二元关系,如此类推。在关系对应的二维表中,行对应元组,列对应
6、域。而实 际中更多地把列称为属性,将元组称为记录。2.2.2 关系的性质 关系与二维表及传统的数据文件有类似之处,但也有区别。关系是一种规范化的二维表,作为关系的二维表必须满足下列性质:(1)同一属性(列)中的分量是相同类型的数据,即取自同一个域;(2)属性(列)的顺序可以是任意的;(3)元组(行)的顺序可以是任意的;(4)任意两个元组(即两行)不能完全相同;(5)属性必须有不同的名称,但不同的属性可以取自相同的域;(6)所有属性必须都是不可分解的,即表中不允许有子表。2.2.3 单一的数据结构关系关系模式 关系模式是对关系的描述,是一个关系的具体结构,即关系模式是型。它通常被形式化定义为R(
7、U,D,DOM,F,I)。其中是关系名,为该关系中的所有属性集合;为该关系的所有定义域的集合;DOM是属性向域映射的集合,它给出属性和域之间的对应关系;是该关系中各属性之间的数据依赖的集合;为该关系中所定义的完整性规则的集合。在数据库系统中定义一个关系模式时,主要是给出关系名和所有属性名,其他都是辅助特性。例如属性的域被作为属性的类型和长度来定义,其中自然包含了属性向域的映射,属性之间的数据依赖的分析主要是找出关系的主键属性,关系的完整性规则的建立是为了保证数据库数据的正确性和一致性。因此,一个关系模式可以简化表示了 ,其中为关系名,为各属性名。键 关系中的一个属性或属性的集合能唯一地标识了一
8、个元组,则称该属性或属性的组合称为候选键。若一个关系有多个候选键,则选定其中一个为主键,这个属性称为主属性。如果关系 中某属性或属性组并非该关系的主键,但 是 其 他 关 系 模 式 的 主 键,则 该 属 性 或 属 性 组 称 为 关 系 的 外键。关系数据库关系数据库系统有如下特点:(1)数据库中的全部数据及其相互联系都被组织成关系,即二维表的形式。关系模型中单一的数据结构类型关系,具有简明性和精确性的特点。(2)关系数据库系统提供一种完备的高级关系运算,支持对数据库的各种操作。关系模型的逻辑结构和相应的操作完全独立于数据存储方式,具有高度的数据独立性,应用程序完全不必关心物理存储细节。
9、(3)关系模型有严格的数学理论,使数据库的研究建立在比较坚实的数学基础上。关系设计规范化等理论为数据库技术的成熟奠定了基础。2.2.4 关系系统 关系数据库管理系统简称关系系统,是指支持关系模型的系统。关系系统的定义 当且仅当同时满足以下两个条件时,一个系统可以定义为关系系统:支持关系数据库(关系数据结构)支持选择、投影和(自然)连接运算,对这些运算不必要求定义任何物理存取路径。关系系统的分类 按照E.F.Codd的思想,可以把关系系统分为以下三类:最小关系系统 仅支持关系数据结构和三种关系搡作。许多微机关系数据库系统如FoxBASE、FoxPro等就属于这一类。关系完备的系统 这类系统支持关
10、系数据结构和所有的关系代数操作(功能上与关系代数等价)。20世纪90年代初的许多关系数据库管理系统属于这一类。全关系系统 这类系统不仅是关系上完备的而且支持数据结构中域的概念,支持实体完整性和参照完整性,也就是说,支持关系模型的所有特征。全关系系统的十二条基本准则 关系模型的奠基人E.F.Codd具体地给出了全关系型的关系系统应遵循的十二条基本准则。准则0 一个关系型的DBMS必须能完全通过它的关系能力来管理数据库。准则0是下面十二条准则的基础。准则0的一个推论是:任何声称是关系型的DBMS必须在关系这个级别上支持数据的插入、修改和删除(即一次多个记录的操作级别)。不管一个系统是否还具有非关系
11、的管理数据的能力,它必须满足准则0。任何不满足准则0的DBMS不配称为关系型DBMS。准则0的另一个推论是:关系型DBMS必须遵循信息准则和保证访问(存取)准则。准则1 信息准则 关系型DBMS的所有信息都应在逻辑一级上用一种方法即表中的值显式地表示。此外,表名、列名和域名等都用系统内部表(即数据字典表)中的值表示。准则2 保证访问准则 依靠表名、主码和列名的组合,保证能以逻辑方式访问关系数据库中的每个数据项(分量值)。保证访问准则表明关系系统所采用的是关联寻址(Association Addressing)的访问模式,而不是那种面向机器的寻址方法。准则3 空值的系统化处理 全关系型的DBMS
12、应支持空值的概念,并用系统化的方式处理空值。准则4 基于关系模型的动态的联机数据字典 数据库的描述在逻辑级上应该和普通数据采用同样的表示方式,使得授权用户可以使用查询一般数据所用的关系语言来查询数据库的描述信息。这一准则有两个推论。推论一是每个用户只需学习一种数据模型。推论二是授权用户可以很容易地扩充数据字典,使之变成完备的主动的关系数据字典。准则5 统一的数据子语言准则 一个关系系统可以具有几种语言和多种终端使用方式,但必须有一种语言,它的语句可以表示为具有严格语法规定的字符串,并能全面地支持以下功能:数据定义,视图定义 数据操作(交互式或程序式)完整性约束 授权 事务处理功能(事务开始、提
13、交、滚回)准则 视图更新准则 所有理论上可更新的视图也应该允许由系统更新。一个“理论上可更新的视图”是指对此视图的更新要求,存在一个与时间无关的算法,该算法可以无二义性地把更新要求转换为对基本表的更新序列。准则7 高级的插入、修改和删除操作 关系系统的操作对象是单一的关系。以关系为操作对象不仅简化了用户查询,提高了用户生产率,而且也为系统提供了很大的余地来进行查询优化,提高了系统的运行效率。它允许系统来选择存取路径,以便得到最有效的运行代码。准则8 数据物理独立性 无论数据库的数据在存储表示或存取方法上作任何变化,应用程序和终端活动都保持逻辑上的不变性。准则9 数据逻辑独立性 当对基本关系进行
14、理论上信息不受损害的任何改变时,应用程序和终端活动都保持逻辑上的不变性。为了尽可能提高数据逻辑独立性,DBMS必须能对理论上可更新的视图执行插入、修改和删除操作,即必须满足准则6。准则l0 数据完整性的独立性 关系数据库的完整性约束条件必须是用数据库语言定义并存储在数据字典中的,而不是在应用程序中加以定义的。准则11 分布独立性 所谓分布独立性是指关系型DBMS具有这样的数据库语言,它使应用程序和终端活动无论在最初的数据还是以后的数据重新分布时都能在逻辑上保持不变。准则12 无破坏准则 如果一个关系系统具有一个低级(指一次一个记录)语言,则这个低级语言不能违背或绕过完整性准则。2.3关系的完整
15、性 关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。2.3.1 实体完整性 在一个关系中,每个元组表示现实世界中的一个可描述的对象(实体或活动),而每个对象可以包含多个属性,其中至少存在一种属性或属性组,称为主键,取值是确定的,而且是互不相同的,由此主键来唯一标识相应的对象,该主键绝对不能取空值。实体完整性(EntityIntegrity)规则:若属性A是关系R的主属性,则属性A不能取空值。实体完整性规则规定基本关系的所有主属性都不能取空值。例如学生选课关系“选修(学号,课程号,成绩)”中,(学号,课程号)为主键,则学号和课程号两属性都不能取空值。2.3.2 参照完整
16、性定义义设F是基本关系R的一个或一组属性,但不是关系R的键,如果F与基本关系S的主键Ks相对应,则称F是基本关系R的外键(Foreign key),并称基本关系R为参照关系(Referencing relation),基本关系S为被参照关系(Referenced relation)或目标关系(Target relation)。关系R和S不一定是不同的关系。参照完整性规则就是定义外键与主键之间的引用规则。参照完整性(ReferentialIntegrity)规则:若属性(或属性组)F是基本关系R的外键,它与基本关系S的主键Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的
17、值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主键值。2.3.3 用户定义的完整性 实体完整性和参照性适用于任何关系数据库系统,并自动支持。2.4关系代数 关系代数是E.F.Codd于1972年首先提出的。它是一种抽象的查询语言,用对关系的运算来表达查询。关系代数是一种代数的符号,其中的查询是通过向关系附加特定的操作符来表示的。作为研究关系数据语言的数学工具,关系代数的运算对象是关系,运算结果亦为关系。关系代数的运算主要分为传统的集合运算和专门的关系运算两类。传统的集合运算:并、差、交、笛卡尔积。扩充的关系操作:选择、投影、连接和除。241传统的集合运算 传统的集合运算
18、是二目运算,包括并、交、差、广义笛卡尔积四种运算。设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域。1并 关系R与关系S的并(Union)是属于R或属于S的所有元组组成。记作:其结果关系仍为n目关系。2差 关系R与关系S的差(Difference)由属于R而不属于S的所有元组组成。记作:其结果关系仍为n目关系。3交 关系R与关系S的交(Intersection)由既属于R又属于S的所有元组组成,记作:RS=t|tRtS 其结果关系仍为n目关系。4笛卡尔积 两个分别为n目和m目的关系R和S的广义笛卡尔积(Product)是一个(n+m)列的元组的集合。元组的前n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 关系数据库的基本理论精品 关系 数据库 基本理论 精品
限制150内