关系模型
码
- 候选码(Candidate Key)
- 主码(Candidate Key) (主键多好听。。)
- 外码 (Foreign Key)
主属性与非主属性
- 包含在任何一个候选码中的属性称为主属性,而其他 属性称为非主属性
- 最简单的,候选码包含一个属性
-
关系模式(Relation Schema)
关系模式是关系中信息内容结构的描述。
R(U,D,DOM,I,Σ) R:是关系名
- U:是组成关系R的全部属性的集合
- D:是U中属性取值的值域
- DOM:是属性列到域的映射
- I:是一组完整性约束条件
-
关系完整性约束
实体完整性规则
-
参照完整性规则
规则:若F是基本关系R的外码,并与 S的主码 Ks相对应,则对于R中每个元组在F上的值必 须为:
- 或者取空值
-
用户定义完整性规则
规则:反映某一具体应用所涉及的数据必须满 足的语义要求
关系代数
传统的集合运算
- 并 差 交 笛卡尔积
专门的关系运算
- 选择 投影 连接 自然连接 除
基本关系代数运算
- 并 差 笛卡尔积 选择 投影
例子
- 查询至少选修了课程号为1和2的 学生的学号
- 查询选修课程号为1或2的学生学号
- 查询没有选修1号课程的学生学号
- 查询选修课程号为1的学生姓名和成绩
- 查询选修全部课程的学生学号
- 查询至少选修1号同学选修的所有课程的 学生姓名
查询优化的策略和算法
- 尽可能早地执行选择操作(减少中间运算 结果)
- 同时进行投影和选择运算
- 把投影同其前或后的双目运算结合起来
- 合并选择与笛卡尔积组成一个连接运算
- 寻找公共子表达式
方法
- 把σF1∧F2 ∧ …∧Fn(E)变换为 σF1 (σF2(…(σFn( E))…))
- 对每一个选择尽可能把它移到树的叶端
- 对每一个投影尽可能把它移到树的叶端
- 合并选择和投影或一个选择后跟一个投影
- 将得到的语法树的内节点分组。(每一双目运算和它所 有的直接祖先为一组。
例
- 求1号学生所选修的课程名及成绩
- πCN,G (σSC.S#=‘1’∧SC.C#=C.C# (SC × C))
- 查询选修了数据库原理的学生姓名和成绩
- πSN,G (σCN=‘数据库原理’ (S SC C))
- πSN,G (σCN=‘数据库原理’ ∧ S.S#=SC.S#∧SC.C#=C.C#(S × SC × C))




















