关系模型介绍
列之间的顺序无关
一个块是一个instance 而不是一行
domian(域)是指属性的域,指一定的取值空间
属性
cell 原子性,不可再分,(用学号,不能截取学号)
cell 里的数据不可分割
无办法取(不允许切)
null
表示状态值
一个状态
值未知
可以放在任何一个位置
关系的集合,集合的关系。
- 要体现正确性,就要有合适的语义。意味着值相同,含义相同
- 正确的关系
为什么说合成一张表是不好的设计。
对null的需要 有空的
插入异常(点餐,选课)
对数据的设计,删除异常。
key
码
super key
指能唯一标识并将。。区分开的字段
候选码 candidate key
我理解成super key 最小的子集
主码 peimary key 可能几组不同的候选码
从中选取一个候选码作为 主码
外码
一个字段不是该张表的主码,但参考其他表的primary key
可能再同一个关系中
比如class 表
c 和pc(先验课)
相同语义 ,值相等
9801 和9801 要能对起来(才能证明是同一个)
利用key的冗余 关联再一起,同一个实体的不同情况,不是我们想避免的冗余
关系
operation 关系代数
操作数
操作符
连起来。
纯集合运算,关系演算
基本操作符
选择
自然连接 (先取笛卡儿积,再相同属性值相等)
投影 列运算
笛卡儿积
并运算
笛卡儿积和自然连接的区别
笛卡尔积为列的合并,两个表列的合,简单的叠加
笛卡儿积:ABCD与CDE的笛卡儿积会形成七列,不会发生抵消。
自然连接:ABCD与CDE的自然连接会将共同属性删除,变为五列。自然连接,如果没有同名字段,则相当于做笛卡儿积
三元素
- 操作符
- 谓词
- 操作关系
是所有列 的关系演算
projection 纯集合运算,是要去重的
关系代数
- 括号 确定优先
- 操作对象:关系
- 结果 也是集合
- p是选择谓词
投影
投影可以嵌套,可以二次操作。
u 并集
r u s
- 同元 ,就是属性值相同
- 相容: 类型:老师和学生是相容的,往上面都是person,学生和class就不相容的,因为类型不同。
求最高分
标题
附加运算
- 集合交
- 自然连接
- 赋值
- 外链接
外连接例子:老师授课,不授课,想把所有老师取出。
除法
除法操作就是笛卡儿积的逆运算,选课,所有的课,选过所有课的学生
若没有和c中所有课搭配过,则拿不出来。