数据库原理及应用教学PPT.ppt

上传人:仙人指路1688 文档编号:2347854 上传时间:2023-02-14 格式:PPT 页数:84 大小:1.21MB
返回 下载 相关 举报
数据库原理及应用教学PPT.ppt_第1页
第1页 / 共84页
数据库原理及应用教学PPT.ppt_第2页
第2页 / 共84页
数据库原理及应用教学PPT.ppt_第3页
第3页 / 共84页
数据库原理及应用教学PPT.ppt_第4页
第4页 / 共84页
数据库原理及应用教学PPT.ppt_第5页
第5页 / 共84页
点击查看更多>>
资源描述

《数据库原理及应用教学PPT.ppt》由会员分享,可在线阅读,更多相关《数据库原理及应用教学PPT.ppt(84页珍藏版)》请在三一办公上搜索。

1、数据库原理及应用,第四讲,上节回顾,Access概述创建数据库数据库表的建立与操作,本节内容,一.关系代数二.关系数据库规范化理论,一 关系代数,关系模型源于数学,关系是由元组构成的集合,可以通过关系的运算来表达查询要求关系代数是关系操作语言的一种传统的表示方式,它是一种抽象的查询语言。运算的三大要素运算对象、运算符、运算结果关系代数的运算对象、运算结果都是关系关系代数的运算符集合运算符、专门的关系运算符、比较运算符和逻辑运算符,关系操作,传统的关系运算:将关系看成元组的集合,运算从关系的“水平”方向的角度来进行。并(Union)交(Intersection)差(Difference)广义笛卡

2、尔乘积(Extended Cartesian Product)专门的关系运算:不仅涉及行而且涉及列。选择(Select)投影(Project)连接(Join)除(Divide)比较运算符和逻辑运算符:辅助专门的关系运算符进行操作,关系运算符,关系运算符(续),传统的集合运算,传统的集合运算是二目运算设关系R和S均是n元关系,且相应的属性值取自同一个值域,则可以定义三种运算:并运算()交运算()差运算(),1并运算,关系R与关系S的并记为:RSt|tR tS 其结果仍是n元关系,由属于R或属于S的元组组成。,2交运算,关系R与关系S的交记为:RSt|tR tS 其结果仍是n目关系,由属于R并且也

3、属于S的元组组成。,3差运算,关系R与关系S的差记为:RSt|tR t S 其结果仍是n目关系,由属于R并且不属于S的元组组成。,4.广义笛卡尔积,Rn目关系,k1个元组Sm目关系,k2个元组RS 列:(n+m)列的元组的集合元组的前n列是关系R的一个元组后m列是关系S的一个元组行:k1k2个元组RS=tr ts|tr R tsS,广义笛卡尔积示例,专门的关系运算,专门的关系运算包括:选择投影连接除,1.选择(Selection),1)选择又称为限制(Restriction)2)选择运算符的含义在关系R中选择满足给定条件的诸元组 F(R)=t|tRF(t)=真F:选择条件,是一个逻辑表达式,基

4、本形式为:(X1Y1)(X2Y2):比较运算符(,或)X1,Y1等:属性名、常量、简单函数;属性名也可以用它的序号来代替;:逻辑运算符(或):表示任选项:表示上述格式可以重复下去,选择(续),3)选择运算是从行的角度进行的运算 4)举例设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC。,选择(续),(a),Student,选择(续),(b),Course,选择(续),(c),SC,选择(续),(a),Student,例1,例2,Next,选择(续),例1 查询信息系(IS系)全体学生 Sdept=IS(Student)或 5=IS(Student)结果:

5、,选择(续),例2 查询年龄小于20岁的学生 Sage 20(Student)或 4 20(Student)结果:,2.投影(Projection),1)投影运算符的含义从R中选择出若干属性列组成新的关系 A(R)=tA|t R 其中:是投影运算符R是关系名A是被投影的属性或属性组t.A表示t这个元组中相应于属性(集)A的分量,也可以表示为tA。例如,选择Sname,Sdept两个列构成新关系:sname,sdept(Student),投影(续),2)投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行),投影(续),(a),Student,

