文档库 最新最全的文档下载
当前位置:文档库 › 关系代数习题

关系代数习题

关系代数习题
关系代数习题

习题四

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所供应的全部零件的工程号。

8. 设属性A 是关系R 的主属性,则属性A 不能取空值小(NULL),这是_______。

A. 实体完整性规则

B. 参照完整性规则

C. 用户定义完整性规则

D. 域完整性规则

9. 下面对于关系的叙述中,不正确的是_______。

A. 关系中的每个属性是不可分解的

B. 在关系中元组的顺序是无关紧要的

C. 任意的一个二维表都是一个关系

D. 每一个关系只有一种记录类型

10. 设关系R和S的元组个数分别为100和300,关系T是R与S的笛卡尔积则T的元组个数是________。

A. 400

B. 10000

C. 30000

D. 90000

11. 设关系R与关系S具有相同的目(或称度),且相对应的属性的值取自同一个域,则R-(R-S)等于________。

A. R∪S

B. R∩S

C. R╳S

D. R-S

习题四解答

1.答:

关系模型的三个组成部分为关系结构、关系操作和关系完整性约束。

在关系模型中,无论是实体集,还是实体集之间的联系均由单一的关系表示。关系模式可以形式化地表示为:R(U,D,Dom,F),其中R为关系名,U为组成该关系的属性集合,D为属性组U中属性所来自的域,Dom为属性向域的映像的集合,F为属性间数据的依赖关系集合。

关系操作语言包括关系代数、关系演算和基于映像的语言。关系操作语言灵活方便.表达能力和功能都非常强大。其主要特点是:关系操作语言操作一体化;关系操作的方式是一次一集合方式;关系操作语言是高度非过程化的语言。

关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。

2 答:

关系操作语言灵活方便,表达能力和功能都非常强大,其主要特点是:关系操作语言操作一体化;关系操作的方式是一次一集合方式;关系操作语言是高度非过程化的语言。关系操作语言包括关系代数、关系演算和基于映像的语言。关系代数语言是用对关系的运算来表达查询要求的语言。关系演算语言是用查询得到的元组应满足的谓词条件来表达查询要求的语言。基于映像的语言是具有关系代数和关系演算双重特点的语言。

1)若关系中的某一属性组(或单个属性)的值能惟一标识一个元组,则称该属性组(或属性)为候选码。当一个关系有多个候选码时,应选定其中的一个候选码为主码;而如果关

系中只有一个候选码,这个惟一的候选码就是主码。

设F是基本关系R的一个或一组属性,但不是关系R的主码(或候选码)。如果F与基本关系s的主码KS相对应,则称厅是基本关系R的外码。

2)给定一组域D1,D2,…,Dn.这些域中可以有相同的部分,则D1,D2,…,Dn 的笛卡地积为:D1×D2×…×Dn﹦{(dl,d2,…,dn)∣di∈Di,i=1,2,…,n}。

D1×D2×…×Dn的子集称作在域D1,D2,…,Dn上的关系,表示为:R(D1,D2,…,Dn)。其中,R表示关系的名字,n是关系的目。

笛卡儿积集合中的每一个元素(dl,d2,…,dn)称为一个元组。

关系中的每一列称为一个属性。

域为数据集合,属性值来源于域。

3)关系是留卡儿积的有限子集,所以关系也是一个二维表。

关系的描述称为关系模式。关系模式可以形式化地表示为:R(U,D,Dom,F)。其中R为关系名,它是关系的形式化表示;U为组成该关系的属性集合;D为属性组U中属性所来自的域;Dom为属性向域的映像的集合;F为属性问数据的依赖关系集合。

在某一应用领域中,所有实体集及实体之间联系所形成关系的集合就构成了一个关系数据库。

4.答:

关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。

关系的实体完整性规则为:若属性A是基本关系R的主属性,则属性A的值不能为空值。关系的参照完整性规则为:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对干R中每个元组在F上的值必须取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

由于外码在被参考关系A中,是非主属性,其值为空,不影响关系的实体完整性。当外码值不清楚或不确定时,可以设为空值,此时参照表中没有对应的记录与之匹配。5.答:

等值连接是从关系R和S的广义笛卡儿积中选取A和B属性值相等的那些元组。自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且

在结果中把重复的属性列去掉。

6.答:

7.答:

8.答:A

10.答:C

11.答:B

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所供应的全部零件的工程号。

3. 设工程_零件数据库中有四个基本表:

供应商(供应商代码,姓名,所在城市,联系电话);

工程(工程代码,工程名,负责人,预算);

零件(零件代码,零件名,规格,产地,颜色);

供应零件(供应商代码,工程代码,零件代码,数量)

试用SQL语句完成下列操作.

l)找出天津市供应商的姓名和电话。

2)查找预算在50000-100000元之间的工程的信息,并将结果按预算降序排列。

3)找出使用供应商S1所供零件的工程号码。

4)找出工程项目J2使用的各种零件名称及其数量。

5)找出上海厂商供应的所有零件号码。

6)找出使用上海产的零件的工程名称。

7)找出没有使用天津产零件的工程号码。

8)把全部红色零件的颜色改成蓝色。

9)将由供应商S5供给工程代码为J4的零件P6改为由S3供应,并作其他必要的修改。 10)从供应商关系中删除S2的记录,并从供应零件关系中删除相应的记录。

8)UPDA TE 零件

SET颜色=‘蓝色’

WHERE颜色=‘红色’;

9)UPDA TE 供应零件

SET供应商代码=‘S3’

WHERE供应商代码=‘S5’AND工程代码=‘J4’AND零件代码=‘P6’;

10)DELETE

FROM供应零件

WHERE供应商代码=‘S2’;

DELETE

FROM供应商

WHERE供应商代码=‘S2’

9. 设要建立学生选课数据库,库中包括学生、课程和选课3个表,其表结构为:

