目录
- 一、关系数据库的基本概念
- (一)关系数据库的定义
- (二)基本表、视图
- (三)元组、属性、域
- (四)候选码、主码、外码
- 二、关系模型
- 三、关系的完整性
- (一)实体完整性
- (二)参照完整性
- (三)用户自定义完整性
- 四、关系操作
- (一)概念
- (二)关系代数语言
- (三)结构化查询语言
一、关系数据库的基本概念
(一)关系数据库的定义
关系数据库是一种建立在关系模型的基础上的数据库,是通过二维表来表示实体之间的联系,二维表由行与列组成。
(二)基本表、视图
在关系数据库中,关系通常表示为一个表,也称为基本表,即一个关系对应一个基本表,每个关系(表)都有其特定的行与列。另外,每个基本表是独立存在的,都有其相应的内容。视图是从一个或多个基本表中导出的表,也可以将这个表称为查询表。视图是基于基本表构建的,当基本表的数据发生变化时,视图中的数据也会相应地发生变化,但当视图变化,基本表不一定变化。
例如,只是对视图的展示方式进行修改时,并不会影响基本表;而对视图通过特定的语句来修改,则会影响到基本表。
对于下面两个表,通过销售员信息表和订单信息表查询所有员工中有订单销售员的信息表:
所导出来的表即为视图,它是基于表1和表2两个基本表构建的:
可以根据基本表来查询,也可以根据某一个查询来建立新的查询,即嵌套查询,后面的知识会学到。
(三)元组、属性、域
简单的来说,行是元组,列是属性。元组就是数据表中的一行,即表的每行对应一个元组。数据表中每列为属性,且属性的取值范围称为域,即每一个属性都有一个值域。
同一个关系的任意两个元组不能完全相同,否则会违背完整性约束,但不同的元组可以有相同的属性值。
例如,下图商品种类信息表中,包含了一件商品的种类ID、种类名称以及描述,其中每一行(每一元组)都代表了一件商品的相关信息;商品信息表中库存量为一个属性,它有相应的值域(取值范围)。
(四)候选码、主码、外码
数据表中用于唯一标识一个元组的标识符称为码,也称为数据库关键码。而候选码是码的子集,具有唯一性、最小性以及不可再分性等特点。
在一个关系中一般有多个候选码,只能选择一个候选码作为主码,主码可由一个或多个属性组成;外码是另一个表的主码,用于建立表与表之间的联系,通过外码可以保证表与表之间的一致性。例如,上面有两个表,商品种类信息表和商品信息表中,一件商品关联着其一个商品种类(CategoryID)。另外,外码不一定与主码同名称。
主键=主码,外键=外码,在数据库中的大多数情况下是可以互换使用的。
二、关系模型
关系模型是数据库系统(DBS)的核心和基础,由数据结构、数据操作以及数据完整性约束三要素组成。数据结构是静态特征,数据操作是动态特征,数据完整性约束是一组规则集合。
常用的数据模型有层次模型(树状)、网状模型(网状)、关系模型(关系)、半结构化数据模型等。数据库系统中最常用的模型是关系模型,其通过记录组或数据表的形式来组织数据。
三、关系的完整性
关系的完整性约束有三种,分别是实体完整性、参照完整性和用户自定义完整性,三个完整性要求共同保证了数据库中的数据准确、一致和有效。其中,实体完整性和参照完整性两者是关系模型必须满足的完整性约束。
(一)实体完整性
表中每一元组(行)的主码(主键)都是唯一的,且不能取空值,否则违反了实体完整性约束。例如,下面学生信息表中,学号是主键,实体完整性约束每个学生的学号必须是唯一的,且不能为空,通过学号即可准确地标识学生。
学号 | 年龄 | 姓名 |
---|---|---|
1901 | 15 | 李雅雯 |
1902 | 14 | 陈晓涵 |
1903 | 15 | 赵欣怡 |
16 | 钱梦琪 |
由于最后一个元组的主码缺失为空,所以违反了实体完整性约束。
(二)参照完整性
参照完整性规则就是定义主码(主键)和外码(外键)之间的引用规则,指的是两个表之间的数据完整性约束,一个表的外码参考另一个表的主码,外码可以为空值或非空值。
(三)用户自定义完整性
用户自定义完整性是可以允许数据库管理员根据特定的实际要求来为数据库制定额外的数据完整性规则。
四、关系操作
(一)概念
关系操作的特点是集合操作,操作的对象和结果都是集合。关系操作语言是数据库管理员用来操作数据库的工具,可分为关系代数语言、关系演算语言以及结构化查询语言三种,关系代数语言通过对关系运算表达查询,关系演算语言通过使用谓词来表达查询,而结构化查询语言具有前两者的共同特点。
(二)关系代数语言
关系代数通过对关系的运算来查询,其运算对象和结果都是关系,传统的集合运算有并、交、差和笛卡尔积运算,这些运算都是从元组(行)的角度来进行运算。专门的关系运算有选择、投影、连接、除运算,这些运算不仅涉及元组(行),也涉及属性(列)。
关系运算 | 符号描述 | 备注 |
---|---|---|
传统的集合运算 | ∪、∩、-、× | 并、交、差、笛卡尔积 |
专门的关系运算 | σ、π、⋈、÷ | 选择、投影、连接、除 |
1、差
关系R和关系S的差记为R-S,运算结果为属于R,但不属于S的所有元组(行)组成。
例如,下图有三个关系R、S和T,关系T是由关系R和S通过差运算得到的。
2、笛卡尔积(广义)
关系R和关系S的笛卡尔积记为R×S,若关系R有r个元组(行),关系S有s个元组(行),则R×S有r×s个元组。
例如,下图有三个关系R、S和T,关系T是由关系R和S通过笛卡尔积运算得到的,关系R有3行,关系R有3行,所以关系T有3×3=9行。
3、选择
在关系R中选出满足一定条件F的元组称为选择,其中F为逻辑表达式,记为σF(R)。
例如,下图σA=0(R)是由关系R中选出满足A属性中值为0的元组。
4、投影
在关系R中选出若干属性(列)A组成新的关系称为投影,记为πA(R)。
例如,下图在关系R中选出A、C、D属性组成。
5、连接
1、等值连接:记关系R和关系S的笛卡尔积为R×S,从R×S中选取中选取相等属性值(列)的元组(行)组成。
2、自然连接:记关系R和关系S的笛卡尔积为R×S,从R×S中选取中除去重复属性值(列)的元组(行),剩下的元组留下组成。自然连接也可以解释为通过两者的公共域的相等值进行连接,并把重复的属性和列去掉。
例如,下图中关系R和S通过自然连接得到关系T,是通过相等值B进行连接所得的。
3、外连接:用于返回匹配连接条件的属性值(行)以及不满足连接条件的属性值(行),外连接包括左外连接和右外连接。另外,还有全外连接,其能获取两个表中的所有记录,包括那些没有匹配项的记录,即没有匹配的填充为NULL(空值)。
(三)结构化查询语言
SQL即为结构化查询语言,是关系数据库的标准语言。SQL语言可分为以下四类:
1、数据定义语言DDL
2、数据操纵语言DML
3、数据查询语言DQL
4、数据控制语言DCL