关系数据库

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

关系

  • 1、域

    • 域是一组具有相同数据类型的值的集合
  • 2.笛卡尔积

  • 3.关系

    • 若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码。若一个关系有多个候选码,则选定其中一个为主码。候选码的诸属性称为主属性。不包含在任何候选码中的属性称为非主属性或非码属性。
    • 关系可以有三种类型:基本关系(通常又称为基本表或基表)、查询表和视图表。其中,基本表是实际存在的表,它是实际存储数据的逻辑表示;查询表是查询结果对应的表;视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的储数据。
    • 关系的每一个分量必须是一个不可分的数据项

关系模式

  • 关系的描述称为关系模式。它可以形式化地标识为R(U,D,DOM,F)其中R为关系名,U为组成该关系的属性名集合,D为U中属性所来自的域,DOM为属性想域的映像集合,F为属性见数据的依赖关系集合。

关系数据库

  • 在一个给定的应用领域中,所有关系的集合构成一个关系数据库。
  • 关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述。关系数据库模式包括若干域的定义,以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。

关系操作

基本的关系操作

  • 关系模型中常用的关系操作包括查询(query)操作和插入(insert)、删除(delete)、修改(updata)操作两大部分。
  • 关系的查询表达能力很强,是关系操作中最主要的部分。查询操作又可以分为选择(select)、投影(project)、连接(join)、除(divide)、并(union)、差(except)、交(intersection)、笛卡尔积等。其中选择、投影、并、差、笛卡尔积是5种基本操作。

关系数据语言的分类

  • 关系代数语言(例如ISBL)

  • 关系演算语言

    • 元组关系盐酸语言(例如ALPHA、QUEL)
    • 域关系演算语言(例如QBE)
  • 具有关系代数和关系演算双重特点的语言(例如SQL)

关系的完整性

实体完整性

  • 若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取控制。所谓控制就是“不知道”或“不存在”或“无意义”的值。

参照完整性

  • 设F是基本关系R的一个或一组属性,但不是关系R的码,K是基本关系S的住吗。如果F与K相对于,则称F是R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系

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

    • 或者取空值
    • 或者等于S种每个元组的主码值

用户定义的完整性

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

关系代数

传统的集合运算

专门的关系运算