关系数据库基础
关系模型的基本概念
关系模型概述
-
关系:关系对应一个二维表,表示数据的逻辑结构,将显示世界中实体及其之间的联系归结为简单的二位关系,其中表中的每一行代表一个元组(记录),每一列代表一个域(属性),可用更一般的形式定义。
-
D1╳D2╳… ╳Dn子集叫做域D1,D2,… ,Dn上的关系,表示为R(D1,D2,… ,Dn),其中R表示关系名,n是关系的目或度。
-
元组、属性:在关系模型中,二维表(关系)中的行称为元组(或称为记录)。二维表的列称为属性。每个属性对应表中的一个字段,属性名也就是字段名,属性值为隔行的字段值。
-
域:是一组既有相同数据类型值的集合。用域表示属性的取值范围,**属性A的域可用DOM(A)**表示,每个属性对应一个域,不同的属可以对应同一个域。
-
关系模型:关系模型是指以二维表结构表示的实体关系,用键表示实体间联系的数据模型,其中键唯一标识一个元组,并且键可以是单一属性或属性组合。
-
元数和基数:元数指关系中属性的个数。基数指元组的个数。
-
键:键也称为码,在关系中由唯一可标识元组的属性或属性组构成。
- 候选键-超键:若关系表中的某一属性或属性组合的值可唯一确定一个元组,则称该属性或属性组为候选码。没有多余属性则称为超键.
- 主键:主键是在候选键中选定一个键作为元组标识.一般如不加以说明,键指主键(码),如果关系中有多个候选键,可取其中一个作为该关系的主键,主键不允许为空值(非零和空格).
- 外键。外键指若在关系R中包含另一个关系S的主键所对应的属性或属性组K,则称K为R的外键(码)。
- 外键表示是另一个关系的主键,但不是本关系的主键。关系数据库的表间关系需要借助外键来建立。此外,外键需要满足外键约束条件:外键或者为空值,或者是另外一个关系已存元组的主键。
关系的类型与性质
- 关系有三种类型:基本关系(又称为基本表或基表)、查询表和视图表。
- 基本表:是实际存在的表,是实际存储数据的逻辑表示。
- 查询表:是查询结果对应的表。
- 视图表:是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。
- 基本关系的性质:
- 关系中属性(列)必须是原子值,即每个属性都必须是不可分的数据项。
- 关系中列是同质的,也就是说每一列中的分量是同一类型的数据,也可以说是具有相同的域(同列同类同域)。
- 关系中的列没有先后顺序之分,即列的次序可以任意交换。
- 关系中任意两行元组的次序可以交换,即元组无先后顺序之分。
- 不同的列可以来自同一域,即列的类型相同,不同的列要给予不同的列名(属性名)加以区分,标明是不同的列(任意两列不能相同)。
- 任意元组的候选键不能相同,任意两行元组不能完相同,如果完全相同则说明数据存在重复,会造成存储空间的浪费和查询统计结果的不一致或错误。因此,数据库中应该避免元组的重复现象,保证实体的唯一性和完整性。
关系模式的表示
-
关系模式是对关系的描述。
-
可形式化的表示为R(U,D,DOM,F)
其中R为关系名,U为组成该关系的属性(列)名集合,D为属性组U中属性所来自的域,DOM为属性域的映像集合,F为属性间数据的依赖关系集合。
-
-
关系模式的主要描述内容:
- 关系模式指明关系二维表中元组集合的结构,即它由哪些属性构成,这些属性的域(在具体关系数据库中体现为属性的数据类型和长度),以及属性与域之间的映射关系.
- 关系模式应该说明属性间的相互关联关系和属性本身的约束条件。
E-R图与关系模型之间的转换
- 转换规则
- 实体转换关系规则:将每一个实体转换成一个关系模式时,实体的属性就是关系的属性,实体的标识符就是关系的键。
- 二元联系类型的转换规则:
- 若实体间的联系为一对一(1:1),则将两个实体类型转换成两个关系模式的过程中,任选一个属性或属性组在其中加入另一个关系模式的键和联系类型的属性。
- 若实体间的联系是一对多(1:n),则在多的一端实体的关系模式中,加上一的一端实体类型的键和联系类型的属性。
- 若实体间联系是多对多(m:n),则将联系类型也转换为关系模式,其属性为两端实体类型的键加上联系型的属性,而键为两端实体键的组合.
关系模型的完整性
- 关系模型的完整性规则指的是对关系的某种约束条件,即关系的值随时间的变化时应该满足的一些条件,也可以理解为关系操作在不断的更新数据时应该遵守的规则。
- 约束条件是现实世界的要求,用于保证数据库中数据的正确性,如果不遵循或没有约束条件,数据库中会存在大量无意义、无价值的垃圾数据。
- 在关系模型中存在三类完整性约束,即实体完整性、参照完整性和用户定义的完整性。
- 实体完整性