收藏 分享(赏)

第2章 关系数据库的数学基础.ppt

上传人:ysd1539 文档编号:7102025 上传时间:2019-05-06 格式:PPT 页数:69 大小:793.50KB
下载 相关 举报
第2章  关系数据库的数学基础.ppt_第1页
第1页 / 共69页
第2章  关系数据库的数学基础.ppt_第2页
第2页 / 共69页
第2章  关系数据库的数学基础.ppt_第3页
第3页 / 共69页
第2章  关系数据库的数学基础.ppt_第4页
第4页 / 共69页
第2章  关系数据库的数学基础.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

1、第2章 关系数据库的数学基础, 知 识 点 关系定义、关系术语、关系代数 关系查询语言 关系模式与函数依赖 难 点 元组关系运算与域关系语言 关系查询语言 函数依赖与范式,返 回, 要 求 熟练掌握以下内容: 关系定义与相关的术语 关系代数运算与关系语言 关系模式及其分解方法 函数依赖与范式 了解以下内容: 了解域演算方法及其代表语言 了解第四范式与第五范式,2.1 关系定义,2.1.1 关系定义及其基本术语1关系定义设有属性1,2,Ak,其值域分别是 D1,D2,Dk,这些值域中可以有相同的 Di(i=1,2,k),Di的度数为i ,它们构成的 笛卡尔空间D为:,其中(d1,d2,dk)称为

2、一个元组,di (i =1,2,k)称为一个分量(即元素)。D的度 数是各值域度数mi的乘积: 则称D中的任意一个子集D为一个关系,记 为R;其关系框架是由属性i组成的一个有 序集合,记为: D中的任意一个点称为关系R的一个元组, 可表示为: 其中k为关系R的元素数,为R的k元元组变量, 此时称R为k元关系。,【例2.1】 设有值域D1(姓名)=王洪,张江,吴南,D2(性别)=男,女,D3(年龄)=28,30,由这三个值域构成的笛卡尔积D为:,其度数为: M = 322 = 12 即D有12个元组,从其中取出任意一个子集D 就构成了一个关系R:图2.1 子集D的关系,2. 关系的基本术语 关键

3、字(Key) 候选关键字(Candidate key) 复合关键字(Composite key) 主关键字(Primary key) 外来关键字(Foreign key) 2.1.2 关系的性质,2.2 关系数学与关系语言,2.2.1 关系代数与ISBL语言1. 关系代数(Relational algebra) 关系代数运算用到的运算符的意义及 其运算级别如下:集合运算符:、比较运算符:、 逻辑运算符:、 并运算(Union) 设有同类关系R1、R2,这两个关系的并运算,为: 式中“ ”为并运算符,t为元组变量,并运算后得到的关系是这两个关系元组的并集,如图2.3(a)所示,它是一个与R1、R

4、2同类的关系。 差运算(Difference)设有同类关系R1、R2这两个关系的差运算为:式中“”为差运算符,t为元组变量。差运算所得到的是前者减去它与后者有相同的那些元组后组成的关系,如图2.3(b)所示,,它是一个与R1、R2同类的关系。 交运算(Intersection) 设有同类关系R1、R2,则其相交运算为: 式中“ ”为交运算符,t为元组变量,交运算后 得到的是这两个关系所具有的相同元组组成 关系,如图2.3(c)所示,它是一个与R1、R2 同类的关系。 选择运算(Selection) 设F是一个运算条件,其运算对象是常量或元,组的分量(分量可以是分量名或分量序号),运算符为比较运

5、算符和逻辑运算符。则关系R关于条件F的选择为: 式中“”为选择运算符,经选择运算后所得的 关系是从R中选出满足条件F为真的元组所构 成的与R是同类关系,如图2.3(d)所示。以上四种并、差、交和选择运算属同类关系 运算,即结果与参与运算的关系都具有相同 的属性列,不同的只是在元组的选取上。, 笛卡儿积(Cartesian product) 设有k1元关系R和k2元关系S,这两个关系的 笛卡儿积为: 式中“”为笛卡儿积运算符,乘积后的关系 是一个k1k2元的新关系。若R关系有n个元 组,S关系有n2个元组,则新关系的元组个数 为nn2个。,图2.2 已知五个关系,图2.3 8种运算结果, 投影(

6、Projection)设有k元关系R,其元组变量为, 则 关系R在其分量Aj1,Aj2,Ajn(nk,j1,j2,jn为1 到k之间互不相同的整数)上的投影为:式中“ ”为投影运算符,投影运算后所得的关系是从关系R中按照j1,j2,jn的顺序取出n列,再除去重复的元组所组成,是一个以j1,j2,jn为顺序的n元关系,如图2.3(f)所示。, 连接(Join) 设有k1元关系R和k2元关系S,关系R的第i列和 关系S的第j列的 连接运算为: 式中“ ”为连接运算符, 为比较运算符。 式中“ I j ” 表示按照关系R的第i列与关系S的 第j列之间满足 运算的条件进行连接, 表 示关系R的元组变量

7、 的第i个 分量, 表示关系S的元组变量 的第j个分量。, 除法(Division) 设有k1元关系R和k2元关系S,且k1k2,S (关系S不能是空关系),且关系S的k2个分 量与关系R的(不限定位置的)k2个分量名相 同,这k2个分量应是连续的。则关系R关于S 的商为: 式中“”是除法运算符。除法运算后所得的 关系是一个k1k2元的关系。具体操作是: 在关系R中摘出与关系S有相同部分的元组,,再去掉与S相同的列和重复的元组就得到了新 的关系,如图2.3(I)所示。 【例2.2】 设有学生(S)、课程(C)、选课 (SC)三个关系如图2.4所示,用关系代数方 法完成下列各题: 试求选修C3,

8、5课程的学生所在的系。 试求至少选修一门先行课2的学生名单。 试求S2学生所选的课程名。 图2.4中的符号说明:S#: 学号;SN: 姓名; SD: 系;SA: 年龄;SG: 成绩;,CN: 课程名;P#: 先行课号。图2.4 学生、课程与选课关系,解: 设所求关系为R,则求解步骤为: R2 = R1* S 即:,答:选修C3,5课程的学生所在的系为:SC、CI和MA。 设所求关系为PR,则求解步骤为: PR2 = PR1 * SC PR4 = PR3* S 即: 答:至少选修先行课2的学生有B2,C9和 F6。, 设所求关系为RX,则求解步骤为: RX2 = RX1 * SC RX4 = R

9、X3 * C,答:S2学生所选的课程名为:G、H和J。 【例3】 设有三个关系如图2.5所示,试完成 下列各题: 用自然语言描述下列关系代数式的含义: 写出下列语句的关系代数表达式: 找出所有男学生的学号和年龄。 找出年龄小于22岁且籍贯为上海的所有男,学生的姓名,所学课程的课程号和成绩。 找出陈强所学课程的课程名和相应的成绩。 解: 关系代数式的自然语言的含义如下: 找出籍贯为上海的所有学生的姓名、课程 号和成绩。 找出选修OS课程的学生姓名和成绩以及该 课的任课教师。 找出选修全部课程的学生姓名和年龄。,图2.5 有学籍的关系,图2.5中的符号说明:S#: 学号;SN: 姓 名;SA: 年

10、龄;SE: 性别;NP: 籍贯;C#: 课 程号;SG: 成绩;CN: 课程名;CT: 任课教 师。 关系代数表达式如下: ,2.3 关系查询语言S,2.3.1 数据定义1. 基本关系定义CREATE TABLE 基本关系名( 属性名1 类型 NOT NULL ,属性名2 类型 NOT NULL) IN SEGMENT 段名 2关系的扩充3动态导出关系定义4索引定义,5删除功能 基本关系的删除DROP TABLE 基本关系名 导出关系的删除DROP VIEW 窗口名 索引的删除 DROP INDEX 索引名,【例34】 建立如图2.4所示的S,C和SC关系。 CREATE TABLE S(S#