6、例4,例3,Next,投影(续),3)举例例3 查询学生的姓名和所在系即求Student关系上学生姓名和所在系两个属性上的投影 Sname,Sdept(Student)或 2,5(Student)结果:,投影(续),例4 查询学生关系Student中都有哪些系 Sdept(Student)结果:,3.连接(Join),1)连接也称为连接2)连接运算的含义从两个关系的笛卡尔积中选取属性间满足一定条件的元组 R S=|tr Rts StrAtsB A和B:分别为R和S上度数相等且可比的属性组:比较运算符连接运算从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足

7、比较关系的元组。,连接(续),3)两类常用连接运算等值连接(equijoin)什么是等值连接为“”的连接运算称为等值连接 等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:R S=|tr Rts StrA=tsB,A=B,连接(续),自然连接(Natural join)什么是自然连接自然连接是一种特殊的等值连接两个关系中进行比较的分量必须是相同的属性组在结果中把重复的属性列去掉自然连接的含义R和S具有相同的属性组B R S=|tr Rts StrB=tsB,连接(续),4)一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角

8、度进行运算。,连接(续),5)举例 例5,R,S,R S,连接(续),R S,连接(续),R,S,R S,连接(续),等值连接 R S,连接(续),R,S,R S,连接(续),自然连接 R S,自然连接与等值连接的差别,自然连接与等值连接的差别为:自然连接要求相等的分量必须有共同的属性名,等值连接则不要求;自然连接要求把重复的属性名去掉,等值连接却不这样做。,象集Z,给定一个关系R(X,Z),X和Z为属性组。当tX=x时,x在R中的象集(Images Set)为:Zx=tZ|t R,tX=x 它表示R中属性组X上值为x的诸元组在Z上分量的集合。,象集举例,在关系R中,A可以取四个值a1,a2,

9、a3,a4a1的象集为(b1,c2),(b2,c3),(b2,c1)a2的象集为(b3,c7),(b2,c3)a3的象集为(b4,c6)a4的象集为(b6,c6),R,4.除(Division),给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。RS=tr X|tr RY(S)Yx Yx:x在R中的象集,x=trX,除(续),R,S,分析,在关系R中,A可以取四个值a1,a2,a3,a4a

10、1的象集为(b1,c2),(b2,c3),(b2,c1)a2的象集为(b3,c7),(b2,c3)a3的象集为(b4,c6)a4的象集为(b6,c6),R,分析(续),S在(B,C)上的投影为(b1,c2),(b2,c1),(b2,c3)只有a1的象集包含了S在(B,C)属性组上的投影 所以 RS=a1,S,除(续),除操作是同时从行和列角度进行运算,五 综合举例,(c),SC,综合举例(续),查询至少选修1号课程和3号课程的学生号码首先建立一个临时关系K:然后求:Sno,Cno(SC)K,综合举例(续),Sno,Cno(SC)95001象集1,2,395002象集2,3 Cno(K)=1,3

11、 于是:Sno,Cno(SC)K=95001,综合举例(续),(a),Student,综合举例(续),(b),Course,综合举例(续),(c),SC,Next,查询修2号课程的学生的学号。sno(cno=2(SC)=95001,95002查询计算机(CS)系修2号课程的学生的姓名和成绩。sname,grade(cno=2(SC)sdept=CS(Student)=(李勇,85),综合举例(续),综合举例(续),查询至少选修了一门其直接先行课为5号课程的学生姓名。Sname(Cpno=5(Course SC Student)或 Sname(Cpno=5(Course)SC Sno,Sname

12、(Student)或 Sname(Sno(Cpno=5(Course)SC)Sno,Sname(Student),关系代数,l关系代数关系代数运算并、差、交、笛卡尔积、投影、选择、连接、除基本运算并、差、笛卡尔积、投影、选择交、连接、除 可以用5种基本运算来表达 引进它们并不增加语言的能力,但可以简化表达,关系代数表达式与语言,l关系代数表达式关系代数运算经有限次复合后形成的式子 典型关系代数语言ISBL(Information System Base Language)由IBM United Kingdom研究中心研制用于PRTV(Peterlee Relational Test Vehic

13、le)实验系统,小结,关系代数传统的关系运算:并(Union)交(Intersection)差(Difference)广义笛卡尔乘积(Extended Cartesian Product)专门的关系运算:选择(Select)投影(Project)连接(Join)除(Divide)比较运算符和逻辑运算符,二 关系数据库规范化理论,为了满足用户对业务和系统性能等的需求,需要对数据库进行设计。关系数据库规范化理论就是数据库设计的理论基础,在数据库应用中具有重要的作用。1 函数依赖 1.1为什么要讨论函数依赖 1.2函数依赖基本概念2 关系规范化 范式的概念以及如何进行模式分解,1.1 为什么要讨论函

14、数依赖?,假设有描述学生选课及住宿情况的关系模式:S-L-C(Sno,Sdept,Sloc,Cno,Grade)其中各属性分别为:学号、学生所在学院、学生所住宿舍楼、课程号和分数假设每个学院的学生都住在一栋宿舍楼里,刚入学时确定的每个学生的学号第三位代表所在学院(Sno,Cno)为主码,S-L-C关系模式的数据示例,假设每个院系的学生都住在同一栋宿舍楼,(Sno,Cno)为主码,数据冗余:学生所在学院与对应的宿舍楼信息,0513101同学转到光电学院(更新),计算机学院新来了一名学号为0513103同学(插入),0532102同学不选OS课了(删除),问题,上面例子中的数据冗余以及在对其进行数

15、据更新、插入、删除时存在的问题统称为操作异常。,为什么会产生操作异常?,因为关系模式没有设计好,某些属性之间存在着“不良”的函数依赖。,1.2 函数依赖基本概念,对函数Y=f(X),给定一个X的值,都会有一个Y值和它对应。也可以说X函数决定Y,或Y函数依赖于X。表示为:XY学生所在院系=f(学号):只要给出一个具体的学号,就会有唯一一个学生所在院系和学号对应。可以说“学号”函数决定“学生所在院系”,或“学生所在院系”函数依赖于“学号”。表示为:学号学生所在院系,学号0532101,第3位代表学生所在学院,“3”为光电学院,函数依赖分类,S-L-C表,Sno和Cno 共同决定Grade(完全函数

16、依赖),主码中的Sno决定Sdept(部分函数依赖),Sno决定Sdept,Sdept决定Sloc,从而Sno决定Sloc(传递函数依赖),将S-L-C关系模式分解,将S-L-C拆分为S-L表和S-C表,S-L表,S-C表,主码:Sno,主码:(Sno,Cno),“好”的表,“不好”的表,0513101号同学在S-L-C中有两行数据,而对于一个学生来说,他的所在学院和所住公寓是唯一的,2 关系规范化,如何正确改造复杂关系模式,克服种种操作异常?,按照一定的规范进行模式分解,把一个关系模式分解成两个或多个关系模式,在分解过程中消除“不良”的函数依赖,关系规范化,范式,关系数据库中的关系要满足一定

17、的要求,若关系满足不同程度的要求就称其为不同的范式(Normal Form)。范式的种类:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)等R是第二范式的可以写成R2NF,以此类推,还有3NF、4NF、5NF等。,第一范式,第一范式(1NF):不包含重复组的关系,即不包含非原子项的属性。,关系模式中的码,设用U表示关系模式R的属性全集,F表示关系模式R上的函数依赖集。候选码:设K为R(U,F)中的属性或属性组,若K完全决定U,则K为R的候选码。主码:关系R(U,F)中可能有多个候选码,则选其中一个作为主码。全码:候选码为整个属性组。包含在任一候选码中的属性称为主属性,不包含在任一候选

18、码中的属性称为非主属性。,主属性与非主属性的示例,假设每个院系的学生都住在同一栋宿舍楼,(Sno,Cno)为主码,第二范式,第二范式(2NF):如果R(U,F)1NF,并且R中的每个非主属性都完全函数依赖于主码,则R(U,F)2NF。,右表S-L是2NF1.是1NF 2.非主属性Sdept,SLOC都完全函数依赖于主码Sno,S-L表,将1NF的关系模式分解为2NF的方法,首先,对于组成主码的属性集合的每一个子集,用它作为主码构成一个表。然后,将依赖于这些主码的属性放置到相应的表中。最后,去掉只由主码的子集构成的表。,分解S-L-C表,对S-L-C(Sno,Sdept,SLOC,Cno,Gra

19、de)对于组成主码的属性集合的每一个子集,用它作为主码构成一个表。分解为如下形式的三张表:S-L(Sno,)C(Cno,)S-C(Sno,Cno,),分解S-L-C表(续),然后,将依赖于这些主码的属性放置到相应的表中,形成如下三张表:S-L(Sno,Sdept,Sloc)C(Cno)S-C(Sno,Cno,Grade),分解S-L-C表(续),最后,去掉只由主码的子集构成的表。C(Cno,)S-L-C关系模式最终分解的形式为:S-L(Sno,Sdept,Sloc)S-C(Sno,Cno,Grade),分解后的关系模式满足的范式,S-L表,S-C表,主码:Sno,S-L是2NF,主码:(Sno

20、,Cno),S-C是2NF,Sloc传递函数依赖于Sno,第三范式,第三范式(3NF):如果R(U,F)2NF,并且所有非主属性都不传递依赖于主码,则R(U,F)3NF。,S-C表,右表S-C是3NF1.是2NF 2.非主属性Grade不传递依赖于主码(Sno,Cno),将2NF的关系模式分解为3NF的方法,首先,对于不是候选码的每个决定因子,从表中删去依赖于它的所有属性然后,新建一个表,新表中包含在原表中所有依赖于该决定因子的属性最后,将决定因子作为新表的主码,分解S-L表,对S-L(Sno,Sdept,Sloc)首先,对于不是候选码的每个决定因子,从表中删去依赖于它的所有属性S-L(Sno

21、,Sdept,Sloc)变为S-L(Sno,Sdept)然后,新建一个表,新表中包含在原表中所有依赖于该决定因子的属性S-D(Sloc)最后,将决定因子作为新表的主码 S-D(Sdept,Sloc),分解S-L表(续),S-L分解后的关系模式为:S-L(Sno,Sdept)S-D(Sdept,Sloc),分解S-L-C最后得到的关系模式,S-L(Sno,Sdept)(Sdept为外码)S-D(Sdept,Sloc)S-C(Sno,Cno,Grade)(Sno为外码),均是3NF的,非主码属性不存在对主码的部分函数依赖和传递函数依赖关系,小结,关系规范化理论是设计没有操作异常的关系数据库表的基本

22、原则,主要研究关系表中各属性之间的依赖关系。1NF、2NF和3NF范式的升级是通过模式分解实现的一般的数据库应用,我们设计到3NF。规范化程度越高,表的个数就越多,相应的就有可能会降低数据的操作效率。,作业,下次上课把前四次作业交上来1.设有关系模式:Student1(学号,姓名,出生日期,所在系,宿舍楼),其语义为:一个学生只在一个系学习,一个系的学生只住在一个宿舍楼里。指出此关系模式的候选码,判断此关系模式是第几范式的,若不是第三范式关系模式,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。,作业,2.设有关系模式:Student2(学号,姓名,所在系,班号,班主任

23、,系主任),其语义为:一个学生只在一个系的一个班学习,一个系只有一个系主任,一个班只有一名班主任,一个系可以有多个班。请指出此关系模式的候选码,判断此关系模式是第几范式的,若不是第三范式关系模式,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。,3.设有关系模式:授课表(课程号,课程名,学分,授课教师号,教师名,授课时数),其语义为:一门课程(由课程号决定)有确定的课程名和学分,每名教师(由教师号决定)有确定的教师名,每门课程可以由多名教师讲授,每名教师也可以讲授多门课程,每名教师对每门课程有确定的授课时数。指出此关系模式的候选码,判断此关系模式是第几范式的,若不是第三范式关系模式,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。,

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号