database-theory-2
关系数据库
关系模型的基本概念
-
域(Domain)
-
定义:一组具有相同数据类型值的集合。例如,整数,实数,{0,1}等。
-
元组和分量
- 定义:给定一组域D1 , D2 ,…, Dn,这些域中可以有相同的。 D1 , D2 ,…, Dn的笛卡尔积(Cartesian Product)为: D1×D2×…×Dn = {(d1 , d2 , … , dn) | di∈Di , i=1,…,n}。 笛卡尔积的每个元素(d1 , d2 , … , dn)称作一个n元组 (n-tuple)或简称元组。元组的每一个值di叫做一 个分量(component)。
-
关系的定义:笛卡尔积D1×D2×…×Dn的子集叫做在域D1 , D2 ,…, Dn上的关系,用R(D1 , D2 ,…, Dn )表示。R是关系的名字,n是关系的度或目(Degree)。
当n=1时称为单元关系,
当n=2时称为二元关系,依此类推。
-
关系的性质
-
列是同质的(Homogeneous)即每一列中的分量来自同一域,是同一类型的数据;
-
不同的列可出自同一域,每列必须有不同的属性名;
-
列的顺序无所谓,即列次序可以互换;
-
任意两个元组不能完全相同;
-
行的顺序无所谓,即行次序可以互换;
-
每一分量必须是不可再分的数据。满足这一条件的关系称作满足第一范式(1NF)的。
-
关系数据模型
关系模型的数据结构
-
关系模型的数据结构—关系
- 实体及实体之间的联系均用单一的数据结构—“关系”来表示。
-
几个基本概念
-
关系、域、n目关系、元组、属性。
-
码(Key,键)
-
候选码(Candidate key):关系中的某一属性组,若它的值唯一地标识了一个元组,并具有最小性,则称该属性组为侯选码。
-
主码(Primary key,首码,码):若一个关系有多个侯选码,则选定其中一个为主码。
-
-
主属性与非主属性
- 码中的诸属性称为主属性,不包含在任何候选码中的属性称为非主属性。
-
关系数据库(关系数据库的型和值的概念)
-
关系模式的集合构成关系数据库模式—关系数据库的型;
-
关系的集合则构成具体的关系数据库—关系数据库的值。
-
-
关系模型的语义约束
-
实体完整性
-
参照完整性
-
用户定义完整性
- 用户针对具体的应用环境定义的完整性约束条件。
-
实体完整性(Entity Integrity)
-
要有属性或属性组合作为主码,主码值不可为空或部分为空。或定义为若属性A是关系R的主属性,则属性A不能取空值。
-
空值的含义是:不知道或不存在的值。
-
-
参照完整性(Referential integrity)
-
外部码
- 设F是基本关系R的一个或一组属性,但不是R的码。如果F与基本关系S的主码Ks相对应,则称F是关系R的外部码(Foreign Key),并称R为参照关系(Referencing Relation),S为被参照关系(Referenced Relation)或目标关系(Target Relation)。R和S不一定是不同的关系。
- 目标关系S的主码Ks和参照关系的外部码F必须定义在一个域上。
-
参照完整性
- 如果关系R的外部码Fk与关系S的主码Pk相对应,则R中的每一个元组的Fk值或者等于S中某个元组的Pk 值,或者为空值。
-
关系模型的数据操作概述
-
关系数据操作方式的特点是集合操作,“一次一集合”方式。操作的对象与结果都是集合。
-
关系数据操作的基础是“关系运算”。关系运算方式有两种:代数方式,逻辑方式。
关系代数
-
关系代数是三种关系运算中的基础方法,有9种:
-
常规集合运算:并、差、交、广义笛卡儿积(乘) ;
-
特有的关系运算:选择、投影、连接、自然连接、求商。
-
选择运算
投影运算
连接运算
自然连接
- 复合连接:类似于自然连接,是连接运算结果不包含连接属性的自然连接。
- 半连接:在R与S的连接运算结果中只保留R的属性列所得到的元组集合。
外连接
- 定义:为避免自然连接时因失配而发生的信息丢失,可以假定往参与连接的一方表中附加一个取值全为空值的行,它和参与连接的另一方表中的任何一个未匹配上的元组都能匹配,称之为外连接。
- 外连接 = 自然连接 + 失配的元组。
- 外连接的形式:左外连接、右外连接、全外连接
- 左外连接 = 自然连接 + 左侧表中失配的元组。
- 右外连接 = 自然连接 + 右侧表中失配的元组。
- 全外连接 = 自然连接 + 两侧表中失配的元组。
求商运算
关系运算
元组关系演算
- 元组演算表达式的形式:{ t |$\phi$ (t)},
其中 t 为元组变量, $\phi$ (t) 是元组关系演算公式,由原子公式和运算符组成;
域关系演算
- 域关系演算表达式的形式:
{ (x1,x2,…,xk)|$\phi$( x1 ,x2 , … , xk )}
其中$x_i$代表域变量, $\phi$ 为域关系演算公式,由原子公式和运算符组成。
-
把谓词演算应用到关系运算中就是关系演算。
-
以元组为变量,简称元组演算;
-
以域为变量,简称域演算。
-
三类关系运算的安全约束及等价性
-
传统的集合运算是二目运算。除笛卡儿积外,要求参加运算的两个关系必须是同类关系,即两个关系具有相同的度“n”,且相对应的属性值必须取自同一个域。
-
投影(Projection)
-
定义:从关系R(U)中取若干属性列并删去重复行,组成新的关系。记作:
$\Pi_A$® = { t[A] | t$\in$R , A$\in$U }
-
-
连接(Join)
-
定义:关系R和S在属性X和Y上的连接(X、Y是连接属性,即X、Y包含同等数量的属性,且相应的属性均具有共同的域),是从两个关系的广义笛卡儿积RxS中选取给定属性(X和Y)间满足$\theta$比较条件的元组。
-
关系运算中把不产生无限关系和无穷验证的运算称为安全运算;其运算表达式称为安全表达式;对其所采取的限制称为安全约束。
-
关系代数是安全运算,关系演算则不一定是。所以对关系演算要进行安全约束。
关系数据语言概述
-
数据库数据语言从功能上一般分为以下几种:
-
数据定义(描述)语言(Data definition or description language),包括模式DDL,外模式DDL,内模式DDL;
-
数据操纵语言(Data Manipulation Language)DML
-
数据库有四种基本操作:检索、插入、修改、删除
-
DML有联机交互方式和宿主语言方式。
-
联机交互方式下的DML称为自含式语言,可独立使用,适用于终端直接查询;
-
宿主语言方式下的DML称为嵌入式语言,依附于宿主语言,是嵌入高级语言的程序中,以实现数据操作。
-
-
-
数据控制语言(Data Control Language)DCL,完成数据库的安全性控制、完整性控制、并发控制等。
-
关系数据语言的特点
-
一体化
- 将数据的定义、查询、更新、控制等功能融为一体,只给用户提供一种称之为“查询语言”的语言。便于用户学习与使用。
-
非过程化
- 用户只需提出“干什么”,而“怎样干”由DBMS解决。所以语言操作简单,易学、易用。
-
面向集合的存取方式
- 操作对象是一个或多个关系,操作的结果也是一个新关系。
-
既可独立使用又可与主语言嵌套使用
-
关系数据语言优越性的根源:
-
关系模型采用了最简单、最规范化的数据结构,这使DML大大简化;
-
关系数据语言是建立在关系运算的数学基础上,可实现关系的垂直方向和水平方向的任意分割和组装操作,使得关系语言可随机地构造出用户需要的各种各样的新关系。
-
关系数据语言的分类
- 关系数据语言的核心是查询,所以又称为查询语言。而查询往往表示成一个关系运算表达式,因此关系运算是设计关系数据语言的基础,关系运算的分类也决定了关系语言的分类。
- ISBL(Information System Base Language),关系代数语言的代表。英格兰底特律的IBM英国科学中心研究。应用于实验系统PRTV上。
- QUEL(Query Language),基于元组演算的语言。美国加利福尼亚大学研制。用于Ingres数据库。
- QBE(Query By Example),基于域演算的表格显示语言。用于QBE数据库。
- SQL(Structured Query Language),介于关系代数与关系演算之间的语言,标准的关系数据语言。
-
- Title: database-theory-2
- Author: Charles
- Created at : 2023-07-20 12:59:06
- Updated at : 2023-11-05 14:34:13
- Link: https://charles2530.github.io/2023/07/20/database-theory-2/
- License: This work is licensed under CC BY-NC-SA 4.0.