数据库学习笔记(2)——关系模式
文章目录2.1 关系数据结构及形式化定义2.1.1 关系2.1.2 关系模式2.1.3 关系数据库2.1.4 关系模型的存储结构2.2 关系操作2.2.1 基本的关系操作2.2.2 关系数据语言的分类2.3 关系的完整性2.4 关系代数2.4.1 传统的集合运算2.4.2 专门的关系运算2.1 关系数据结构及形式化定义2.1.1 关系关系模型是建立在集合代数的基础上的,这里从集合论的角度给出关系数
文章目录
2.1 关系数据结构及形式化定义
2.1.1 关系
关系模型是建立在集合代数的基础上的,这里从集合论的角度给出关系数据结构的形式化定义。
1.域
域是一组具有相同数据类型的集合
2.笛卡尔积
笛卡尔积是域上的一种集合运算。
3.关系
D 1 ∗ D 2 . . . ∗ D n D_1*D_2...*D_n D1∗D2...∗Dn的子集叫做在域 D 1 , D 2 . . . D n s D_1,D_2...D_ns D1,D2...Dns的关系,表示为R( D 1 , D 2 . . . D n D_1,D_2...D_n D1,D2...Dn)
这里R表示系得名字,n是关系得目或度
关系中每个元素都是关系的元组。
- n=1时,该关系为单元关系
- n=2时,该关系时二元关系
若关系中唯一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码。
若一个关系有多个候选码,则选定其中一个为主码。候选码地诸属性称为主属性。不包含在任何候选码中的属性称为非主属性,或非码属性。
当关系作为关系数据模型地数据结构时,需要给予如下的现代和扩充。
(1)无限关系在数据库系统中是无意义的
(2)通过给关系每个列附加一个属性名的方法曲线关系属性的有序性
基本关系的性质:
1.列的同质性:每一列中的分量是同一类型的数据,来自同一个域。
2.列名唯一性:每一列具有不同的属性名,但不同列的值可以来自同一个域。
3.元组相异性:关系中任意两个元组的候选码不能相同。
4.行序的无关性:行的次序可以互换。
5.列序的无关性:列的次序可以互换。
6.分量原子性:分量值是原子的,即每一个分量都必须是不可分的数据项。
关系有3种类型:基本关系(又称基本表或基表)、查询表和视图表。
-
基本关系:实际存在的表,是实际存储数据的逻辑表示;
-
查询表 :查询结果对应的表;
-
视图表 :由基本表或其它视图标导出的表,是虚表,不对应实际存储的数据;
2.1.2 关系模式
在数据库中要区分型和值。关系数据库中,关系模式是型,关系是值。
关系是元组的集合,因此关系模式必须指出这个元组集合的结构。
关系的描述称为关系模式:形象地表示为R(U,D,DOM)
2.1.3 关系数据库
在关系模式中,实体与实体之间的联系都是用关系表示的。关系数据库的型也称为关系数据库模式,是对关系数据库的描述。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,所以通常称为关系数据库。
2.1.4 关系模型的存储结构
表是关系数据的逻辑模型。
2.2 关系操作
2.2.1 基本的关系操作
关系模型的基本操作包括:查询,插入,删除,修改操作。
查询操作分为:选择,投影,连接,除,并,差,交,笛卡尔积等。选择,投影,并,差,积为五种基本操作。
2.2.2 关系数据语言的分类
早期关系操作能力通常用代数方式和逻辑方式表示,分别为关系代数,关系演算。
{
关
系
代
数
语
言
(
例
如
I
S
B
L
)
关
系
演
算
语
言
{
元
组
关
系
演
算
语
言
(
例
如
A
L
P
H
A
、
Q
U
E
L
)
域
关
系
演
算
语
言
(
例
如
Q
B
E
)
具
有
关
系
代
数
和
关
系
演
算
双
重
特
定
的
语
言
(
例
如
S
Q
L
)
\begin{cases} 关系代数语言(例如ISBL)\\ \\ 关系演算语言 \begin{cases} 元组关系演算语言(例如ALPHA、QUEL)\\ \\ 域关系演算语言(例如QBE) \end{cases}\\ \\ 具有关系代数和关系演算双重特定的语言(例如SQL) \end{cases}
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧关系代数语言(例如ISBL)关系演算语言⎩⎪⎨⎪⎧元组关系演算语言(例如ALPHA、QUEL)域关系演算语言(例如QBE)具有关系代数和关系演算双重特定的语言(例如SQL)
2.3 关系的完整性
1.实体完整性:主属性不能为空,主码不相等
2.参照完整性:例如,学生(学号、姓名、专业号),专业(专业号,专业名),学生关系中的专业号需要参照专业关系中的专业号,称学生关系中的专业号是学生关系的外码,专业关系是被参照关系,学生关系为参照关系,外码与主码不一定要同名,学生关系中的外码取值要么为空值,要么为专业关系中对应专业号的值
3.用户定义完整性:例如,学生的成绩取值范围在0~100之间
2.4 关系代数
关系代数用于对关系运算表达查询。
三大要素:
- 运算对象
- 运算符
- 运算结果
2.4.1 传统的集合运算
传统的集合运算是二目运算,包括并,差,交,笛卡尔积4种运算。
-
并
-
差
-
交
-
笛卡尔积
R有K1个元组,S有K2个元组,则关系R和关系S的笛卡尔积有K1×K2个元组
2.4.2 专门的关系运算
-
选择
选择又称为限制(选择是从行角度进行的运算)
F:选择条件,是一个逻辑表达式,取值为真或假。
-
投影
投影是从列角度进行的运算
-
连接
称为Θ连接【具体连接由关系Θ决定】
连接运算的含义:从两个关系的笛卡尔积中选取属性间满足一定条件的元祖 -
自然连接
两个关系中进行比较的分量必须是相同的属性组
在结果中把重复的属性列去掉 -
悬浮元组
两个关系做自然连接时,关系R中某些元祖有可能在S中不存在公共属性上值相等的元组,从而造成R中这些元组在操作时被舍弃,被舍弃的元组称为悬浮元组。
-
外连接
把悬浮元组也保存在结果关系中,而在其他属性上填空值(null)
左外连接:只保留左边关系R中的悬浮元组
右外连接:只保留右边关系S中的悬浮元组
-
除运算
设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性的及其值,且T的元组与S的元组的所有组合都在R中。
更多推荐
所有评论(0)