关系数据库的基本理论.

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关系数据库模式是对关系数据库结构的描述,或者说是对关系数据 库框架的描述,也就是前面所讲过的关系的头,可以看作是关系的型。 与关系数据库模式对应的数据库中的当前值就是关系数据库的内容,成 为关系数据库的实例,即前面所讲过的关系体,可以看作是关系的值。 例如,在教学数据库中,共有五个关系,其关系模式分别为:
学生关系R1的主键为学号,系部关系R2的主键为系编号,在R1中系 编号是它的外键,即系编号是R2的主键,将它作为外键放在R1中,实 现两关系的联系。
4)主属性和非主属性。包含在任何一个候选主键字中的属性称为主属性, 不包含在任何一个候选关键字中的属性称为非主属性。
上一页 本节首页本章首页
2.关系模式
学生(学号,姓名,性别,年龄,系别) 教师(教师号,姓名,性别,年龄,职称,工资,岗位津贴,系别) 课程(课程号,课程名,课时) 选课(学号,课程名,成绩) 授课(教师号,课程号) 在每个关系中,又有其相应的数据库的实例(元组)。
上一页 本节首页本章首页
2.5.2 关系的完整性
关系模型的完整性规则是对关系的某种约束条件。关系的完整性约 束条件包括三大类:实体完整性,参照完整性和用户定义的完整性。
在定义中,n=1的关系只含有一个属性,称为单元关系。n=2为二 元关系,以此类推。
在 SQL Server 数据库中,通常关系被称为数据表,属性被称为字 段,元组则被称为记录。
如下表给出了一张学生选课表,该表由学生姓名、性别和所选课程 组成,该关系的名字为学生选课表,属性名就是域名,即姓名,性别和
所选课程,这个关系可表示为
任何一种运算都是将一定的运算操作应用于一定的运算对象上, 得到预期的运算结果。所以运算对象、运算符、运算结果是运算的三 大要素。
关系代数的运算对象是关系,运算结果亦为关系。
关系代数的运算符包括四类:集合运算符、专门的关系运算符、 比较运算符和逻辑运算符(如下页(表一)所示)
关系代数的运算按运算符的不同可分为传统的集合运算和专门的 关系运算两类。其中传统的集合运算将关系看成元组的集合,其运算 是从关系的“水平”方向即行的角度来进行的。而专门的关系运算不 仅涉及行而且涉及列。比较运算符和逻辑运算符是用来辅助专门的关 系运算符进行操作的。
关系数据库采用数学的方法来处理数据库中的数据,是建立在严密的数学 基础之上的一种数据组织存储方式。关系数据库理论是IBM公司的E.F.Codd 提 出来的,他从1970年开始连续发表了多篇论文,奠定了关系数据库的理论基础。
从1975 年到1979 年的5月间,关系方法的理论和软件系统的研制取得了很 大成功,IBM 公司的 San Jose实验室在 IBM370系列机上研制成功了一个实现 SQL语言的关系数据库实验系统原型System R。1981年IBM公司又宣布具有 System R全部特征的新的数据库软件产品SQL/DS问世。之后,IBM公司又将 SQL语言引入到DB2(IBM Data Base 2)中,配置在MVS上运行,并于1983 年推出了DB2产品。
设关系名为REL,其属性为A1,A2…,An,则关系模式为: REL (A1,A2,…,An)
对每个Ai(i=1,…,n)还包括该属性到值域的映象,即属性的取值范围
(1)关系模型
所有的关系模式、属性名和关键字的汇集,是模式描述的对象
上一页 本节首页本章首页
(2)关系数据库模式
一组关系模式的集合叫作关系数据库模式。
2)主键。如果一个关系中有多个候选键,则可选定其中一个为关系的主键。
3)外键。如果一个关系R1中包含有另一个关系R2的主键所对应的属性组 F,则称F为R1的外键,并称关系R1为参照关系,关系R2为信赖关系。
例如,学生关系和系部关系分别为: R1:学生(学号,姓名,性别,年龄,系编号) R2:系部(系编号,系名,系主任)
计算机语言 数据结构 计算机网络 计算机语言 数据结构 计算机网络
其中(王芳,男,计算机语言),(王雷,男,数据结构 ), (李平,男,计算机网络)等都是元组。王芳、男、计算机
语言、王天雷、男、数据库系统与应用、郑蕾、男、计算机网络等都
是分量。该笛卡儿积的基数为3×2×3=18,这也就是说D1×D2×D3一 共有3×2×3=18个元组。
1.关系的数学定义
(1)域(Domain)
定ห้องสมุดไป่ตู้1: 域是一组具有相同数据类型的值的集合,又称为值域(用
D 表示)。例如整数、实数和字符串的集合都是域。域中所包含的
值的个数称为域的基数(用m 表示)。在关系中就是用域来表示属
性的取值范围的。
例:
D1 ={李力,王平,刘伟},m1=3 D2 ={男,女};m2 = 2 D3 ={18,20,18};m3 = 3
20世纪70年代末期,美国加州大学伯克利分校也研制了 Ingres关系数据库 实验系统,并由Ingres公司发展成为Ingres数据库产品。
本章首页
2.5.1 关系数据模型及其描述
在前面已经非形式化地介绍了关系模型及有关的基本概念。在关 系模型中,无论是实体还是实体之间的联系均由单一的结构类型即关 系来表示。关系模型是建立在集合代数基础上的,这里将从集合角度 给出关系数据结构的形式化定义。
1.实体完整性(Entity Integrity)
实体完整性是指主关系键的值不能为空或部分为空
在任何关系的任何一个元组中,主键的任一分量都不允许为空值, 即若属性 A是基本关系 R的主属性,则属性 A不能取空值,也即要求关 系中元组在组成主键的属性上不能有空值。
因为在一个关系中,主键是惟一标识一个元组的,因而它也是惟一标 识该元组所表示的某个实体的。
如果主键属性中某些分量为空值,将难以判断该元组与其他元组的区 别。这将带来复杂的语义问题,禁止主键属性值为空值即可避免这一问题。
例如,在学生关系 “ 学生自然情况(学号,班级号,姓名,性别, 出生年月,入学成绩)”中,“ 学号 ”为主键,那么“学号”这个属性 不能取空值。
本章首页
2.参照完整性(Referential Integrity)
级号的值,因为该学生不能属于一个不存在的班级
本节首页本章首页
3. 用户定义的完整性 (User-defined Integrity)
任何关系数据库系统都应该支持实体完整性和参照完整性。除此之 外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特 殊的约束条件,用户定义的完整性就是针对某一具体关系数据库的约束 条件由应用环境决定的。它反映一具体应用所涉及的数据必须满足的语 义要求。例如某个属性必须取惟一值,某些属性值之间应满足一定的函 数关系,学生的年龄定义为两位整数,且范围在15 ~ 30之间,性别只接 受“男”或“女”等等。系统提供定义和检验这类完整性的机制,以便用统 一的系统方法处理它们,而不再由应用程序承担这项工作。
本章首页
运算符分类 集合运算符 专门的关系运算符
比较运算符 逻辑运算符
运算符 ∪ -
∩ ×
σ π ∞ ÷ > ≥ < ≤ = ≠ ┑ ∧ ∨
(表一)
含义 并运算 差运算 交运算 笛卡儿积 选择运算 投影运算 连接运算 除法运算
大于 大于等于
小于 小于等于
等于 不等于 非运算
与运算
或运算
返回 本章首页
姓名
性别
所选课程
学生选课表 (姓名,性别,所选课程)
王芳

计算机语言
王天

数据库系统及应用
郑蕾

计算机网络
上一页 本节首页本章首页
在关系模型中,关键字(简称键)是一个重要概念,通常由一个或 多个属性组成。
1)候选键。如果一个属性集能惟一标识元组,且又不含有多余的属性, 那么这个属性集称为关系的候选键。
(3)关系(Relation)
定义3
D1×D2×…×Dn的子集叫做在域D1×D2×…×Dn上的关系, 用R(D1×D2×…×Dn)表示。这里R表示关系的名字,n 是 关系的目或度,也称为元数。
上一页 本节首页本章首页
关系中的每个元素是关系中的元组。
关系是笛卡尔积的子集,所以关系也是一个二维表,表的每行对 应一个元组,表的每列对应一个域,由于域可以相同,为了加以区分, 必须对每列起一个名字。关系中的每一列称为属性,列名称为属性名, n 目关系必有n 个属性。
n
m mi i 1
笛卡儿积可表示为一个二维表。表中的每行对应一个元组,表中的 每列对应一个域。如果我们给出三个域:
D1={王芳,王雷,李平}(学生集合) D2={男,女}(性别集合) D3={计算机语言,数据结构,计算机网络}(课程集合) 则D1×D2×D3=
本节首页本章首页
王芳 男 计算机语言 王雷 男 计算机语言 李平 男 王芳 男 数据结构 王雷 男 数据结构 李平 男 王芳 男 计算机网络 王雷 男 计算机网络 李平 男 王芳 女 计算机语言 王雷 女 计算机语言 李平 女 王芳 女 数据结构 王雷 女 数据结构 李平 女 王芳 女 计算机网络 王雷 女 计算机网络 李平 女
2.5.3.1 传统的集合运算
(1)并(Union)
定义 设关系R和关系S具有相同的关系模式(即两个关系都有相同的属性), 且相应的属性取自同一个域,则关系R和关系S的并是由属于关系R或 关系S的元组构成的集合,即R和S的所有元组合并,删去重复元组, 组成一 个新关系,其结果仍为n目关系。
记为R∪S={t|t∈R∨t∈S} 其中t是元组变量,关系R和关系S的元数相同。 对于关系数据库,记录的插入和添加可通过并运算实现。
例:有两个基本关系为 学生表(学号,班级号,姓名,性别,出生年月,入学成绩) 班级表(班级号,班级名称,所属系部,入学时间,系别)
学生表的主码为学号,而班级表的主码为班级号,因而班级号 是学生表的外键。 按照参照完整性,学生表中的外键即班级号的取值有两种可能:
① 取空值,表明该学生尚未分配到任何班级 ② 若取非空值,则它必须是参照关系班级表中某个元组中的班
在关系的完整性规则中,实体完整性和参照完整性是关系模型必须 满足的完整性的约束条件,被称做是关系的两个关系不变性,应由关系 系统自动支持;而用户完整性反映了用户的要求,是用户自行定义的。
上一页 本节首页本章首页
2.5.3 关系代数
关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传 统表达式,它是用对关系的运算来表达查询的。
2.5 关系数据库的基本理论
关系数据库是目前应用最广泛,也是最重要、最流行的数据库。 本节 将介绍关系数据库的一些基本理论,包括关系数据结构、关系 的完整性、关系代数、关系数据库管理系统及关系数据库标准语言。
回到目录
关系数据库概述
数据库模型依赖于数据的存储模式,即数据存储的模式不同,数据库的性 质亦不同。以关系模型作为数据的组织存储方式的数据库称为关系数据库。
关系模式是对关系的描述,通常它包括关系名、组成该关系的多 个属性名、域名、属性向域的映像(即属性与域之间的映像关系)等 4 个部分。通常记为R(D1,D2,…,Dn),R 为关系名,D1,D2, …Dn为属性名。属性向域的映像常用属性的类型、长度来说明。关系 实际上就是关系模式在某一时刻的状态或内容。也就是说关系模式是 型,关系模式就是二维表的表框架或结构,它相当于文件结构或者记 录结构。关系是它们的值。在实际中,常常把关系模式和关系统称为 关系,大家可以从上下文中加以区别。
现实世界中的实体之间往往存在某种联系,在关系模型中实体及实 体间的联系都是用关系来描述的。这样就自然存在着关系与关系间的引 用。我们先引进一个“外键”的概念。
若某个属性或属性不是关系 A 的主码,但它是另一关系B的主码, 则该属性或属性组称为关系A 的外键。在关系A 中,外键或取空值或者 等于关系 B中某个元组的主码值。
其中,D1 、 D2 、D3 为域名,分别表示教师关系中姓名、性别和 年龄的集合。域名无排列次序,如D2 ={男,女}={女,男}。
本章首页
(2)笛卡儿积(Cartesian Product)
定义2 给定一组域D1,D2,…Dn,这些域可以完全不同,也可以 部分或全部相同。D1,D2,…Dn,的笛卡儿积为 D1×D2×…×Dn= {(d1,d2,…dn,)叫做一个n元组,或简称为元组。元素中每一个 值di叫做一个分量。若Di为 有限集,其基数为mi(i=1,2,…,n), 则 D1×D2×…×Dn的基数为
相关文档
最新文档