第三章
域是值的集合,域中数据个数叫做域的基数。
R(D1,D2,…Dn)的含义是:当且仅当R是D1×D2×…×Dn的一个子集,则称R是D1×D2×…×Dn上的一个关系。其中,R是关系名,n是关系的度,Di是第i个域名。在关系的定义中,n度的关系,必有n个域。
一个关系就是一张二维表,表中的每一行对应关系中的一个元组,它对应于信息世界中的实体和计算机世界中的记录,表中的每一列就是关系中的一个域。也称为属性,对应于计算机世界中的字段。
关系与文件有许多相似之处,把关系看成文件时,则元组就是文件中的记录,属性就是记录中的数据项(字段)。
不允许“表中套表”,即表中元组分量必须是原子的。
二维表中的各列取自同一个域,因此一列中的各个分量具有相同性质。
列的次序、行的次序可以任意交换,不改变关系的实际意义。
表中的行叫元组,代表一个实体,因此表中不允许出现相同的两行。
判断两个关系是否相等,与属性的次序无关,与元组的次序无关,与关系的命名无关。
关系模式是指用关系数据描述语言描述后的关系,必须逐个对关系模型中的关系进行描述才能生成数据库概念模式。对关系的描述实为定义关系模式。关系数据描述语言实质是定义关系框架的,包括对域和关系进行描述
常用的关系数据描述语言(DDL)有问答式和语言描述式,常用的FoxPro属于问答式DBMS。
语言描述式有专门描述语言定义关系模式,包括关系名、组成该关系的各个域名、数据类型、长度和取值范围。
域描述语句:DOMAIN<域名>PIC IS<类型(长度)>[RANGE IS<数1>THRU<数2>],通过DOMAIN定义域名、PIC定义数据类型和长度,RANGE定义取值范围。
关系描述语句:RELATION<关系名>(<域名1,域名2,…>)KEY=(<域名i,域名j,…>)
关系模式的三类完整性规则是:实体完整性约束规则、引用完整性约束规则、用户定义的完整性约束规则。
实体完整性约束是指关系中的“主键”不允许取空值。引用完整性约束规则是限制引用不存在的记录。
在关系的各种*作中,关系查询是核心,所以关系数据*纵语言DML语言,常被称为查询语言。
DML特点:*作对象与结果都是关系,非过程性强,语言一体化,有严密的数学工具。
关系数据*作的最大特点是:以关系为处理单位,处理后的结果是关系。
关系DML查询,根据表达查询方式的不同,可分为两类:用关系代数运算表达查询和用关系演算公式表达查询。关系数据*作语言相应分为两种不同类型:关系代数型和关系演算型。
所谓单目运算就是对一个关系施加的运算,所谓双目运算就是对两个关系施加的运算。选择、投影是单目运算,连接、关系笛卡儿积是双目运算。
集合运算符:∪并、∩交、-差、×迪卡尔积,关系运算符:π投影、σ选择、|×|连接
比较运算符:>、≥、<、≤、=、≠,逻辑运算符:-非、∧与、∨或
并、交、差用于关系运算,要求参加运算的两个关系是相容的,即两个关系度数相同,相应属性取自同一个域。
并:由属于R或属于S或同时属于R和S的元组构成的集合,记为R∪S.
差:由属于R而不属于S的所有元组组成的集合,记为R-S.
交:由同时属于R和S的元组组成的集合,记为R∩S.
选择:按给定条件从关系中挑选满足条件的元组组成的集合,记为σF(R)
投影:从关系中挑选出指定的属性组成的新关系,记为:πA(R)A是属性名表,R是关系名。
关系R和S的笛卡儿积,它是由R的第一个元组依次与S的所有元组组合,然后是R的第二个元组,直到最后一个元组依次与S所有元组组合,形成新的关系。记为:R×S关系R和S的笛卡儿积k1+k2个元组。
连接:按给定条件,把满足条件的两关系的所有元组,按一切可能拼接后形成的新关系,相当于在两关系笛卡儿积上的选择。记为:R|×|S=σF(R×S)关系R和S的连接后的关系有≤k1×k2个元组。
连接运算可以从乘积运算和选择运算中导出,自然连接运算可以从乘积运算、选择运算和投影运算中导出。
自然连接是连接的一个重要特例,它要求被连接的两关系有若干相同的属性名。记为:R|×|S
连接运算:JOIN <关系1> WITH <关系2> WHERE <条件>,按给定条件对两关系进行连接运算。
五种基本运算:并、差、选择、投影、连接。
在关系中,当有多个属性可作为键而选定其中一个时,则称它为该关系的主键。
在一个关系中,需要几个属性组合起来才能惟一标识元组时,则称这几个属性为该关系的联合键。
凡在关系中可以用来惟一标识元组的属性或属性组叫做候选键。
当关系中的某个属性或某一组属性并非主键,但却是另一个关系的主键时,称该属性为外部键。
凡可作为侯选键的属性叫主属性,不能作为侯选键的属性叫非主属性。
所谓函数依赖其实质是刻画关系中各个属性之间相互制约而又相互依赖的关系。
函数依赖包括:完全函数依赖、部分函数依赖、传递函数依赖
满足最低要求的关系称它属于第一范式,在此基础上又满足了某种条件,则称它属于第二范式的关系,依此类推直到第五范式。数据库一般使用3NF以上的关系。满足较高条件者必满足较低范式条件。
一个较低范式的关系,可以通过关系的无损分解转换为若干较高级范式关系的集合,这个过程叫做关系规范化。
如果关系R的所有属性都是不可再分的数据项,称该关系属于第一范式。1NF
第一范式缺点:数据冗余大、修改麻烦、插入异常、删除异常。
若关系R属于1NF,且它的每一非主属性都完全依赖于主键,则称R属于第二范式,2NF
若关系R属于2NF,且它的每一非主属性都不传递依赖于关键字,则称R属于第三范式,3NF
在关系规范化中,分解关系的两条基本原则是:分解必须是无损的和分解后的关系要相互独立。
关系规范化过程实质是对关系不断分解的过程,通过分解使关系逐步达到较高范式。规范化是围绕函数依赖进行的。在规范化过程中,消除部分依赖和传递依赖后,1NF变成3NF.1NF、2NF、3NF相互间是全包含关系。
以下说法正确的是。A
(A)一个关系就是一张二维表 (B)在关系所对应的二维表中,行对应属性,列对应元组
(C)笛卡儿积中不允许有相同的域 (D)关系的各属性名必须与对应的域同名
根据关系模式的完整性规则,一个关系中的“主键” .C
(A)不能有两个 (B)不能成为另一个关系的外部键 (C)不允许为空 (D)可以取空值
关系中的最高范式为 .D (A)2NF (B)3NF (C)4NF (D)5NF
综合:1、计算并、差、交、选择、投影、关系笛卡尔积、连接、自然连接。
2、范式关系规范化
3、写出关键字
4、确定范式等级