学生(学号,姓名,性别,年龄,所在系);

课程(课程号,课程名,先行课),

选课(学号,课程号,成绩)。

用 Transact-SQL完成下列操作。

l)建立学生选课库。

2)建立学生、课程和选课表。

3)建立各表以主码为索引项的索引。

4)建立学生性别只能为“男”或“女”的规则,性别为“男”的缺省,并将它们绑定在学生表上。

5)建立在对选课表输入或更改数据时,必须服从参照完整性约束的INSERT和UPDATE 触发器。

6)建立在删除学生记录时,同时也要把相应的选课记录删除的触发器。

7)查询各系及学生数,最后来出共有多少系和多少学生。

8)将学生表和选课表进行内连接、左外连接和右外连接。

9)列出学生学号、姓名及学习情况。学习情况用好、较好、一般或较差表示。当平均成绩大于85分时,学习情况为好;当平均成绩在70~85分之间,学习情况为较好;当平均成绩在60~70分之间,学习成绩为一般;平均成绩在60分以下的为学习情况较差。

1).CREA TE DA TABASE学生选课库

ON PRIMARY(NANE=学生选课库,

FILENAME=‘C:\msSQL\data\学生选课.mdf’,

SIZE=4MB,

MAXSIZE=6MB,

FILEROWHT=2MB)

GO

2)CREA T TABLE学生(学号CHAR10)PRIMARY KEY CLUSTERED,

姓名CHAR(8),

性别CHAR(2),

年龄SMALLINT

所在系V ARCHAR(50))

GO

CREA T TABLE课程(课程号CHAR(10)PRIMARY KEY CLUSTERED,

课程名V ARCHAR(50),

先行课V ARCHAR(50))

GO

CREA TE TABLE选课(学号CHAR(10),

课程号V ARCHAR(50),

成绩SMALLINT,

CONSTRAINT C1 PRIMARY KEY(学号,课程号),

CONSTRAINT C2 FOREIGN KEY(学号)REFRENCES学生(学号),

CONSTRAINT FOREIGN KEY(课程号)REFERENCES课程(课程号))GO

3)CREA TE INDEX student_ind ON学生(学号)

GO

REA TEI**巨class_ind ON课程(课程号)

GO

CREA TE INDEX select_ind ON选课(学号,课程号)

GO

4)CREA T RULE value_rule AS @V ALUE IN(‘男’,‘女’)

GO

CREA T DEFAULE性别缺省AS‘男’

GO

EXEC sp_bindrule ‘value_rule’,‘学生.性别’

GO

EXEC Sp_binddefault ‘性别缺省’,‘学生.性别’

GO

5)CREA TE TRIGGER sc_insert ON选课

FOR INSERT

AS IF(SELECT COLJNT(*)

FROM 学生,inserted,课程

WHERE学生.学号=inserted.学号AND课程.课程号=inserted.课程号)=0 ROLLBACK TRANSACTION

GO

CREA TE TRIGGER sc_updat6 ON选课

FOR UPDA TE

AS IF(SELECT COUNT(*)

FROM 学生,updated,课程

WHERE学生.学号=updated.学号AND课程.课程号=updated.课程号)=0 ROLLBACK TRANSACTION

GO

6)CREA TE TRIGGER delete_all ON 学生

FOR DELETE

AS DELETE

FROM选课

WHERE选课.学号=deleted.学号

GO

7)SELECT所在系,COUNT(学号)

FROM学生

GROUP BY学生.所在系

COMPUTE COUNT(DISTINCT(所在系))

COMPUTE COUNT学号)BY所在系

GO

8)SELECT*

FROM学生INNER JOIN课程

GO

SELECT*

FROM学生LEFT OUTER JOIN课程

GO

SELECT*

FROM学生RIGHT OUTER JOIN课程

GO

9)SELECT选课.学号,学生.姓名,

学习情况=CASE

WHEN A VG(成绩)>=85 THEN‘好’

WHEN A VG(成绩)>=75 AND A VG(成绩)< 85 THEN‘较好’

WHEN A VG(成绩)<60 THEN‘较差’

END

FROM学生选课

WHERE学生.学号=选课.学号

GROUP BY选课.学号

GO

关系代数运算练习答案

关系代数表达式: 由关系代数运算经有限次复合而成的式子称为关系代数表达式。 这种表达式的运算结果仍然是一个关系。可以用关系代数表达式表示对数据库的查询和更新操作。 关系代数(演算)要求掌握各种语句的应用 1:设教学数据库中有3个关系: 学生关系S(SNO,SNAME,AGE,SEX) 学习关系SC(SNO,CNO,GRADE) 课程关系C(CNO,CNAME,TEACHER) 下面用关系代数表达式表达每个查询语句。 (1) 检索学习课程号为C2的学生学号与成绩。 πSNO,GRADE(σCNO='C2'(SC)) (2) 检索学习课程号为C2的学生学号与姓名 πSNO,SNAME(σCNO='C2'(S SC)) 由于这个查询涉及到两个关系S和SC,因此先对这两个关系进行自然连接,同一位学生的有关的信息,然后再执行选择投影操作。

此查询亦可等价地写成: πSNO,SNAME(S)(πSNO(σCNO='C2'(SC))) 这个表达式中自然连接的右分量为"学了C2课的学生学号的集合"。这个表达式比前一个表达式优化,执行起来要省时间,省空间。 (3)检索选修课程名为MATHS的学生学号与姓名。 πSNO,SANME(σCNAME='MATHS'(S SC C)) (4)检索选修课程号为C2或C4的学生学号。 πSNO(σCNO='C2'∨CNO='C4'(SC)) (5)检索选修课程号为C2和C4的学生学号。 π1(σ1=4∧2='C2'∧5='C4'(SC×SC)) 这里(SC×SC)表示关系SC自身相乘的乘积操作,其中数字1,2,4,5都为它的结果关系中的属性序号。 比较这一题与上一题的差别。 (6)检索不学C2课的学生姓名与年龄。 πSNAME,AGE(S)-πSNAME,AGE(σCNO='C2'(S SC))

