目录
一、关系的概念
1、域
- 域是一组具有相同数据类型的值的集合
- eg:D1={王萍,李敏,刘洋}
- 域中不同数据的个数称为域的基数
- eg:D1的基数为3
2、笛卡尔积
设一组域D1,D2……Dn,这些域中允许有相同元素,D1,D2……Dn的笛卡尔积为:
D1×D2×……×Dn={ (d1,d2,d3……) | di∈Di,i=1,2,3…… }
其中每个(d1,d2……dn)称为一个元组,每个di称为一个分量
域的笛卡尔积的基数=参与运算的所有域的基数之积
3、关系
笛卡尔积的子集称为域上的一个n元关系,表示为:
R(D1,D2,D3……Dn)
其中R表示关系名称,n表示关系的目或度
- 当n=1时,称该关系为单元关系
- 当n=2时,称该关系为二元关系
- 关系是笛卡尔积中所取的任意子集
4、相关术语
(1)候选码与主码
- 在关系中可以唯一标识一个元组的属性或属性组称为候选码
- 如果一个关系中有多个候选码,则选其中最小的属性组为主码
- 如果关系的候选码只有一个属性,称为单属性码
- 如果关系中候选码有多个属性,称为多属性码
- 如果关系中只有一个候选码,且包含所有属性,称为全码
(2)主属性与非主属性
- 出现在候选码中的属性为主属性
- 不包含在任何候选码中的属性为非主属性
二、关系数据模型
1、关系模型的数据结构
关系模式R(U,D,dom,F),关系模式通常简记作R(U)
- R为关系名
- U为关系的属性集
- D为属性组中的属性所来自的域
- dom为属性向域的映像集合
- F为属性间的数据依赖关系
eg.高校图书管理系统
U={姓名,性别,年龄}
D1={李四,徐心怡,杨倩}
D2={男,女,女}
D3={24,19,20}
dom={姓名→D1,性别→D2,年龄→D3}
F={姓名→年龄,姓名→性别}
2、关系操作与完整性约束
(1)关系操作语言
- 关系代数语言ISBL
- 关系演算语言
- 关系数据库标准语言SQL
(2)完整性约束
- 域完整性:域完整性是指关系中每一个元组的分量必须取自相应域中的值,如读者关系中的性别只能来自于域{男,女}
- 实体完整性:要求关系中不能出现相同的元组,主属性的值不能为空值
- 参照完整性:如果属性X不是关系R2的主码,而是另一关系R1的主码,则称该属性X为关系R2的外码,称R2为参照关系,R1为被参照关系,外码用波浪线表示
- 外码只能取下列两类值:
- 空值
- 非空值,该值必须与被参照关系中主码的某取值一致
- 用户定义完整性:用户根据某一具体关系的约束条件,比如图书关系中价格不能为负数
3、关系的性质
(1)关系中所有属性值都是原子的。每个属性均是不可分的数据项
(2)每一列为一个属性。不同属性可来自同一个域
(3)每一列的分量均是同一类型的数据
(4)关系中不允许有相同的元组
(5)在一个关系中元组和属性的次序无关紧要
4、关系的类型
- 基本表:像高校图书管理系统,这种实际存储数据的表
- 查询表:查询结果对应的表,或查询中生成的临时表
- 视图表:虚表,不对应实际存储数据
三、关系代数
1、集合运算
广义笛卡尔积
- 设关系R的属性个数为m,有k1个元组
- 关系S的属性个数为n,有k2个元组
- 则R×S属性个数为m+n,有k1×k2个元组
关系R A B C
关系T F B
R×T结果 A R.B C F T.B
2、关系运算
(1)选择
- 选择是在关系R中选择满足给定条件的元组
- 是在关系的水平方向上选取符合给定条件F的元组
(2)投影
- 投影是在关系R上选取若干属性列A,并删除重复行,组成新的关系
- 是从列的角度进行运算
(3)连接
在R×S中,选取属性间符合一定条件下的元组,即在关系R中A属性组上的值与关系S中B属性组上的值满足比较操作θ的元组
- 等值连接:关系R中的属性M与关系S中属性N相等
- 自然连接:在R×S中,选取公共属性上具有相同值的元组,去掉重复列组成新的关系
(4)除法
设关系R的目(属性个数)为m,关系S的目为n,且m>n,且S≠空集
R÷S={t|<t,ts>∈R∧ts∈S}
R能被S除的充要条件:R中的属性包含S中的所有属性,R中有一些属性不在S中
3、关系代数运算实例
以高校图书管理系统数据库为例,下列四个关系如下所示:
- 读者类别(类别编号,类别名称,可借阅天数,可借阅数量,超期罚款额)
- 读者(读者卡号,姓名,性别,单位,电话,办卡日期,卡状态,类别编号)
- 图书(图书编号,书名,类别,作者,出版社,出版日期,单价,库存数量)
- 借阅(读者卡号,图书编号,借书日期,还书日期)