2.1关系数据结构及形式化定义
关系模式由关系数据结构、关系操作集合和关系完整性约束三部分组成。
而关系模式的数据结构非常简单,只包含单一的数据结构——关系。
2.1.1关系
在关系模式当中,现实世界上的实体以及实体之间的关系用单一的数据结构表示,即关系。
2.1.2关系模式
相关概念:
1.域:一组相同类型的值的集合;基数:一个域允许的不同取值个数称为这个域的基数
如:D1 = {d1,d2,d3,d4,d5};基数为5,
2.笛卡尔积:如:D1 *D2*D3 = {(d1,d2,d3,,,,,dn),(),()| di ∈ Di, i = 1,2,3,4,5,,,,,,,n}
每个元素(d1,d2,d3,,,,,dn)叫做一个n元组,每个值di叫分量。则元组个数为m * n*q, 其中m,n,q为D1,D2,D3的基数。
3.关系
相关概念
候选码:能准确标记一个元组的属性组
主码:候选码中选一个
主属性:主属性就是包含在任何候选码(这里面当然包括主码)中的属性;非主属性就是不包含在任何候选码中的属性。
全码:关系模式中所有属性都是候选码。
例如:在学生实体中,“学号”是能唯一的区分学生实体的,同时又假设“姓名”、“班级”的属性组合足以区分学生实体,那么{学号}和{姓名,班级}都是候选码。
关系可以有三种类型:基本关系(基本表)、查询表和视图表。
2.2关系的操作
2.3关系的完整性
1、实体完整性:主属性不为空
2、参照完整性:外码为空值或者等于被参照关系S中某个主码
3、用户自定义完整性:用户自己定义的
2.4关系代数
关系代数的运算符:
并(Union)
关系 R 与 S 具有相同的关系模式,即 R 与 S 的元数相同(结构相同),R 与 S 的并是属于 R 或者属于 S 的元组构成的集合,记作 R ∪ S,定义如下:
R∪S={t|t∈R∨t∈S}R∪S={t|t∈R∨t∈S}
差(Difference)
关系 R 与 S 具有相同的关系模式,关系 R 与 S 的差是属于 R 但不属于 S 的元组构成的集合,记作 R − S,定义如下:
R−S={t|t∈R∨t∉S}R−S={t|t∈R∨t∉S}
广义笛卡尔积(Extended Cartesian Product)
两个无数分别为 n 目和 m 目的关系 R 和 S 的 笛卡尔积是一个 (n+m) 列的元组的集合。组的前 n 列是关系 R 的一个元组,后 m 列是关系 S 的一个元组,记作 R × S,定义如下:
R×S={t|t=<(tn,tm)∧tn∈R∧tm∈S}R×S={t|t=<(tn,tm)∧tn∈R∧tm∈S}
$(t^n,t^m)$ 表示元素 $t^n$ 和 $t^m$ 拼接成的一个元组
投影(Projection)
投影运算是从关系的垂直方向进行运算,在关系 R 中选出若干属性列 A 组成新的关系,记作 $π_A(R)$,其形式如下:
πA(R)={t[A]|t∈R}πA(R)={t[A]|t∈R}
选择(Selection)
选择运算是从关系的水平方向进行运算,是从关系 R 中选择满足给定条件的元组,记作 $σ_F(R)$,其形式如下:
σF(R)={t|t∈R∧F(t)=True}
等值、连接自然连接区别如下:
自然连接是特殊的等值连接,将相同的合并
在进行自然连接时,关系R中某些元祖可能在S中不存在公共属性上值相等的元组,从而被舍弃,这些元组被称之为悬浮元祖。而将悬浮元组也保存的称之为外连接。
如: