第3章 关系数据库的基本理论
- 格式:ppt
- 大小:2.07 MB
- 文档页数:86
第3章关系数据库习题答案1.试述关系模型的3个组成部分。
关系模型由关系模型的数据结构、关系模型的操作集合和关系模型的完整性约束3部分组成。
2.解释下列术语的含义:●笛卡尔积设A,B为集合,用A中元素为第一元素,B中元素为第二元素构成有序对,所有这样的有序对组成的集合叫做A与B的笛卡尔积,记作A×B。
●主键也称为主码或主关键字,是表中的属性或属性组,用于唯一地确定一个元组。
主键可由一个属性组成,也可由多个属性共同组成。
●候选键又称为候选码或候选关键字,是关系中能够唯一标识元组且不含有多余属性的一个属性或属性集的值。
一个关系上可有多个候选键。
●关系是笛卡尔积中有一定意义且有限的子集。
通俗讲关系就是二维表,表的名称就是关系的名称,表的每一行对应一个元组,表的每一列对应一个域。
●关系模式即二维表的结构,或者说是二维表的表框架或表头结构。
●关系数据库即对应于一个关系模型的所有关系的集合。
3.关系数据库的3个完整性约束是什么,各是什么含义?实体完整性指关系数据库中所有的表都必须有主键,且表中不允许存在无主键或主键值相同的记录,即主键约束。
参照完整性一般是指多个实体或关系之间的关联关系,即外键约束。
参照完整性规则定义了外键与被参照的主键间的引用规则,要求外键值为空或等于其所参照的关系中的某个元组的主键值。
用户定义的完整性是针对某一具体应用领域定义的数据约束条件,即对表中字段属性的约束,它反映某一具体应用所涉及的数据必须满足应用语义的要求。
通俗讲是指明关系中属性的域,限制关系中属性的取值类型及取值范围,防止属性的值与应用语义矛盾。
4.过程语言与非过程语言有什么区别?非过程语言主要用于基本的数据更新查询处理,过程语言可以编写存储过程,结构相对更复杂。
5.利用表3-11~表3-13所给的3个关系,试用关系代数表达式、Alpha语言完成下列查询:表3-11表3-12表3-131)查询“信息管理系”学生的选课情况,列出学号、姓名、课程号和成绩;∏Sno,Sname,Cno,Grade(σSdept=’信息管理系’(Student⋈Course⋈SC)) 2)查询“VB”课程的考试情况,列出学生姓名、所在系和考试成绩;∏Sname,Sept,Grade(σCname=’VB’(Student⋈Course⋈SC))3)查询考试成绩高于90分的学生的姓名、课程名和成绩;∏Sname,Cname,Grade(σGrade>90(Student⋈Course⋈SC))4)查询至少选修了0821103号学生所选的全部课程的学生的姓名和所在系;∏Sname,Sdept(Student⋈(∏Sno,Cno(SC)÷∏Cno(SC)(σSno=’0821103’(SC))))5)查询至少选了“C001”和“C002”两门课程的学生的姓名、所在系和所选的课程号。
课后作业习题《数据库系统概论》课程部分习题及参考答案第一章绪论(教材41页)1.试述数据、数据库、数据库系统、数据库管理系统的概念。
数据:描述事物的符号记录称为数据。
数据的种类有文字、图形、图象、声音、正文等等。
数据与其语义是不可分的。
数据库:数据库是长期储存在计算机内、有组织的、可共享的数据集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
数据库系统:数据库系统(DBS)是指在计算机系统中引入数据库后的系统构成。
数据库系统由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
数据库管理系统:数据库管理系统(DBMS)是位于用户与操作系统之间的一层数据管理软件。
用于科学地组织和存储数据、高效地获取和维护数据。
DBMS主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。
2.使用数据库系统有什么好处?使用数据库系统的好处是由数据库管理系统的特点或优点决定的。
使用数据库系统的好处很多,例如可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担等。
为什么有这些好处,可以结合第 5题来回答。
使用数据库系统可以大大提高应用开发的效率。
因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由 DBMS来完成。
此外,当应用逻辑改变,数据的逻辑结构需要改变时,由于数据库系统提供了数据与程序之间的独立性。
数据逻辑结构的改变是DBA的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序。
从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改。
使用数据库系统可以减轻数据库系统管理人员维护系统的负担。
因为 DBMS在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性,多用户并发控制,故障恢复等等都由DBMS执行。
数据库系统概论复习资料:第一章:二、填空题1. 数据管理技术经历了人工管理、文件系统和数据库系统三个阶段。
2. 数据库是长期存储在计算机内、有组织的、可共享的数据集合。
3.DBMS是指它是位于用户和③之间的一层管理软件。
4. 数据库管理系统的主要功能有数据定义功能、数据操纵功能、数据库的运行管理和数据库的建立以与维护等4个方面。
5.数据独立性又可分为逻辑数据独立性和物理数据独立性。
6.6. 当数据的物理存储改变了,应用程序不变,而由DBMS处理这种改变,这是指数据的物理独立性。
7. 数据模型是由数据结构、数据操作和完整性约束三部分组成的。
8. 数据结构是对数据系统的静态特性的描述,数据操作是对数据库系统的动态特性的描述。
9. 数据库体系结构按照模式、外模式和内模式三级结构进行组织。
10. 实体之间的联系可抽象为三类,它们是 1∶1 、 1∶m 和 m∶n 。
11.数据冗余可能导致的问题有浪费存储空间与修改麻烦和潜在的数据不一致性。
第2章关系数据库1、一个关系模式的定义格式为关系名。
2、.一个关系模式的定义主要包括关系名、属性名、属性类型、属性长度和关键字。
3、.关系代数运算中,传统的集合运算有笛卡尔积、并、交和差。
4、关系代数运算中,基本的运算是并、差、笛卡尔积、投影和选择。
5、5、关系代数运算中,专门的关系运算有选择、投影和连接。
6、关系数据库中基于数学上两类运算是关系代数和关系演算。
7、.已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主关键字是系编号,系关系的外关键字无②,学生关系的主关键字是学号,外关键字系编号第3章关系数据库标准语言SQL1、SQL是结构化查询语言。
2、视图是一个虚表,它是从一个或几个基本表中导出的表。
在数据库中,只存放视图的定义,不存放视图的视图对应的数据。
3、设有如下关系表R:R(No,NAME,SEX,AGE,CLASS)主关键字是NO其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。
第1章数据库概述1.试说明数据、数据库、数据库管理系统和数据库系统的概念。
答:数据是描述事物的符号记录,是数据库中存储的基本对象。
数据库是存放数据的仓库,是长期存储在计算机中的有组织的、可共享的大量数据的集合。
数据库管理系统是一个专门用于实现对数据进行管理和维护的系统软件。
数据库系统是指在计算机中引入数据库后的系统,一般由数据库、数据库管理系统(及相关的实用工具)、应用程序、数据库管理员组成。
2.数据管理技术的发展主要经历了哪几个阶段?答:数据管理技术的发展主要经历了文件管理和数据库管理两个阶段。
3.与文件管理相比,数据库管理有哪些优点?答:将相互关联的数据集成在一起,具有较少的数据冗余,程序与数据相互独立,保证数据的安全可靠,最大限度地保证数据的正确性,数据可以共享并能保证数据的一致性。
4.在数据库管理方式中,应用程序是否需要关心数据的存储位置和存储结构?为什么?答:不需要。
因为在数据库系统中,数据的存储位置以及存储结构保存在数据库管理系统中,从数据到物理存储位置的转换是由数据库管理系统自动完成的。
5.在数据库系统中,数据库的作用是什么?答:在数据库系统中,数据库是存放数据的场所。
6.在数据库系统中,应用程序可以不通过数据库管理系统而直接访问数据文件吗?答:不能。
7.数据独立性指的是什么?它能带来哪些好处?答:数据独立性指的是数据的逻辑独立性和物理独立性。
逻辑独立性带来的好处是当表达现实世界信息的逻辑结构发生变化时,可以不影响应用程序;物理独立性带来的好处是当数据的存储结构发生变化时,可以不影响数据的逻辑组织结构,从而也不影响应用程序。
8.数据库系统由哪几部分组成,每一部分在数据库系统中的作用大致是什么?答:数据库系统由四个主要部分组成,即数据库、数据库管理系统、应用程序和系统管理员。
数据库是数据的汇集,它以一定的组织形式存于存储介质上;数据库管理系统是管理数据库的系统软件,它可以实现数据库系统的各种功能;系统管理员负责数据库的规划、设计、协调、维护和管理等工作;应用程序指以数据库数据为核心的应用程序。
1—7章选择题解答二、选择题1.数据库系统的基本特征是A)数据的统一控制B)数据共享性和统一控制C)数据共享性、数据独立性和冗余度小D)数据共享性和数据独立性2.在数据库系统中,多种应用、多种语言互相覆盖地同时使用数据集合并且易于扩充,则称之为数据的A)安全性 B)独立性 C)完整性 D)共享性3. 在文件系统中,数据是面向A)机器 B)全组织 C)系统软件D)特定应用4. 在数据库系统的三级模式结构中,用___描述数据的全局逻辑结构A)子模式 B)用户模式C)模式 D)存储模式5.数据库的概念模型独立于A)具体的机器和DBMS B)E-R图C)信息世界 D)现实世界6. 下列不属于 DBMS 的主要功能是A)数据存取 B)数据库定义C)运行管理 D)报表书写7.要保证数据库的数据独立性,需要修改的是A)三层模式之间的两种映射B)模式与内模式C)模式与外模式D)三层模式8.在数据库技术中,为提高数据库的逻辑独立性和物理独立性,数据库的结构被划分成用户级、_________、和存储级三个层次。
A)管理员级 B)外部级C)概念级 D)内部级9.在三个模式中真正存储数据的是A)模式 B)内模式 C)外模式 D)上述三者10.数据库管理系统DBMS是。
A、数学软件B、应用软件C、计算机辅助设计D、系统软件第2章关系数据库一、单项选择题1.关系数据模型通常由三部分组成,它们是_______。
A)数据结构、数据通信、关系操作B) 数据结构、关系操作、完整性约束C) 数据通信、关系操作、完整性约束D)数据结构、数据通信、完整性约束2.关系模型实体完整性约束是指__________A)限制外键的属性值不能为空值B)限制主键的属性值不能为空值C)限制非主属性值不能为空值D)限制元组中任何属性值不能为空3.五种基本关系代数运算是_______。
A)∪,-,×,π和σB)∪,-,∞,π和σC)∪,∩,×,π和σD)∪,∩,∞,π和σ4.设关系R和S的结构相同,并且各有80个元组,假如这两个关系作交运算,其运算结果的元组个数为_________。
第一部分基础理论第1章数据库概述1.试说明数据、数据库、数据库管理系统和数据库系统的概念。
数据:描述事务的符号记录数据库:存储数据的仓库数据库管理系统:用于管理和维护数据的系统软件数据库系统:计算机中引入数据库后的系统,包括数据库,数据库管理系统,应用程序,数据库管理员2.数据管理技术的发展主要经历了哪几个阶段?两个阶段,文件管理和数据库管理9.数据独立性指的是什么?应用程序不因数据的物理表示方式和访问技术改变而改变,分为逻辑独立性和物理独立性。
物理独立性是指当数据的存储结构或存储位置发生变化时,不影响应用程序的特性;逻辑独立性是指当表达现实世界的信息内容发生变化时,不影响应用程序的特性。
10.数据库系统由哪几部分组成?由数据库、数据库管理系统、应用程序、数据库管理员组成。
第2章数据模型与数据库系统的结构4.说明实体一联系模型中的实体、属性和联系的概念。
实体是具有公共性质的并可相互区分的现实世界对象的集合。
属性是实体所具有的特征或性质。
联系是实体之间的关联关系。
6.数据库系统包含哪三级模式?试分别说明每一级模式的作用。
外模式、模式和内模式。
外模式:是对现实系统中用户感兴趣的整体数据结构的局部描述,用于满足不同用户对数据的需求,保证数据安全。
模式:是数据库中全体数据的逻辑结构和特征的描述,它满足所有用户对数据的需求。
内模式:是对整个数据库的底层表示,它描述了数据的存储结构。
7.数据库管理系统提供的两级映像的作用是什么?它带来了哪些功能?两级映像是外模式/模式映像和模式/内模式映像。
外模式/模式映像保证了当模式发生变化时可以保证外模式不变,从而使用户的应用程序不需要修改,保证了程序与数据的逻辑独立性。
模式/内模式映像保证了当内模式发生变化,比如存储位置或存储文件名改变,可以保持模式不变,保证了程序与数据的物理独立性。
两级印象保证了应用程序的稳定性。
第3章关系数据库1.试述关系模型的三个组成部分。
数据结构、关系操作集合、关系完整性约束2.解释下列术语的含义:(3)候选码当一个属性或属性集的值能够唯一标识一个关系的元组,而又不包含多余的元素,则称该属性或属性集为候选码。
第3章 关系数据库数据库系统应用Data Base System Application张建国哈工大计算机科学与技术学院2008-9-21哈工大计算机学院 张建国 Slide 3-1第3章 关系数据库2008-9-212第3章 关系数据库本章主要内容关系的理论基础(掌握) 关系的定义 关系模型的基本概念(掌握) 关系数据结构 关系操作 关系完整性 关系代数(掌握) 关系的完整性约束(掌握) 现在的数据库 大多是关系数 据库.2008-9-21哈工大计算机学院 张建国Slide 3-3第3章 关系数据库3.1 关系的理论基础关系模型是IBM公司的San Jose研究所 的研究员E.F.Codd提出来的. 1970年,Codd发表了一篇文章,讨论了关系 数据库的基本概念 A Relational Model of Data for A large Shared Data Banks(一种大型共 享数据库数据的关系模型). 后来,他发表了一系列文章,开创了关系 方法和关系数据理论研究,1981年获 ACM图灵奖.2008-9-21哈工大计算机学院 张建国Slide 3-4第3章 关系数据库3.1 关系的理论基础(Cont.)关系建立在集合代数基础之上,因此从集合论角度给出关系的 定义. 1. 域Domain 定义 域是一组具有相同数据类型的值的集合. 例:自然数、整数、星期、{0,1}、{男,女}、… 域可以是有 限集,也可 以是无限集2008-9-21哈工大计算机学院 张建国Slide 3-5第3章 关系数据库3.1 关系的理论基础(Cont.)2. 笛卡儿积Cartesian Product 定义 给定一组域D1,D2,…,Dn(这些域中可以有相同的) D1,D2,…,Dn 的笛卡尔积为: D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di, i=1,2,…,n} 其中:(d1,d2,…,dn)叫一个n元组(n-tuple),简称元组 di叫一个分量 笛卡尔积的基数 设D1,D2,…,Dn 为有限集,基数分别为mi(i=1,2,…,n),则 D1×D2×…×Dn的基数M=m1×m2×…×mn2008-9-21哈工大计算机学院 张建国Slide 3-6第3章 关系数据库3.1 关系的理论基础(Cont.)例: 设D1为男士的集合,D2为女士的集合, D3为儿童的集合 D1={张伟,李强,王刚}; D2={赵梅,朱兰};D3={张小伟,张小 梅,李小兰}D1×D2×D3={(张伟,赵梅,张小伟),(张伟,赵梅,张小梅), (张伟,赵梅,李小兰),(张伟,朱兰,张小伟),该笛卡儿积 的基数 M=3×2×3=18(张伟,朱兰,张小梅),(张伟,朱兰,李小兰), (李强,赵梅,张小伟),(李强,赵梅,张小梅), (李强,赵梅,李小兰),(李强,朱兰,张小伟), (李强,朱兰,张小梅),(李强,朱兰,李小兰), (王刚,赵梅,张小伟),(王刚,赵梅,张小梅), (王刚,赵梅,李小兰),(王刚,朱兰,张小伟), (王刚,朱兰,张小梅),(王刚,朱兰,李小兰)}2008-9-21哈工大计算机学院 张建国Slide 3-7第3章 关系数据库3.1 关系的理论基础(Cont.)(3) 关系Relation 定义 D1×D2×…×Dn 的子集叫作在域D1,D2,…,Dn上的关系, 表示为: R(D1, D2,…, Dn) 其中:R为关系名,n为关系的度(或目),D1, D2,…, Dn为域名 由于域名可以相同,为了加以区分,必须为每一列起一个名, 称属性Attribute,故关系常表示为: R(A1,A2,…,An ) 例:从D1×D2×D3中取一 个家庭关系 家庭(丈夫,妻子,孩子)2008-9-21家庭丈夫 张伟 张伟 李强妻子 赵梅 赵梅 朱兰孩子张小伟 张小梅 李小兰哈工大计算机学院 张建国Slide 3-8第3章 关系数据库3.1 关系的理论基础(Cont.)(4) 属性到域的映象 若属性名与域名相同,则用域名作属性名. 若属性名与域名不同,则需要指出属性到域的映象. Ai=Dom(Di) 表明:属性Ai来自于域Di 例:课程(课号,课名,学时数,性质,先修课号) 域名: 课号,课名,学时数,性质 先修课号来自域课号,用先修课号=Dom(课号)表示2008-9-21哈工大计算机学院 张建国Slide 3-9第3章 关系数据库3.1 关系的理论基础(Cont.)(5) 数据库关系与数学中关系的区别 关系模型对其数学定义作了适当的扩充: 笛卡尔积可以是一个无限集合,但关系必须是有限集合. 在数学意义上, (d1,d2,…,dn)≠ (d2,d1,…,dn) 列之间不满足交换律,故通过为关系的每一个列加一个属性 名,取消关系中列的有序性的限制. 这是要注意的 !2008-9-21哈工大计算机学院 张建国Slide 3-103.2 关系模型的基本概念(Cont.)(6) 关系的性质列是同质的:每一列中的数据类型相同列名是唯一的:不同的列(属性)可以来自于同一个域, 需要指出属性到域的映象行的顺序无关:任何两行可以互换列的顺序无关:任何两列可以互换任何两行不能完全相同:由主码区分分量必须是原子量:每一列不可再分割3.1 关系的理论基础(Cont.) (7) 关系的优点与不足关系模型的优点理论基础扎实:集合论,关系数据理论.概念单一:实体用关系表示,联系也用关系表示.存取路径对用户是透明的:用户不必知道存取路径规范化:最基本的要求是每一个属性不可再分割.数据用表表示,查询结果也用表表示.关系模型的缺点效率不如非关系模型,因此需要进行查询优化,这样增加了DBMS自身的开发难度.但由于计算机处理速度的提高,数据库优化算法的改善,使关系数据库的效率仍远高于其他数据模型3.2 关系的数据结构关系模型是通过满足一定条件的二维表来表示实体集合及数据之间联系的一种数据模型.具有坚实的数学基础和较严密的理论,使用灵活方便,得到了迅速发展,80年代以后的数据库系统几乎都支持关系模型.关系的逻辑数据结构实体和联系都用关系表示.从用户的观点看,关系是一张二维表.关系的存储结构实体和联系都用关系(表)来表示.每个表可对应一个文件,也可以将多个表存储在一个文件中.3.2 关系的数据结构(Cont.)课程学生选课分数mn学生(学号,姓名,性别,出生日期,专业)课程(课号,课名,学时,学分,性质)选课(学号,课号,分数)关系的数据结构(关系模式)注意:在关系数据库理论中,关系Relation 就是表Table ;有些资料将联系Relationship 称为关系Relation.例:一个学生关系学生(学号,姓名,性别,出生日期,专业)计算机1982-12-03男张伟1022211103计算机1983-05-23女李小莉1022211102…………………………计算机1982-02-18男王小明1022211101专业出生日期性别姓名学号关系名属性名记录(元组)数据项,分量码学生理论研究时称“关系”,在具体数据库中称“表”3.2 关系的数据结构(Cont.)3.2 关系的数据结构(Cont.)关系的术语关系模式Relation Schema:关系的型,是对关系的描述,即关系的框架关系Relation:关系模式的一组具体取值关系数据库模式Relation Database Schema:关系模式的集合关系数据库Relation Database:关系的集合元组Tuple:关系中的一行属性Attribute:由于域可以相同,为了区分,必须为每个列取一个名字,称为属性域Domain:属性的取值范围3.2 关系的数据结构(Cont.)超码(键)Super Key:能唯一标识一个元组的属性组候选码(键)Candidate Key:能唯一标识一个元组的最小属性组主码(键)Primary Key:若候选码有多个,选择其中的一个作主码例:学号,身份证号主属性Primary Attribute:候选码中的属性非主属性Non-primary Attribute:不包含在任何候选码中的属性全码All Key:全部属性都是主属性关系操作是集合操作,只需指出要干什么,不必指出怎么干,不必指出存取路径.查询(检索)操作从数据库中查找数据更新操作插入数据记录修改数据记录删除数据记录所有关系操作都必须满足完整性约束条件.保证数据是正确的3.3关系代数3.3关系代数(Cont.)关系操作分类关系代数通过对关系的运算表示查询方式关系演算用谓词表示查询方式元组关系演算:谓词变元的基本对象是元组域关系演算:谓词变元的基本对象是域结构化查询语言SQL一种可实际使用的语言具有关系代数和关系演算双重特点,集DDL、DML、DCL于一体,已成为关系数据库的标准语言3.3关系代数(Cont.)关系代数运算包括两大类传统的集合运算:从行的角度进行运算.并∪, 交∩,差—,广义向卡尔积×专门的关系运算:从行和列两种角度进行运算.选择σ,投影π,连接⋈,除÷在各种运算中,使用下列运算符比较运算符: <, ≤, =, >, ≥, ≠逻辑运算符:¬(非),∧(与),∨(或)1.传统的集合运算前提条件二目运算,关系R 和S 具有相同的目n;相应的属性来自同一个域.R SR S交运算R ∩SR ∩S={t |t ∈R ∧t ∈S}结果仍由n 目关系组成,由既属于R 又属于S 的元组组成,用于检索操作.并运算R ∪SR ∪S={t |t ∈R ∨t ∈S}结果仍由n 目关系组成,由属于R 或属于S 的元组组成,用于插入操作.3.3 关系代数(Cont.)差运算R-S={t |t ∈R ∧t ∉S}结果仍由n 目关系组成,由属于R ,但不属于S 的元组组成,用于删除操作.RSR S广义笛卡尔积R ×S={ t r ^t s |t ∈R ∧t ∈S}设R 的目为n ,S 的目为m ,结果为n+m 目关系,其中前n 列是关系R 的一个元组,后m 列是关系S 的一个元组.设R 有k1个元组,S 有k2个元组,则R ×S 有k1 ×k2个元组.3.3关系代数(Cont.)c1c2c1c2b1b2b2b3a1a1a2a1C B A R ∪Sc2c2c1c2c2c2c2c2c1S.C b2b3b2b2b2b3b2b3b2a1a1a2a1a1a1a1a1a2c1c1c1c2c2c2c1c1c1b1b1b1b2b2b2b2b2b2a1a1a1a1a1a1a2a2a2S.B S.A R.C R.B R.A R ×SR ∩Sc2c1b2b2a1a2C B A c2b2a1C B A R-Sc2c2c1b2b3b2a1a1a2C B A Sc1c2c1b1b2b2a1a1a2C B A R3.3 关系代数(Cont.)一个学生-课程系统S-C 有三个关系:计算机信息数学信息Sdept 20191819男女女男李勇刘晨王敏张立221101231101232101231102Sage Ssex Sname Sno 928588908010011002100310021003221101221101221101231101231102Grade Cno Sno4243424Credit 10051001100610071006数据库高等数学信息系统操作系统数据结构数据处理C 语言1001100210031004100510061007PCno Cname Cno StudentCourseSCGradem n StudentCourseSC 2.专门的关系运算3.3 关系代数(Cont.)选择运算SelectionσF (R)={r |r ∈R ∧F(r )=’True ’}F 是一个逻辑表达式;结果取在关系R 中选择满足条件F 的元组.信息信息Sdept 1919女男刘晨张立231101231102Sage Ssex Sname Sno 例:在S-C 系统中,查询"信息"系全体学生.σSdept =‘信息’(Student)或σ5=‘信息’(Student)3.3 关系代数(Cont.)投影运算ProjectionΠA(R)={r[A]|r∈R}A是若干个属性结果取关系R中指定的列,并去掉重复元组,组成新关系.例:查询全体学生的学号,姓名和系名.ΠSno,Sname,Sdept(Student)由于学号是唯一的,查询结果的记录个数与表中的记录个数相同.例:查询所有系名.ΠSdept(Student)去掉重复的元组后,查询结果仅与系的个数相同.计算机信息数学信息Dept李勇刘晨王敏张立221101231101232101231102SnameSno计算机数学信息Dept3.3 关系代数(Cont.)连接JoinR ⋈S= {t r ^t s |t r ∈R ∧t s ∈S ∧t r [A]=t s [B]}A θBA 和B 分别是R 和S 中度数相同且可比的属性或属性组.结果为R ×S 中满足条件A θB 的元组,其前n 个属性取自于R ,后m 个属性取自于S.56812b1b2b3b4a1a1a2a2C B A R371022b1b2b3b3b5E B S71071010E b2b3b2b3b3S.B 55668b1b1b2b2b3a1a1a1a2a2C R.B A R ⋈S C<E 例:R ⋈SC<E3.3 关系代数(Cont.)等值连接R ⋈S={t r ^t s |t r ∈R ∧t s ∈S ∧t r [A]=t s [B]}A=B 例R ⋈SR.B=S.B 56812b1b2b3b4a1a1a2a2C B A R 371022b1b2b3b3b5E B SR ⋈SR.B=S.B 37102E b1b2b3b3S.B 5688b1b2b3b3a1a1a2a2C R.B A 3.3 关系代数(Cont.)自然连接Nature JoinR ⋈S={t r ^t s |t r ∈R ∧t s ∈S ∧t r [B]=t s [B]}等值连接与自然连接的区别:自然连接要求两个关系中具有相同的属性列B ,所以运结果仅保留一列B.等值连接保留两个关系的A 和B 列(即使R.B=S.B ).例:R ⋈S56812b1b2b3b4a1a1a2a2C B A R371022b1b2b3b3b5E B S37102E 5688b1b2b3b3a1a1a2a2C B A R⋈S3.3 关系代数(Cont.)各种连接的例子56812b1b2b3b4a1a1a2a2C B A R371022b1b2b3b3b5E B SR ⋈SR.B=S.B37102E b1b2b3b3S.B 5688b1b2b3b3a1a1a2a2C R.B A 71071010Eb2b3b2b3b3S.B 55668b1b1b2b2b3a1a1a1a2a2C R.B A R ⋈SC<E37102E 5688b1b2b3b3a1a1a2a2C B A R ⋈S3.3 关系代数(Cont.)查找全体同学的学号,姓名,课名和成绩计算机信息数学信息Sdept 20191819男女女男李勇刘晨王敏张立221101231101232101231102Sage Ssex Sname Sno 928588908010011002100310021003221101221101221101231101231102Grade Cno Sno42434Credit 1005100110061007数据库高等数学信息系统操作系统数据结构10011002100310041005PCno Cname Cno StudentCourseSC 3.3 关系代数(Cont.)ΠSno,Sname,Cname, Grade (Student ⋈SC ⋈Course )自然连接的例子1111111212部门号财务部财务部财务部人力资源部人力资源部名称62130236213023621302362450386245038男女女女男李军赵萍董辉常萍张伟11011102110312011202电话性别姓名职工号职工⋈部门1111111212男女女女男李军赵萍董辉常萍张伟11011102110312011202部门号性别姓名职工号62130236245038财务部人力资源部1112电话名称部门号部门职工3.3 关系代数(Cont.)例:(R)L ⋈(S)R.B=S.B ∨R左连接Left Join(R)L ⋈(S)={(t r ^t s |t r ∈R ∧t s ∈S ∧t r [B]=t s [B])∨(t r |t r ∈R)}R.B=S.B ∨R56812b1b2b3b4a1a1a2a2C B A R371022b1b2b3b3b5E B SR ⋈SR.B=S.B ∨R 37102E b1b2b3b3S.B 568812b1b2b3b3b4a1a1a2a2a2C R.B A 3.3 关系代数(Cont.)左连接的例子11111212职工.部门号11111212部门.部门号财务部财务部人力资源部人力资源部名称6213023621302362450386245038男女女女男李军赵萍董辉常萍张伟11011102110312011202电话性别姓名职工号职工L ⋈部门11111212男女女女男李军赵萍董辉常萍张伟11011102110312011202部门号性别姓名职工号62130236245038财务部人力资源部1112电话名称部门号部门职工3.3 关系代数(Cont.)右连接Right Join(R)R ⋈(S)={(t r ^t s |t r ∈R ∧t s ∈S ∧t r .A=t s .B)∨(t s |t s ∈S )}R.B=S.B ∨S例:(R)R ⋈(S)R.B=S.B ∨S56812b1b2b3b4a1a1a2a2C B A R371022b1b2b3b3b5E B SR ⋈SR.B=S.B ∨S371022Eb1b2b3b3b5S.B5688b1b2b3b3a1a1a2a2CR.BA3.3 关系代数(Cont.)右连接的例子1111111212男女女女男李军赵萍董辉常萍张伟11011102110312011202部门号性别姓名职工号621302362450386310320财务部人力资源部生产部111213电话名称部门号1111111212职工.部门号111111121213部门.部门号财务部财务部财务部人力资源部人力资源部生产部名称621302362130236213023624503862450386310320男女女女男李军赵萍董辉常萍张伟11011102110312011202电话性别姓名职工号职工R ⋈部门部门职工 3.3 关系代数(Cont.)除Division给定两个关系R(X,Y)和S(Y,Z),其中X,Y,Z 为属性组.R 中的Y 与S 中的Y 可以有不同的属性名,但必须出自同一个域.R 与S 的除运算得到一个新关系P(X),P 是在R 中满足下列条件的元组在X 列上的投影:在R 中分量值X 的象集Y x 包含S 中Y 上投影的集合.记作:R ÷S={t r [X]|t r ∈R ∧πy (S) ⊆Y x }其中Y x 为X 在R 中的象集.例:求至少选修了1001号和1003号课程的学生号码.πSno,Cno (SC)÷K3.3 关系代数(Cont.)10011003Cno关系代数综合练习的例子计算机信息数学信息Dept 20191819男女女男李勇刘晨王敏张立221101231101232101231102Age Sex Sname Sno 928588908010011002100310021003221101221101221101231101231102Grade CnoSno4243424Credit 10051001100610071006数据库高等数学信息系统操作系统数据结构数据处理C 语言1001100210031004100510061007PCno Cname Cno StudentCourseSCGradem n StudentCourseSC3.3 关系代数(Cont.)3.3 关系代数(Cont.)关系代数综合练习求"计算机"系全体学生的学号和姓名.求全部学生的学号,姓名,课程,成绩.求学号为"221101"的学生的全部成绩,包括学号,姓名,课名,成绩.求课程"高等数学"的成绩单,包括学号,姓名,系名,成绩.求选修了课程的学生的学号和姓名.求学生的年龄分布情况.求"信息"系全体学生所选修的课程名称.3.4 关系的完整性关系的完整性约束关系中的所有数据必须满足的约束条件三类完整性实体完整性参照完整性用户定义完整性3.4 关系的完整性(Cont.)1. 实体完整性规则若属性A是基本关系R的主属性,则A不能取空值.关系模型的表分为基本表(基本关系),查询表和视图.基本表:实际存在的表查询表:查询结果表视图:定义的虚表空值与零值不同空值:没有值,但不是0零值:其值为0注意空值与零值的区别3.4 关系的完整性(Cont.)例: 学生(学号,姓名,年龄,系名)学号是主码中的属性,则学号不能为空.自动化张莉0636101010322刘云06361010102管理工程21李伟06361010101系名年龄姓名学号主属性不能取空值非主属性可以取空值3.4 关系的完整性(Cont.)2. 参照完整性实体之间的联系是通过外部码进行的.例:学生(学号,姓名,性别,系号)系(系号,系名,电话)定义:外键Foreign Key设F是基本关系R的一个或一组属性,但F不是R的主码.若F 与基本关系S的主码Ks相对应,则称F是基本关系R的外码(R 可以与S是同一关系).称R为参照关系,S为被参照关系或目标关系.在学生(学号,姓名,性别,专业,班长学号)中班长学号是也是一个学号,必须与学号出自同一个域,故班长学号也是外码.参照完整性规则若属性或属性组F 是基本关系R 的外码,则:F 在R 中取空值;若F 在R 中非空则其在S 中必须存在.3.4 关系的完整性(Cont.)02张莉063610101030221王刚0636101010422刘云063610101020121李伟06361010101系号年龄姓名学号R:学生86282208自动化0286282135计算机01电话系名系号S:系3.4 关系的完整性(Cont.)3. 用户定义完整性根据用户的具体要求定义的完整性.例:考试成绩在0~100分之间.姓名最多为4个汉字.性别必须取"男"或"女".规定职务越高则工资就越高.哈尔滨市汽车牌号为"黑AXXXXX".修改工资时,新工资值不能小于旧工资值.职工的月奖金不能高于全体职工平均奖金的3倍.……本章小结关系数据库的产生与发展E.F.Codd关系模型的三个组成部分数据结构、关系操作、完整性约束关系的数学思想域、笛卡尔积、关系、关系模式、属性到域的映象关系的基本概念关系、关系模式、关系数据库、关系数据库模式、属性、超码、候选码、主码、主属性、非主属性本章小结(Cont.)关系代数传统的集合运算:并、交、差、广义笛卡尔积专门的关系运算:选择、投影、连接关系的三类完整性实体完整性参照完整性用户定义完整性本章作业与任务提交部分用关系代数表示下列查询查询全体学生的全部数据.查询全体学生的学号,姓名和性别.查询全体”女”同学的全部信息.查询所有系的名字.查询”计算机系”全体同学的学号和姓名.查询学号为”053610201”的学生各门课程的成绩查询”数据库系统”课程的成绩单.查询全体同学的学号,姓名,课名和分数.本章作业与任务(Cont.)复习部分复习本章内容复习本章概念阅读教材中相关内容。