2018-08-29 关系数据库
关系数据库系统是支持关系模型的数据库系统。关系模型的组成:关系数据结构,关系操作,关系的完整性。
单一的数据结构——关系:现实世界的实体以及实体间的各种联系均用关系表示。数据的逻辑结构——二维表:从用户角度,关系模型中数据的逻辑结构是一张二维表。
关系模型建立在集合代数的基础上。
域是一组具有相同数据类型的值的集合。
笛卡尔积,所有给定域的所有取值的一个组合,不能重复。笛卡尔积中每一个元素叫做一个n元组或简称元组。分量,笛卡尔积元素中的每一个值叫做一个分量。笛卡尔积可表示为一个二维表,表中每行对应一个元组,每列对应一个域。
关系中的每个元素是关系中的元组,通常用t表示。n=1时,该关系为单元关系,n=2时,为二元关系。关系也是一个二维表。关系中不同列可以对应相同域,为了加以区分,对每列起一个名字,称为属性,n目关系必有n个属性。若关系中某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。最简单的情况下,候选码只包含一个属性,最极端的情况下,所有属性组都是候选码,称为全码。主码,若一个关系有很多候选码,则选定其中一个为主码,主码中的各个属性称为主属性,不包含在任何候选码中的属性称为非主属性或非码属性。基本关系(基本表),实际存在的表,是实际存储数据的逻辑表示;查询表,查询结果对应的表;视图表,由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。基本关系性质:列是同质的;不同的列可出自同一个域;列的顺序无所谓;任意两个元组的候选码不能取相同的值;行的顺序无所谓;分量必须取原子值。
关系模式是型,关系是值。关系模式是对关系的描述。
关系模式可以表示为R(U,D,dom,F),R是关系名;U是组成该关系的属性名集合;D是属性组U中属性所来自的域;dom是属性向域的映像集合;F是属性间的数据依赖关系集合。域名及属性向域的映像常常直接说明为属性的类型、长度。
关系模式,对关系的描述,静态的、稳定的。关系,关系模式在某一时刻的状态或内容,动态的、随时间不断变化的。关系模式和关系统称为关系,通过上下文加以区别。
关系数据库,在给定的应用领域中,所有实体及实体间的联系的关系的集合构成了一个关系数据库。
常用的关系操作。查询:选择、投影、连接、除、并、交、差;数据更新:插入、删除、修改;查询的表达能力是其中最主要的部分。
关系操作的特点。集合操作方式,即操作的对象和结果都是集合,一次一集合的方式。非关系数据模型的数据操作方式:一次一记录。
关系数据语言的种类。关系代数语言,用对关系的运算来表达查询要求。关系演算语言,用谓词来表达查询要求:元组关系演算语言,谓词变元的基本对象是元祖变量;域关系演算语言,谓词变元的基本对象是域变量。具有关系代数和关系演算双重特点的语言,例如SQL。
关系数据语言的特点。一种高度非过程化的语言:存取路径的选择由DBMS的优化机制来完成,用户不必用循环机构就可以完成数据操作。能够嵌入高级语言中使用。关系代数、元组关系演算和域关系演算三种语言在表达能力上完全等价。
关系模型的完整性规则是对关系的某种约束条件。关系模型中三类完整性约束:实体完整性,参照完整性,用户定义的完整性。实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。用户定义的完整性,反映应用领域需要遵循的约束条件,体现了具体领域中的语义约束,用户定义后由系统支持。
实体完整性规则,若属性A是基本关系R的主属性,则属性A不能取空值。
外码。设F是基本关系R的一个或一组属性,但不是R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码,基本关系R称为参照关系,基本关系S称为被参照关系或目标关系。
参照完整性规则。若属性F(或属性组)是基本关系R的外码,它与基本关系S的主码Ks相对应(S和R不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。
用户定义的完整性。针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。
关系代数运算的三个要素。运算对象:关系。运算结果:关系。运算符:四类。
集合运算符,将关系看成元组的集合,运算时从关系的“水平”方向即行的角度来进行。专门的关系运算符,不仅涉及行而且涉及列。算术比较符,辅助专门的关系运算符进行操作。逻辑运算符,辅助专门的关系运算符进行操作。
选择,又称为限制。在关系R中选择满足给定条件的诸元组。F是选择条件,是一个逻辑表达式。选择运算符是从关系R中选取使逻辑表达式F为真的元组,是从行的角度进行的计算。
投影。从R中选择出若干属性列组成新的关系。主要从列的角度进行计算,但投影之后不仅取消了原关系中的某些列,还可能取消某些元组(避免重复行)。
连接。从两个关系的笛卡尔积中选取属性间满足一定条件的元组。连接运算从R和S的广义笛卡尔积RXS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。两类常用连接。等值连接,从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组;自然连接,一种特殊的等值连接,在两个关系中进行比较的分量必须是相同的属性组,在结果中把重复的属性列去掉。一般连接操作是从行的角度进行计算的,自然连接还需要取消重复列,同时从行和列的角度进行计算。
R与S的除运算能得到一个新的关系Px,P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的场合。同时从行与列角度进行计算。
典型关系代数语言ISBL。由IBM研究中心研制;用于PRTV实验系统。