数据库系统-关系数据库
关系数据库模型
关系数据模型的三要素
- 关系数据结构
- 关系操作
- 关系完整性约束
关系数据结构
关系
设D1,D2,…Dn是n个值域,D1×D2×…×Dn的子集R称作D1,D2,…Dn上的关系,记作R(D1,D2,…Dn)
关系的正确性
只有符合客观实际的关系才是正确的关系
关系的属性
由于域可能相同,为了加以区分,可为关系R(D1,D2,…Dn)的每个域Di起一个不同的名字Ai作属性,故关系R常表示为R(A1,A2,…An)
关系的键
关系的某些属性集合具有区分不同元组的作用,称作键
超键
如果关系的某一组属性的值能唯一标识每个元组,则称该组属性为超键
候选键
如果一个超键的任意真子集都不是超键,则称该超键为候选键
候选键=极小的超健
主键
每个关系都有至少一个候选键,人为指定其中一个作为主键
外键
设F是关系R的属性子集.若F与关系S的主键K相对应,则称F是R的外键
- R一参照关系
- S一被参照关系
R与S可以是同一关系
关系操作
- 查询操作:从关系数据库中查找数据
- 更新操作:对关系数据库进行更新
查询语言
查询语言是用于表示关系操作的语言
查询语言的类型:
- 关系代数
使用关系代数表达式明确给出查询的执行过程
- 关系演算
使用谓词逻辑表达式描述查询
元组关系演算:谓词逻辑变量是元组
域关系演算:谓词逻辑变量是域
- 结构化查询语言
具有关系代数和关系演算的双重特点
集DDL、DML、DCL于一体
关系完整性约束
完整性约束:关系数据库中的所有数据必须满足的约束条件
完整性约束类型:
- 实体完整性
- 参照完整性
- 用户定义完整性
实体完整性
- 关系中任意元组的主键值必须唯一
- 关系中任意元组在主键中的属性值非空
参照完整性
设F是关系R的外键,F参照关系S的主键,则R中任意元组的F属性值必
须满足以下两个条件之一:
- F的值为空
- 若F的值不为空,则F的值必须在S中存在
用户定义完整性约束
根据应用需求定义的完整性约束
关系代数
关系代数基本操作
- 选择
- 投影
- 并
- 差
- 笛卡尔积
- 重命名
派生关系代数
- 交
- 连接
- 自然连接
- 外连接:左外连接、右外连接灯、全外连接
- 反连接
- 除
扩展关系代数
- 分组操作
- 赋值操作
关系演算
元组关系演算
元组关系演算用形如{t|P(t)}的表达式表示查询
- t:元组变量
- P:谓词
元组关系演算表达式的结果是所有使谓词P为真的元组t的集合
域关系演算
域关系演算表达式与元组关系演算表达式的定义类似,不同之处是表达式中使用域变量,而不是元组变量
域关系演算表达式的一般形式为{(x1,x2,…,xn)|P(x1,x2,…,xn)}
- x1,x2,…,xn:域变量
- P:域关系演算公式
域关系演算表达式的结果是所有使P(x1,x2,…,xn)为真的元组(x1,x2,…,xn)的集合