数据库系统概论第二章笔记----关系数据库
关系数据库
-
数据结构中的关系及其形式化定义
-
不同类别的操作
-
三种主要类型的三类及其特征
-
关系模式的相关属性
-
如何构建并定义一个有效的
- 关系模式在实际应用中的表现与特性
-
关系数据库
-
-
关系数据结构
-
-
基本关系操作
-
- 常用的关系操作
- 关系操作的特点
-
关系数据库语言的分类
-
-
关系完整性
-
-
实体完整性
-
参照完整性
-
- 外码(Foreign Key)
- 参照完整性规则
-
用户定义的完整性
-
-
-
关系运算领域
-
- 经典的集合运算:并集(Union)、差集(Difference)、交集(Intersection)、直积(Cartesian Product)
-
特殊的集合运算:选择(Selection)、投影(Projection)、连接操作(Join)、商运算(Division)
关系数据结构及形式化定义
关系以及关系的操作
关系是用来表示现实世界中实体及其相互联系的重要手段。其逻辑架构通常以二维表格的形式呈现。由域D1、D2……Dn组成的集合称为在这些域上定义的关系表(R),其中R代表关系名,n代表关系的目或度。每个具体的行数据对应一个元组或元素,在这一数据结构中每列则对应一个属性。

- 域是同一数据类型值所组成的集合。
- 笛卡尔积被称为所有域中取值的所有组合,请参阅第5页。
- 元组是笛卡尔积中的每一个元素(d₁, d₂, ..., dₙ),通常被称为n维元组、元组或记录,并以t表示其具体数值。
- 其中每一个di则被定义为其对应的分量位置上的具体数值。
- 若Di为有限集,则其基数mi乘积的结果构成了笛卡尔积D₁×D₂×...×Dₙ的整体基数M:
M = m_1 \times m_2 \times \ldots \times m_n

- 笛卡尔积的表达方式:笛卡尔积可通过形式化的方式将其表示为二维表格的形式,在这种表格中每一行都代表一个有序的元素组合(即元组),而每一列则代表不同的域(即不同的取值范围)。
- 单元与二元关系:当参数n分别为1和2时,则分别称为单元关系和二元关系。
- 属性与字段名:在数据库设计中,默认情况下不同列可能属于相同的域(即类型),但为了明确区分它们通常需要给每个字段命名以便识别。因此在一个n目(即含有n个列)的关系中必定会有n个不同的字段名称。
- 关键字与候选关键字:在数据库设计中,“关键字”的概念有时会根据上下文有所变化。“全关键字是由所有字段名称组成的集合构成的一个候选关键字”,例如学生证号和学号这两个字段都可以作为单独的候选关键字使用。

三类关系与基本关系的性质
三类关系:
- 核心关联(基础关联):指真实存在的数据间的联系性,在数据库中用数据结构模型来体现这些联系。
- 查询操作的结果对应的元数据结构为虚元数据表格。
- 视图定义(Virtual View):通过从基础或已有视图中获取信息而生成的虚拟元数据表格,并且这些虚拟表格与实际存储的数据信息无关。
基本关系的性质:
列必须具有统一类型。
不同字段可能来自同一域中。
字段之间的顺序并不重要。
每对元组必须具有唯一的候选键。
元组之间的顺序无关紧要。
每个分量必须是不可分割的基本值类型。

关系模式
关系模式是对关系的描述,关系模式是型,关系是值。
- 元组集合的结构主要由三个部分组成:一是各属性的具体构成形式;二是各属性所属的域类型;三是各属性与对应域之间的映射关系。
- 关系模式主要由携带在其上的元组语义决定。
- 现实世界中仍然存在各种完整性约束条件。
定义关系模式

关系模式和关系
关系模式是一个固定且恒定不变的结构。
关系表现出动态变化特性,在随着时间推移不断演变。
在特定时刻的关系表现为其模式下的状态或内容。
关系数据库
关系数据库是指在一个特定领域内形成的这些属性和数值信息构成的关系集合所形成的单一数据模型。此数据结构中的属性和数值信息:属性通常用大写字母表示。
- 关系数据类型的类型:阐述了其相应的数据结构及其完整性约束。
- 一个典型的例子是基于这些域上的多个关系模式。
- 关系数据类型的值(状态)是在某一时刻对应的关系集合。
关系数据结构
基本关系操作
常用的关系操作
- 查询(主要):选择、投影、连接、除、并、交、差等
- 数据更新:插入、删除、修改。
关系操作的特点
集合操作方式:操作的对象和结果都是集合,一次一集合的形式。
关系数据库语言的分类
具有关系代数和关系演算双重特点的语言:SQL。
关系完整性
实体完整性和参照完整性作为关系模型所应具备的基本要求之一
实体完整性
- 实体完整性原则涉及基本关系。一个基本表通常对应现实世界的某个具体领域。
- 现实世界中的各个体是可区分的,它们各自具有其独特的标识信息。
- 通过使用主码字段来实现数据的独特性保证。
- 在关系模型中,默认情况下不允许主属性字段为空。
参照完整性
通过关系模型中的机制描述实体之间及其联系的关系结构,并且存在有关这些实体间相互引用的情况
外码(Foreign Key)
定义:对于任意的关系R(U,R),设F是R中的一个或一组属性,并且F不是R中的候选码。如果F与另一个关系S(US,US)的主键Ks相对应,则称F为R中的外键。其中的关系R称为参照表(referencing table),而关系S则被称为被参照表(referenced table)或目标表(target table)。
说明:外码在数据库设计中具有重要的意义。其主要作用是在数据库设计中发挥关键作用,在实际应用中能够实现数据间的关联性。外码实现了数据间的关联性,并且它是建立两个不同实体之间联系的重要工具。外码通常用于描述现实世界中实体之间存在的联系。
- 关系R和S不一定不同。
- 目标关系S的主键K应位于同一领域内与其参照关系的外键F。
- 外键不必与其相应的主键同名。
参照完整性规则
属性F是基本关系R的外键,并对应于基本关系S的主码Ks。对于R中的每一个元组,在其对应的F值上必须满足:要么为空,要么能够在主码Ks中找到对应的值。
用户定义的完整性
基于某个特定的关系型数据库系统中的约束条件,用于描述某个特定的应用场景中所需遵循的数据语义规范。无需相关应用程序执行用户自定义数据完整性检查。
关系代数
一种典型的高度抽象的查询语言称为关系代数,在这种语言中通过对特定对象即关系的操作来实现查询目标。
该方法基于关系的操作对数据进行处理,并能生成新的结果。
根据不同的运算符类型将这些操作划分为传统的集合运算与专门的关系运算两大类。
集合运算是从行的角度对数据量进行处理。
而专门的关系运算法则不仅关注数据量还关注数据维度。

传统集合运算:并、差、交、笛卡尔积
详见P7。
说明:
- 同目:即两个关系具有相同的属性个数,对应的属性具有相同的域。
专门的关系运算:选择、投影、连接、除
详见P7,P8,P9。
实例:



具体来说,在Sdept中如果CS出现重复现象,则表明Sname并未出现相同的重复情况



浮选元组是在自然连结时被舍去的一些记录项。
在外连结操作中, 若需要保留被舍去的行, 则会在结果表中用Null填充这些字段。
左外连结仅包含左边表中的未匹配记录。
右外连结则仅包含右边表中的未匹配记录。

除的实例:




综合实例:





