您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > 《数据库系统原理》教案
第二章关系数据库第1/7页《数据库系统原理》教案教学内容第二章关系数据库教材章节教学周次2教学课时6授课对象计算机科学技术041/042/043/职教041/理工041教学环境多媒体教室教学目标介绍关系模型的基本概念,即关系模型的数据结构、关系操作和关系完整性。结合第三章的数据定义介绍数据结构与数据完整性。关系操作主要介绍关系代数。教学重点1、数据结构:笛卡儿积、关系、关系模式、关系数据库。2、关系完整性:实体、参照、用户自定义。3、关系操作:关系代数,重点是投影、选择、连接、除法操作。教学难点关系数据库的型和值;关系代数的除法运算。教学过程本章分3次讲述,每次2学时,每次主要讲述以下内容介绍如下:第一次:介绍数据结构(笛卡儿积、关系、关系模式、关系数据库)。关系完整性(实体、参照、用户自定义)(实际教学过程中将第三章的表定义及对数据库的插入操作部分提前到这里,相当于第三章有2学时多调整到了这里)。第二次:介绍举例关系操作的语义(关系代数,重点是投影、选择、连接、除法操作),并介绍相应的SQL语句表达式(实际教学过程相当于将第三章的相关内容调整到了此处介绍)。第三次:关系操作举例,关系数据库管理系统(重点讲述各类系统支持模型的程度)。作业与要求P64第2、3、4、5、7、8六题。本章的习题要求熟练掌握。备注本提交文档内容与次序与实际讲课内容与次序有不一致的地方。第二章关系数据库第2/7页第二章关系数据库2.1关系数据库概述1、关系数据库系统:支持关系模型的数据库系统。2、关系模型的组成:关系数据结构、关系操作集合、完整性约束条件三部分。3、关系数据结构表,特点:简单的数据结构表达丰富的语义,描述现实世界的实体以及实体间的联系(例)4、关系操作*采用集合操作:操作对象与操作结果为集合,*常用的操作**查询:选择、投影、连接、除、并、交、差等;更新:增、删、改**查询的表达能力是关系操作中的最主要部分*关系模型中关系操作能力的早期抽象表示(即抽象查询语言,领会语言的含义):1)关系代数语言:用代数方式表示,即用关系的运算来表达查询要求的方式。2)关系演算语言:用逻辑方式表示,即用谓词来表达查询要求的方式。元组关系演算:谓词变元的基本对象是元组变量。域关系演算:谓词变元的基本对象为域变量。3)关系代数、关系演算(元组关系演算、域关系演算)三种语言在表达能力上是等价的。*早期抽象查询语言(关系代数、关系演算语言)的作用作为评估实际系统中查询语言能力的标准。与具体DBMS实现的实际语言不完全一样(提供许多附加功能,如集函数、关系赋值、算术运算等)*关系数据库的标准语言(SQL—structuredquerylanguage结构化查询语言)是集数据查询、DDL数据定义、DML数据操纵、DCL数据控制于一体的语言。具有关系代数与关系演算双重特点的语言。5、完整性约束*允许定义三类完整性:实体完整性、参照完整性、用户自定义完整性。*关系系统自动支持的完整性:实体完整性、参照完整性。2.2关系数据结构(关系、关系模式、关系数据库)1、关系例1:有表结构(关系模式):学生(学号、性别)如果,学号为子界类型D1=[1..100],性别为枚举类型D2=(男,女),学生表的最大取值(最大表):100*2=200个元组例2:有表结构:学生(学号、姓名、性别、系别、年龄、籍贯)每个列的类型:integer,char(8),bolean,char(8),integer,char(10)最大表元组数:实际应用中的具体表:最大表的有意义的子集1)域:是一组具有相同数据类型值的集合。表中的每列都与一域(表的数据类型)相关连2)笛卡儿积(本质上为最大元组表)第二章关系数据库第3/7页*定义:给定一组域D1,D2,….,Dn,这些域可以完全不同,也可以部分或全部相同。D1,D2,….,Dn的笛卡儿积为:D1╳D2╳….╳Dn={(d1,d2,…,dn)∣di∈Di,i=1,2,…,n}其中每一个元素(d1,d2,…,dn)叫作一个n元组,或简称为元组。元素中的每一个值di叫作一个分量。*若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1╳D2╳….╳Dn的基数为m1*m2*……*mn3)关系*定义:D1╳D2╳….╳Dn的子集叫作在域D1,D2,….,Dn上的关系,用R(D1,D2,….,Dn)表示。R表示关系的名字,n是关系的目或度n=1单元关系n=2二元关系关系为笛卡儿积的子集,表行——元组,表列——属性(n目关系有n个属性)。*侯选码:若关系中某一属性组的值能唯一标识一个元组,则称该属性组为侯选码*主码:若一个关系中有多个侯选码,则选其中一个作为主码。*主属性:主码的诸属性*非码属性:不包含在任何侯选码中的属性*全码:侯选码为关系的所有属性组*关系的三种类型:基本表(实际存在表)、查询表(查询结果)、视图表(虚表由基本表与其他试图表导出)*基本关系具有6条性质:(见书P40)2、关系模式*定义:关系的描述称为关系模式。它可形式化地表示为R(U,D,DOM,F)。R为关系名U组成该关系的属性名集合D属性组所来自的域DOM属性向域的映象集合F属性间数据的依赖关系集合(第四章专门讨论)*关系模式通常简记为R(U)或R(A1,A2,…,An),域名及属性向域的映象常常直接说明为属性的类型、长度*型与值:模式是型,关系(表)是模式的值3、关系数据库含义:在一个给定的现实世界的领域中,相应于所有实体及实体之间的联系的关系的集合构成一个关系数据库。关系数据库的型和值:型即关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系模式的值也称为关系数据库,是这些关系模式在某一时刻对应的关系的集合。关系数据库模式与关系数据库通常称为关系数据库。2.3关系完整性1、实体完整性要点:主属性不能取空值。现实世界的语义要求:一个基本关系通常对应现实世界的一个实体集,现实世界的第二章关系数据库第4/7页实体是可以区分的,即它们具有某种唯一标识,在关系模型中以主码作为唯一标识。2、参照完整性*关系与关系之间存在着引用关系:因为现实世界的实体之间存在某种联系,而关系模型中实体及实体间的联系都是用关系来描述的。*举例:*要点:*外码——基本关系R的非码属性(组)F与基本关系S的主码Ks相对应,则属性(组)F为R的外码。*参照关系——R*被参照关系——S*参照完整性规则——基本关系R的外码F与基本关系S的主码Ks相对应,则R上的每个元组在F上的取值要求:或者取空值;或者等于S中的某个元组的主码值。3、用户自定义完整性*反映某一具体应用所涉及的数据必须满足的语义要求。*通常有三类:非空约束(notnull)、唯一约束(unique)、检查约束(check)*2.4如何实现完整性约束规则(作问题处理)1、在表中定义完整性规则2、在对表中的数据进行更新操作时,数据库管理系统自动的检查完整性规则,将表中的数据约束在用户期望的范围中。*PB提供了一定的前端约束检查功能**在前端定义约束规则(相当check功能),在前端进行合法性检查。即在输入数据时一定程度上过滤了不合法的数据。相同的检查在数据库表中可以不需要再定义。**在前端一已经实现的完整性约束,在数据库表中是否可以不需要再定义?回答否,因为,如不通过应用程序直接通过工具操作数据库表时,就没有了相应的完整性检查。2.4关系代数1、何为关系代数:是抽象的查询语言,它用关系运算来表达查询。主要研究关系(表)运算,运算对象是关系,运算结果也是关系。2、关系运算分两类:1)传统的集合运算:并、交、差、广义笛卡尔积。运算只涉及行,将关系看成是行(元组)的集合,。2)专门的关系运算:选择、投影、连接、除。运算既涉及行也涉及列。3、传统的集合运算(着重掌握语义)设关系R、SRABa1b1a1b2S第二章关系数据库第5/7页ABa1b2a2b21)并(U)R∪S={t|t∈R∨t∈S}并由属于R或属于S的元组组成。两集合元组并在一起,去掉重复元组。关系R、S要求具有相同的目n(都具有n个属性),相应的属性取自同一个域(同类型数据)2)差(—)R—S={t|t∈R∧﹁t∈S}差由属于R并不属于S的元组组成。关系R、S要求具有相同的目n(都具有n个属性),相应的属性取自同一个域(同类型数据)3)交(∩)R∩S={t|t∈R∧t∈S}由属于R且属于S的元组组成。关系R、S要求具有相同的目n(都具有n个属性),相应的属性取自同一个域(同类型数据)4)广义笛卡尔积R╳S={trts|tr∈R∧ts∈S}*关系R、S分别为m、n目k1、k2个元组,结果为m+n目,元组个数为k1*k2个。例:R学号姓名1A2BS课程数据库操作系统R╳S学号姓名课程1A数据库1A操作系统2B数据库2B操作系统(广义笛卡儿积与笛卡儿积的比较:)4、专门关系运算(运算结果着重掌握语义)1)选择σF(R)={t|t∈R∧F(t)=“T”}选择关系R中满足逻辑表达式F为真的元组。P48例1、查询信息系的全体学生例2、查询年龄小于20的元组例1:σsdept='is'(student)例2:σsage20(student)第二章关系数据库第6/7页逻辑表达式F的基本形式为:X1θY1[φX2θY2]…θ比较运算符,φ逻辑运算符﹁∧∨,Xi、Yi属性名或常量名或简单函数。2)投影ПA(R)={t[A]|t∈R}A为R中的属性列例3:学生关系在姓名和系两个属性上的投影。例4:在学生关系中有那些系表见P48例3:Пsname,sdept(student)例4:Пsdept(student)注:投影后的重复行应该消除3)连接∞R∞S={trts|tr∈R∧ts∈S∧tr[A]θts[B]}AθB从广义笛卡尔积R╳S中选择满足比较运算表达式AθB的元组,A、B分别为R、S上度数相等且可比的属性组。例5(P50):R∞Scd等值连接:上述连接的特例,θ取=自然连接:书写格式在连接符下不加比较表达式,比较分量必须是相同的属性组,连接结果去掉重复列。4)除(÷)例6:设关系R(A,B,C),S(B,C,D),求R÷S,R÷S为新关系P(A),P是R中满足下列条件的元组在A属性列上的投影:元组在A上分量值a的象集BCa包含S在BC上投影的集合。见书P51*象集:关系R(X,Z),X和Z为属性组。我们定义,当t[X]=x时,x在R中的象集为:Zx={t[Z]|t∈R,t[X]=x}表示R中属性组X上值为x的诸元素在Z上分量的集合。*R÷S:R(X,Y),S(Y,Z),其中X,Y,Z为属性组R(X,Y)X=A,Y=BCS(Y,Z)Y=BC,Z=DR÷S的结果为新关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。R÷S={tr[X]|tr∈R∧Пy(S)包含于tr[X]的象集}例:至少选修了课程表中所有课程的学生Пsno,cno(student_course)÷Пcno(course)例:P51例7~例10第二章关系数据库第7/7页假设学生课程数据库中有表:(理解含义)Student(Sno学号,sname姓名,sex性别,age年龄,sdept所在系),Course(Cno,Cname,Cpno,Ccredit),SC(Sno,Cno,Grade)例8:(错误)例9:查询至少选修了一门其直接先行课为6号课程的学生姓名1、先行课为6号的课程,涉及课程表。P1=σcpno='6'(coruse)2、选了上述课程的学生学号P2:P1∞SC或Пsno(P1∞SC)3、根据学号求姓名:P2∞ПSno,Sname(Student),投影出Sname例10:查询选修了全部课程的学生号码和姓名1、所有课程的课程号P1:Пcno(Course)2、选修了所有课程的学生号P2:ПSno,Cno(SC)÷P13、学生姓名、学生号:P2∞ПSno,Sname(Student)2.6关系数据库管理系统(简称关系
本文标题:《数据库系统原理》教案
链接地址:https://www.777doc.com/doc-2838765 .html