关系数据库

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

1.1 关系

关系模型的数据结构只包含单一的数据结构------关系,在关系模型中,现实世界的实体以及实体之间的各种联系均用单一的结构类型,即关系来表示。关系模型是建立在集合代数的基础上的,从集合论的角度给出关系数据结构的形式化定义。

1、域:一组具有相同数据类型的值 的集合。例如:自然数,整数,大于0且小于等于100的整数,{0,1},{男,女}等。

2、笛卡尔积:给定一组域D1,D2,D3,......,Dn,允许其中某些域是相同的,D1,D2,D3,......,Dn的笛卡尔积为:D1×D2×......×Dn={(d1,d2,......,dn) | di∈Di,i=1,2,......,n},其中,每一个元素(d1,d2,......,dn)叫做一个n元组,简称元组,元组中每一个值叫做一个分量。就是每次在每一个域中选一个元素组成一个元组,每个元组元素不尽相同,最后将所有元组放在集合中即为笛卡尔积

3、关系:D1×D2×......×Dn的子集叫做在域D1,D2,D3,......,Dn上的关系,表示为R(D1,D2,D3,......,Dn),其中,R表示关系的名字,n是关系的目或度。即关系是笛卡尔积的有限子集,所以关系也是一张二维表,表的每行对应一个元组,每列对应一个域,由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性,n目关系必有n个属性。

  • 超码又称"超级码",是一个或多个属性的集合,这些属性可以在一个实体集中唯一地标识这个实体。
  • 若关系中的某一属性组能唯一地标识一个元组 ,而其真子集不能,则称该属性组为候选码
  • 超码包括候选码,虽然超码中可以唯一标识一个实体,但是可能大多数超码中含有多余的属性。如果超码的任意真子集不能唯一地标识一个元组,则超码就是候选码。
  • 若一个关系有多个候选码,则选定其中一个为主码
  • 候选码的诸属性称为主属性
  • 若关系模式的所有属性是这个关系的候选码,称为全码

关系有三种类型:基本关系(通常又称为基本表或基表),查询表和视图表 。其中,基本表是实际存在的表,它是实际存储数据的逻辑表示(存储数据的);查询表是查询结果对应的表(一个表);视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据(显示出来的)。

基本关系有6条性质:

  • 列是同质的:每一列中的分量来自一个域。
  • 不同列可出自同一个域(但属性名是不同的(唯一))。
  • 列的顺序无所谓。
  • 任意两行元组的候选码不能取相同的值。
  • 行的顺序无所谓。
  • 每一个分量必须是不可分的数据项。

1.2 关系模式

关系的描述称为关系模式,它可以形象化的表示为R(U,D,DOM,F),其中,R为关系名,U为组成该关系的属性名集合,D为U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。通常可简记为R(U)。

1.3 关系数据库

所有关系的集合构成一个关系数据库。关系数据库有型和值之分,关系数据库的型也称为关系数据库模式,是对关系数据库的描述。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。

1.4 关系模型的存储结构

表是关系数据的逻辑模型,在关系数据库的物理组织中,有的关系数据库管理系统中一个表对应一个操作系统文件,将物理数据组织交给操作系统来完成;有的关系数据库管理系统从操作系统那里申请若干个大的文件,自己划分文件空间,组织表、索引等存储结构,并进行存储管理。

二、关系操作

2.1 基本的关系操作

增删改查。关系的查询表达能力很强,是关系操作中最主要的部分,查询操作又可以分为选择、投影、并、差、笛卡尔积(5中基本操作)、连接、交等。

2.2 关系数据语言的分类

关系数据语言包括:

  • 关系代数语言(例如ISBL)
  • 关系演算语言
  • 具有关系代数和关系演算双重特点的语言(例如SQL)

三、关系的完整性

3.1 实体完整性

若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。例如:选修(学号,课程号,成绩)关系中,"学号,课程号"为主码,则"学号"和"课程号"两个属性都不能取空值。

3.2 参照完整性

若属性(属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须:

  • 或者取空值(F的每个属性值均为空值)。
  • 或者等于S中某个元组的主码值。

例如:对于学生(学号,姓名,性别,专业号,年龄)关系中,学号是主码,专业号是外码,此时,专业号为空表示当前学生还未确定专业,或者专业号为相对应的关系专业(专业号,专业名)中专业号相等。

3.3 用户定义的完整性

用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

四、关系代数

4.1 传统的集合运算

设关系R和关系S都有n个属性,且相应的属性取自同一个域。

  • 并:∨,属性相同,结果仍为n目关系,由属于R或属于S的所有元组组成。
  • 差:- ,属性相同,结果仍为n目关系,由属于R而不属于S的所有元组组成。
  • 交:∧,属性相同,结果仍为n目关系,由属于R且属于S的元组组成。
  • 笛卡尔积:不要求属性相同。

4.2 专门的关系运算

1、选择:σSdept='IS'(Student),即在Student表中找到属性Sdept为IS的所有元组。

2、投影:∏Sname,Sage(Student),即在Student表中查找属性Sname和Sage两列,同时将两列中重复行取消。

3、连接:

  • 等值连接:从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组。
  • 自然连接:将重复属性去掉。

4、除:R÷S