(完整版)数据库关系代数习题

1.设有如图所示的关系S、SC和C,试用关系代数表达式表示下列查询语句: S C SC S# SNAME AGE SEX 1 李强23 男 2 刘丽22 女5 张友22 男C# CNAME TEACHER k1 C语言王华 k5 数据库原理程军 k8 编译原理程军 S# C# GRADE 1 k1 83 2 k1 85 5 k1 92 2 k5 90 5 k5 84 5 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(学生∞学习))。

关系代数习题3.26

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. 关系代数中的联接操作是由()操作组合而成。 A.选择和投影 B. 选择和笛卡尔积 C.投影、选择、笛卡尔积 D. 投影和笛卡尔积 14. 自然联接是构成新关系的有效方法。一般情况下,当对关系R和S是用自然联接时,要求R和S含有一个或者多个共有的()。 A.记录 B. 行 C. 属性 D. 元组 15. 假设有关系R和S,在下列的关系运算中,()运算不要求:“R 和S具有相同的元数,且它们的对应属性的数据类型也相同” 。

关系代数及SQL语言的习题

针对书上的学生选课数据库S_T,用关系代数和SQL语言完成以下查询: 1、查询“CS”系所有学生的学号和姓名。 2、Slelect sno,sname from student where sdept =’CS’ 3、查询所有姓“刘”的学生的信息。 4、Select * from student where sname like ‘刘%’ 5、查询年龄在18至20岁之间的学生信息。 6、Select * from student where sage between 18 and 20 7、查询不在“CS”系也不在“MA”系的学生的所有信息。 8、Select * from student where sdept not in (‘CS’,’MA’) 9、查询“CS”系所有学生的平均年龄。 10、Select avg(sage) from student where sdept like ‘CS’ 11、查询课程名是以“系统”结尾的课程信息。 12、Select * from course where cname like ‘%系统’ 13、查询先行课为“6”号课程的课程信息。 14、Select * from course where cpno=6 15、查询间接先行课为“5”号课程的课程号及课程名。 16、Select , from c c1,c c2 where = and =5 17、Select cno ,cname from course where cpno in (select cno from course where cpno=5) 18、查询没有先行课的课程名。 19、Select cname from course where cpno is null 20、查询选修了“1”号课程的学生选课信息。 21、Select * from sc where cno=1 22、查询成绩为90分以上的学生姓名和课程名。 23、Select sname ,cname from s,c,sc where = and = and grade>=90 24、查询被选修了的课程号及课程名。

关系代数习题

习题四 1. 试述关系模型的三个组成部分。 .关系是由(R,U,D,dom,F )组成,R 为关系名,关系结构、关系操作、关系完整性约束 U 位组成关系的元组属性集合,D 为属性集合U 来自的域,dom 为对象关系的映像集合,F 为属性依赖关系集合。关系操作为关系代数、关系演算、关系映象操作,此语言表达能和功能强大,约束:参照完整性约束,用户自定义约束,实体完整性约束。 2. 试述关系数据语言的特点和分类。 关系操作语言灵活方便、语言表达能力和功能强,其特点:操作一体化,操作方式一次一集合,高度的非过程化的操作,关系操作语言包括:关系代数语言、关系演算语言、基于映像 的语言,关系代数语言是对关系的运算来表达查询的语言,关系演算语言查询元组的应该满足的谓词条件的运算查询语言, 基于映像的语言具有关系代数与关系演算的语言的双重特点 语言查询!

3. 定义并解释下列术语,说明它们之间的联系与区别。 主码、候选码、外码。)1 在一个关系中某个属性(或属性组)能够唯一标识一个元组,则称该属性为候选码,选择其 R 中属性F 不是R 的码,h 为K 关系的主码,如果F 与h 相对应,中一个为主码,在关系 则称 F 为管系R 的外码 笛卡尔积、关系、元组、属性、域。2)给定一组域D1,D2,D3 3)关系、关系模式、关系数据库。 4. 试述关系模型的完整性规则。在参照完整性中,为什么外码属性的值也可以为空?什么 情况下才可以为空? 5. 试述等值连接与自然连接的区别和联系。 6. 对于学生选课关系,其关系模式为: 学生(学号,姓名,年龄,所在系); 课程(课程名,课程号,先行课); 选课(学号,课程号成绩)。 用关系代数完成如下查询。 求学过数据库课程的学生的姓名和学号。1) 求学过数据库和数据结构的学生姓名和学号。2)求没学过数

关系代数讲解与例题

关系代数 关系代数是关系数据库系统查询语言的理论基础。 关系代数的9种操作: 并、交、差、乘、选择、投影、联接、除、自然联接运算。 五个基本操作: 并(∪) 差(-) 笛卡尔积(×)投影(σ) 选择(π) 四个组合操作: 交(∩) 联接(等值联接)自然联接(RS) 除法(÷) 关系代数表达式: 由关系代数运算经有限次复合而成的式子称为关系代数表达式。这种表达式的运算结果仍然是一个关系。可以用关系代数表达式表示对数据库的查询和更新操作。 关系代数(演算)要求掌握各种语句的应用,多做书中的例题可以帮助自己熟能生巧。 关系代数表达式举例 用关系代数表示数据查询的典型例子 [例]设教学数据库中有3个关系: 学生关系S(SNO,SNAME,AGE,SEX) 学习关系SC(SNO,CNO,GRADE) 课程关系C(CNO,CNAME,TEACHER) 下面用关系代数表达式表达每个查询语句。 (1) 检索学习课程号为C2的学生学号与成绩。 πSNO,GRADE(σCNO='C2'(SC)) (2) 检索学习课程号为C2的学生学号与姓名 πSNO,SNAME(σCNO='C2'(SSC)) 由于这个查询涉及到两个关系S和SC,因此先对这两个关系进行自然连接,同一位学生的有关的信息,然后再执行选择投影操作。 此查询亦可等价地写成: πSNO,SNAME(S)(πSNO(σCNO='C2'(SC))) 这个表达式中自然连接的右分量为"学了C2课的学生学号的集合"。这个表达式比前一个表达式优化,执行起来要省时间,省空间。 (3)检索选修课程名为MATHS的学生学号与姓名。 πSNO,SANME(σCNAME='MATHS'(SSCC)) (4)检索选修课程号为C2或C4的学生学号。 πSNO(σCNO='C2'∨CNO='C4'(SC)) (5)检索至少选修课程号为C2或C4的学生学号。 π1(σ1=4∧2='C2'∧5='C4'(SC×SC)) 这里(SC×SC)表示关系SC自身相乘的乘积操作,其中数字1,2,4,5都为它的结果

