关系模型与关系代数大学精讲.ppt

上传人:飞猪 文档编号:59171 上传时间:2025-07-09 格式:PPT 页数:61 大小:994.56KB
下载 相关 举报
关系模型与关系代数大学精讲.ppt_第1页
第1页 / 共61页
关系模型与关系代数大学精讲.ppt_第2页
第2页 / 共61页
关系模型与关系代数大学精讲.ppt_第3页
第3页 / 共61页
关系模型与关系代数大学精讲.ppt_第4页
第4页 / 共61页
关系模型与关系代数大学精讲.ppt_第5页
第5页 / 共61页
点击查看更多>>
资源描述

1、数据库系统概论数据库系统概论An Introduction to Database System第第2 2章章 关系模型与关系代数关系模型与关系代数主要内容主要内容n关系模型概述关系模型概述 关系数据结构关系数据结构 关系的完整性关系的完整性 关系操作关系操作n关系代数关系代数 2.1关系模型概述关系模型概述2.1.12.1.1关系数据模型关系数据模型 由由E.F.CoddE.F.Codd 19701970年提出年提出 之之后后,提提出出了了关关系系代代数数和和关关系系演演算算的的概概念念,1NF1NF5NF5NF(范式)(范式)关系数据库应用数学方法处理数据库中的数据关系数据库应用数学方法处

