DBS概论(四)
关系数据库(总)
一、关系数据结构及形式化定义
1、关系
从用户看来,关系模型中的数据的逻辑结构就是一张扁平的二维表
这里从集合论角度给出关系数据节后的的形式化定义
域(domain)
域一组具有相同数据类型的值的集合
笛卡尔积(cartesian product)
笛卡尔积是域上的一种集合运算
关系(relation)
定义在D1XD2XD3…Dn域上的子集叫做在D1,D2,D3,…,Dn域上的关系
候选键/候选码(candidate key)
某个关系变量的一组属性所组成同时满足下列条件的集合:
- 这个属性集合始终能够确保在关系中能唯一标识元组(即超键)
- 在这个属性集合中找不出合适的真子集能够满足条件
主属性: 候选码的诸属性
非主属性/非码属性: 不包含任何候选码中的属性
主键/主码(primary key)
- 用户选作元组标识的一个候选键作为主键
- 一个表只有一个主键。
- 主键可以由一个字段,也可以由多个字段组成,分别称为单字段主键或多字段主键
- 它可以唯一确定表中的一行数据,或者可以唯一确定一个实体
外键(foreign key)
将A表的值放入B表来表示关联,并且所使用的值是A的主键值(在必要时可包括复合主键值),则B表中保存这些值的属性称为外键
2、关系模式(relation schema)
关系的描述称为关系模式
一般形式化表示为R(U,D,DOM,F)
R : 关系名
U: 组成该关系的属性名集合
D : 属性组U中属性所来自的域
DOM: 属性向域的映象集合
F : 属性间的数据依赖关系集合
特点
- 概念单一
- 规范化
- 以二维表格表示
优缺点:
(1) 数据结构单一
关系模型中,不管是实体还是实体之间的联系,都用关系来表示,而关系都对应一张二维数据表,数据结构简单、清晰。
(2)关系规范化,并建立在严格的理论基础上
构成关系的基本规范要求关系中每个属性不可再分割,同时关系建立在具有坚实的理论基础的严格数学概念基础上。
(3)概念简单,操作方便
关系模型最大的优点就是简单,用户容易理解和掌握,一个关系就是一张二维表格,用户只需用简单的查询语言就能对数据库进行操作。
3、关系数据库
在一个给定的应用领域中,所有关系的集合构成一个关系数据库
**关系数据库的型:**对关系数据库的描述
**关系数据库的值:**关系模式在某一时刻对应的关系的集合,通常就称为关系数据库
4、关系模型的存储结构
- 有的DBMS中一个表就对应一个OS文件
- 有的DBMS会从OS那申请若干个大得到文件,然后自己划分空间、组织表、引索等存储结构并进行存储管理
二、关系操作
1、基本的关系操作
PS: 操作的对象和结果都是集合
2、关系数据语言的分类
结构化查询语言SQL(Structed Query Language)不仅有丰富的查询功能,而且还具有数据定义和数据控制功能,是一种高度过程化的语言
三、关系完整性
1、实体完整性
要求每个数据表都必须有主键,而作为主键的所有字段,其属性必须是独一及非空值
2、参照完整性
参照的关系中的属性值必须能够在被参照关系找到或者取空值(null)
在实际操作时如更新、删除、插入一个表中的数据,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确,不正确则拒绝操作。
3、用户定义的完整性
用户自定义完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
主要包括:
- 非空约束
- 唯一约束
- 检查约束
- 主键约束
- 外键约束
四、关系代数
关系代数是一种抽象的查询语言,它用对关系的运算来表达查询,其运算对象是关系,结果亦为关系。
关系代数所用到的运算符有两类:
- 集合运算符(行)
- 专门的关系运算符(行、列)