王数据库第2章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
πS#,SNAME,GRADE(σSCODE#=“s0403” ∧CNAME=“计算机网络”(S∞SC∞C))
五、关系代数运算在查询中的应用
1、查询全体教师的教职工号、教师姓名、职称和所 在教研室。 解题思路:从教师表中把各教师的相应属性投 影出来。
πT#,TNAME,TITLEOF,TRSECTION (T)
பைடு நூலகம்
或
π1, 2, 5, 6(T)
五、关系代数运算在查询中的应用
2、查询全部女学生。 解题思路:从学生表中选择出那些性别为 “女”的元组。 σSSEX=“女”(S)
域(Domain):属性的取值范围。
分量:元组中的一个属性值。 关系模式:对关系的描述。 一般表示为:关系名(属性1,属性2,…,属性n)
例:上面的关系可描述为:
学生(学号,姓名,性别,年龄,籍贯)
关系代数
关系代数是一种抽象的查询语言,是用对关系的运算来表
达查询。是关系数据操纵语言的一种传统表达方式。
运算对象、运算符、运算是关系的三大要素。 关系代数的运算对象是关系; 运算结果亦为关系; 关系代数用到的运算符包括四类。
二、特殊的关系运算
包括选择、投影、连接、除等。 专门的关系运算:不仅涉及行而且涉及列, 由比较符、逻辑运算符辅助进行操作。
1.特殊的关系运算——选择
选择(Selection)又称为限制(Restriction)。
或 πS#(σC#=“C401001” (SC) )∩πS#(σC#=“C401002”(SC) )
6、找出选修了课程号为C402002的学生的学号、 姓名的考试成绩。 解题思路:首先确定涉及到的表,学号和 姓名在S表中,成绩在SC表中,而S表和SC表具 有相同属性S#,因此需将两个表作自然联接操 作;查询条件为选修了课程号C402002,作选 择操作;最后,投影出查询结果的列。
它是在关系R中选择满足给定条件的诸元组。
记作:
σ〈选择条件〉(〈关系名〉)
其中F表示选择条件.
表1 student登记表
学号 98001 98002 姓名 张飞 李丽 性别 男 女 系别 信息管理 信息管理 年龄 20 19 籍贯 长沙 岳阳
例1 在表1中查询年龄小于20岁的学生 σ 年龄<20 (student)
πS#,SNAME,GRADE(σC#=“C402002” (SSC) )
7、找出专业代码为S0403学习了“计算机网络” 课程的学生的学号、姓名的考试成绩。 解题思路:首先确定涉及到的表,由于查 询涉及到条件“计算机网络”课程,该属性在 C表中,而查询学生的学号、姓名及专业代码 在S表中,另外,考试成绩在SC表中,需将三 个表作自然联接;选择出满足条件的元组;并 投影出相应结果列。
或
σ3=“女”(S)
3、找出专业代码为S0401的男学生的学号和姓 名。 解题思路:首先确定涉及到的表,仅有学 生表;涉及到的查询条件有两个,选择专业代 码为“S0401”和性别为“男”的元组;最后, 查询结果用投影表示出来。 πS#, SNAME (σSSEX=“男”∧SCODE#=“S0401”(S) )
学生关系模式: S(S#,SNAME,SSEX,SBIRTHIN,PLACEOFB,SCODE,CLASS) 专业关系模式: SS(SCODE#,SSNAME) 课程关系模式: C(C#,CNAME,CLASSH) 设置关系模式: CS(SCODE#,C#) 学习关系模式: SC(S#,C#,GRADE) 教师关系模式: T(T#,TNAME,TSEX,TBIRTHIN,TITLEOF,TRSECTION,TEL) 讲授关系模式: TEACH(T#,C#)
第2章 关系运算
1. 关系模型的结构
主键
男 女
域 关系名
学生人事记录表
学号 9801 关 系 9802 9803 9839 姓名 张明 刘红 王明 张立 性别 男 女 女 男 年龄 20 19 20 18 籍贯 江苏 山东 北京 陕西 属性名
元组(行)
分量 属性(列) 关系模式:学生(学号、姓名、性别、年龄、籍贯)
系别 信息管理 信息管理
年龄 20 19
例4.查询学生表中年龄小于20岁的学生的姓名及所在系
2.特殊的关系运算——投影
例4.查询学生表中年龄等于20岁的学生的姓名及所在系:
П 姓名,系 (σ
年龄= 20
(student))
五、关系代数运算在查询中的应用
已知教学管理数据库系统中的七个关系模式如下:
选择操作的结果
学号 98002
姓名 李丽
性别 女
系别 信息管理
年龄 19
籍贯 岳阳
例2. 查询年龄等于20岁的男生。
专门的关系运算--选择
例2. 查询年龄等于20岁的男生: σ 年龄= 20 ∧ 性别=‘男‘ (student)
2.特殊的关系运算——投影
投影(Projection):关系R上的投影是从R 中选择出若干属性列组成新的关系。 记作: П(属性组) (<关系名>)
或
π1, 2 (σ3=“男”∧6=“s0401”(S) )
4、找出选修了课程号为C401001或课程号为 C401002的学生的学号。 解题思路:在SC表中判断元组是否满足条 件为选修了课程号C401001或C401002,可以在 选择条件中用“∨”连接“或”的条件;也可 以分别查询出满足条件的元组,再并运算。 πS#(σC#=“C401001”∨C#=“C401002”(SC) )
其中A为R中的属性列,各属性间用逗号隔开。 投影操作是从列的角度进行的运算。
ПA(R)={ t[A] t∈R}
2.特殊的关系运算——投影
例 3. 查询学生的姓名和所在系,即求 Student 关系
在学生姓名、所在系和年龄三个属性上的投影。
П 姓名,系,年龄 (student)
投影操作的结果
姓名 张飞 李丽
关系模型中常用的基本术语
关系(Relation):一个关系对应一张表(如上)。 元组(Tuple):表中的一行即为一个元组。 属性(Attribute):表中的一列即为一个属性,给每 个属性起一个名字称属性名。 主键(Key):表中可唯一确定一个元组的属性组。
例表中的学号为本关系的主键。
或 πS#(σC#=“C401001” (SC) )∪πS#(σC#=“C401002”(SC) )
5、找出选修了课程号为C401001和课程号为 C401002的学生的学号。 解题思路:由于查询是按元组一行一行地检索, 因此在SC表中一个元组只能满足一个课程号的 条件。因此,可利用广义笛卡儿积的办法创造 一个元组中有两个课程号能分别满足不同的课 程号要求;另一种办法为分别求出满足条件的 元组,再交运算。 πS#(σ2=“C401001”∧5=“C401002”(SC×SC) )