文章目录
- 一、关系(数据结构)
- 1、概述
- 2、名词解释
- 3、关系模式、关系数据库、关系数据库模式
- 4、基本关系的性质
- 二、关系操作(数据操作)
- 三、关系的完整性
- 1、实体完整性
- 2 、参照完整性
- 3、用户自定义的完整性
- 四、关系代数
- 五、习题
前言:理解关系数据模型的有关概念和各种运算的含义。
一、关系(数据结构)
1、概述
在用户看来,关系只是一张扁平的二维表。
2、名词解释
- 域:域是一组具有相同数据类型的值的集合;
- 基数:一个域允许的不同取值个数称为这个域的基数;
- 目或度:关系的属性的个数
- 候选码:某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码(键);
- 主码:若一个关系中有多个候选码,选择其中一个为主码;
- 主属性:候选码的所有属性称为主属性,不含在候选码的属性称为非主属性或非码属性;
- 全码:所有属性都是候选码;
- 外码:设a是A上的一个或一组属性,但不是关系A的码,b是关系B的主码,并且a与b相互照应,则称a是A的外码;
这个地方简单点来说,就是在本关系中的一个属性或属性组,到其他关系里面充当主码; - 超码:超码也叫做“超级码”,是一个或多个属性的集合,这些属性可以让我们在一个实体集(所谓的实体集就是student表中多条记录的集合)中唯一地标识一个实体。如果K是一个超码,那么K的任意超集也是超码,也就是说如果K是超码,那么所有包含K的集合也是超码。
3、关系模式、关系数据库、关系数据库模式
(1)关系模式(型):关系的描述称为关系模式;
关系模式是型,关系是值;关系是元组的集合,关系模式要指出这个元组集合的结构。
例子:R(A1,A2,A3…)
这里R是关系名,A1,A2等等是属性名;
注意:关系是关系模式在某一时刻的状态和内容。因此,关系模式是静态的,稳定的,而关系是动态的。
(2)关系数据库:在关系模型中,实体与实体之间是通过关系来表示的;例如,研究生与导师之间的多对一关系。在给定的一个领域内,所有关系的集合构成了一个关系数据库。
一句话概括该点:关系数据库的值就是这些关系模式在某一时刻对应的关系的集合,通常就成为关系数据库;
(3)关系数据库模式:关系数据库模式是对关系数据库的型的描述,包括若干个域的定义,以及在这些域上定义的若干关系模式。
4、基本关系的性质
① 列是同质的,即来自同一个属性
② 不同的列可出自同一个域(域是一组具有相同数据类型的值的集合)
③ 列的顺序无所谓,列的次序可以任意交换
④ 任意两个元组的候选码不能相同
⑤ 行的顺序无所谓,行的次序可以任意交换
⑥ 分量必须取原子值(规范化)
**注意:**外码和所引用的主码是可以不同名。
二、关系操作(数据操作)
集合运算:并、差、交、笛卡儿积
关系运算:选择(行)、投影(列)、连接(行列)、除(行列)的定义
三、关系的完整性
1、实体完整性
- 现实含义:事物(元组)可区分、是唯一的
- 实现:主码
- 内容:主属性不能取空值(或:主码值唯一、非空)
- SQL实现:
Primary Key
2 、参照完整性
- 现实含义:不能引用不存在的事物
- 实现:外码
- 内容:外码值可以等于一个已经存在的主码值,或取空值,但是当外码是本关系的主属性时候,不可取空值;
- SQL实现:
Foreign key
3、用户自定义的完整性
- 现实含义:某一具体应用所涉及的数据必须满足的语义要求
- 实现:第五章的完整性实现方法
- SQL实现:
Check()
四、关系代数
代数运算是指关系运算,最后结果还是关系!!!
1、集合运算:并交差笛卡尔积
这四个需要注意的是笛卡尔积,它的最后元组数(行数)即为,两个关系的元组数之积;
2、专门关系运算符
选择、投影、连接;
其中连接分为自然连接,外连接;
除运算:
定义:设关系R除以关系S的结果为关系T,则T包含所有在R中但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中。
五、习题
注意:一般是先自然连接,然后在选择,最后在投影。
除法运算!!