数据库关系代数习题

2.现有关系数据库如下: 学生(学号,姓名,性别,专业,奖学金)。 课程(课程号,名称,学分)。 学习(学号,课程号,分数)。 用关系代数表达式实现下列1-4小题: 1. 检索"英语"专业学生所学课程的信息,包括学号、姓名、课程名和分数。 П学号,姓名,课程名,分数(σ专业='英语'(学生∞学习∞课程))。 2. 检索"数据库原理"课程成绩高于90分的所有学生的学号、姓名、专业和分数。 П学号,姓名,专业,分数(σ分数>90∧名称='数据库原理'(学生∞学习∞课程))。 3. 检索不学课程号为"C135"课程的学生信息,包括学号,姓名和专业。 П学号,姓名,专业(学生)-П学号,姓名,专业(σ课程号='C135'(学生∞学习))。 4. 检索没有任何一门课程成绩不及格的所有学生的信息,包括学号、姓名和专业。 П学号,姓名,专业(学生)-П学号,姓名,专业(σ分数<60(学生∞学习))。 5.检索选修全部课程的学生姓名 6.检索至少选修了李强同学所选修的全部课程的学生姓名。

3.现有关系数据库如下: 学生(学号,姓名,性别,专业、奖学金)。 课程(课程号,名称,学分)。 学习(学号,课程号,分数)。 用关系代数表达式实现下列1—4小题: 1. 检索“国际贸易”专业中获得奖学金的学生信息,包括学号、姓名、课程名和分数。 Π学号,姓名,课程名,分数(σ奖学金>0∧专业=国际贸易(学生∞学习∞课程))。 2. 检索学生成绩得过满分(100分)的课程的课程号、名称和学分。 Π课程号,名称,学分(σ分数=100(学习∞课程))。 3. 检索没有获得奖学金、同时至少有一门课程成绩在95分以上的学生信息,包括学号、姓名和专业。 Π学号,姓名,专业(σ奖学金<=0∧分数>95(学生∞学习))。 4. 检索没有任何一门课程成绩在80分以下的学生的信息,包括学号、姓名和专业。 Π学号,姓名,专业(学生)-Π学号,姓名,专业(σ分数<80(学生∞学习))。 4.设有关系S、SC和C,试用关系代数表达式完成下列操作。 S(snum,sname,age,sex),例:(1,“李强”,23,‘男’)是一条数据记录。SC(snum,cnum,score),例:(1,“C1”,83)是一条数据记录。C(cnum,cname,teacher) 例:(“C1”,“数据库原理”,“王华”)是一条数据记录。

数据库习题课答案(sql,关系代数,权限管理)

●根据下面所给的商品库,写出SQL语句 商品表1(商品代号char(8),分类名char(8),单价float数量int) 商品表2(商品代号char(8),产地char(8),品牌char(8) ) 1)从商品库中查询出数量在10和20之间的商品种数 select count(*) from 商品表1 where 数量between 10 and 20; 2)从商品库中查询出每类(即分类名相同)商品的总数量 select 分类名,sum(数量) from 商品表1 group by 分类名 3)从商品库中查询出比所有商品单价的平均值要低的全部商品 select * from 商品表1 where 单价< (select avg(单价) from 商品表1) 4)从商品库中查询出所有商品的不同产地的总数 select count(distinct 产地) from 商品表2 ●设车辆管理数据库的数据模式如下: 车辆(车号,车名,车颜色,生产厂名) 工厂(厂名,厂长姓名,所在城市名) 城市(城市名,人口,市长姓名) 用关系代数写出如下查询: 1)查询车名为红旗牌轿车的所有车号 π车号(σ车名=‘红旗’(车辆)) 2)查询红旗牌轿车的生产厂家及厂长姓名 Π厂名,厂长姓名(σ车名=‘红旗’(车辆工厂)) 3)查询林肯牌轿车的生产厂家及所在城市的市长姓名 Π生产厂家,市长姓名(σ车名=‘林肯’(车辆工厂城市)) 4)查询第一汽车制造厂生产的汽车的颜色 Π车颜色(σ生产厂名=’第一汽车制造厂’(车辆)) 5)查询武汉生产哪些牌子的车 Π车名(σ所在城市名=’武汉’(车辆工厂)) ●今有两个关系模式: 职工(职工号,姓名,年龄,职务,工资,部门号); 部门(部门号,名称,经理名,地址,电话)。 请用SQL 的GRANT和REVOKE语句(加上视图机制),完成以下授权定义或存取控制功能。 1)用户王明对两个表有SELECT权力。 GRANT SELECT ON 职工,部门 TO 王明 2)用户李勇对两个表有INSERT和DELETE权力。

数据库习题课答案(sql-关系代数-权限管理)教程文件

数据库习题课答案(s q l-关系代数-权限 管理)

