1.关系数据结构及形式化定义
关系:通俗的讲,一个关系对应一张表
候选码:某一属性组的值能唯一的标识一个元组,而其子集不能,则称该属性组为候选码
主码:一个关系有多个候选码,则选定其中一个为主码
主属性:候选码的诸属性称为主属性
非主属性:不包含在任何候选码的属性称为非主属性
全码:在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码
2.关系的完整性
实体完整性:主码唯一,且非空
关系数据库中每个元组应该是可区分的,唯一的
参照完整性:外码要么为空,要么对应另一张表的主码
3.关系代数
1.传统集合运算
传统集合运算是二目运算:并、交、差、笛卡尔积4种运算
R表
S表
- 并
关系R与关系S的并记作:R∪S={t|t∈R∨t∈S}
其结果仍为n目关系,由属于R或属于S的元素组成
A | B | C |
---|
a1 | b1 | c1 |
a1 | b2 | c2 |
a2 | b2 | c1 |
a1 | b3 | c2 |
- 差
记作:R-S={t|t∈R∧t∉ S}
- 交
记作:R∩S={t|t∈R∧t∈ S}
- 笛卡尔积
记作:R✖S
R.A | R.B | R.C | S.A | S.B | S.C |
---|
a1 | b1 | c1 | a1 | b2 | c2 |
a1 | b1 | c1 | a1 | b3 | c2 |
a1 | b1 | c1 | a2 | b2 | c1 |
a1 | b2 | c2 | a1 | b2 | c2 |
a1 | b2 | c2 | a1 | b3 | c2 |
a1 | b2 | c2 | a2 | b2 | c1 |
a2 | b2 | c1 | a1 | b2 | c2 |
a2 | b2 | c1 | a1 | b3 | c2 |
a2 | b2 | c1 | a2 | b2 | c1 |
2.专门的关系运算
专门的关系运算:选择、投影、连接、除运算
-
选择:σ条件=‘条件值’(表名)
例如:查询信息系(IS系)全体学生
表示为:σSdept=‘IS’(Student)
其中Sdept是系属性
-
投影:Π条件(表名)
例如:查询学生的姓名和所在系
表示为:ΠSname,Sdept(Student)
-
连接
分为自然连接和等值连接
其中自然连接是一种特殊的等值连接
R 表
S 表
A | R.B | C | S.B | E |
---|
a1 | b1 | 5 | b2 | 7 |
a1 | b1 | 5 | b3 | 10 |
a1 | b2 | 6 | b2 | 7 |
a1 | b2 | 6 | b3 | 10 |
a2 | b3 | 8 | b3 | 10 |
A | R.B | C | S.B | E |
---|
a1 | b1 | 5 | b1 | 3 |
a1 | b2 | 6 | b2 | 7 |
a2 | b3 | 8 | b3 | 10 |
a2 | b3 | 8 | b3 | 2 |
A | B C | D | E |
---|
a1 | b1 | 5 | 3 |
a1 | b2 | 6 | 7 |
a2 | b3 | 8 | 10 |
a2 | b3 | 8 | 2 |
- 悬浮元组:即为自然连接中废弃掉的称作悬浮元组
- 左外连接:即为在自然连接基础上加上左边表的悬浮元组,属性没有即填写null
- 右外连接:与左连接刚好相反,添加右边表的悬浮元组
- 外连接:即添加上两个表的悬浮元组
- 除运算
R表
A | B | C |
---|
a1 | b1 | c2 |
a2 | b3 | c7 |
a3 | b4 | c6 |
a1 | b2 | c3 |
a4 | b6 | c6 |
a2 | b2 | c3 |
a1 | b2 | c1 |
S表
R÷S(保留被除项中的属性组,且删去除项中的属性组,并且是有相同的属性组的值)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/84fb297ba2274c837bae53705b9c8bfc.jpeg)