关系代数习题讲解
关系代数习题

关系代数习题.作者: 日期:1.下面的选项不是关系数据库基本特征的是()。
A.不同的列应有不同的数据类型B .不同的列应有不同的列名C.与行的次序无关D.与列的次序无关2.—个关系只有一个()。
A.候选码B. 外码C.超码D.主码3.关系模型中,一个码是()。
A.可以由多个任意属性组成B.至多由一个属性组成C.可有多个或者一个其值能够唯一表示该关系模式中任何元组的属性组成D .以上都不是4.现有如下关系:患者(患者编号,患者姓名,性别,出生日起,所在单位)医疗(患者编号,患者姓名,医生编号,医生姓名,诊断日期,诊断结果)其中,医疗关系中的外码是()。
A.患者编号B .患者姓名C. 患者编号和患者姓名D.医生编号和患者编号5.现有一个关系:借阅(书号,书名,库存数,读者号,借期,还期),假如同一本书允许一个读者多次借阅,但不能同时对一种书借多本,则该关系模式的外码是()。
A.书号B.读者号C .书号+读者号D.书号+读者号+借期6.关系模型中实现实体间 N:M联系是通过增加一个()。
A.关系实现B.属性实现C.关系或一个属性实现D.关系和一个属性实现7.关系代数运算是以()为基础的运算。
A.关系运算B.谓词演算C.集合运算D.代数运算8.关系数据库管理系统应能实现的专门关系运算包括()A.排序、索引、统计B .选择、投影、连接C. 关联、更新、排序D.显示、打印、制表9.五种基本关系代数运算是()。
A.U - X (T nB.U - (T nC.U n X (T nD.U n (T n11.关系数据库中的投影操作是指从关系中()。
A.抽出特定记录B.抽出特定字段C.建立相应的影像D.建立相应的图形12. 从一个数据库文件中取出满足某个条件的所有记录形成一个新的数据库文件的操作是()操作。
A.投影B.联接C.选择D.复制13.关系代数中的联接操作是由()操作组合而成。
A.选择和投影B.选择和笛卡尔积C .投影、选择、笛卡尔积 D.投影和笛卡尔积1 4.自然联接是构成新关系的有效方法。
关系代数表达式总结-数据库

关系代数表达式总结一、并例1 求选修了课程号为1或2的课程的学生学号。
分析:可以先求出选修了课程号为1的课程的学生学号,再求出选修了课程号为2的课程的学生学号,最后使用并运算的方法求出选修课程号为1或2的课程的学生学号。
本例也可以使用或条件来表示。
πSno(σCno=’1’(SC))∪πSno(σCno=’2’(SC)) 或πSno(σCno=’1’∨Cno=’2’(SC))二、交例2 检索至少选修课程号为2和3的课程的学生学号。
分析:方法一:只涉及到一个表,但不能直接用∧(为什么?)特别注意,本例不能写为:πSno(σCno=’2’∧Cno=’3’(SC))因为选择运算为行运算,在同一行中Cno不可能既为2,又为3。
第一步:转换(SC×SC)笛卡尔积将垂直的条件展开为水平的条件。
选修课程号为2和3的学生:σ1=4∧2=’2’∧5=’3’(SC×SC)最后取出学生的学号:π1(σ1=4∧2=’2’∧5=’3’(SC×SC))方法二:πSno(σCno=’2’(SC))∩πSno(σCno=’3’(SC))三、差例3 将学生信息(‘95001’,’李勇’,‘男’,20,‘CS’)从Student表删除。
分析:可以将这行数据看成由一个元组构成的表,将Student表与该表进行差运算。
因此,该删除操作可表示为:Student-{‘95001’,’李勇’,‘男’,20,‘CS’}注意:但是当查询涉及到否定或全部值时,上述形式就不能表达了,就要用到差操作或除操作。
例4 求没有选修课程号为2的课程的学生学号。
分析:可以认为是在全部学号中去掉选修课程号为2的课程的学生学号,就得出没有选修课程号为2的学生学号。
由于在并、交、差运算中,参加运算的关系要求是兼容的,故应当先投影,再进行差运算。
πSno(Student)- πSno(σCno=’2’(SC))特别注意,本题不能写为:πSno(σCno≠’2’(SC))。
数据库原理及应用(MySQL版) 理论教案 第10次课(理论)关系代数、运算

{t∣(3u)(R(u)Λt[l]=u[2]Λt[2]=u[3]))。
(4)笛卡尔积
R×S={t I(3 u)( 3 v)( R(u) Λ S(v) Λ t[l]=u[l] A t[2]=u[2] Λ t[3]=u[3] A t[4]=v[l]Λt[5]=v[2]Λt[6]=v[3])}
(1)每个原子公式是公式。其中的元组变量是自由元组变量。
(2)如果Pl和P2是公式,那么下面3个也为公式。
•-,P∖>如果Pl为真,则一'Pi为假。
•PlVP2,如果Pl和P2中有一个为真或者同时为真,则PlVP2为真,仅当Pl和P2同时为假时,PιVP2为假0
•PlAP2,如果Pl和P2同时为真,则P∣∕∖P2才为真,否则为假。
R×S=) Cts∣tr∈RΛts∈S)
关系的笛卡儿积操作对应于两个关系记录横向合并的操作,俗称“X”操作。
4.投影(ProjeetiOn)
关系R上的投影是从R中选择出若干属性列组成新的关系。形式定义如下:
∏a(R)={t[A]∣t∈R)
其中,A为R中的属性列。
5.选择(Selection)
关系R上的选择操作是从R中选择符合条件的元组。形式定义如下:
(3)如果P是公式,那么Tt)(P)和(Vt)(P)也是公式。其中t是公式P中的 自由元组变量,在(三。(P)和(∀t)( P)中称为约束元组变量。
(31)( P)表示存在一个元组t使得公式P为真;(∀t)( P)表示对于所有元组t都 使得公式P为真。
(4)公式中各种运算符的优先级从高到低依次为:0、三和V、「、八和V。 在公式外还可以加括号,以改变上述优先顺序。
作业题目
第2章关系代数补充作业及答案(选做)

关系代数补充习题(摘自数据库系统导论)单项选择:1. 若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为________。
(1)主码(2)候选码(3)主属性(4)外码2.________由数据结构、关系操作集合和完整性约束三部分组成。
(1)关系模型(2)关系(3)关系模式(4)关系数据库3.SQL 语言属于________。
(1)关系代数语言(2)元组关系演算语言(3)域关系演算语言(4)具有关系代数和关系演算双重特点的语言4.关系演算是用________来表达查询要求的方式。
(1)谓词(2) 关系的运算(3)元组(4)域5.实体完整性要求主属性不能取空值,这一点可以通过________来保证。
(1)定义外码(2)定义主码(3)用户定义的完整性(4)由关系系统自动6.一组具有相同数据类型的值的集合称为________。
(1)关系(2)属性(3)分量(4)域7.在一个关系中,不能有相同的________。
(1)记录(2)属性(3)分量(4)域8.关系是________。
(1)型(2)静态的(3)稳定的(4)关系模型的一个实例9.所谓空值就是________的值。
(1)数值0 (2)空的字符串(3)未知的值(4)任何值10.集合R 与S 的差表示为________。
(1){t|t∈R∨t∈S} (2){t|t∈R∧フt∈S} (3) {t|t∈R∧t∈S}(4) {trts|tr∈R ∧ts∈S}问答题2.1 本章中,我们声称并、交、积和(自然)连接都具有交互性和结合性。
证明之。
2.2 在Codd 最初定义的八个操作符中,并、差、积、选择和投影可以被认为是基本的。
试用这五种基本操作来表示自然连接、交和除。
2.3 如果A 和B 没有共同的属性,则A JOIN B 等价于A TIMES B。
对其进行证明。
如果A 和B 有相同的表头,则上述表达式等价于什么?2.4 证明2.2 中提到的五个基本操作符是基本的(证明任意一个不能被其余四个来表示)。
关系代数习题

习题四1.试述关系模型的三个组成部分。
2.试述关系数据语言的特点和分类。
3.定义并解释下列术语,说明它们之间的联系与区别。
1)主码、候选码、外码。
2)笛卡尔积、关系、元组、属性、域。
3)关系、关系模式、关系数据库。
4. 试述关系模型的完整性规则。
在参照完整性中,为什么外码属性的值也可以为空?什么情况下才可以为空?5. 试述等值连接与自然连接的区别和联系。
6. 对于学生选课关系,其关系模式为:学生(学号,姓名,年龄,所在系);课程(课程名,课程号,先行课);选课(学号,课程号成绩)。
用关系代数完成如下查询。
1)求学过数据库课程的学生的姓名和学号。
2)求学过数据库和数据结构的学生姓名和学号。
3)求没学过数据库课程的学生学号。
4)求学过数据库的先行课的学生学号。
7. 设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNANE,CITY);SPJ(SNO,PNO,JNO,QTY)。
其中:供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;工程项目表J 由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量组成(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。
试用关系代数完成如下查询:1)求供应工程J1 零件的供应商号码SNO。
2)求供应工程J1 零件P1的供应商号码SNO。
3)求供应工程J1 零件为红色的供应商号码SNO。
4)求没有使用天津供应商生产的红色零件的工程号。
5)求至少用了供应商S1所供应的全部零件的工程号。
关系代数习题

