type
status
date
slug
summary
tags
category
icon
password
关系形式及结构定义
数据模型三要素
关系数据结构,关系操作集合和关系完整性约束。
关系
用户对关系模型中的数据逻辑结构:一张「二维表」。
域(domain):一组具有相同类型的值的集合。整数集合,小数集合等。
笛卡尔积(Cartesian product):
域上的一种集合;
元组和基数:
其中:每一个di的值表示分量。
基数:一个域允许的不同取值个数。
笛卡尔积的表示方法
可以表示为一张二维表。
表中的每行对应一个元组,每列对应一个域。关系的定义
关系也是一张二维表,每个元素是关系中的元组,通常用t表示,每列的名为属性名。
当n为1时表示一元组(一元关系),n为2是表示为2元关系。
候选码的定义
某一「属性组」能够唯一地标识一个元组,而其子集不能。
候选码中的每个属性称为「主属性」,没有包含的进候选码的属性称为「非主属性」或「非码属性」。
在最简单的情况下,候选码只包含一个属性,最极端的情况下,关系模型的所有属性是个关系模式的候选码,则称为?
全码
主码的定义
若一个关系有多个候选码,则选定其中一个为主码。
关系的三种类型:
基本关系(基本表或基表):实际存在的表,是实际存储数据的逻辑表示。
查询表:查询结果对应的表。
视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。
基本关系具有以下6条性质:
1.列是同质的,即每一列的分量是同一类型的数据,来自同一个域。
2.不同的列可出自同一个域,每一列称为一个属性,不同属性的属性名不能相同。
3.列的顺序无所谓,列的次序可以任意交换。
4.任意两个元素的候选码不能相同。
5.行的顺序无所谓,行的次序可以任意交换。
6.分量必须取原子值,即不能表中有表。(规范条件中最基本的一条)。
关系模式的定义
关系模式是对关系的描述。
关系模式是型,关系是值。
元组集合结构:
- 属性的构成;
- 属性来自的域。
- 属性与域之间的关系。
完整的约束条件。
关系模式的形式
关系模式可以简记为
关系模式和关系的区别
关系是关系模式在某一时刻的状态或内容。
关系模式是静态的,稳定的。
关系是动态的,随时间不短变化的。
关系数据库
在一个给定的领域里,所有关系的集合构成一个关系数据库。
关系数据库的型与值
型:也叫关系数据库模式,是对关系数据库的描述。
值:关系模式在某一时刻对应的关系的集合。
关系的思维导图
关系操作
关系模型常见的操作
查询,插入,删除,修改
查询操作可以分为
基本操作:选择,投影,并,差,笛卡尔
专门操作:选择,投影,连接,除
集合的操作方式
一次一集合。
操作的对象和结果都是集合。
关系语言的分类
生成
关系完整性
关系模型中有三类完整性
实体完整性,参照完整性:关系的两个不变性,关系模型必须满足的条件。
用户完整性:应用领域要遵循的条件,具体体现了邻域中的语义约束。
实体完整性:
主属性不空:若属性A是基本关系R的主属性,则属性A不能取控制。
空值:不知道,不存在,无意义的值。
实体完整性规则的说明:
1.实体完整性规则是针对基本关系而言的。一基本表对应现实世界一个实体集。
2.现实世界中的实体是可以区分的,即它们有唯一的标识符。
3.在关系模型中,主码作为唯一标识符。
4.主码中的属性即主属性不能取空。
参照完整性:
在关系模型中实体及实体间的联系都是用关系来描述的,自然存在着关系与关系间的引用。
引用,关系外部引用,关系间引用
外部引用:学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名)
内部引用:学生(学号,姓名,性别,专业号,年龄,年龄,班长)这里的班长引用了本关系的学号属性。
外码的定义
设F是基本关系R的一个或一组属性,但不是关系R的码(不是主码),如果F与基本关系S的主码Ks相对应,则称F是R的外码。
R关系引用了S关系的主码K则k是R关系的外码。
R称为参照关系,S称为被参照关系或目标关系。
外码注意事项
关系R和S不一定是不同的关系。
目标关系S的主码Ks和参照关系的外码F必须定义在同一个(组)域上。
注:外码不一定和主码相同,但在实际中为了好辨别。
参照关系可以是内部和外部参照
外部引用:学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名)
内部引用:学生(学号,姓名,性别,专业号,年龄,年龄,班长)这里学生既是参照又是被参照关系。
参照完整性规则:
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
- 或者取空值(F的每个属性值均为空值);表示还没分配
- 或者等于S中某个元组的主码值。
用户参照完整性约束
针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足语义要求。
例:课程(课程号,课程名,学分)课程号必行唯一,课程名不能为空等。
关系代数
关系代数的定义
关系代数式一种抽象查询的语言,它用对关系运算来查询。
运算对象:关系
运算 结果:关系
运算符:传统集合运算符和专门关系运算符
运算方向:
传统集合运算 :「行」
专门关系运算:「行+列」
传统集合运算
关系代数运算符符号
并运算
R和S:
- 具有相同的目n(即两个关系都有n个属性)
- 相应的属性取自同一个域。
差的运算
R和S
- 具有相同的目n。
- 相应的属性取自同一个域。
t属于R但不属于S
交的运算
R和S
- 具有相同的目n。
- 相应的属性取自同一个域。
广义笛卡尔积运算
R:n目关系,K1个元组。
S:m目关系,k2个元组。
专门关系运算
R,t∈R,t[Ai]所代表的含义
A,t[A],A拔代表的含义
连接运算
象集Zx的定义
实际就是集合中和x有关的z都是x的象集
象集的例子
选择的运算
选择又称为限制,从行的角度进行运算。
投影运算
投影取消后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)。
θ笔记运算符
XθY
θ可以是>,≥,<,≤,=或<>不等号。
连接运算
连接也称为θ连接。
连接运算从R和S的笛卡尔积RXS中选取R关系在A属性组上的值与S关系在B属性组上的值满足比较关系θ的元组。
等值连接的定义
自然连接的前提
自然连接是一种特殊的等值连接
- 两个关系中进行比较的分量必须是相同的属性组。
- 在结果中把重复的属性列去掉。
自然连接的含义
连接的运算角度
悬浮元祖的定义
两个关系R和S在做自然连接是,关系R中的某些元组有可能在S中不存在公共属性上值相等的元组,从而造成R中这些元组在操作时被舍弃了,这些舍弃的元组就是悬浮元祖。
外连接(Outer Join)
如果把悬浮元祖也保存在结果关系中,而其他属性上填空值(NULL),就叫外连接。
左连接+右连接
左连接和右连接
左:只保留左边关系R中的悬浮元组。
右:只保留左边关系R中的悬浮元组。
除运算
给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组;R中的Y和S中的Y可以有不同的属性名,但必须出自相同域集。
R与S的除运算得到一个新的关系P(X),P是R中满足下列条件元组在x属性上的投影:
除运算示意图