数据库应用技术(第二章续)课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据库应用技术(第二章续)课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VIP专享 VIP 专享 数据库 应用技术 第二 课件
- 资源描述:
-
1、第二章第二章 关系数据库关系数据库2.1 关系模型概述关系模型概述2.2 关系数据结构关系数据结构2.3 关系的完整性关系的完整性2.4 关系代数关系代数2.5 关系规范化关系规范化2.6 小结小结2.4 关系代数关系代数v 概述概述v 传统的集合运算传统的集合运算v 专门的关系运算专门的关系运算集合运算符-并差交笛卡尔积比较运算符 大于大于等于小于小于等于等于不等于运算符含义运算符含义概概 述述专门的关系运算符 选择投影连接除逻辑运算符 非与或2.4 关系代数关系代数v 概述概述v 传统的集合运算传统的集合运算v 专门的关系运算专门的关系运算1.并(并(Union)v R和S 具有相同的目n
2、(即两个关系都有n个属性)相应的属性取自同一个域v RS 仍为n目关系,由属于R或属于S的元组组成 RS=t|t Rt S 2.差(差(Difference)v R和S 具有相同的目n 相应的属性取自同一个域v R-S 仍为n目关系,由属于R而不属于S的所有元组组成 R-S=t|tRtS 3.交(交(Intersection)v R和S 具有相同的目n 相应的属性取自同一个域v RS 仍为n目关系,由既属于R又属于S的元组组成 RS=t|t Rt S RS=R(R-S)4.笛卡尔积(笛卡尔积(Cartesian Product)v 严 格 地 讲 应 该 是 广 义 的 笛 卡 尔 积(E x
3、 t e n d e d Cartesian Product)v R:n目关系,k1个元组v S:m目关系,k2个元组v RS 列:(n+m)列元组的集合 元组的前n列是关系R的一个元组 后m列是关系S的一个元组 行:k1k2个元组 RS=tr ts|tr R tsS 交交(续续)2.4 关系代数关系代数v 概述概述v 传统的集合运算传统的集合运算v 专门的关系运算专门的关系运算2.4.2 专门的关系运算专门的关系运算先引入几个记号(1)R,tR,tAi 设关系模式为R(A1,A2,An)它的一个关系设为R tR表示t是R的一个元组 tAi则表示元组t中相应于属性Ai的一个分量(2)A,tA,
4、A 若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中的一部分,则A称为属性列或属性组。tA=(tAi1,tAi2,tAik)表示元组t在属性列A上诸分量的集合。A则表示A1,A2,An中去掉Ai1,Ai2,Aik后剩余的属性组。专门的关系运算专门的关系运算(续续)(3)tr ts R为n目关系,S为m目关系。tr R,tsS,tr ts称为元组的连接。tr ts是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。(4)象集Zx 给定一个关系R(X,Z),X和Z为属性组。当tX=x时,x在R中的象集象集(Images Set)为:Zx=t
5、Z|t R,tX=x 它表示R中属性组X上值为x的诸元组在Z上分量的集合专门的关系运算专门的关系运算(续续)v 选择v 投影v 连接v 除专门的关系运算专门的关系运算(续续)(a)Student4)学生-课程数据库:学生关系Student、课程关系Course和选修关系SC学号学号Sno姓名姓名Sname性别性别Ssex年龄年龄Sage所在系所在系Sdept200215121李勇李勇男男20CS200215122刘晨刘晨女女19IS200215123王敏王敏女女18MA200215125张立张立男男19IS课程号课程号Cno课程名课程名Cname先行课先行课Cpno学分学分Ccredit1数据
6、库数据库542数学数学23信息系统信息系统144操作系统操作系统635数据结构数据结构746数据处理数据处理27PASCAL语言语言64Course(b)(c)SC学号学号Sno课程号课程号Cno成绩成绩Grade2002151211922002151212852002151213882002151222902002151223801.选择(选择(Selection)v 1)选择又称为限制(Restriction)v 2)选择运算符的含义 在关系R中选择满足给定条件的诸元组 F(R)=t|tRF(t)=真 F:选择条件,是一个逻辑表达式,基本形式为:X1Y1v 3)选择运算是从关系R中选取使逻
7、辑表达式F为真的元组,是从行的角度进行的运算选择(续)选择(续)例1 查询信息系(IS系)全体学生 Sdept=IS(Student)或 5=IS(Student)结果:SnoSnameSsexSageSdept200215122刘晨女19IS200215125张立男19IS例2 查询年龄小于20岁的学生 Sage 20(Student)或 4 20(Student)结果:SnoSnameSsexSageSdept200215122刘晨女19IS200215123王敏女18MA200215125张立男19IS2.投影(投影(Projection)v 1)投影运算符的含义 从R中选择出若干属性列
8、组成新的关系 A(R)=tA|t R A:R中的属性列v 2)投影操作主要是从列的角度进行运算 但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)投影(续)投影(续)v 例3 查询学生的姓名和所在系即求Student关系上学生姓名和所在系两个属性上的投影 Sname,Sdept(Student)或 2,5(Student)SnameSdept李勇CS刘晨IS王敏MA张立ISv 例4 查询学生关系Student中都有哪些系 Sdept(Student)结果:SdeptCSISMA结果:3.连接(连接(Join)v 1)连接也称为连接v 2)连接运算的含义从两个关系的笛卡尔
9、积中选取属性间满足一定条件的元组 R S=|tr Rts StrAtsB A和B:分别为R和S上度数相等且可比的属性组:比较运算符 连接运算从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组 ABtr ts 连接连接(续续)v3)两类常用连接运算 等值连接(equijoin)什么是等值连接为“”的连接运算称为等值连接 等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:R S=|tr Rts StrA=tsB A=Btr ts 连接连接(续续)自然连接(Natural join)自然连接是一种特殊的等值连接
10、两个关系中进行比较的分量必须是相同的属性组在结果中把重复的属性列去掉 自然连接的含义R和S具有相同的属性组B R S=|tr Rts StrB=tsB tr ts连接连接(续续)v4)一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。ABRS连接连接(续续)v 例5关系R和关系S 如下所示:一般连接 R S的结果如下:CE 连接连接(续续)等值连接 R S 的结果如下:R.B=S.B 自然连接 R S的结果如下:连接连接(续续)v 外连接 如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTER JOI
11、N)。v 左外连接 如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN)v 右外连接 如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN)。连接连接(续续)下图是例5中关系R和关系S的外连接 图(b)是例5中关系R和关系S的左外连接,图(c)是右外连接 4.除(除(Division)给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X)P(X),P是R R中满足下列条件的元组在中满足下
12、列条件的元组在 X 属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合,记作:RS=trX|trRY(S)Yx Yx:x在R中的象集,x=trX除除(续续)v除操作是同时从行和列角度进行运算 RS除除(续续)例6设关系R、S分别为下图的(a)和(b),RS的结果为图(c)分析分析v 在关系R中,A可以取四个值a1,a2,a3,a4 a1的象集为(b1,c2),(b2,c3),(b2,c1)a2的象集为(b3,c7),(b2,c3)a3的象集为(b4,c6)a4的象集为(b6,c6)v S在(B,C)上的投影为 (b1,c2),(b2,c1),(b2,c3)v 只有a1的象集包含
13、了S在(B,C)属性组上的投影 所以 RS=a1 v 除法运算(Division):设关系R和S的度数分别为n和m(nm0),那么RS是一个度数为(nm)的关系,它满足下列条件:RS中的每个元组t与S中每个元组u所组成的元组(t,u)必在关系R中。为叙述方便起见,我们假设S的属性为R中的后m个属性,则RS的具体计算过程如下:(1)T1,2,n-m(R)(2)W(TS)R (即计算TS中但不在R中的元组)(3)V1,2,n-m(W)(4)RSTV除法运算(补充)除法运算(补充)v 关系R和S 的除法RS ABCDa1a1a1a2a3a3b1b1b1b2b3b3c1c2c3c2c1c2d1d2d3
14、d2d1d2CDc1c2d1d2ABa1a2a3b1b2b3ABCDa2b2c1d1ABa2b2ABa1a3b1b3RSTWVR S 5综合举例综合举例 以学生以学生-课程数据库为例课程数据库为例(P56)例7 查询至少选修1号课程和3号课程的学生号码 首先建立一个临时关系K:然后求:Sno,Cno(SC)K Cno 1 3SnoCno20021512112002151212200215121320021512222002151223200215121象集 1,2,3200215122象集 2,3K=1,3于是:Sno,Cno(SC)K=200215121综合举例综合举例(续续)例8 查询选修
15、了2号课程的学生的学号。Sno(Cno=2(SC)200215121,200215122 例9 查询至少选修了一门其直接先行课为5号课程的学生姓名 Sname(Cpno=5(Course SC Student)或 Sname(Cpno=5(Course)SC Sno,Sname(Student)或 Sname(Sno(Cpno=5(Course)SC)Sno,Sname(Student)例10 查询选修了全部课程的学生号码和姓名。Sno,Cno(SC)Cno(Course)Sno,Sname(Student)小结小结 v 关系代数运算关系代数运算并、差、交、笛卡尔积、投影、选择、连接、除基本运
16、算并、差、笛卡尔积、投影、选择交、连接、除可以用5种基本运算来表达 引进它们并不增加语言的能力,但可以简化表达v 关系代数表达式 关系代数运算经有限次复合后形成的式子2022年7月19日星期二2.4 关系数据库规范化理论关系数据库规范化理论 2.5.1 关系模式规范化的必要性2.5.2 数值依赖 2.5.3 范式与规范化 2.5.4 关系分解原则 关系数据库的规范化关系数据库的规范化2.5.1 2.5.1 关系规范化的必要性关系规范化的必要性每个关系由哪些属性组成每个关系由哪些属性组成?1.关系数据库逻辑设计问题关系数据库逻辑设计问题 构造几个关系构造几个关系?关系数据库关系数据库关系关系属性
17、属性v 关系数据库的设计归根到底是如何构造关系,即如何把具体的客观事物划分为几个关系,而每个关系又由哪些属性组成,就是要构造“好的”、“合适”的关系模式。v 由于合适的关系模式要符合一定的规范化要求,所以又称其为关系数据库的规范化理论。382.规范化理论研究的内容规范化理论研究的内容(1)函数依赖)函数依赖核心核心模式分解和设计的基础模式分解和设计的基础(2)范式)范式模式分解的标准模式分解的标准(3)模式设计)模式设计2022年7月19日星期二2.5.1 关系模式规范化的必要性关系模式规范化的必要性1.关系模式应满足的条件2.关系规范化可能出现的问题2022年7月19日星期二 v 关系数据库
18、的设计主要是关系模式的设计。关系模式设计的好坏将直接影响到数据库设计的成败。v 将关系模式规范化,使之达到较高的范式是设计好关系模式的唯一途径。否则,所设计的关系数据库会产生一系列的问题。2022年7月19日星期二1.1.关系模式应满足的条件关系模式应满足的条件 关系数据库是根据关系模式设计的。好的关系模式除了能满足用户对信息存储和查询的基本要求外,还应当使它的数据库满足如下要求。v 元组的每个分量必须是不可分的数据项 关系数据库特别强调,关系中的属性不能是组合属性,必须是基本项,并把这一要求规定为鉴别表格是否为“关系”的标准。如果表格结构的数据项都是基本项,则该表格为关系,它服从关系模式的第
19、一范式,以后可以在此基础上进一步规范化。否则,如果表格结构中含有组合项,必须先使之转换为基本数据项。2022年7月19日星期二v 数据库中的数据冗余应尽可能少v 数据冗余大是指数据库中重复的数据过多。“数据冗余”是数据库最忌讳的毛病,数据冗余会使数据库中的数据量巨增,系统负担过重,并浪费大量的存储空间。数据冗余还可能造成数据的不完整,增加数据维护的代价。数据冗余还会造成数据查询和统计的困难,并导致错误的结果。v 尽管关系数据库是根据外键建立关系之间的连接运算的,外键数据是关系数据库不可消除的“数据冗余”,但在设计数据库时,应千方百计将数据冗余控制在最小的范围内,不必要的数据冗余应坚决消除。20
20、22年7月19日星期二v 关系数据库不能因为数据更新操作而引起数据不一致问题 如果数据模式设计的不好,就可能造成不必要的数据冗余,一个信息就会多次的在多地重复存储。对于“数据冗余大”的关系数据库,当执行数据修改时,这些冗余数据就可能出现有些被修改,有些没有修改,从而造成数据不一致问题。数据不一致问题影响了数据的完整性,使得数据库中数据的可信度降低。2022年7月19日星期二v 当执行数据插入操作时,数据库中的数据不能产生插入异常现象 所谓插入异常是指希望插入的信息由于不能满足数据完整性的某种要求而不能正常地被插入到数据库的异常问题。出现数据插入异常问题的主要原因是由于多种信息混合放在一个表中,
展开阅读全文