●根据下面所给的商品库,写出SQL语句 商品表1(商品代号char(8),分类名char(8),单价float数量int) 商品表2(商品代号char(8),产地char(8),品牌char(8) ) 1)从商品库中查询出数量在10和20之间的商品种数 select count(*) from 商品表1 where 数量between 10 and 20; 2)从商品库中查询出每类(即分类名相同)商品的总数量 select 分类名,sum(数量) from 商品表1 group by 分类名 3)从商品库中查询出比所有商品单价的平均值要低的全部商品 select * from 商品表1 where 单价< (select avg(单价) from 商品表1) 4)从商品库中查询出所有商品的不同产地的总数 select count(distinct 产地) from 商品表2 ●设车辆管理数据库的数据模式如下: 车辆(车号,车名,车颜色,生产厂名) 工厂(厂名,厂长姓名,所在城市名) 城市(城市名,人口,市长姓名) 用关系代数写出如下查询: 1)查询车名为红旗牌轿车的所有车号 π车号(σ车名=‘红旗’(车辆)) 2)查询红旗牌轿车的生产厂家及厂长姓名 Π 厂名,厂长姓名(σ车名=‘红旗’(车辆工厂)) 3)查询林肯牌轿车的生产厂家及所在城市的市长姓名 Π 生产厂家,市长姓名(σ车名=‘林肯’(车辆工厂城市)) 4)查询第一汽车制造厂生产的汽车的颜色 Π 车颜色(σ生产厂名=’第一汽车制造厂’(车辆)) 5)查询武汉生产哪些牌子的车 Π车名(σ所在城市名=’武汉’(车辆工厂)) ●今有两个关系模式: 职工(职工号,姓名,年龄,职务,工资,部门号); 部门(部门号,名称,经理名,地址,电话)。 请用SQL 的GRANT和REVOKE语句(加上视图机制),完成以下授权定义或存取控制功能。 1)用户王明对两个表有SELECT权力。 GRANT SELECT ON 职工,部门 TO 王明 2)用户李勇对两个表有INSERT和DELETE权力。

关系代数运算习题

一、选择题 1关系代数运算可以分为两类:传统的集合运算和专门的关系运算?下面列出的操作符中,属于传统的集合运算是( A ) I .n(交)n .u(并)『x(广义笛卡儿积)w?一(差)v.n(投影)w选择) A)I、n、川和w B)川、w、V和w C)I、川、V和w D)都是 2、关系数据库管理系统能实现的专门关系操作包括(B) A、显来,打印和制表 B、选择,投影和连接 C、关联、更新和排序 D、排序、索引和统计 3、在关系数据基本操作中,从表中选项出满足某种条件的记录的操作称为( A ) A、选择 B、投影 C、连接 D、扫描 4、元组的集合在关系数据库中称为关系,一般来说,表示元组的属性或者最小属性组称为D A、字段 B、索引 C、标记 D、主键 5、在下面3个关系中 学生S (SNO , SNAME , SEX, AGE )课程 C (CNO , CNAME , CREDIT )学生选课SC (SNO, CNO , GRADE ) 要查找选修“数据库”课程的女学生的姓名,将涉及到关系(D) A、S B、C, SC C、S, SC DS, C, SC 6、对于关系数据库来讲,下面(C)说法是错误的。 A、每一列的分量是同一种类型数据,来自同一个域 B、不同列的数据可以出自同一个域 C、行的顺序可以任意交换,但列的顺序不能任意交换 关系中的任意两个元组不能完全相同 7、关系数据库中有3种基本操作,从表中取出满足条件的属性的操作是(A) A、选择 B、投影 C、连接 D、扫描 8、关系数据库在有3种基本操作,将具有共同属性的两个关系中的元组连接到一起,构成新表的操作称为(C ) A、选择 B、投影 C、连接 D、扫描 9 若D1={a1,a2,a3} , D2={b1,b2,b3},贝U D1*D2 集合中共有元组(C)个 A、 6 B、8 C、9 D、12 10下列(C)运算不是专门的关系运算 A、选择 B、投影 C、笛卡尔积 D、连接 11、如下两个关系R1和R2,它们进行运算后得到R3。(D ) R1 R2 B D E 1M I 2N J A__M R3 A 1 X M I D 1 Y M I

数据库关系代数除法讲解

数据库关系代数除法讲解 This manuscript was revised by JIEK MA on December 15th, 2012.

【数据库原理】关系代数篇——除法讲解 陈宇超编辑总结: 除法运算的一般形式示意图 如何计算R÷S呢,首先我们引进”象集”的概念,具体意义看下面的陈述即可理解 关系R和关系S拥有共同的属性B、C , R÷S得到的属性值就是关系R包含而关系S不包含的属性,即A属性 在R关系中A属性的值可以取{ a1,a2,a3,a4 } a1值对应的象集为 { (b1,c2) , (b2,c1) , (b2,c3) } a2值对应的象集为 { (b3,c7) , (b2,c3) } a3值对应的象集为 { (b4,c6) } a4值对应的象集为 { (b6,c6) } 关系S在B、C上的投影为 { (b1,c2) , (b2,c1) , (b2,c3) } 只有a1值对应的象集包含关系S的投影集,所以只有a1应该包含在A属性中为 设有教学数据库有3个关系(以下四小问均用除法的思想解决) 学生信息关系student(sno,sname,age,sex) 学生选课关系 sc(sno,cno,score) 学校课程关系 course(cno,cname)

S003C00269 S005C00277 S005C00398 有存在量词的谓词。 解决这类的除法问题一般采用双嵌套not exists来实现带全称量词的查询解决所谓forall的问题。 (1)检索所学课程包含了C002课程的学生学号 解关系代数表达式:∏sno ( sc÷∏cno(σcno=’C002’ (course) ) Sql语句 从略 (2)求至少选择了C001和C003两门课程的学生学号 解关系代数表达式:∏sno ( sc÷∏cno(σcno=’C001’ or cno=’C003’(course) ) Sql语句 select distinct sno from sc A where not exists ( select*from course B where cno in('C002','C003')and not exists ( select*from sc C where=and= ) ) 也可以采用自连接 select from (select*from sc where cno='C001')as s1, (select*from sc where cno='C003')as s2 where= (3)求至少学习了学生S003所学课程的学生学号 解关系代数表达式:∏sno ( sc÷∏cno(σsno=’S003’ (sc) ) select distinct sno from sc A where not exists ( select*from sc B where sno='S003'and not exists ( select*from sc C where=and= ) ) (4)求选择了全部课程的学生的学号 解此例的等价自然语义是,输出这样的学号,不存在某门课程在他的选课记录里没有选这门课 关系代数表达式:∏sno (sc÷∏cno(course) ) Sql语句 select distinct sno from sc A where not exists

关系代数习题

习题四 1. 试述关系模型的三个组成部分。 关系结构、关系操作、关系完整性约束.关系是由(R,U,D,dom,F )组成,R 为关系名,U 位组成关系的元组属性集合, D 为属性集合U 来自的域,dom 为对象关系的映像集合, F 为属性依赖关系集合。关系操作为关系代数、关系演算、关系映象操作,此语言表达能和功能强大,约束:参照完整性约束,用户自定义约束,实体完整性约束。 2. 试述关系数据语言的特点和分类。 关系操作语言灵活方便、语言表达能力和功能强,其特点:操作一体化,操作方式一次一集 合,高度的非过程化的操作,关系操作语言包括:关系代数语言、关系演算语言、基于映像 的语言,关系代数语言是对关系的运算来表达查询的语言,关系演算语言查询元组的应该满 足的谓词条件的运算查询语言,基于映像的语言具有关系代数与关系演算的语言的双重特点 语言查询! 3. 定义并解释下列术语,说明它们之间的联系与区别。 1)主码、候选码、外码。 在一个关系中某个属性(或属性组)能够唯一标识一个元组,则称该属性为候选码,选择其 中一个为主码,在关系R 中属性 F 不是R 的码,h 为K 关系的主码,如果 F 与h 相对应,则称 F 为管系R 的外码 2)笛卡尔积、关系、元组、属性、域。 给定一组域D1,D2,D3 3) 关系、关系模式、关系数据库。 4. 试述关系模型的完整性规则。在参照完整性中,为什么外码属性的值也可以为空?什么 情况下才可以为空? 5. 试述等值连接与自然连接的区别和联系。 6. 对于学生选课关系,其关系模式为: 学生(学号,姓名,年龄,所在系); 课程(课程名,课程号,先行课); 选课(学号,课程号成绩)。 用关系代数完成如下查询。 1)求学过数据库课程的学生的姓名和学号。 2)求学过数据库和数据结构的学生姓名和学号。 3)求没学过数据库课程的学生学号。 4)求学过数据库的先行课的学生学号。

数据库原理作业(关系代数)

