数据库系统概述学习笔记之——关系数据库

关系数据库

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

依据数据模型的三要素,关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。下面依次介绍:

1.1、关系

关系模型的数据结构非常简单,只包含单一的数据结构——关系。在用户看来,关系模型数据的逻辑结构就是一张扁平的二维表。关系模型是建立在代数的基础上,这里从集合论的角度给出关系数据结构的形式化定义:

  • 域是一组具有相同数据类型的值的集合。

  • 笛卡尔积

    笛卡尔积是域上的一种集合运算。

    定义:给定一组域:D1,D2,…,Dn,允许其中某些域是相同的,这一组域的笛卡尔积为:

D 1 ✖ D 2 ✖ . . . ✖ D n = { ( d 1 , d 2 , . . . , d n ) ∣ d i ∈ D i , i = 1 , 2 , . . . , n } D1✖D2✖...✖Dn = \{(d1,d2,...,dn)|di∈Di,i=1,2,...,n\} D1D2...Dn={ (d1,d2,...,dn)diDi,i=1,2,...,n}

​ 其中,每一个元素 (d1,d2,…,dn) 叫做一个 n-元组,简称元组。元素中的每一个值 di 称为一个分量。一个域允许的不同取值个数称为 这个域的基数笛卡尔积可表示为一张二维表。表中的每行对应一个元组,表中的每一列的值来自一个域

  • 关系

    D1✖D2✖…✖Dn 的子集叫做在域 D1,D2,…,Dn 上的关系,表示为:R(D1,D2,…,Dn)。这里的 R 为关系的名字,n 为关系的目或度。

    若关系中某一属性组的值能唯一地标识一个元组,而其他子集不能,则称该属性组为候选码若一个关系有多个候选码,则选定其中一个为主码候选码的诸属性称为主属性。不包含在任何候选码中的属性称为非主属性或非码属性。在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码

    关系可以有三种类型:基本关系(通常称为基本表或基表)、查询表和视图表。基本关系具有以下 6 条性质:

    1. 列是同质的,即每一列中的分量是同一类型的数据,来自同一个域;
    2. 不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名;
    3. 列的顺序无所谓;
    4. 任意两个元组的候选码不能取相同的值;
    5. 行的顺序无所谓;
    6. 分量必须取原子值,即每一个分量都必须是不可分的数据项。

1.2、关系模式

在数据库中要区分型和值。关系数据库中,关系模式是型,关系是值。关系模式是对关系的描述。那一个关系需要描述哪些部分呢?

定义:关系的描述称为关系模式。它可以形式化地表示为:R(U,D,DOM,F)

其中,R 为关系名,U 为组成该关系的属性名集合,D 为 U 中属性所来自的域,DOM 为属性向域的映像集合,F 为属性间数据的依赖关系集合

1.3、关系数据库

在关系模式中,实体以及实体间的联系都是用关系来表示的。在给定的一个应用领域中,所有关系的集合构成一个关系数据库

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


2、关系操作

2.1、基本的关系操作

关系模型中常用的关系操作包括查询操作和插入、删除、修改操作两大部分。查询操作又可以分为选择、投影、连接、除、并、差、交、笛卡尔积等。其中选择、投影、并、差、笛卡尔积是 5 种基本操作

2.2、关系数据语言的分类

关系代数语言(ISBL)、关系演算语言:元组关系演算语言(ALPHA、QUEL)和 域关系演算语言(QBE)、具有关系代数和关系演算双重特点的语言(SQL)


3、关系的完整性约束

3.1、实体完整性约束

规则:若属性(指一个或一组属性)A 是基本关系 R 的主属性,则 A 不能去空值

3.2、参照完整性约束

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

  • 取空值;
  • 或者等于 S 中的某个元组的主码值。

3.3、用户自定义约束

用户自定义的关系数据库的约束条件。


4、关系代数

4.1、传统的集合运算

  • 笛卡尔积

4.2、专门的关系运算

  • 选择
  • 投影
  • 连接
    • 等值连接
    • 自然连接:一种特殊的等值连接,它要求两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉。
    • 外连接:自然连接中被舍弃的元组称为悬浮元祖,把悬浮元组也保存在结果关系中,而在其他属性上填空值。
    • 左外连接:只保留左边关系中的悬浮元组。
    • 右外连接:只保留右边关系中的悬浮元组。
  • 除:象集来定义的

5、总结

  1. 关系:一个关系对应通常说的一张表
  2. 关系模式:关系的描述
  3. 关系模型:关系模型由关系数据结构,关系操作集合,关系完整性约束三部分组成
  4. 关系和关系模式的区别
    1. 关系模式是型,关系是值,关系模式是对关系的描述
    2. 关系是关系模式在某一个时刻的状态或者内容,关系模式是静态的、稳定的,而关系是动态的,随时间不断变化的,因为关系操作在不断地更新着数据库中的数据
    3. 类似于面向对象程序设计中”类“与”对象“的区别。”关系“是”关系模式“的一个实例,可以把”关系”理解为一张带数据的表,而“关系模式”是这张数据表的表结构
  5. 关系模型和关系的区别
    • 关系模型包含关系,关系是关系模型的数据结构,在关系模型中,现实世界的实体以及实体间的各级联系均用单一的结构类型,即关系来表示

猜你喜欢

转载自blog.csdn.net/qq_36879493/article/details/108292023