2、理数据库中的数据8080年年代代后后,关关系系数数据据库库系系统统成成为为最最重重要要、最最流流行的数据库系统行的数据库系统典型商用系统典型商用系统ORACLE ORACLE SYBASE SYBASE INFORMIX INFORMIX DB2 DB2 INGRES INGRES MySQLMySQLE.F.Codd1923-2003F美国美国IBM公司研究员公司研究员F1981获获TuringAward得主得主F关系数据库之父关系数据库之父A.M.TuringDijkstra姚姚期期智智2.1.2 2.1.2 漫谈关系漫谈关系关系(关系(relationrelation)1 1、在用户看来

3、在用户看来,关系模型中数据的逻辑结构是一张扁平的关系模型中数据的逻辑结构是一张扁平的二维表二维表。籍贯籍贯 年龄年龄 系别系别 性别性别 姓名姓名 学号学号 09002 09002 北京北京 2121计算机计算机 男男 白平白平 11023 11023 山西山西 2020数学数学 女女刘佳刘佳 10002 10002 黑龙江黑龙江 19 19 计算机计算机 男男 张三立张三立 10018 10018 北京北京 18 18 数学数学 女女 王铭王铭 10013 10013 山东山东 19 19 信息信息 女女 刘晨刘晨 黑龙江黑龙江 20 20 计算机计算机 男男 李勇李勇 09001 090

4、01 学生登记表(关系)学生登记表(关系)2 2、从数学的角度看,关系是、从数学的角度看,关系是集合。集合。笛卡尔笛卡尔(Descartes)15961650(1)Cartesian Product(1)Cartesian Product定义:定义:给定一组域D1,D2,Dn,这些域中可有相同的。D1,D2,Dn的笛卡尔积为:D D1 1D D2 2D Dn n(d d1 1,d d2 2,d dn n))d di i D Di i,i i1,2,1,2,n n (2)(2)关系关系(Relation)(Relation)D1D2Dn的子集叫作在域D1,D2,Dn上的关系,表示为 R(D1,D

5、2,Dn)籍贯籍贯 年龄年龄 系别系别 性别性别 姓名姓名 学号学号 09002 09002 北京北京 2121计算机计算机 男男 白平白平 11023 11023 山西山西 2020数学数学 女女刘佳刘佳 10002 10002 黑龙江黑龙江 19 19 计算机计算机 男男 张三立张三立 10018 10018 北京北京 18 18 数学数学 女女 王铭王铭 10013 10013 山东山东 19 19 信息信息 女女 刘晨刘晨 黑龙江黑龙江 20 20 计算机计算机 男男 李勇李勇 09001 09001 学生登记表(关系)学生登记表(关系)关系数据库(数据库(Relational Rel

6、ational DataBaseDataBase)在一个给定的应用领域中,所有关系的集合在一个给定的应用领域中,所有关系的集合构成构成关系数据库关系数据库。2.1.32.1.3关系中的术语关系中的术语元组(元组(tupletuple)属性属性(attribute)(attribute)域(域(domaindomain)候选码(候选码(Candidate KeyCandidate Key)主码(主码(Primary KeyPrimary Key)主属性主属性(Prime Attribute)(Prime Attribute)非主属性(非主属性(NonprimaryNonprimary attri

7、bute attribute)外码(外码(Foreign KeyForeign Key)候选码(候选码(Candidate keyCandidate key)举例举例 能够唯一地标识一个元组的属性组。能够唯一地标识一个元组的属性组。主码(主码(Primary keyPrimary key)用户选定的候选码称为主码。用户选定的候选码称为主码。主属性:主属性:候选候选码码中的属性称为主属性。中的属性称为主属性。非主属性:非主属性:不是主属性的属性称为非主属性。不是主属性的属性称为非主属性。外码(外码(Foreign keyForeign key)若模式若模式R R中的属性组中的属性组K K是其它模

8、式是其它模式S S(S(S可以是可以是R R!)的主的主码码,则,则K K称为模式称为模式R R的外码。的外码。其中其中,称称R R是参考关系,是参考关系,S S是被参考关系是被参考关系关系的基本性质 列是同质的(列是同质的(HomogeneousHomogeneous)不同的列可出自同一个域不同的列可出自同一个域 列的顺序无所谓列的顺序无所谓 任意两个元组不能完全相同任意两个元组不能完全相同 行的顺序无所谓行的顺序无所谓 分量必须取原子值分量必须取原子值 关系模式(模式(Relational SchemaRelational Schema)关系模式是关系的描述。它的形式化表示为:关系模式是关

9、系的描述。它的形式化表示为:R(U,D,DOM,F)R(U,D,DOM,F)R-R-关系名关系名,U-,U-属性属性,D-,D-属性域,属性域,DOM-DOM-属性向域的映射属性向域的映射 ,F-,F-属性间的依赖属性间的依赖说明:说明:关系模式是静态的、稳定的,是型;关系模式是静态的、稳定的,是型;关系是关系模式某一时刻的状态,关系是关系模式某一时刻的状态,是变化的,是值;是变化的,是值;2.1.4 2.1.4 关系的完整性关系的完整性 实体完整性实体完整性 参照完整性参照完整性 用户定义的完整性用户定义的完整性1.1.实体完整性实体完整性实体完整性规则(实体完整性规则(Entity Int

10、egrityEntity Integrity)若若A A是关系是关系R R的主码,则的主码,则A A不能取空值或重复值不能取空值或重复值2.2.参照完整性参照完整性若属性组若属性组FKFK是关系是关系R R的外码的外码,它与关系它与关系S S的主码的主码PKPK相对应。相对应。则对于则对于R R中每个元组在中每个元组在F F上的值必须为:上的值必须为:或者取空值(或者取空值(F F的每个属性值均为空值)的每个属性值均为空值)或者等于或者等于S S中某个元组的中某个元组的PKPK的值(主码值)的值(主码值)举例说明举例说明籍贯籍贯 年龄年龄 系别系别 性别性别 姓名姓名 学号学号 09002 0

11、9002 北京北京 2121计算机计算机 男男 白平白平 11023 11023 山西山西 2020数学数学 女女刘佳刘佳 10002 10002 黑龙江黑龙江 19 19 计算机计算机 男男 张三立张三立 10018 10018 北京北京 18 18 数学数学 女女 王铭王铭 10013 10013 山东山东 19 19 信息信息 女女 刘晨刘晨 黑龙江黑龙江 20 20 计算机计算机 男男 李勇李勇 09001 09001 学生登记表(关系)学生登记表(关系)分院分院学生会主席学生会主席1001899999100021001810002NULL3.3.用户定义的完整性用户定义的完整性用户定

12、义的完整性是针对某一具体用户定义的完整性是针对某一具体关系关系数据数据模式的约束条件,反映某一具体应用所涉及模式的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。的数据必须满足的语义要求。例如:关系模式例如:关系模式S S、C C、SCSC中中ageage在在15 15-3030岁岁;sexsex取取值值男男、女女grade grade 在在0-1000-100分之间分之间Create table SC(S#CHAR(4),c#CHAR(4),grade int,primary key(S#,c#),foreign key(S#)reference S(S#),foreign key

13、c#)reference C(c#),CHECK(grade is null)OR (grade between 0 and 100)如何实现中完整性?很简单如何实现中完整性?很简单举例:举例:定义学生选课表定义学生选课表SC(S#,c#,grade)1.1.关系代数语言关系代数语言 ISBLISBL(InformationSystemBaseLanguage)2.2.关系演算语言关系演算语言 3.SQL3.SQL语言语言 OracleOracle、SybaseSybase、DB2DB2元组演算元组演算 ALPHA ALPHA 域演算域演算 QBEQBE2.1.52.1.5关系操作关系操作1

14、1.关系结构关系结构2.2.关系的完整性(约束条件)关系的完整性(约束条件)实体完整性(用主健实现实体完整性(用主健实现 PKPK)参照完整性(用外健实现参照完整性(用外健实现 FKFK)用户定义完整性(用触发器实现用户定义完整性(用触发器实现 TraggerTragger)3.3.关系的操作关系的操作总结:关系的三要素总结:关系的三要素重要说明:重要说明:如何设计关系模式,既关系结构和如何设计关系模式,既关系结构和关系完整性,是个复杂的、意义非常重大的问题,关系完整性,是个复杂的、意义非常重大的问题,属于数据库设计领域属于数据库设计领域实现关系模式,是非常容易解决的问题,只是实现关系模式,

15、是非常容易解决的问题,只是SQL的一条语句而已的一条语句而已2.2 2.2 关系代数关系代数1.1.关系代数关系代数一种对关系抽象的查询语言询一种对关系抽象的查询语言询2 2关系代数运算的三个要素关系代数运算的三个要素运算对象:关系运算对象:关系运算结果:关系运算结果:关系运算符:四类运算符:四类3.3.写好关系查询语句要点写好关系查询语句要点之一:之一:关系操作是对关系的运算,其运算结果也是关关系操作是对关系的运算,其运算结果也是关系。要问:关系的结构是什么?元组是什么?系。要问:关系的结构是什么?元组是什么?之二:之二:了解关系操作的过程了解关系操作的过程集合运算符-并差交广义笛卡尔积比较

16、运算符 大于大于等于小于小于等于等于不等于运算符含义运算符含义关系代数运算符 专门的专门的关系关系运算符运算符 选择选择投影投影连接连接除除逻辑逻辑运算符运算符 非非与与或或运算符含义运算符含义 关系代数运算符(续)关系代数运算符(续)一一.传统的集合运算传统的集合运算并并差差交交广义笛卡尔积广义笛卡尔积温馨提示:写好关系查询语句要点温馨提示:写好关系查询语句要点 之一:之一:关系操作是对关系的运算,其运算结果也是关关系操作是对关系的运算,其运算结果也是关系。要问:关系的结构是什么?元组是什么?系。要问:关系的结构是什么?元组是什么?之二:之二:了解关系操作的过程,学会手工模拟最重要了解关系操

17、作的过程,学会手工模拟最重要1.并(并(Union)R R和和S S具有相同的目具有相同的目n n(即两个关系都有(即两个关系都有n n个属性)个属性)相应的属性取自同一个域相应的属性取自同一个域R RS S 仍为仍为n n目关系,由属于目关系,由属于R R或属于或属于S S的元组组成的元组组成 R RS S=t t|t t R Rt t S S c1b2a2c2b2a1c1b1a1CBAc2b3a1c1b2a2c2b2a1c1b1a1CBAc1b2a2c2b3a1c2b2a1CBARSRS 2.差(差(Difference)R和和Sl具有相同的目具有相同的目nl相应的属性取自同一个域相应的属

18、性取自同一个域R-Sl仍仍为为n目目关关系系,由由属属于于R而而不不属属于于S的的所所有有元元组组成组组成R-S=t|t R t Sc1b2a2c2b2a1c1b1a1CBAc1b1a1CBAc1b2a2c2b3a1c2b2a1CBARSR-S 3.交(Intersection)R和和S具有相同的目具有相同的目n相应的属性取自同一个域相应的属性取自同一个域RS仍仍为为n目目关关系系,由由既既属属于于R又又属属于于S的的元元组组组组成成 RS=t|t R t S RS=R(R-S)ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1R

19、SR S4.广义笛卡尔积(ExtendedCartesianProduct)vR:n目关系,目关系,k1个元组个元组vS:m目关系,目关系,k2个元组个元组vRS:列:(列:(n+m)列的元组的集合)列的元组的集合v元组的前元组的前n列是关系列是关系R的一个元组的一个元组v后后m列是关系列是关系S的一个元组的一个元组行:行:k1k2个元组个元组vRS=trts|tr R ts SABCa1b1c1a1b2c2a2b2c1R.A R.BR.Ca1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR

20、 S S.A S.B S.Ca1b2c2a1b3c2a2b2c1A1b2c2A1b3c2a2b2c1a1b2c2a1b3c2a2b2c1Ss#sn sex age01 刘欢刘欢 男男 3602 韩红韩红 女女 28 03 刀郎刀郎 男男 30SCs#c#G01 c1 59 01 c2 8002 c1 6203 c1 null 求求SSC?SSCS.s#sn sex age SC.s#c#G01 刘欢刘欢 男男 36 01 C1 5901 刘欢刘欢 男男 36 01 C2 8001 刘欢刘欢 男男 36 02 C1 6201 刘欢刘欢 男男 36 03 C1 null02 韩红韩红 女女 28

21、01 C1 5902 韩红韩红 女女 28 01 C2 8002 韩红韩红 女女 28 02 C1 6202 韩红韩红 女女 28 03 C1 null03 刀郎刀郎 男男 30 01 C1 5903 刀郎刀郎 男男 30 01 C2 8003 刀郎刀郎 男男 30 02 C1 6203 刀郎刀郎 男男 30 03 C1 null思考:思考:SSC与与S,SC信息等价吗?信息等价吗?二.专门的关系运算v选择(选择(selection)v投影(投影(projection)v连接(连接(join)v除(除(division)温馨提示:写好关系查询语句要点温馨提示:写好关系查询语句要点 之一:之一:

22、关系操作是对关系的运算,其运算结果也是关关系操作是对关系的运算,其运算结果也是关系。要问:关系的结构是什么?元组是什么?系。要问:关系的结构是什么?元组是什么?之二:之二:了解关系操作的过程,学会手工模拟最重要了解关系操作的过程,学会手工模拟最重要1.选择(Selection)v1)选择又称为限制(选择又称为限制(Restriction)v2)选择运算符的含义选择运算符的含义在关系在关系R中选择满足给定条件的诸元组中选择满足给定条件的诸元组F(R)=t|t R F(t)=真真F:选择条件,是一个逻辑表达式:选择条件,是一个逻辑表达式比较运算符比较运算符:,,逻辑运算符逻辑运算符:,,例如:例如

23、sex=sex=男男 age15 sex=女女 age 12 v3)选择运算是从行的角度进行的运算选择运算是从行的角度进行的运算v4)4)举例举例设设有有一一个个学学生生-课课程程数数据据库库,包包括括学学生生关关系系StudentStudent、课程关系、课程关系CourseCourse和选修关系和选修关系SCSC。举例:举例:设有一个学生设有一个学生-课程数据库课程数据库 学生关系学生关系 Student 课程关系课程关系 Course 选修关系选修关系 SC请你记住请你记住学号学号Sno姓姓 名名SnameSname性别性别SsexSsex年年 龄龄SageSage系系SdeptSde

24、pt9500195001李勇李勇男男2020CSCS9500295002刘晨刘晨女女1919ISIS9500395003王敏王敏女女1818MAMA9500495004张立张立男男19ISISStudentCourse课程课程号号 课程名课程名先行课先行课学分学分CnoCnameCpnoCcredit1数据库数据库542数学数学23信息系统信息系统144操作系统操作系统635数据结构数据结构746数据处理数据处理27PASCALPASCAL语言语言64SC 学号学号 课程号课程号 成绩成绩SnoCnoGrade9500119295001285950013889500229095002380 例

25、例1 1 查询信息系(查询信息系(ISIS系)全体学生系)全体学生Sdept=IS(Student)结果:结果:SnoSnameSsexagedept95002刘晨刘晨女女19IS95004张立张立男男19IS2.投影(Projection)v1)投影运算符的含义投影运算符的含义从从R中选择出若干属性列组成新的关系中选择出若干属性列组成新的关系A(R)=tA|t RA:R 中的属性列中的属性列v2 2)投影操作主要是从列的角度进行运算)投影操作主要是从列的角度进行运算但但投投影影之之后后不不仅仅取取消消了了原原关关系系中中的的某某些些列列,而而且且还可能取消某些元组(避免重复行)还可能取消某些

26、元组(避免重复行)例例3 3 查询学生的姓名和所在系查询学生的姓名和所在系 Sname,Sdept(Student)结果:结果:SnameSdept李勇李勇CS刘晨刘晨IS王敏王敏MA张立张立IS2.3 2.3 关系代数举例关系代数举例温馨提示:写好关系查询语句要点温馨提示:写好关系查询语句要点 之一:之一:关系操作是对关系的运算,其运算结果也是关关系操作是对关系的运算,其运算结果也是关系。要问:关系的结构是什么?元组是什么?系。要问:关系的结构是什么?元组是什么?之二:之二:了解关系操作的过程,学会手工模拟最重要了解关系操作的过程,学会手工模拟最重要之三:之三:对查询请求,先手工解决,然后使

27、用计算机语对查询请求,先手工解决,然后使用计算机语言解决言解决 Ss#sn sex age01 刘欢刘欢 男男 3602 韩红韩红 女女 28 03 刀郎刀郎 男男 29 检索检索3030岁以下男学生的姓名和年龄?岁以下男学生的姓名和年龄?sn,age(age30sex=男男(S)的执行结果的执行结果 sn age刀郎刀郎 29问题:问题:检索检索3030岁以下男学生的情况?岁以下男学生的情况?age30sex=男男(S)的执行结果的执行结果s#sn sex age03 刀郎刀郎 男男 29Ss#sn sex age01 刘欢刘欢 男男 3602 韩红韩红 女女 28 03 刀郎刀郎 男男 3

28、0Cc#cn Tc1 OS 关羽关羽c2 DB 张飞张飞SCs#c#G01 c1 59 01 c2 8002 c1 6203 c1 null 设教学数据库中有三个关系:设教学数据库中有三个关系:S、C、SC以下讲解关系的运算!以下讲解关系的运算!Ss#sn sex age01 刘欢刘欢 男男 3602 韩红韩红 女女 28 03 刀郎刀郎 男男 30SCs#c#G01 c1 59 01 c2 8002 c1 6203 c1 null 求求 SSC?SSCS.s#sn sex age SC.s#c#G01 刘欢刘欢 男男 36 01 C1 5901 刘欢刘欢 男男 36 01 C2 8001 刘

29、欢刘欢 男男 36 02 C1 6201 刘欢刘欢 男男 36 03 C1 null02 韩红韩红 女女 28 01 C1 5902 韩红韩红 女女 28 01 C2 8002 韩红韩红 女女 28 02 C1 6202 韩红韩红 女女 28 03 C1 null03 刀郎刀郎 男男 30 01 C1 5903 刀郎刀郎 男男 30 01 C2 8003 刀郎刀郎 男男 30 02 C1 6203 刀郎刀郎 男男 30 03 C1 nullS.s#=SC.s#(SSC)的执行结果:的执行结果:S.s#sn sex age SC.s#c#G01 刘欢刘欢 男男 36 01 C1 5901 刘欢刘

30、欢 男男 36 01 C2 8002 韩红韩红 女女 28 02 C1 6203 刀郎刀郎 男男 30 03 C1 null关系连接运算定义:关系连接运算定义:S SC=S.s#=SC.s#(SSC)S.s#=SC.s#显见:显见:两张表变成一张表,且该表两张表变成一张表,且该表 与与S和和SC信息等价信息等价!进一步去掉重复列,操作运算是:进一步去掉重复列,操作运算是:S.s#sn sex age c#G01 刘欢刘欢 男男 36 C1 5901 刘欢刘欢 男男 36 C2 8002 韩红韩红 女女 28 C1 6203 刀郎刀郎 男男 30 C1 nullsnS.s#,sn,sex,age

31、c#,G(S.s#=SC.s#(SSC)关系操作关系操作定义为定义为自然连接自然连接运算:运算:S SC 这是一个非常重要的关系运算!这是一个非常重要的关系运算!思考题:如何找到与思考题:如何找到与S、SC、C等价的一个关系?等价的一个关系?S.s#sn sex age C.c#cn T G01 刘欢刘欢 男男 36 C1 OS 关羽关羽 5901 刘欢刘欢 男男 36 C2 DB 张飞张飞 8002 韩红韩红 女女 28 C1 OS 关羽关羽 6203 刀郎刀郎 男男 30 C1 OS 关羽关羽 null答案:答案:S SCC 下面用关系代数表达式表示每个下面用关系代数表达式表示每个查询请求查询请求。检索学习课程号为检索学习课程号为C2的学生的的学生的学号学号和和姓名姓名。S#,Sn(C#=C2()SSC 检索选修检索选修OS的学生的的学生的学号学号和和姓名姓名。S#,Sn(Cn=OS()S SCC 检索选修课程号为检索选修课程号为C2或或C4的学生的的学生的学号学号。S#(C#=C2VC#=C4(SC)检索不学检索不学C2课程的学生的学号和课程的学生的学号和姓名姓名。Sno,Sn(S)Sno,Sn(C#=C2()S SC 检索至少选修检索至少选修C2和和C4的学生的的学生的学号学号。S#(C#=C2C#=C41=4(SCSC)本次课已本次课已OverOver 谢谢了谢谢了!

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

当前位置:首页 > 高等教育 > 大学课件

宁ICP备18001539号-1