设有如下表所示的三个关系S 、C 和SC 。试用关系代数表达式表示下列查询语句: (1)检索“程军”老师所授课程的课程号(C #)和课程名(CNAME )。 (l )ΠC #,CNAME (σTEACHER=’程军’(C )) (2)检索年龄大于21岁男学生的学号(S #)和姓名(SNAME )。 (2)ΠS #,SNAME (σAGE>21∧SEX=’男’(S )) (3)检索至少选修“程军”老师所授全部课程的学生姓名(SNAME )。 (3)ΠSNAME (S (ΠS #,C #(SC )÷ΠC #(σTEACHER=’程军’(C )))) (4)检索“李强”同学不学课程的课程号(C #)。 (4)ΠC #(C )-ΠC #(σS NAME=’李强’(S )SC ) (5)检索至少选修两门课程的学生学号(S #)。 (5)ΠS #(σ[1]=[4]∧[2]≠[5](SC×SC ))

(6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。(6)ΠC#,CNAME(C(ΠS#,C#(SC)÷ΠS#(S))) (7)检索选修课程包含“程军”老师所授课程之一的学生学号(S#)。(7)ΠS#(SCΠC#(σTEACHER=’程军’(C))) (8)检索选修课程号为k1和k5的学生学号(S#)。 (8)ΠS#,C#(SC)÷ΠC#(σC#=’k1’∨C#=’k5’(C)) (9)检索选修全部课程的学生姓名(SNAME)。 (9)ΠSNAME(S(ΠS#,C#(SC)÷ΠC#(C))) (10)检索选修课程包含课程号为k2的学生学号(S#)。 (10)ΠS#,C#(SC)÷ΠC#(σC#=’k2’(C)) 或ΠS#(σC#=’k2’(SC)) (11)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。(11)ΠS#,SNAME(SΠS#(SC(σCNAME=’C语言’(C)))

数据库第二章关系代数习题

1.设有如图所示的关系S 、SC 和C,试用关系代数表达式表示下列查询语句: S C SC (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(学生∞学习))。

关系代数习题-1

第1章复习题 1.数据库系统是采用了数据库技术的计算机系统,数据库系统由数据库、数据库管理系统、应用系统和()。 A.系统分析员 B.程序员 C.数据库管理员 D.操作员 2.数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是()。 A.DBS包括DB和DBMS B.DBMS包括DB和DBS C.DB包括DBS和DBMS D.DBS就是DB,也就是DBMS 3.下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是()。I.人工管理阶段II.文件系统阶段III.数据库阶段 A.I 和II B.只有II C.II 和III D.只有I 4.下列四项中,不属于数据库系统特点的是()。 A.数据共享 B.数据完整性 C.数据冗余度高 D.数据独立性高 5.数据库系统的数据独立性体现在()。 A.不会因为数据的变化而影响到应用程序 B.不会因为数据存储结构与数据逻辑结构的变化而影响应用程序 C.不会因为存储策略的变化而影响存储结构 D.不会因为某些存储结构的变化而影响其他的存储结构 6.描述数据库全体数据的全局逻辑结构和特性的是()。 A.模式 B.内模式 C.外模式 D. 7.要保证数据库的数据独立性,需要修改的是()。 A.模式与外模式 B.模式与内模式 C.三级模式之间的两层映射 D.三层模式 8.要保证数据库的逻辑数据独立性,需要修改的是()。 A.模式与外模式之间的映射 B.模式与内模式之间的映射 C.模式 D.三级模式

9.用户或应用程序看到的那部分局部逻辑结构和特征的描述是()模式。 A.模式 B.物理模式 C.子模式 D.内模式 10.下述()不是DBA数据库管理员的职责。 A.完整性约束说明 B.定义数据库模式 C.数据库安全 D.数据库管理系统设计 11.概念模型是现实世界的第一层抽象,这一类模型中最著名的模型是()。 A.层次模型 B.关系模型 C.网状模型 D.实体-关系模型 12.区分不同实体的依据是()。 A.名称 B.属性 C.对象 D.概念 13.关系数据模型是目前最重要的一种数据模型,它的三个要素分别是()。 A.实体完整性、参照完整性、用户自定义完整性 B.数据结构、关系操作、完整性约束 C.数据增加、数据修改、数据查询 D.外模式、模式、内模式 14.在()中一个结点可以有多个双亲,结点之间可以有多种联系。 A.网状模型 B.关系模型 C.层次模型 D.以上都有 15.()的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。 A.网状模型 B.关系模型 C.层次模型 D.以上都有 1 .数据库数据具有__________、__________和__________三个基本特点。(问答题) 答案 永久存储有组织可共享 4 .数据库管理系统是数据库系统的一个重要组成部分,它的功能包括__________、__________、__________、__________。(问答题) 答案 数据定义功能数据操纵功能数据库的运行管理数据库的建立和维护功能

关系代数习题与详解

1. 先做习题 2(1~3 题) 1. (1)简述关系代数中并、交、差、选择、投影、连接、除的定义。答:并:关系 R 与关系 S的并由属于 R 或属于 S的所有元素组成。 差:关系 R 与关系 S 的差由属于 R 而不属于 S 的所有元素组成。交:关系 R 与关系 S的交即属于 R 又属于 S的所有元素组成。选择:选择是从行的角度进行的运算,选出满足条件的那些记录构成原关系的一个子集。 投影:投影是从列的角度进行运算,所得到属性列个数通常比原关系少,或者属性列 的排列顺序不同。 连接:两个关系中的记录按一定条件横向结合,生成一个新的关系。除:R中的属性包含 S中的属性, R 中的有些属性不出现在 S中。 (2) (3) 等值连接:当算术比较值为“ =”时,是一种特殊的也是最为常用的θ 连接,等值连接是从关系 R 与关系 S 的广义笛卡尔积中选取 i,j 属性值相等的元组。自然连接是一种特殊的等值连接,它要求二个关系中进行比较分量i, j 必须是相同属 性组,并且在结果中去掉了重复的属性列。 2. 设教学库中有三个关系:学生关系 S(S#,SNAME ,AGE ,SEX)学习关系 SC(S#, C#, GRADE)课程关系 C(C# , CNAME ,TEACHER) 请用关系代数表达式表达各个查 询语句 1.检索学习课程号为 C2 的学生学号与成绩。 答:∏ s#,grade(σ c=c2(SC × C)) 2.检索学习课程号为 C2 的学生学号与姓名。 答:∏ s#,sname(σ c=c2(S× C)); 3,检索选修课程 答:∏ c 选修( C 3 已知 R 关系与 S 关系

关系代数及SQL语言的习题

针对书上的学生选课数据库S_T,用关系代数和SQL语言完成以下查询: 1、查询“ CS系所有学生的学号和姓名。 2、Slelect sno,sname from student where sdept = ' CS 3、查询所有姓“刘”的学生的信息。 4、Select * from stude nt where sn ame like '刘% 5、查询年龄在18至20岁之间的学生信息。 6、Select * from stude nt where sage betwee n 18 and 20 7、查询不在“ CS系也不在“ MA系的学生的所有信息。 & Select * from student where sdept not in ( ‘ CS , ' MA ) 9、查询“ CS系所有学生的平均年龄。 10、Select avg(sage) from stude nt where sdept like ‘ CS 11、查询课程名是以“系统”结尾的课程信息。 12、Select * from course where cn ame like ‘ %系统' 13、查询先行课为“ 6”号课程的课程信息。 14、Select * from course where cpno=6 15、查询间接先行课为“ 5”号课程的课程号及课程名。 16、Select , from c c1,c c2 where = and =5 17、Select eno ,cname from course where epno in (select eno from course where epno=5) 18、查询没有先行课的课程名。 19、Select cn ame from course where epno is null 20、查询选修了“ 1”号课程的学生选课信息。

关系代数习题参考

一、设教学库中有三个关系: 学生关系S(S#,SNAME,AGE,SEX) 学习关系SC(S#,C#,GRADE) 课程关系C(C#,CNAME,TEACHER) 下面用关系代数表达式表达各个查询语句 1.检索学习课程号为C2的学生学号与成绩。πS#,GRADE(σC#=‘C2’(SC)) 2.检索学习课程号为C2的学生学号与姓名。πS#,SNAME(σC#=‘C2’(S∞SC)) 3.检索选修课程名为MATHS的学生学号与姓名。πS#,SNAME(σCNAME=‘MATHS’( S∞SC∞C)) 4.检索选修课程号为C2或C4的学生学号。πS#(σC#=‘C2’∨C#=‘C4’(SC)) 5.检索不学C2课的学生姓名与年龄。πSNAME,AGE(S)-πSNAME,AGE( σC#=‘C2’( S∞SC)) 6.检索学习全部课程的学生姓名。 学生选课情况:πS#,C#(SC)全部课程:πC#(C) 学了全部课程的学生的学号用除操作,结果是学号S#集:πS#,C#(SC)÷πC#(C) 从S#求学生姓名,可用自然联接和投影组合操作: πSNAME(S∞(πS#,C#(SC)÷πC#(C)))

二、设有一个数据库: 学生关系模式:S(学号S#,姓名SNAME,年龄AGE,性别SEX) 学生课程模式:SC(学号S#,课程号C#,成绩GRADE) 课程关系模式:C(课程号C#,课程名CNAME,教师TEACHER) 试用关系代数表达式表示下列查询语句: 1.检索年龄大于20岁的男学生的学号、姓名。πS#,SNAMEσAGE>20∧SEX=”男”(S) 2.检索田老师所授课程的课程号、课程名πC#,CNAMEσTEACHER=”田老师”(C) 3.检索全部学生都选修的课程的课程号、课程名。 所有的学生:πS#(S);所有学生选修课程的情况:πS#,C#(SC) 这里需要确定:哪一门课程包含了所有的学生 πS#,C#(SC) ÷πS#(S),该结果集是C# 求C#,CNAME可用投影和自然连接: πC#,CNAME(C∞(πS#,C#(SC)÷πS#(S))) 可简化为:πC#,CNAME,S#(SC∞C) ÷πS#(S)

《数据库概论》练习题及答案

10.从一个数据库文件中取出满足某个条件的所有记录形成一个新的数据库文件的操作是(C)操作。 A.投影 B.连接 C.选择 D.复制

11.要保证数据库的数据独立性,需要修改的是(A) A.三层模式之间的两种映射 B.模式与内模式 C.模式与外模式 D.三层模式 12.下面的选项不是关系数据库基本特征的是(A)。 A.不同的列应有不同的数据类型 B.不同的列应有不同的列名 C.与行的次序无关 D.与列的次序无关 13.一个关系只有一个(C)- A?候选码C.主码B.外码D.超码 14.解决并发操作带来的数据不一致问题普颯采用(B )技术。 A.存取控制 B.封锁 C.恢复 D.协商 15.以下(D)不属于实现数据库系统安全性的主要技术和方法。 A.存取控制技术 B.岀入机房登记和加防盗门 C.审计技术 16. A.原子性 C.独立性 17. A.丢失修改 C.脏读 18. A.完整性 C.隔离性 19. D.视图技术 表示两个或多个事务可以同时运行而不互相影响的是(C )o B. 一致性 D.持久性 下列不属于并发操作带来的问题是(D)。 B.不可重复读 D.死锁 SQL中的视图机制提髙了数据库系统的(D )。 B.并发控制 D.安全性 下述SQL命令中,允许用户宦义新关系时,引用其他关系的主码作为外 码的是(B)。 B. REFERENCES C. DELETE D. SELECT 20.在数据库设计中,将ER图转换成关系数据模型的过程属于(B)。 A.需求分析阶段 B.逻辑设计阶段 C.概念设计阶段 D.物理设计阶段 21.如果事务T获得了数据项Q上的排他锁,则丁对0( C)。 A.只能读不能写 B.只能写不能读 C.既可读又可写 D.不能读也不能写 22.如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突的操作是 (D)。 A.—个是DELETE, 一个是SELECT B.—个是SELECT, 一个是DELETE C.两个都是UPDATE D.两个都是SELECT 23.下列四项中,不属于数据库系统特点的是(C )。 A.数据共享 B.数据完整性 C.数据冗余度高 D.数据独立性高 24.一个关系只有一个(D) o A.候选码 B.外码

关系代数习题

小测验1 (一)单项选择题 1.关系模型基本的数据结构是(D) A.树B.图 C.索引 D.关系 2.关系数据库的查询语言是一种(C) A 过程性语言 B.第三代语言 c.非过程性语言 D.高级程序设计语言 3.关系模型中,实体完整性规则是(B) A.实体不允许是空实体 B.实体的主键值不允许是空值 c.实体的外键值不允许是空值 D.实体的属性值不允许是空值 4.关系数据库的数据操作分为两类(A) A.查询和更新 B.排序和索引c.插入和删除 D.修改和排序 5.在关系模型中,下列说法正确的为( D )。 A.关系中存在可分解的属性值 B. 关系中允许出现相同的元组 C.关系中考虑元组的顺序 D.元组中,属性理沦上是无序的,但使用时按习惯考虑列的顺序 6. 在关系模型中,下列说法正确的为(B) A.关系中元组在组成主键的属性上可以有空值 B.关系中元组在组成主键的属性上不能有空值 C.主键值起不了唯一标识元组的作用 D.关系中可引用不存在的实体 7.下列为非过程语言的为( C )。 A.汇编语言 B.PASCAL语言‘ C.关系查询语言D.C语言 8.设关系R、s、w各有10个元组,则这三个关系的笛卡尔积的基数为(C)A.10 B.30 C.1000 D.不确定(与计算结果有关) 9.关系代数中,一般联接操作由(A)组合而成。 A.笛卡尔积和选择 B.笛卡尔积、选择和投影 C.笛卡尔积和投影 D.投影和选择 10.设关系R和S的属性个数分别为r和s,那么(R x S)操作结果的属性个数为( A ) A.r十s B.r-s C.r×s D.max(r,s) 11.设关系R和s的结构相同,且各有100个元组,则这两个关系的并操作结果的元组个数为(D) A.100 B.小于等于100 C.200 D. 小于等于200 12.关系代数的交操作可以由(B)操作组合而成。 A.并和差 B.差C.选择 D.联接 13.如果两个关系没有公共属性,那么其自然联接操作(A) A.转化为笛卡尔积操作B.转化为联接操作 c.转化为外部并操作D.结果为空关系 14.设关系R和S的值如下:

相关文档