11、 (CHAR(3), NOT NULL),SN (CHAR(2),SD (CHAR(2),SA (SMALLINT) CREATE TABLE C(C# (CHAR(3),NOT NULL),CN (CHAR(2),P# (CHAR(3) CREATE TABLE SC(S# (CHAR(3),NOT NULL),C# (CHAR(3),NOT NULL),SG(CHAR(1),【例35】 在S关系中增加一个SE属性表示学 生的性别。EXPAND TABLE S ADD FIELDSE(CHAR(1) 【例37】 建立一个按照课程号升序、成绩降 序、学号升序的索引文件。CREATE CLUST

12、ERING INDEX SCG ON SC(C# ASC,SGDESC,S# ASC) 【例38】 删除已建立的窗口和索引。DORP VIEW CSCDORP INDEX SCG,2.3.2 数据查询SELECT 属性名表FROM 基本关系名 WHERE 条件表达式 GROUP BY 属性名1 HAVING 函数表 达式 ORDER BY 属性名2 ASC / DESC 【例39】查找年龄为22的学生的学号和姓名。SELECT S,SNFROM SWHERE SA22,【例40】 查询全部学生的年龄,并按大小 进行排序。SELECT S,SN,SAFROM SORDER BY SA DESC

13、【例41】 查询年龄不在19至21岁之间的学 生的学号和姓名。SELECT S,SNFROM SWHERE SA NOT BETWEEN 19 AND 21,【例42】 查找在CS和CI系中学习的学生姓名。SELECT SNFROM SWHERE SD IN ( CS,CI) 【例43】 查询全部学生所选课程的名称和 成绩。SELECT S,SN,CN,SGFROM S,C,SCWHERE S.SSC.S AND C.C SC.C,【例44】 查出选修CS和C5课程的学生名单。SELECT SNFROM SWHERE S INSELECT SFROM SCWHERE CC3 AND CC5,【

14、例45】 找出选修课程名为H和I的学生名单。SELECT SNFROM SWHERE S INSELECT SFROM SCWHERE C INSELECT CFROM CWHERE CNH AND CNI,【例46】 查找选修2门以下课程的学生姓名。SELECT S,SNFROM SC,SWHERE S.SSC.SGROUP BY SHAVING COUNT(*)= 2其中COUNT( )是库函数,COUNT(*)表示求记录个数,SQL中还有其它的库函数,均可用于条件中。,2.3.3 数据更新1. 数据修改修改语句的一般格式为:UPDATE 关系名 SET 属性名1 = 表达式1 ,属性名2

15、 = 表达式2, WHERE 条件表达式 【例47】 将所有学生的年龄加1。UPDATE SSET SASA1,【例48】 修改学号为S6的学生姓名为“F8”。UPDATE SSET SNF8WHERE SS6 2数据删除删除语句的一般格式为:DELETEFROM 关系名 WHERE 条件表达式 ,【例49】 删除学号为“S6”的学生数据。DELETEFROM SWHERE SS6DELETEFROM SCWHERE SS6 【例50】 清除C关系中的全部数据。DELETEFROM C,3. 插入数据插入语句的一般格式为: INSERTINTO 关系名 ( 属性名表 ) VALUE ( 常量表

16、 ) INSERTINTO 关系名 ( 属性名表 ) SELECT 语句,【例51】 在S关系中插入一个学生的数据:“S6 F6 CS 22”INSERTINTO SVALUE (S6,F6,CS,22),2.4 关系语言的评价,根据关系语言的结构特点,可以将关系语 言分成四类:即关系代数语言(如ISBL)、关 系演算语言(如QUEL)、基于显示的语言 (如QBE)和基于映像的语言(如SQL)。这 些语言根据其数学特征和含义又可分成两类: 即关系代数语言、关系演算语言。后一种又细 分为元组关系演算语言(如QUEL)和域关系 演算语言(如QBE)。SQL语言是一种具有关 系代数和关系演算双重特点

17、的语言。,评价一个关系语言的优劣应从以下四 个方面考虑:1非过程化程度2语言的功能3语言的完备性4对高级语言的支持,2.5 关系数据库的理论基础,2.5.1 关系模型评价 关系模式的一般形式为: R U,D,DOM,F 其中R为关系名;U为组成R的全部属性 的集合,U = t1, t2, , tk ;D为域的集合, 即为属性取值范围的集合;DOM为属性到域 的映像,UD;F为属性集合U上的一组约束,即函数依赖。,由于域的集合对关系模式设计影响不大, 因此可以将关系模式看作是一个三元组:R 当且仅当U上的一个关系r满足F时,r称为关系模式R的一个关系。 【 例52】 设有一个描述学校的数据库,其

18、中 有学生(S),系(SD),系主任DM), 课程(C)和成绩(PG),则:U S,SD,DM,C,PG ,在现实世界中可知:1一个系可以有若干学生,每个学生只 能属于一个系。2一个系只有一个主任。3一个学生可以选修专门课程,每门课程 可以有若干学生同时选修。4一个学生学习一门课程只能有一个成绩。 由此可知属性集合U上的属性具有以下的函数 依赖,如图2.9所示。F = S#D,SDM,(S#,C# )PG,图2.9 数据依赖关系 学校数据库模式为S,其中S、C为该模式的关键字,不能取空值。这如S分解成下述三个模式: SDS#,SD,S#SD SGS#,C#,PG,(S#,C# )G DESD,

19、DM,SDM,2.5.2 函数依赖 定义1 设R(U )是属性集U上的关系模式,X、 Y是U的子集,若对于R(U )的任意一个可能的 关系r,其中不可能有两个元组在X上的属性 值相等,而在Y上的属性值不等,则称“X函数 决定Y”或称“Y函数依赖于X”,记XY。有关的述语: 1非平凡函数依赖:若XY而且Y X,则 称XY是非平凡函数依赖。以后除特别声明 外,所讨论的函数依赖均属非平凡函数依赖。,2决定因素:若XY,则称X为决定因素。 3若XY,YX,则记为X Y。 4若不函数依赖于,则记作 。 定义2 在关系模式R(U)中,如果XY, 并且对的任意一个真子集 都有X Y, 则称对完全函数依赖,记

20、作X Y;反之, 若XY,则称对部分函依赖,记作X Y。 【例53】 在关系S( S#,SN,SD,SA )中, 有S# SN,S#SD,S#SA,f,p,【例54】 在关系SC(C#,S#,PG)中, 有C# PG,S# PG,(C#,S# ) PG 定义3 在R(U)中,如果XY,且YX, YZ,则称Z对X传递函数依赖。在定义中,之所以要加上“Y X”的限制,是 因为如果YX, 则X Y。实际上Z与X的依赖, 就不是传递函数依赖了,而是X Z。,f,2.5.3 关键字 定义4 在关系模式R(U)中,设K为U的属性 或属性集合,若K U,则称K为R的一个候 选关键字(Candidate ke

21、y),若候选关键字多 于一个时,可以指定其中一个为主关键字 Primary key)。 包含在任意一个候选关键字中的属性,称 为主属性(Prime attribute)。不包含在任意一 个候选关键字中的属性称为非主属性 (Nonprime attribute)或非关键字属性 (Non-key attribute)。最简单的是单个属性为 一候选关键字,最特殊的是全部属性为一候选 关键字,称为全关键字(All-key)。,定义5 在关系模式R( U )中,若属性或属性集 合并非是R的关键字,而是另一个关系模式 的关键字,则称X是R的外部关键字。主关键字与外部关键字提供了一个关系之间的联系方法。 【

22、例55】 在关系SC(S#,C#,PG)中,S# 不是 候选关键字,但S# 在关系S(S#, SN,SD,SA) 中,都是候选关键字,则S# 称为关系SC的外 部关键字,而关系S与SC之间的联系就是通过 S# 实现的。,2.5.4 关系模式的规范理论基础 在已知的范式中,最高级是5NF,最低级 是1NF,它们之间的关系是: 5NF 4NFB CNF 3NF 2NF 1NF图2.10 范式之间的关系,1. 第一范式(1NF) 定义6 如果一个关系模式R( U )的所有属性都 是基本的、不可分的,则关系R是规范化的关 系,称为第一范式。 例如, 将 SS#,SD,DM,C#,PG,S#SD, (S

23、#,C# )G, SDDM 分解为: SDS#,SD,S#SD和SGS#,C#,PG,(S#,C#)PG2. 第二范式(2NF) 定义7 如果关系模式R( U )是1NF,并且非关 键字的属性完全函数依赖于关键字属性,则 关系模式R( U )属于第二范式,记为2NF。,并不是什么样的分解都能达到消除异常,减少冗余的目的。例如,关系S-M为: S-MS#,C#,SD,SL,PG,S#SD,S#SL, SDSL,(S#,C# )G 分解成如图2.11所示,SSS#,SD,SL,S#SL ,S#S D,SDSL 和 SGS#,C#,PG, (S#,C# )G。 其中SL为学生所住的楼,规定一个系的

24、学生住在一个楼内。此时,SS关系约是有缺 陷的,虽然它是一个2NF的关系模式,但它仍 然有缺陷,存在缺陷的原因是因为其中有非 关键字的属性传递依赖于关键字。,因此将SS再分解成如图2.12所示的关系,即: SS-DS#,SD,S#SD和SS-L SD,SL,SDSL。图2.11 S-M关系的分解 图2.12 SS关系的分解,3. 第三范式 (3NF ) 定义8 如果关系模式R( U )是第二范式,并 且每个非关键字的属性,不是传递依赖关键 字,则称关系模式R( U )是第三范式,记为 3NF。如关系S-M最终分解为关系SG S#,C#,PG,( S#,C# )PG、SS-D S#,SD,S#S

25、D和SS-L SD,SL,SDSL这三个关系都属于3NF范式。,4. BC范式(BCNF) 定义9 在关系模式R(U)中,X、Y分别是属 性集的两个子集,且X与Y无公共属性,Y 完全函数依赖X(XY),则称X为关系模式 R(U )的决定因素。 定义10 若关系模式R(U)属第一范式,且其 中的每一个决定因素都是R的候选关键字, 则称关系R(U)是BC范式,记为BCNF。,例如,在关系SCT(S#,C#,T)如图4.13所示中, S#为学生号,C#为课程号,T为教师。规定 每个教师只教一门课,每门课有若干教师教, 一个学生选定某门课就对应一个教师。由上 述语义可得如下的函数依赖关系,如图4.14

26、 所示。图4.13 SCT关系,图4.14 SCT数据依赖 图4.15 关系SCT分解后的关系组,2.5.5 多值依赖与第四范式(4NF) 1多值依赖(MVD) 定义11 设R( U )是一关系模式,U为R(U) 的全部属性,其中X、Y、Z是U的不相交子集,ZUXY。若R的任一个关系r,对于X的一个给定值Y,有一组值与之对应,而Y的这组值与Z的值无关,则称Y多值依赖于X,记为Y。 2多值依赖公理 多值依赖的互补性(又称对称性)若成立,则。若XY,则XY 多值依赖的扩展性若且,则XWYZ, 多值依赖的传递性若且,则Z-Y 3多值依赖的规则 多值依赖的合并规则若XY且YZ, 则XYZ 多值依赖的伪

27、传递规则 若XY且WYZ则WXZWY,此规则简单证明如下:由扩展性知:XY XWZ由传递性: WXWY 且 WYZ得: WXZWY 多值依赖的分解规则若且,则,-,-,4第四范式 定义12 设关系模式R( U )属于第一范式,若 存在,且R( U )的其他所有属性都函 数依赖于,那么称R( U )为第四范式,记为 4NF。 平凡多值依赖: 若XY且Z = ,则称XY为平凡 的多值依赖。例如,CTB关系中就存在上述的各种问题, 只有将其分解为一组符合4NF的关系,才能解 决,分解结果如图4.17所示。CT(C#,T)与CB(C#,B)关系都是4NF。,图4.17 CTB关系分解结果,小 结,本章

28、讨论了关系数据库的基本理论问题。 关系数据库是用数学的关系理论方法来处理 数据库数据的。自1970年至今,关系数据库 在理论和实践上都取得了极大的发展。关系 运算是设计关系数据库系统语言的基础,在 关系数据库系统中,每个查询操作都可以表 示成一个关系运算式。关系数据库的数学基 础关系数据模型中的数据及其联系都是 由关系描述的,关系运算可以描述数据之间 的联系。,SQL语言是一种介于关系代数与关系演 算之间的语言,具有定义、查询、插入、删 除和修改等丰富功能和使用方式灵活方便, 语言简洁易学等优点。关系语言是数据库系 统提供给用户对关系数据进行操作的语言。 这些语言根据其数学特征和含义又可分成两

29、 类:即关系代数语言、关系演算语言。 在讨论范式时,讨论了六种。其中最基 本的是1NF,最高级的是5NF,关系模式的规 范化过程是采用投影分解的方法来实现的。 将低一级的关系模式分解为若干个高一级的 关系模式,这种分解不是唯一的,应注意分,解前后的等价性,份解后得到的模式应能更好地反映出客观现实中对数据处理的要求。在1NF中消除非主属性对关键字的部分函数依赖,就得到了2NF;在2NF中消除非主属性对关键字的传递函数依赖,就可以得到3NF; 在3NF中消除主属性对关键的部分和传递函数 依赖,就可以得到BCNF;在BCNF中消除非 平凡且非函数依赖的多值依赖,或在1NF中消 除决定因素是非关键字的非平凡函数依赖, 就可以得到4NF;在4NF中消除连接依赖,就 可以得到5NF,如图2.20所示。,图2.20 各范式的关系示意,在这些范式中,用得最多的是3NF和 BCNF, 这是因为在现实中函数依赖是最普 遍的,在函数依赖范畴内,一个模式达到了 3NF与BCNF就已实现了彻底的分解。在设 计数据库时,一般采用模式分解来减少数据 的冗余和克服增加、删除操作中的异常,但 随之而来的连接操作将使数据库系统付出更 大的开销。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 高中教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报