文章目录
关系数据库
基本概念
域是一组具有相同数据类型的值的集合
笛卡尔积
-
笛卡尔积
笛卡尔积给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:
D1×D2×…×Dn ={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}
即所有域的所有取值的一个组合,每个组合不能重复 -
元组(Tuple)
笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组。 -
分量(Component)
笛卡尔积元素(d1,d2,…,dn)中的每一个值di叫作一个分量。 -
基数(Cardinal number)
若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:
关系
-
关系
D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为 R(D1,D2,…,Dn)
R:关系名
n:关系的目或度(Degree) -
元组
关系中的每个元素是关系中的元组,通常用t表示。 -
单元关系与二元关系
当n=1时,称该关系为单元关系(Unary relation)或一元关系当n=2时,称该关系为二元关系(Binary relation)
**注意:关系是笛卡尔积的有限子集。无限关系在数据库系统中是无意义的。**从笛卡尔积中取出有实际意义的元组来构造出来的就是关系
-
属性
关系中不同列可以对应相同的域。为了加以区分,必须对每列起一个名字,称为属性(Attribute)。n目关系必有n个属性 -
基本关系的性质
① 列是同质的,同一列的所有数据取自同一个域
② 不同的列(属性)可出自同一个域
- 其中的每一列称为一个属性
- 不同的属性要给予不同的属性名
③ 列的顺序无所谓,列的次序可以任意交换
④ 行的顺序无所谓,行的次序可以任意交换。
**⑤ 任意两个元组的候选码不能相同。**任意两行不能全同。
⑥ 分量必须取原子值,这是规范条件中最基本的一条
码的相关概念
-
码(Key)
—>也叫超码/键,能够唯一标识一条元组的属性或属性集。表中的某个属性组,它可以唯一确定一个元组。
-
候选码(Candidate key)
—>候选键=候选码:能够唯一标识一条元组的最小属性集
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码
最简单的情况:候选码只包含一个属性,候选键是没有多余属性的超码 -
全码(All-key)
最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key) -
主码
若一个关系有多个候选码,则选定其中一个为主码(Primary key)- 主属性
候选码的诸属性称为主属性(Prime attribute) - 非主属性
不包含在任何侯选码中的属性称为非主属性( Non-Prime attribute)或非码属性(Non-key attribute)
- 主属性
-
外码(Foreign key)
如果关系R2的一个或一个属性组X不是R2的主码,而是另一关系R1的主码,则该属性或属性组X称为关系R2的外码或外键,并称R2为参照关系,R1为被参照关系
-
概览码的全部
三类关系
- 基本关系(基本表或基表)
实际存在的表,是实际存储数据的逻辑表示 - 查询表
查询结果对应的表 - 视图表
由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据
关系的完整性
-
实体完整性
主码的值不能为空或部分为空
-
参照完整性
如果关系R2的外码X与R1的主码相符,则X的每个值或等于R1中主码的某一个值或取空值
-
用户自定义完整性
用户针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。如:选课关系中的成绩属性的取值范围是0-100
关系代数
运算符 | 含义 | 运算符 | 含义 | ||
---|---|---|---|---|---|
集合运算符 | ∪ - ∩ × | 并 差 交 笛卡尔积 | 比较运算符 | > ≥ < ≤ = <> | 大于 大于等于 小于 小于等于 等于 不等于 |
专门的关系运算符 | σ π ⋈ ÷ | 选择 投影 连接 除 | 逻辑运算符 | Ø ∧ ∨ | 非 与 或 |
传统的集合运算
-
并(Union)
对R和S的要求:
具有相同的目n(即两个关系都有n个属性)
相应的属性取自同一个域
R∪S (称为R,S的并)
仍为n目关系,由属于R或属于S的元组组成
R∪S = { t|t ∈R∨t ∈S }
-
差(Difference)
对R和S的要求:
具有相同的目n
相应的属性取自同一个域
R - S (称为R,S的差)
仍为n目关系,由属于R而不属于S的所有元组组成
R -S = { t|t∈R∧t∉S }
-
交(Intersection)
对R和S的要求:
具有相同的目n
相应的属性取自同一个域
R∩S (称为R,S的交)
仍为n目关系,由既属于R又属于S的元组组成
R∩S = { t|t ∈ R∧t ∈ S } R∩S = R –(R-S)
-
笛卡尔积(Cartesian Product)
严格地讲叫做广义的笛卡尔积(Extended Cartesian Product)
R: n目关系,k1个元组
S: m目关系,k2个元组
R×S
列:(n+m)列元组的集合
元组的前n列是关系R的一个元组
后m列是关系S的一个元组
行:k1×k2个元组
R×S = {tr ts |tr ∈R ∧ ts∈S }
专门的关系的运算
象集
-
选取
-
含义
在关系R中选择满足给定条件的诸元组
σF® = {t|t∈R∧F(t)= ‘真’}
F:选择条件,是一个逻辑表达式,基本形式为:
X1θY1
F 中使用的符号:> ≥ < ≤ = <> . ∧ ∨ -
选择运算是从关系R中选取使逻辑表达式F为真的元组
-
图示
-
-
投影
-
含义
从R中选择出若干属性列组成新的关系
πA® = { t[A] | t ∈R }
A:R中的属性列 -
投影操作主要是从列的角度进行运算
-
图示
-
-
连接
-
连接运算从R和S的广义笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组
-
连接操作是从行的角度进行运算
-
图示
-
自然连接 R ⋈ S的结果如下:
-
等值连接 R ⋈(R.B=S.B) S 的结果如下:
-
外连接
-
-
-
除法
-
定义
给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组。
R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在 X 属性列上的投影:
元组在X上分量值x的象集Yx包含S在Y上投影的集合,记作:
R÷S ={tr[X]|tr∈R∧πY(S)∈Yx }
Yx:x在R中的象集,x =tr[X] -
例:设关系R、S分别为下图的(a)和(b),R÷S的结果为图©
-
本文全为原创,部分图摘自网络,如有侵权,可评论联系。由于时间紧迫,难免有所不足,欢迎评论指正,如有帮到大家,欢迎一键三连。其余部分正在更新中……