《数据库系统概论》 第二章 关系数据库

2.1 关系数据结构及形式化定义

2.1.1 关系

1. 域(domain):一组具有相同数据类型的**值**的集合
2. 笛卡儿积:域上的一种集合运算 
    一个域允许的不同取值个数称为这个域的基数
    笛卡儿积是不同域的所有元素的所有组合

这里写图片描述
  3. 关系
这里写图片描述

  • 候选码:关系中的能唯一地标识一个元组而其子集不能的某一属性组的值,若有多个,选定其中一个为主码
  • 候选码的各个属性称为主属性,不包含的称为非主属性
  • 所有属性都是候选码,则称为全码

三种关系

  1. 基本关系:实际存在的表,实际存储数据的逻辑表示

  - 列是同质的
  - 不同的列可出自同一个域
  - 行、列的顺序无所谓
  - 任意两个元组的候选码不能取相同的值
  - 分量必须取原子值,即不可分的数据项

  2. 查询表:查询结果对应的表
  3. 视图表:基本表或其他视图表导出的表,虚表

2.1.2 关系模式

这里写图片描述
这里写图片描述

2.2 关系操作

2.2.1 基本的关系操作

  • 查询操作:选择投影、连接、除、、交、笛卡儿积(加粗的为基本操作)
  • 插入、删除、修改操作

特点:操作的对象和结果都是集合,又称为一次一集合(set-at-a-time)方式

2.2 关系数据语言的分类

  • 关系代数(代数方式)
  • 关系演算(逻辑方式):按照谓词变元分为元组关系演算和域关系演算
  • 结构化查询语言(SQL):集查询、数据定义语言、数据操纵语言和数据控制语言于一身的关系数据语言,高度非过程化

2.3 关系的完整性

  • 实体完整性:必须满足,关系的两个不变性之一
  • 参照完整性:必须满足,关系的两个不变性之一
  • 用户定义的完整性:应用领域需要遵循的约束条件

2.3.1 实体完整性

这里写图片描述实体是可区分的!

2.3.2 参照完整性

关系与关系之间是有关系的
外码的定义

参照完整性规则就是定义外码与主码之间的引用规则
参照完整性规则

2.3.3 用户定义的完整性

   来源于应用的多样性
  后面有一章具体介绍

2.4 关系代数

2.4.1 传统的集合运算

只有模式相同的两个对象才能做传统的集合运算

  1. 并
  2. 差
  3. 交
  4. 笛卡儿积

2.4.2 专门的关系运算

  引进几个记号
这里写图片描述
这里写图片描述

选择(selection)

这里写图片描述
  实质是从关系R中选取使逻辑表达式F为真的元组,是从行的角度进行的运算。

投影(project)

这里写图片描述

连接(join)

  最常用的操作,相当于在两个关系的笛卡儿积上做一个选择运算
这里写图片描述

  • 等值连接:θ为“=”的连接运算
  • 自然连接 :是一种特殊的等值连接,要求两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉
    这里写图片描述

  • 悬浮元组(dangling tuple):自然连接时被舍弃的元组

  • 外连接(outer join):把悬浮元组也保存在结果关系中,而在其他属性上填空值。
  • 左外连接:只保留左边关系R的悬浮元组
  • 右外连接:只保留右边关系S的悬浮元组

除(division)

难点不是重点
这里写图片描述
留下来的元组:这个元组在这个关系中的象集完整的覆盖了另外一个除数关系

2.5 关系演算

  介绍了两种语言,此处略过

习题

1. 试述关系模型的三个组成部分
关系数据结构、关系操作集合、关系完整性约束
2. 外码:关系中的某个属性,但是是别人的码
3. 关系模式、关系
关系模式是型,关系是值,是关系模式的实例
4. 假设存在一张职工表,包含“性别”属性,要求这个属性的值只能取”男“或”女“,这属于(用户定义的完整性)
ps:因为不能取空值所以不是参照完整性
5. 有两个关系R(A,B,C)和S(B,C,D),将R和S进行自然连接,得到的结果包含几个列(4)
(A,B,C,D)
展开阅读全文

没有更多推荐了,返回首页