概述实体完整性规则:
现实世界中,实体相互区分的,在数据中实体是一条元组,所以,元组之间要求相互区分。
关系及关系间的引用
在关系模型中实体及实体间的联系都是用关系来描述的,因此,可能存在着关系与关系间的引用。
如:
(1)学生(学号,姓名,专业号)
专业(专业号,专业名)
学生与专业号之间存在联系,专业与专业号之间也存在联系
所以学生与专业之间存在引用关系
(2)同一个关系内部属性也可能存在引用关系
如:学生(学号,姓名,性别,班长对应的学号)(学生即是参照关系也是被参照关系,自己对应自己嘛)
这里面,班长本身就是学生,所以,班长这个属性就引用了自己的学号
外码(难点):
设 f 是基本关系 r 的一个或一组属性,但不是关系 r 的码,如果 f 与基本关系 s 的主码 Ks 相对应,则称 f 是基本关系 r 的外码。
基本关系 r 称为参照关系,基本关系 s 称为被参照关系 或目标关系
个人理解:外码不是主码,外码是其它表主码
注意:外码在其它表是主码的时候,外码与主码的名字可以不同,但是,长度,类型什么的需要一致。
学生(学号,姓名,专业号)(学生实体)(学生是参照关系)
专业(专业号,专业名)(专业实体)(专业是被参照关系)
学号是主码,专业号需要引用专业表的专业号
所以专业号是外码
参照完整性规则:
例: 学生(学号,姓名,性别,专业号)(参照关系)
专业(专业号,专业名)(被参照关系)
学生关系中每个元组的 “ 专业号 ” 属性只能取空值或非空值
具体的元组值需要区分大小写
用户定义完整性:
规定某些新信息必须要填,如:姓名必须要填,如果不填就会不完整
关系代数:是一种抽象的查询语言,运算对象是关系,运算结果也是关系。
关系代数用到的运算符:
集合运算符,专门的关系运算符,比较运算符,逻辑运算符
(1)传统的集合运算:把关系(一张表看作一个集合,一条元组看作一个集合的元素)
从行的角度来进行,有并 ,差、交、笛卡尔积四种运算
并:两个表格按行合并成一个表,并且去掉重复的
差:r - s 的到的是 属于 r 不属于 s 的元组,就两个集合的差集
交:就两个表格都有的元组。(交集)r - ( r - s )
笛卡尔积(广义,元素是元组):
r ( 两个元组 ,三目(列)) s ( 三条元组,两目(列) )
r × s = 前三列来自 r 后两列来自 s (行与行分别相结合)
(2)专门的关系运算:专门的关系运算涉及行和列
1、关系模式为R(A1,A2,...,An), t [ Ai ] 是一个分量值(即属性,类似于数组)
2、A 与 A一杠合在一起代表 R 一个元组。
3、R 为 n 目 ,S 为 m 目,取R 的某个元组与S中的某个元组和并,称为 元组的连接,是一个 n+m 的元组
4、教材51页图 2.3 在x这一列上找值为需要求的 x , 对应的象集(z)就是答案 ( 难点 )
感觉就是给出表格,查表得到对应得值就是象集。