关系数据库详解
关系数据结构及形式化定义详解
关系
关系模式
关系数据
关系模型的存储结构
关系的相关概念
-
(1)域(Domain):一组具有相同数据类型的值的集合。
-
例:整数、实数、介于某个取值范围的整数,{‘男’,‘女’}等。
-
(2)笛卡尔积:
-
注:所有域的所有取值的一个组合,不能重复。
-
实例:计算笛卡尔积
-
给出三个域:
-
D1=SUPERVISOR ={ 张清玫,刘逸}
-
D2=SPECIALITY={计算机专业,信息专业}
-
D3=POSTGRADUATE={李勇,刘晨,王敏}
-
计算D1,D2,D3 的笛卡尔积。
-
D1×D2×D3 =
-
{(张清玫,计算机专业,李勇),
-
(张清玫,计算机专业,刘晨),
-
(张清玫,计算机专业,王敏),
-
(张清玫,信息专业,李勇),
-
(张清玫,信息专业,刘晨),
-
(张清玫,信息专业,王敏),
-
(刘逸,计算机专业,李勇),
-
(刘逸,计算机专业,刘晨),
-
(刘逸,计算机专业,王敏),
-
(刘逸,信息专业,李勇),
-
(刘逸,信息专业,刘晨),
-
(刘逸,信息专业,王敏) }
-
笛卡儿积的表示方法:
-
笛卡儿积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。
-
(3)关系(relation):
-
D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,
-
表示为 R(D1,D2,…,Dn)。
-
注:关系名:R ,
-
关系的目或度(Degree):n
-
单元关系(n=1)和二元关系(n=2)
-
(4)元组:笛卡儿积中的一个元素、关系(表)中的一行、概念模型中的一个实体、现实世界中的某一具体事物。
-
(5)属性:主属性:候选码的诸属性,非主属性:不隶属任何候选码的属性
-
(6)码(候选码、主码、全码)
-
(7)域的概念
三种关系形态
- 基本关系(基本表或基表):实际存在的表,是实际存储数据的逻辑表示。
- 查询表:查询结果对应的表。
- 视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。
基本关系的性质
- 列是同质的(Homogeneous):每一列中的分量是同一类型的数据,来自同一个域。
- 不同的列可出自同一个域:其中的每一列称为一个属性,不同的属性要给予不同的属性名。
- 关系中列的位置具有顺序无关性。
- 关系具有元组无冗余性:即关系中的任意两个元组不能完全相同。
- 关系中元组的位置具有顺序无关性:即元组的顺序可以任意交换。
- 关系中每个分量必须取原子值:即每个分量都必须是不可分的数据项。
关系模式的定义
- 关系模式可以形式化地表示为: R(U,D,dom,F)
- R 关系名
- U 组成该关系的属性名集合
- D 属性组U 中属性所来自的域
- dom 属性向域的映象集合
- F 属性间的数据依赖关系集合
关系数据库
关系模式”为型,“关系”为值
- 在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。
- 关系数据库的型称为关系数据库模式,是对关系数据库的描述。 即若干域的定义,以及在这些域上定义的若干模式。
- 关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常简称为关系数据库。
关系模型的存储结构
- 存储结构:表文件,表文件的具体存储方式对用户透明。
关系操作
基本的关系操作
常用关系操作:
- 查询(Query)、插入(Insert)、删除(Delete)、更新(Update)
查询操作:
- 选择(select),并(union),投影(project),交(intersection),连接(join),差(except),除(divide),笛卡儿积(Cartesian Product)
关系操作的特点
- 集合操作方式,操作对象和结果都是集合。
- 不同于非关系数据模型。
关系数据语言的分类
- (1)关系代数语言:(如:ISBL),
- 特点是:用对关系的运算来表达查询要求。
- (2)关系演算语言(元组,域),元组关系演算语言(如:ALPHA、QUEL),域关系演算语言(如:QBE)。
- 特点是:用谓词来表达查询要求。
- (3)具有关系代数和关系演算双重特点的语言(如:SQL)
- 特点是:非过程化。
关系的完整性
关系的完整性包括:实体完整性,参照完整性,用户自定义完整性。
实体完整性
- 实体完整性规则:若属性A是基本关系R的主属性,则A不能取空值 。
- 实体完整性规则是针对基本关系而言的。一个基本表对应现实世界的一个实体集。
- 现实世界中的是实体是可区分的。
- 主码:唯一标识(值不可重复)。
- 主码中的属性不能取空值。
参照完整性
- 设F是关系R的一个或一组属性,但不是关系R的码。Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外码(foreign key),并称基本关系R为参照关系(Referencing Relation),基本关系S为(Referenced Relation)被参照关系或目标关系(Target Relation)。关系R和S不一定是不同的关系。
参照完整性规则:
- 外码F的取值必须符合以下规则:
- 空值或者基本关系S中的某个元组的主码值。
用户定义的完整性
用户定义的完整性(User-defined Integrity):针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的涉及必须满足的语义要求。
关系代数
关系代数运算符
- 集合运算符(并、差、交、笛卡尔积)
- 比较运算符(大于(等于)、小于(等于)、等于、不等于)
- 关系运算符(选择、投影、连接、除)
- 逻辑运算符(与、非、或)
传统集合运算
- 并(union)
- 差(Except)
- 交(Intersection)
- 笛卡尔积(Cartesian Product)
专门关系运算
- 选择(Select)
- 投影(Project)
- 连接(Join)
- 除(Divide)