关系代数习题1. 下面的选项不是关系数据库基本特征的是()。
A.不同的列应有不同的数据类型B.不同的列应有不同的列名C.与行的次序无关D.与列的次序无关2. 一个关系只有一个()。
A.候选码B. 外码C. 超码D. 主码3. 关系模型中,一个码是()。
A.可以由多个任意属性组成B.至多由一个属性组成C.可有多个或者一个其值能够唯一表示该关系模式中任何元组的属性组成D.以上都不是4. 现有如下关系:患者(患者编号,患者姓名,性别,出生日起,所在单位)医疗(患者编号,患者姓名,医生编号,医生姓名,诊断日期,诊断结果)其中,医疗关系中的外码是()。
A. 患者编号B. 患者姓名C. 患者编号和患者姓名D. 医生编号和患者编号5. 现有一个关系:借阅(书号,书名,库存数,读者号,借期,还期),假如同一本书允许一个读者多次借阅,但不能同时对一种书借多本,则该关系模式的外码是()。
A. 书号B. 读者号C. 书号+读者号D. 书号+读者号+借期6. 关系模型中实现实体间 N:M 联系是通过增加一个()。
A.关系实现B. 属性实现C. 关系或一个属性实现D. 关系和一个属性实现7. 关系代数运算是以()为基础的运算。
A. 关系运算B. 谓词演算C. 集合运算D. 代数运算8. 关系数据库管理系统应能实现的专门关系运算包括()。
A. 排序、索引、统计B. 选择、投影、连接C. 关联、更新、排序D. 显示、打印、制表9. 五种基本关系代数运算是()。
A.∪-×σ πB.∪-σ πC.∪∩× σ πD.∪∩σ π11. 关系数据库中的投影操作是指从关系中()。
A.抽出特定记录B. 抽出特定字段C.建立相应的影像D. 建立相应的图形12. 从一个数据库文件中取出满足某个条件的所有记录形成一个新的数据库文件的操作是()操作。
A.投影B. 联接C. 选择D. 复制13. 关系代数中的联接操作是由()操作组合而成。
(完整版)数据库第二章关系代数习题
1.设有如图所示的关系S、SC和C,试用关系代数表达式表示下列查询语句:S C SCS# SNAME AGE SEX1 李强23 男2 刘丽22 女5 张友22 男C# CNAME TEACHERk1 C语言王华k5 数据库原理程军k8 编译原理程军S# C# GRADE1 k1 832 k1 855 k1 922 k5 905 k5 845 k8 80(1) 检索”程军”老师所授课的课程号(C#)和课程名(CNAME)。
(2) 检索年龄大于21的男学生学号(S#)和姓名(SNAME)。
(3) 检索至少选修”程军”老师所授全部课程的学生姓名(SNAME)。
(4) 检索”李强”同学不学课程的课程号(C#)。
(5) 检索至少选修两门课程的课程号(S#)。
(6) 检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。
(7) 检索选修课程包含”程军”老师所授课程之一的学生学号(S#)。
(8) 检索选修课程号为k1和k5的学生学号(S#)。
(9) 检索选修全部课程的学生姓名(SNAME)。
(10) 检索选修课程包含学号为2的学生所选修课程的学生学号(S#)。
(11) 检索选修课程名为”C语言”的学生学号(S#)和姓名(SNAME)。
(12)检索没有一门课程成绩不及格的学生学号,姓名。
答:本题各个查询语句对应的关系代数表达式表示如下:(1) ΠC#,CNAME(σTEACHER ='程军'(C))(2) ΠS#,SNAME(σAGE>21^SEX ='男'(S))(3) ΠSNAME(S(ΠS#,C#(SC)÷ΠC#(σTEACHER ='程军'(C))))(4) ΠC#(C)-ΠC#(σSNAME ='李强'(S)∞SC)(5) ΠS# (σ1=4^2≠5 (S C×SC))(6) ΠC#,CNAME(C∞(ΠS#,C#(SC)÷ΠS#(S)))(7) ΠS# (SC∞ΠC# (σTEACHER ='程军'(C)))(8) ΠS#,C#(SC)÷ΠC#(σC#=’K1’VC#=’K5’ (C))(9) ΠSNAME(S∞(ΠS#,C#(SC)÷ΠC#(C)))(10) ΠS#,C#(SC)÷ΠC#(σC#=’2’ (S C))(11) ΠS#,SNAME(S∞ΠS#(SC∞(σCNAME ='C语言'(C))))(12)П学号,姓名(学生)-П学号,姓名(σ分数<60(学生∞学习))。
关系代数及SQL语言的习题
关系代数及SQL语言的习题一、选择题(每题3分,共30分)1. 关系代数中的选择操作是针对()进行的。
A. 行B. 列C. 行和列D. 以上都不是2. 在SQL语言中,用于修改表结构的语句是()。
A. ALTER TABLEB. CREATE TABLEC. DROP TABLED. UPDATE TABLE3. 关系代数中的投影操作是针对()进行的。
A. 行B. 列C. 行和列D. 以上都不是4. 以下哪个不是SQL语言中的数据定义语句()。
A. CREATEB. SELECTC. DROPD. ALTER5. 设关系R和S具有相同的目,且它们相对应的属性的值取自同一个域,则R-(R-S)等于()。
A. R∪SB. R∩SC. R×SD. R÷S6. 在SQL中,用于删除表中数据的语句是()。
A. DELETEB. DROPC. TRUNCATED. CLEAR7. 关系代数中,自然连接是一种特殊的()。
A. 笛卡尔积B. 选择C. 投影D. 连接8. 以下SQL语句中,用于排序的关键字是()。
A. ORDER BYB. GROUP BYC. HAVINGD. WHERE9. 若要在学生表中查询年龄大于20岁的学生信息,应使用的SQL语句是()。
A. SELECT FROM学生表 WHERE年龄>20B. SELECT FROM学生表 HAVING年龄>20C. SELECT FROM学生表 GROUP BY年龄>20D. SELECT FROM学生表 ORDER BY年龄>2010. 关系代数中的除法操作是()。
A. 基本操作B. 非基本操作C. 有时是基本操作,有时是非基本操作D. 以上都不对二、填空题(每题3分,共30分)1. 关系代数的基本操作包括并、差、______、投影和选择。
2. SQL语言的功能包括数据定义、数据操纵、______和数据控制。
第二章 关系模型
找出所有经理 提高工资
employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name)
返回
Copyright by ECNU CS DBLAB All rights reserved. 9
8
第二章 关系模型
数据库系统概念
2.3.b. 修改数据库,为数据库中所有经理都提高工资10% 修改数据库,为数据库中所有经理都提高工资10%
参考解答: 参考解答: b. t1 ← ∏works.person-name,company-name,salary (σ works.person-name=manager-name(works × manages)) t2 ← ∏person-name,company-name,1.1*salary(t1) works ← (works t1) ∪ t2
7
第二章 关系模型
2.3.a. 修改数据库,使Jones现在居住在Newtown 修改数据库, Jones现在居住在 现在居住在Newtown
数据库系统概念
参考解答: 参考解答: a.employee←∏emplyee-name,street,city←"Newtown"(σ employee="Jones"(employee))∪ (employee-σ employee="Jones"(employee))
employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name)
《关系代数》PPT课件
姓名 王东华 张方明 江小节 王小六 霍热平 董京京 肖淡薄
性别 女 男 女 女 女 男 男
部门名称 负责人 经营部 张小和 经营部 张小和 营业部 刘乐毫 营业部 刘乐毫 采购部 解晓萧 采购部 解晓萧 采购部 解晓萧
部门编号 A1 A1 B1 B1 C1 C1 C1
部门名称,负责人,部门编号〔员工
部门名称 负责人 经营部 张小和 营业部 刘乐毫 采购部 解晓萧
部门编号 A1 B1 C1
第3章关系代数
3.2 特殊的关系运算
3.2.2 选择运算 选择是根据给定的条件选择关系R中
的假设干元组组成新的关系,是对关系的 元组进展筛选。记作 δF〔R〕 F是一个逻辑表达式。 选择运算示意图如下:
编号 A10101 A10103 B10301 B10308 C10301 C10306 C10404
20编号姓名性别部门名称负责人部门编号a10101王东华a1a10103a1b10301江小节b1b10308b1c10301c1c10306c1c10404肖淡薄c1部门名称负责人部门编号经营部a1营业部b1采购部c1员工部门名称负责人部门编号员工21第3章关系代数32特殊的关系运算322选择运算选择是根据给定的条件选择关系r中的若干元组组成新的关系是对关系的元组进行筛选
R={r1,r2,…,rN}, S={s1,s2,…,sM}, 关系R和S的笛卡尔积: 是关系R中每个元组ri与关系S中每个 元组sj连接组成的新关系。 记作:R×S={(ri,sj)|ri∈R, si∈S} 其中:i=1,…,N,j=1,2,…,M
第3章关系代数
3.1 集合运算
3.1.4 笛卡尔积运算(P48) 类似的例子有,如果R表示某学校学生, S表示该学校所有课程信息,那么R与 S的笛卡尔积表示所有可能的选课情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
订购单 供应商号 ( 地址"北京" (供应商))
如果改成“和北京的某个供应商有业务联系的职工”, 那么就可以写成
地址"北京" (供应商) 订购单
(7)检索至少和职工E1、E4、E7都有联系 的供应商的名称。
供应商名 (订购单 (" E1", " E 4", " E7" ) 供应商)
(3)检索北京的供应商的名称。
供应商名 ( 地址"北京" (供应商))
(4)检索目前与职工E6有业务联系的供应商 的名称。
供应商名 ( 职工号 "E6" (订购单) 供应商)
(5)检索所有职工的工资都大于1220元的仓 库所在的城市。
城市 (仓库) 城市 ( 工资"1220" (职工) 仓库)
用关系代数完成检索:
(1)检索在仓库H2工作的职工的工资。
职工号,工资 ( 仓库号"WH 2" (职工))
在检索职工的工资时,应选取职工号和工 资两个属性。
(2) 检索在上海工作的职工的工资。
职工号,工资 ( 城市"上海" (仓库) 职工)
解析: 先在仓库关系中找到上海的仓库,然后与 职工关系作等值连接,得到一个新的关系 ,再从中选出职工号与工资。
注意:“所有职工的工资都大于1220的仓库”与 “含有工资大于1220的职工的仓库”不同。如果用:
城市 ( 工资"1220" (职工) 仓库)
来求解,将得的到错误的结果。
(6)检索和北京的所有供应商都有业务联系 的职工的工资。
职工号,工资 (职工 (订购单 供应商号 ( 地址"北京" (供应商))))
要求职工的工资,只要找到相应的职工号,就可以在职工 关系里查到。本例要求“和北京的所有供应商有业务联系的 职工”,因为北京的供应商可能不止一个,而且职工除了可 以与北京的供应商有业务联系,还可以和其它的供应商有业 务联系,所以这里隐含了“至少和北京的所有供应商有业务 联系的职工”,这是一个除的关系,即: