数据库系统概论—第五版 第二章 关系数据库

2.1关系数据结构及形式化定义

2.1.1关系

1.域(domain):是一组具有相同数据类型的值的集合。

2.笛卡尔积(Cartesian product) :D1D2……*Dn={(d1,d2,……,dn)|di在Di中,i=1,2,……,n}

基数: 一个域允许的不同取值个数称为这个域的基数。

3.关系
D1×D2×…×Dn的子集叫做所在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…Dn)
这里R表示关系的名字,n是关系的目或度。

关系中的每个元素是关系的元组,通常用t表示。

n=1时,该关系为单元关系,或一元关系。

n=2时,为二元关系。

候选码:某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码。

若一个关系有多个候选码,则选定其中一个为主码

候选码的诸属性称为主属性,不包括在任何候选码中的属性称为非主属性,或非码属性

在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属于是这个的候选码,称为全码

关系可以有三种类型:基本关系(又称基本表或基表)、查询表、视图表。

基本表是实际存在的表,查询表是查询结果对应的表,视图表是由基本表和其他视图表导出的表,是虚表。

基本关系具有以下6个性质:

1、列是同质的,即每一列中的分理是同一类型的数据,来自同一域。

2、不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。

3、列的顺序无所谓,即列顺序是无关紧要的

4、任意两个 元组的候选码不能取相同的值

5、行的顺序无所谓,即行的顺序可以任意交换。

6、分量必须取原子值,即每一个分量都必须是不可分的数据项

这些规范条件中最基本的一条就是,关系的每一个分量必须是一个不可分的数据项。

2.1.2关系模式

关系的描述称为关系模式。它可以形式化的表示为 R(U,D,DOM,F)
其中R为 关系名、U为组成关系的属性名集合、D为U中属性所来自的域。DOM是属性向域的映像集合、F 为属性间数据的依赖关系集合

关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断的更新着数据库中的数据。

2.1.3关系数据库

关系数据库的型 也称为 关系数据库模式,是对关系数据库的描述。关系数据库模式包括若干域的定义,以及在这些域上定义的若干关系模式。
关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。

2.2关系操作

常用的关系操作包括:查询操作和插入、删除、修改操作两大部分。(增删改查)

查询操作可以分为选择、投影、连接、除、并、差、交、笛卡尔积等;其中选择、投影、并、差、笛卡尔积是5中基本操作,其他操作可以用基本操作来定义和导出。
关系操作的特点是集合操作方式,操作的对象和结果都是集合,所以也称为一次一集合;非关系数据模型的数据操作方式则为一次一记录。

2.2.2关系数据语言的分类

抽象的语言:
1.关系代数语言,例如:ISBL
2.关系演算语言 (1)元组关系演算语言,例如:ALPHA、QUEL
(2)域关系演算语言,例如:QBE
3.具有关系代数和关系演算双重特点的语言,例如,SQL

结构化查询语言(SQL):具有丰富的查询功能,并且具有数据定义和数据控制功能,是集查询、数据定义语言、数据操纵语言和数据控制语言(DCL)于一体的关系数据语言,且高度非过程化。

2.3关系的完整性

关系模型中有三类完整性:实体完整性、参照完整性、用户定义的完整性;实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性

2.3.1实体完整性

实体完整性保证数据库中每个元组是可以区分的,唯一的。

实体完整性规则:若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。
空值就是“不知道”或“不存在”或“无意义”的值。(例如:学生{学号,姓名,年龄}中,学号不可为空)

对于实体完整性规则说明如下:
1.实体完整性规则是针对基本关系而言的。
2.现实世界中的实体是可以区分的,即他们具有某种唯一性标识。
3.关系模型中以主码作为唯一性标识。
4.主码中的属性即主属性不能取空值。

2.3.2参照完整性

定义2.5:设F是基本关系R的一个或一组属性,但不是关系R的码,Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。(关系R和S不一定是不同的关系)
在这里插入图片描述
目标关系S的主码Ks和参照关系R的外码F必须定义在同一个(或同一组)域上。

规则2.2 参照完整性规则:
若属性F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须:取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值

2.3.3用户定义的完整性

用户定义的完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。(例如:性别只能为男或女、学生成绩的分数范围为0-100……)

2.4关系代数

关系代数的运算按运算符的不同可分为传统的集合运算专门的关系运算两类。

2.4.1传统的集合运算

传统集合运算为二目运算,包括并、差、交、笛卡尔积4中运算。

假设有R与S两个关系
1.并(union)
R∪S={t|t∈R V t∈S}
结果仍为n目关系,由属于R或属于S的元组组成。

2.差(except)
R-S={t|t∈R ꓥ t∉S}
结果仍为n目关系,由属于R而不属于S的元组组成。

3.交(intersection)
R∩S={t|t∈R ꓥ t∈S}
结果仍为n目关系,由既属于R又属于S的元组组成。关系的交可以用差来表示,即R∩S=R-(R-S)

4.笛卡尔积(cartesian product)
R×S={tr^ts|tr∈Rꓥts∈S}
在这里插入图片描述

2.4.2专门的关系运算

专门的关系运算包括选择、投影、连接、除运算等。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.选择(selection)
定义:在关系R中选出满足指定条件F的元组(行操作)
表达式:σF® = {t|t∈R∧F(t)=‘真’},其中条件表达式F可进行以下运算:
比较运算符 > 大于
   ≥ 大于等于
   < 小于
   ≤ 小于等于
   = 等于
   <> 不等于
逻辑运算符 ┐ 非
   ∧ 与
   ∨ 或

2.投影(projection)
定义:从关系R中选出若干属性A组成新关系(列操作)
表达式:πA® = {t[A]|t∈R}

3.连接(join)
定义:从两个关系R和S的笛卡尔积中选取属性间满足指定条件AθB的元组

表达式:R∞S(AθB) = {t®t(s)|t®∈R∧t(s)∈S∧t®[A]θt(s)[B]}

拓展关系:
连接分两种:等值连接与自然连接
等值连接:指定条件AθB的θ为’='时
自然连接:在等值连接的基础上去除重复的属性

在这里插入图片描述

悬浮元组:自然连接中,关系R中某些元组有可能在S中不存在公共属性上值相等的元组,因此被舍弃,这些元组称为悬浮元组。

外连接:进行自然连接时,保留悬浮元组,而在其他属性列上填空值。分为左外连接和右外连接,分别表示保留哪一边关系的悬浮元组。

在这里插入图片描述

4.除运算(division)
定义:设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性及值,且T的元组与S的元组的所有组合都在R中。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值