选择与投影 计算机与信息技术学院 数据库原理课件

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数据库原理主讲教师:庞继芳山西大学计算机与信息技术学院高等教育出版社2006年第四版第二章关系数据库2.4关系代数2.4.2专门的关系运算——选择、投影☆关系数据库是目前最重要、应用最广泛的数据库系统。问题1:为什么要学习关系数据库系统?自20世纪80年代以来,计算机厂商推出的数据库管理系统几乎都为关系数据库系统,之前的许多非关系系统(如层次数据库、网状数据库)的产品也大都加上了关系接口。关系数据库系统的出现,大大促进了数据库应用领域的扩大和深入。☆关系数据库就是采用关系模型作为数据的组织方式的数据库系统。(常用的关系数据库如SQLServer2000/2005/2008)☆在用户看来,关系模型就是由一组关系组成。☆关系就是一张二维表,表的每行对应一个元组,表的每列对应一个属性。9219500146PASCAL语言72数据处理647数据结构536操作系统441信息系统32数学245数据库1学分Ccredit先行课Cpno课程表Cname课程号Cno80395002901950028839500185295001成绩Grade课程号Cno学号SnoIS19男张立95004MA18女王敏95003IS19女刘晨95002CS20男李勇95001所在系Sdept年龄Sage性别Ssex姓名Sname学号Snostudentsccourse例:一个学生-课程数据库,包括学生关系Student,课程关系Course和选修关系SC3个表。☆数据库查询是数据库的核心操作。问题2:如何对关系数据库进行查询?SQL语言(StructuredQueryLanguage)即结构化查询语言,它是一个通用的、功能极强的关系数据库的标准语言。关系代数是一种抽象的查询语言,是用对关系的运算来表达查询要求的。关系代数与具体的RDBMS(关系数据库管理系统)中实现的实际语言并不完全一样。问题3:为什么还要学习关系代数呢?☆关系代数可以用作评估实际系统中查询语言能力的标准或基础。也就是说关系代数作为一种理论上的标准来评估实际的关系数据库系统的查询语言的能力。☆关系代数是关系数据库标准语言(SQL)查询操作的理论基础。关系代数关系代数是一种抽象的查询语言,它用对关系的运算来表达查询。关系运算的三大要素运算对象运算结果运算符集合运算符专门的关系运算符比较运算符逻辑运算符关系大于大于等于小于小于等于等于不等于>≥<≤=<>比较运算符并差交笛卡尔积∪-∩×集合运算符含义运算符含义运算符非与或∧∨逻辑运算符选择投影连接除σπ÷专门的关系运算符关系代数运算符关系代数的运算按运算符不同可以分为两类传统的集合运算专门的关系运算其中传统的集合运算是从关系的水平方向即行的角度来进行的;而专门的关系运算不仅涉及行而且涉及列,比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的。并差交笛卡尔积选择投影连接除本节课主要介绍选择、投影这两种专门的关系运算,为便于叙述,先引入两个记号。①t[Ai]设R为关系模式R(A1,A2,…,An)的一个关系。tR表示t是R的一个元组。t[Ai]则表示元组t中相应于属性Ai的一个分量。0c32a1A3A2A1Rtt[A2]=c②t[A]设Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,记A={Ai1,Ai2,…,Aik},则A称为属性列或属性组。t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元组t在属性列A上诸分量的集合。则表示(A1,A2,…,An)中去掉{Ai1,Ai2,…,Aik}后剩余的属性组。t[A]=(t[A1],t[A3])=(3,0)={A2}0c32a1A3A2A1RtA={A1,A3}1.选择(Selection)—又称为限制(Restriction)F:选择条件,是一个逻辑表达式,由,∧或∨连接算术表达式组成。逻辑表达式F的基本形式为:X1θY1θ:比较运算符(>,≥,<,≤,=或)X1,Y1可以是属性名、常量、简单函数;属性名也可以用它的序号来代替。选择运算是在关系R中选择满足给定条件的诸元组σF(R)={t|tR∧F(t)='真'}专门的关系运算设有一个学生-课程数据库,包括学生关系Student,课程关系Course和选修关系SC。[例1]查询信息系(IS系)全体学生。9219500146PASCAL语言72数据处理647数据结构536操作系统441信息系统32数学245数据库1学分Ccredit先行课Cpno课程表Cname课程号Cno80395002901950028839500185295001成绩Grade课程号Cno学号SnoIS19男张立95004MA18女王敏95003IS19女刘晨95002CS20男李勇95001所在系Sdept年龄Sage性别Ssex姓名Sname学号SnostudentsccourseIS19男张立95004MA18女王敏95003IS19女刘晨95002CS20男李勇95001所在系Sdept年龄Sage性别Ssex姓名Sname学号SnoStudentσSdept=‘IS’(Student)或σ5='IS'(Student)SnoSnameSsexSageSdept95002刘晨女19IS95004张立男19IS[例2]查询信息系中的全体女学生σSdept=‘IS’∧Ssex=‘女’(Student)或σ5=‘IS’∧3=‘女’(Student)SnoSnameSsexSageSdept95002刘晨女19IS在基本的选择条件上可以进一步进行逻辑运算,即进行求非()、与(∧)、或(∨)的运算。选择运算实际上是从关系R中选取使逻辑表达式F为真的元组,这是从行的角度进行的运算。2.投影(Projection)投影操作是从列的角度进行的运算。πA(R)={t[A]|tR},其中,A为R中的属性列。专门的关系运算SnameSdept李勇CS刘晨IS王敏MA张立IS[例3]查询学生的姓名和所在系,即求Student关系上学生姓名和所在系两个属性上的投影。IS19男张立95004MA18女王敏95003IS19女刘晨95002CS20男李勇95001所在系Sdept年龄Sage性别Ssex姓名Sname学号SnoStudent(a)πSname,Sdept(Student)或π2,5(Student)πSdept(Student)或π5(Student)投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列后,就可能出现重复行,应取消这些完全相同的行。[例4]查询学生关系Student中都有哪些系,即查询关系Student上所在系属性上的投影。IS19男张立95004MA18女王敏95003IS19女刘晨95002CS20男李勇95001所在系Sdept年龄Sage性别Ssex姓名Sname学号SnoStudent(a)SdeptCSISMA本节课主要讲解了两种专门的关系运算选择(σ)和投影(π),下面给出一个综合应用两种运算进行查询的例子。[例6]查询选修了2号课程的学生的学号。9219500180395002901950028839500185295001成绩Grade课程号Cno学号Sno195001(c)sc9219500146PASCAL语言72数据处理647数据结构536操作系统441信息系统32数学245数据库1学分Ccredit先行课Cpno课程表Cname课程号Cno80395002901950028839500185295001成绩Grade课程号Cno学号SnoIS19男张立95004MA18女王敏95003IS19女刘晨95002CS20男李勇95001所在系Sdept年龄Sage性别Ssex姓名Sname学号Snostudentsccourse85295001GradeCnoSno9500295001SnoπSno(SC)σCno=‘2’(SC)9219500180395002901950028839500185295001成绩Grade课程号Cno学号Sno195001scπSno(σCno=‘2’(SC))95001Sno95001Sno问题:例6中的π和σ的运算顺序可以互换吗?可否写成σCno=‘2’(πSno(SC))?所以,答案是否定的。但在有些情况下π和σ的顺序是可以改变的,且不影响查询结果。[例7]查询成绩小于85或大于90的学生的成绩和学号。9219500180395002902950028839500185295001成绩Grade课程号Cno学号Sno195001(c)scπSno,Grade(σGrade85∨Grade90(SC))=σGrade85∨Grade90(πSno,Grade(SC))思考:什么情况下π和σ可以互换?

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功