数据库系统概论 - 关系数据库

关系数据库是创立在关系模式上的数据库,关系型数据库中有许多张表,每张表表示现实世界的各种实体。各种实体之间的联系均用关系模型来表示

关系模式由关系数据结构关系操作集合关系完整性约束三部分组成,所有关系的集合构成关系数据库

关系模式是,是关系的描述,是静态的,稳定的
关系(一张具体的二维表)是,是元组的集合,是动态的,随时间不断变化的

关系数据结构

关系

笛卡儿积

给定一组域,允许其中某些域是相同的,这些域相乘即为域的笛卡儿积,如:D1(A,B), D2(C,D),则 D1 * D2 = {(A,C),(A,D),(B,C),(B,D)} 。一个域允许的不同取值个数称为这个域的基数

关系

D1 * D2 * D3 * ... * Dn 的子集叫做在域 D1, D2, D3, ... , Dn 上的关系,表示为 R(D1, D2, D3, ... , Dn),R 表示关系的名字,n 称为关系的

关系的三种类型:基本关系(实际存储数据的逻辑表示)、查询表(查询结果对应的表)和视图表(由基本表和其它视图表导出的表,不存储实际数据)

码和其分类

若关系中的某一属性属性组的值能唯一的标识一个元组,而其任何子集都不能标识,则称该属性组为候选码。如学生实体中,可以使用 学号 区分实体,也可以使用 姓名 + 班级 来区分学生,则学生实体的候选码为:学号姓名+班级

若一个关系有多个候选码,可以选择其中一个作为主码,如学生实体中可以选择 学号姓名+班级 作为主码

候选码中诸属性称为主属性,不包含在任何候选码中的属性称为非主属性非码属性,如果某个关系模式的所有属性都是这个关系模式的候选码,则成为全码

关系操作

基本操作

关系模式最常用的关系操作包括查询插入、删除、修改

查询操作分为:选择、投影、连接、除、并、差、交、笛卡儿积

5 种基本查询操作:选择、投影、并、差、笛卡儿积,其他操作根据基本操作定义和导出

关系数据语言的分类

关系代数用对关系的运算来表达查询要求,关系演算则用谓语表达查询要求,结构化查询语言(SQL)介于关系代数和关系演算之间

SQL 不仅仅有数据查询功能,还有数据定义和数据控制功能

关系的完整性

实体完整性约束参照完整性关系系统自动支持,称为关系的俩个不变性
用户定义的完整性是由应用领域需要遵循的约束条件

实体完整性约束

实体的所有主属性都不能为空,如果出现了就不能唯一确定一个实体

参照完整性约束

一个关系模式的属性(r1)中可能包含另一个关系模式的主码(r2),则这个属性在 r1 上称为参照 r2 的外码,r1 和 r2 的取值需要一致,可以取空则代表其他含义

参照完整性约束是关系与关系之间的约束,即表与表之间的约束

用户定义的完整性约束

某一具体应用所涉及数据必须满足的语义,如不能为空,不能为负等

关系代数

关系代数是一种抽象的语言,是用对关系的运算表达查询,按照运算符的不同可以分为传统的集合运算专门的关系运算

传统的集合运算

  • :由即属于 R 又属于 S 的元组组成
  • :由属于 R 或属于 S 的元组组成,如果两张表当中都出现了同一个元组,新建的表当中只会出现一次
  • :R-S 表示属于 R 而不属于 S 的所有元组组成
  • 笛卡儿积:集合相乘,n 目和 m 目的关系 R 和 S 的笛卡儿积是一个(n+m)列的元组集合

专门的关系运算

  • 选择:选择关系 R 中满足给定条件的元组
  • 投影;从关系 R 中选择若干属性列组成新的关系
  • 连接:从两个关系的笛卡儿积中选取属性间满足一定条件的元组,等值连接是选取属性值相同的元组,自然连接是一种特殊的等值连接,要求关系 R 中的属性 A 和关系 S 中的属性 B 名字相同,在结果中把重复的属性列去掉,非等值连接是操作符号不是 = 的连接,如:!= > < 等
  • 除运算:关系 R 除以关系 S 的结果为关系 T,则 T 包含所有在 R 但不在 S 中的属性及其值,且 T 的元组与 S 的元组的所有组合都在 R 中

两个关系 R 和 S 在做自然连接时,选择两个关系在公共属性上值相等的元组构成新的关系,关系 R 中某些元组有可能在 S 中不存在公共属性上值相等的元组,从而造成 R 中这些元组在操作时被舍弃了,S 中某些元组也可能被舍弃,被舍弃的元组叫做悬浮元组

如果把悬浮元组也保存在结果关系中,而在其他属性上填 NULL,则成为外连接(此时左边和右边关系的悬浮数组都保存在结果关系中),只保留左边关系 R 中的悬浮元组叫做左外连接,只保留右边关系 S 中的悬浮元组叫做右外连接

03-05 21:38