关系数据结构和形式
关系和概念
- 域:相同数据类型的集合
- 笛卡尔积:域之间的集合运算
-
关系
关系中的数量成为目或度
单元关系和二元关系指关系中只有一个目和两个目 候选码:唯一确定一个元组的码
- 主码:候选码中选定一个
- 主属性:候选码的属性
- 全码:所以有属性都可作为候选码
关系是一张二维表
有三种类型:
- 基本关系
- 查询表
- 视图表
基本关系有六个性质
- 列同质
- 列无序
- 行无序
- 属性名不同但属性可以相同
- 分量不可分
-
关系模式
关系的描述为关系模式,可以表示为:
R(U, D, DOM, F)
R:关系名 (表名)
U:属性 (所有列)
D:属性的域
DOM:属性到域映像(映射属性来自哪个域)
F:属性数据依赖关系集合(依赖关系)
简记为 R(U), 例如 学生(姓名,学号,年龄…)关系数据库
关系操作
关系模型的基本操作
查询
- 插入
- 删除
- 修改
查询操作不改变关系,其他操作改变关系
查询操作有:
- 选择
- 投影
- 连接
- 除
- 并
- 差
- 交
- 笛卡尔积
其中有5种基础操作:
- 选择
- 投影
- 并
- 差
- 笛卡尔积
关系完整性
关系完整性分为
- 实体完整性
- 参照完整性
- 用户定义完整性
实体完整性规则
若一个属性为主属性(候选码或主码),则不能为空,必须有意义。
参照完整性规则
对于外码来说,外码的值只能是空值或是对应表的主码值,不能脱离这两类。
关系代数
基本集合运算
并 Union
差 Except
交 Intersection
笛卡尔积 X
A x B 组成成新的集合
表示一种对应关系
对于数据库来说,有几个专门的关系运算符
包含选择,投影,连接和除运算等
几个特殊记号
关系运算定义
选择 Selection
满足某条件的若干个元组。
其中theta是比较运算符,它可以是大于等于等条件判断
对于这三张表来说,查询IS系的操作为
投影 Projection
R的投影是从R中选择出若干属性列组成的新关系
若构成投影,则必须不重复,会自动去掉重复元素
从基表向目标试图表投影的一定是结果,只有投影结果,因此不会出现重复元素。
例如
连接 Join
\thema 连接是指从两个关系的笛卡尔积中选择特定符合条件的元组构成视图表
记作
等值连接是指条件是相同的连接,即为要连接的两个表中属性相同
自然连接是特殊的等值连接,他要求两个关系中进行比较的分量必须要是同名的属性组,并且排除重复元素
也即同时进行行和列的运算。
详情见例子
在进行自然连接时,可能有一些元素被舍弃,这些被舍弃的元组成为悬浮元组。
如果把全福元组也保存在结果关系中,而在其他属性上填空值,则成为外连接,
如果只保留左边R的悬浮元组就叫左外连接,如果保留右边的悬浮元组就叫做右外连接。
除运算(division)
R 除 S的结果T中,T包含了所有在R但是不在S中的属性和值,且T的元组与S中的元组的所有组合都在R中,