《数据库原理与系统》习题解答Word文件下载.docx

上传人:b****3 文档编号:17064544 上传时间:2022-11-28 格式:DOCX 页数:33 大小:95.83KB
下载 相关 举报
《数据库原理与系统》习题解答Word文件下载.docx_第1页
第1页 / 共33页
《数据库原理与系统》习题解答Word文件下载.docx_第2页
第2页 / 共33页
《数据库原理与系统》习题解答Word文件下载.docx_第3页
第3页 / 共33页
《数据库原理与系统》习题解答Word文件下载.docx_第4页
第4页 / 共33页
《数据库原理与系统》习题解答Word文件下载.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

《数据库原理与系统》习题解答Word文件下载.docx

《《数据库原理与系统》习题解答Word文件下载.docx》由会员分享,可在线阅读,更多相关《《数据库原理与系统》习题解答Word文件下载.docx(33页珍藏版)》请在冰豆网上搜索。

《数据库原理与系统》习题解答Word文件下载.docx

1.解释下列事业术语的合义:

关系、元组、属性、属性域、超码、候选码、主码、外码。

2.简述关系的性质。

3.说明关系数据库实现数据之间联系的方法。

4.什么是实体完整性和参照完整性?

5.什么是数据字典和系统目录?

6.什么是关系代数的选锈、投影、并、差、笛卡儿积、交和连接运算?

7.什么是自然连接?

8.什么是左外连接、右外连接和全外连接?

9.外连接与自然连接的区别是什么?

1.下面对关系性质的描述中,错误的是

A、表中的—行称为一个元组 B、行与列交叉点不允许有多个值

C、表中的一列称为一个属性 D、表中任意两行可能相同

2.“元数据”是指

 A、数据结构的描述 B、数据项的描述

C、数据的来源  D、系统自身的各种有用信息,包括数据结构的描述

3.在数据库系统中,空值是

A、0 B、空格 C、空字符串 D、不确定

4.实体完整性是指关系中

A、不允许有空行 B、主码不允许空值

 C、属性值外码取空值D、外码允许取空值

5.已知关系R与S如图2.25所示:

在关系S中,违反参照完整性约束的元组是

 A、(11,21)  B、(22,NULL)

 C、 (33,33)A、 (44,11)

6.已知关系R和S,R∩S等价于

   A、(R-S)-S B、S-(S-R)

 C、(S-R)-R D、S-(R-S)

7.关系R和S各有10个元组,则关系R×

S的元组个数为

  A、10B、20

   C、100D、不确定

8.从关系中选择指定的属性组成新关系的关系运算是

A、选取 B、投影C、连接D、笛卡儿乘积

9.有关系:

学生(学号,姓名,性别,专业,宿舍编号,宿舍地址),主码是

  A、宿合编号  B、学号

  C、宿舍地址,姓名 D、宿舍编号,学号

10.有两个关系:

部门(编号,部门名称,地址.电话)和职工(职工号,姓名,性别,职务.编号)。

职工关系的外码是

  A、职工号B、编号C、职工号,编号 D、编号,部门名称

11.若关系R1和R2的结构相同,各有10个元组,则R1⋃R2的元组个数为

 A、10B、小于等于10C、20D、小于等于20

12.设关系R和S的属性个数分别为2和3,则与关系代数表达式

等价的是

A、B、   C、 D、

13.当关系R和S自然连接时,能够把R和S中不满足连接条件的元组保留在结果关系中的运算是

A、左外连接 B、右外连接 C、全外连接 D、等值连接

14.设关系R(A,B)和S(B,C)中分别有10个和15个元组,属性B是R的主码.则R|×

|S中元组数目的范围是

  A、(0,15) B、(10,15) C、(10,25) D、(0,150)

l 5.设有关系R和S如图2.26所示,则关系

的元组数目是

A、6   B、7C、8 D、9

16.设有关系R和S,如图2.27所示,R的主码是编号,S的主码是学号、外码是编号。

若有如下4个元组:

ⅠI(S3李林,C2),Ⅱ(Sl,江荷,C1),Ⅲ (S4,白玉.C4),Ⅳ(S5,康嘉,NULL),能够插入关系3的元组是

A、I,Ⅱ,Ⅳ  B、I,Ⅲ C、I,Ⅱ D、I,Ⅳ

]7.已知关系R如图2.28所示,可以作为R主码的属性组是

A、XYZB、XYWC、XZW  D、YZW

]8.关系R和S分别有20、15个元组,则R⋃S、R-S、R∩S的元组数不可能是

A、29,13,6B、30,15,5C、35,20,0  D、28,13,7

R-S=R-(R∩S)

]9.设关系R和S的属性数目分别是a和b、则关系R⨯S的属性数目是

 A、a十b B、a—bC、a×

b D、a/b

 

三、解答题

1.设有4个关系模式:

供应商关系:

S(SNO,SNAME,CITY),属性依次是供应商号、供应商名称和所在城市

零件关系:

P(PNO,PNAME,COLOR),属性依次是是产品号、品名和颜色

工程关系:

J(JNO,JNAME,CITY),属性依次是是工程号、工程名和所在城市

供应关系:

SPJ(SNO,PNO,JNO,QTY),属性依次是供应商号、产品号、工程号和数量

试用关系代数完成下列操作:

(])J1工程零件的所有供应商号i

(2)求供应J1工程P1零件的供应商号;

(3)求供应J1工程红色零件的供应商号;

(4)求没有使用天津供应商生产的红色零件的工程号;

(5)求S1供应商供应零件的所有工程号。

2.设有3个关系模式:

 学生(学号,姓名,性别,专业)

课程(课程号,课程名称,学分)

成绩(学号,课程号,分数)

试用关系代数表达式完成下列操作:

(1)所有学生成绩获得满分(100分)的课程号、课程名称;

(2)检索至少有一门课程的分数达到95分以上的学生信息,包括学号、姓名和专业

(3)检索没有任何一门课程成绩在80分以下的学生的信息,包括学号、姓名和专业

(4)检索”英语”专业学生所学课程的信息,包括学号、姓名、课程名称和分数;

(5)检索“数据库原理“课程分数高于90分的所有学生的学号、姓名、专业和分数;

(6)检索没有不及格分数的学生的信息,包括学号、姓名和专业;

(7)检索“国际贸易”专业选修“数据库原理”课程的学号和姓名。

答案:

(1)所有学生成绩获得满分(100分)的课程号、课程名称;

π课程号,课程名称(σ分数=100(成绩)|×

| 课程)

(2)检索至少有一门课程的分数达到95分以上的学生信息,包括学号、姓名和专业

π学号,姓名,专业(σ分数>

=95(成绩)|×

| 学生)

(3)检索没有任何一门课程成绩在80分以下的学生的信息,包括学号、姓名和专业

π学号,姓名,专业(学生)-π学号,姓名,专业(σ分数<

80(成绩)|×

|学生)

(4)检索”英语”专业学生所学课程的信息,包括学号、姓名、课程名称和分数;

 

π学号,姓名,课程名称,分数(课程|×

|成绩|×

|σ专业=‘英语’(学生))

(5)检索“数据库原理“课程分数高于90分的所有学生的学号、姓名、专业和分数;

π学号,姓名,专业,分数(σ课程名称=‘数据库原理’(课程)|×

|σ分数>90(成绩)|×

|学生)

(6)检索没有不及格分数的学生的信息,包括学号、姓名和专业;

π学号,姓名,专业(学生)-π学号,姓名,专业(σ分数<

60(成绩)|×

| 学生)

(三表连接,投影)

π学号,姓名,专业(σ课程名称=‘数据库原理’(课程)|×

|成绩|×

| σ专业=‘国际贸易’(学生))

3、设有3个关系模式:

  员工(职工姓名,街道,城市)

 工作(职工姓名,公司名称,工资)

 公司(公司名称,城市)

用关系代数表达式来表达下列问题:

(1)列出泰斗公司所有员工的姓名;

(2)列出泰斗公司所有员工的姓名和居住的城市;

(3)列出泰斗公司所有年收入在10万元以上的员工姓名、居住的街道和城市

(4)列出所有居住地与工作的公司在同一城市的员工姓名;

(5)列出不在泰斗公司的所有员工的姓名

答案:

π职工姓名(σ公司名称=‘泰斗公司’(工作))

(2)列出泰斗公司所有员工的姓名和居住的城市;

π职工姓名,城市(σ公司名称=‘泰斗公司’(员工|×

|工作)

(3)列出泰斗公司所有年收入在10万元以上的员工姓名、居住的街道和城市

π职工姓名,街道,城市(σ公司名称=‘泰斗公司’AND工资>

100000(员工|×

|工作)Ù

π职工姓名(σ员工.城市=公司.城市(员工|×

|工作|×

|公司)

(5)列出不在泰斗公司的所有员工的姓名

π职工姓名(员工)-π职工姓名(σ公司名称=‘泰斗公司’(员工|×

|工作|))

习题三

一、单项选择题

1.SQL语言是

A、高级语言B、宿主语言C、汇编语言 D、非过程化语言

2.在SQL语言查询语句中,SELECT子句实现关系代数的

  A、投影运算 B、选择运算 C、连接运算D、交运算

3.在SQL语言查询语句中,WHERE子句实现关系代数的

A、投影运算  B、选择运算 C、连接运算 D、交运算

4.为在查询结果中去掉重复元组.应该使用保留字

 A、UNIQUEB、UNION C、COUNT D、DISTINCT

5.当关系R和S做自然连接时,能够保留R中不满足连接条件元组的操作是

A、左外连接  B、右外连接  C、内部连接D、全外连接

6.SQL语言中,更新表结构的的命令是

 A、UPDATETABLE  B、MODIFYTABLE

  C、ALTER TABLE D、CHANGETABLE

7.下列聚合函数中不忽略空值(NULL)的是

  A、SUM(列名)B、MAX(列名)C、AVG(列名)D、COUNT(*)

8.SQL语言中,下列涉及空值操作的短语,不正确的是(VFP全部正确,SQL SERVER中C错)

   A、AGEISNULL B、AGEIS NOTNULL

 C、AGE=NULL D、NOT(AGEISNULL)

9.SQL语言中,删除一个表的命令是

  A、CLEAR TABLE C、DROPTABLE

C、DELETETABLED、REMOVETABLE

10.设有一个关系:

DEPT(DNO,DNANE).如果要找出倒数第三个字母为W.并且至少包含4个字母的DNAME,则查询条件子句应写成WHEREDNANC LIKE//有疑问

A.’__W_%’, B.’_W_%’, C.’__W_’D.’_%W__’

SELECT* FROMSTUDENTWHERESNAMELIKE'

__林_%'

11 已知班级和学生关系如图3.11所示。

执行下列语句,在学生关系中插入新的数据:

IINSERTINTO学生VALUES(101,”李玲”,”女”,”C01”)

ⅡINSERTINTO 学生 VALUES(103,”田京”,”男”,”C03”)

ⅢINSERTINTO学生VALUES(106,”康雨”,”男”,NULL)

ⅣINSERTINTO 学生 VALUES(105,”何光”,” 男”,”C02”)

能正确执行的语句是

 A、I,ⅡB、Ⅲ,Ⅳ C、I,Ⅱ,Ⅲ  D、I,Ⅱ,Ⅲ,Ⅳ

二、解答题

1.没有3个关系模式:

业务员(业务员编号,业务员姓名,性别,年龄,月薪)

订单(订单号,日期,客户编号,业务员编号,金额)

客户(客户编号,客户姓名,地址,类别)

用SQL语句解答下列(1)-(12)题。

(1)显示所有50岁以上女业务员的姓名和年龄;

(2)检索年龄最大的业务员姓名和年龄;

(3)显示所有业务员的姓名和月薪.要求按照月薪降序排列;

(4)检索月薪在2000元到3000元之间的业务员姓名。

用BETWEEN关键词;

(5)统计每个客户签定订单的数目和总金额;

(6)检索所有经办客户王明订单的业务员姓名(分别用连接和子查询实现)

(7)统计每个业务员签定500元以上订单的数目;

(8)检索签定2个以上订单的业务员姓名;

(9)将所有业务员的月薪增加10%;

(10)将业务员关悦的月薪改为3500元;

(11)检索超过平均月薪的业务员姓名和年龄;

(12)将签定订单总金额超过2万元的月薪增加5%。

(1)显示所有50岁以上女业务员的姓名和年龄;

SELECT 业务员姓名,年龄FROM 业务员WHERE年龄>

50AND性别=‘女’

(2)检索年龄最大的业务员姓名和年龄;

SELECT业务员姓名,年龄 FROM业务员WHERE年龄=(SELECTMAX(年龄)FROM业务员)

(3)显示所有业务员的姓名和月薪.要求按照月薪降序排列;

SELECT业务员姓名,月薪 FROM 业务员ORDERBY月薪 DESC

(4)检索月薪在2000元到3000元之间的业务员姓名。

用BETWEEN关键词;

SELECT业务员姓名 FROM业务员WHERE月薪BETWEEN2000AND 3000

SELECT客户编号,COUNT(*)订单数目,SUM(金额)总金额 FROM 订单GROUP BY 客户编号

(6)检索所有经办客户王明订单的业务员姓名(分别用连接和子查询实现)

SELECT业务员.业务员姓名FROM 业务员,订单,客户WHERE业务员.业务员编号=订单.业务员编号AND订单.客户编号=客户.客户编号AND客户.客户姓名=‘王明’

SELECT业务员.业务员姓名 FROM 业务员innerjoin订单innerjoin客户on业务员.业务员编号=订单.业务员编号on订单.客户编号=客户.客户编号where客户.客户姓名=‘王明’

SELECT业务员姓名 FROM业务员WHERE 业务员.业务员编号IN(SELECT业务员编号FROM订单WHERE客户编号 IN(SELECT 客户编号FROM客户 WHERE客户姓名=‘王明’))

(7)统计每个业务员签定500元以上订单的数目;

SELECT业务员编号,COUNT(*) 订单数目FROM 订单 where金额>500GROUPBY业务员编号

(8)检索签定2个以上订单的业务员姓名;

SELECT业务员姓名FROM业务员WHERE 业务员编号 IN(SELECT业务员编号FROM订单 GROUPBY业务员编号HAVING COUNT(*)>

2)

(9)将所有业务员的月薪增加10%;

UPDATE 业务员SET 月薪=月薪*1.1

(10)将业务员关悦的月薪改为3500元;

UPDATE业务员 SET 月薪=3500WHERE业务员姓名=‘关悦’

(11)检索超过平均月薪的业务员姓名和年龄;

SELECT业务员姓名,年龄FROM业务员WHERE月薪>

(SELECT AVG(月薪) FROM 业务员)

(12)将签定订单总金额超过2万元的月薪增加5%。

UPDATE业务员 SET月薪=月薪*1.05WHERE业务员编号 IN(SELECT 业务员编号FROM业务员GROUPBY 业务员编号HAVING SUM(金额) >20000)

学生(学号,姓名,性别,专业,籍贯)

课程(课程号,课程名,学时,性质)

成绩(学号,课程号,分数)

回答下列

(1)-(10)题。

(1)检索所有女同学的姓名。

试写出实现该查询的关系代数表达式;

(2)检索选修“数据库”课程的学生姓名。

要求写出关系代数表达式和实现这个查询的SQL语句;

(3)检索课程号等于“C101”,且分数90分以上(含90分)学生的姓名。

(4)写出SQL语句,检索学习“Cl01”课程中分数最高的学生姓名;

(5)写出SQL语句,检索所有未选修“Cl01”课程的学生姓名;

(6)写出SQL语句,在成绩表中增加“学分”列,并根据学分=学时/18的算法,填上每门课程的学分;

(7)写出SQL语句,实现关系代数表达式:

成绩-s分数>

=60(成绩);

(8)写出SQL语句,检索选修5门以上课程的学生姓名;

(9)创建一个查询成绩的视图VSK,其属性有姓名、课程名和分数;

(10)检索学生选课情况,显示姓名、课程名和分数,其中包括没有选课的学生。

(1)检索所有女同学的姓名。

试写出实现该查询的关系代数表达式;

π姓名(σ性别=‘女’(学生))

要求写出关系代数表达式和实现这个查询的SQL语句;

π姓名(σ课程名=‘数据库’(课程|×

|成绩)|×

SELECT姓名FROM课程,成绩,学生WHERE课程.课程名=‘数据库’AND课程.课程号=成绩.课程号 AND 成绩.学号=学生.学号

(3)检索课程号等于“C101”,且分数90分以上(含90分)学生的姓名。

要求写出关系代数表达式和实现这个查询的SQL语句;

π姓名(σ课程号=‘C101’Ù

分数>=90(成绩)|×

|学生)

SELECT姓名FROM成绩,学生WHERE成绩.课程号=‘C101’AND成绩.分数>

=90AND成绩.学号=学生.学号

(4)写出SQL语句,检索学习“Cl01”课程中分数最高的学生姓名;

SELECT姓名FROM 学生WHERE学号IN(SELECT学号FROM成绩WHERE课程号=‘C101’AND分数=(SELECTMAX(分数)FROM 成绩 WHERE 课程号=‘C101’))

(5)写出SQL语句,检索所有未选修“Cl01”课程的学生姓名;

SELECT姓名FROM学生 WHERE学号 NOTIN(SELECT学号FROM成绩WHERE课程号=‘C101’)

SELECT姓名FROM学生WHERE 学号IN (SELECT学号FROM 成绩WHERE NOT课程号=‘C101’)

(6)写出SQL语句,在成绩表中增加“学分”列,并根据学分=学时/18的算法,填上每门课程的学分;

ALTERTABLE成绩ADD 学分INTEGER

UPDATE成绩SET学分=课程.学时/18FROM成绩INNERJOIN课程ON成绩.课程号=课程.课程号

(7)写出SQL语句,实现关系代数表达式:

成绩-s分数>=60(成绩);

SELECT*FROM成绩WHERE NOT分数<

60

SELECT *FROM成绩MINUSSELECT* FROM成绩WHERE 分数>=60

(8)写出SQL语句,检索选修5门以上课程的学生姓名;

SELECT姓名FROM学生WHERE学号IN(SELECT学号FROM成绩GOUPBY 学号HAVINGCOUNT(*)>

5)

(9)创建一个查询成绩的视图VSK,其属性有姓名、课程名和分数;

CREATE VIEW VSKASSELECT学生.姓名,课程.课程名,成绩.分数FROM课程,成绩,学生 WHERE课程.课程号=成绩.课程号AND成绩.学号=学生.学号

(10)检索学生选课情况,显示姓名、课程名和分数,其中包括没有选课的学生。

SELECT学生.姓名,课程.课程名,成绩.分数 FROM学生leftouterjoin 成绩inner join课程on 成绩.学号=学生.学号ON 课程.课程号=成绩.课程号(错误的写法)

SELECT学生.姓名,课程.课程名,成绩.分数 FROM学生left outer join成绩 on 成绩.学号=学生.学号 innerjoin课程ON课程.课程号=成绩.课程号 inner、outer可省略

SELECTstudent.sname,course.cname,sc.grade

FROM student left outer joinscon

sc.sno=student.sno innerjoincourse

ONcourse.cno=o

习题四

实体、实体集、属性、属性域、主码、单值属性、多值属性、派生属性、基数

1.数据库设计中,概念模型

A、依赖于计算机的硬件 B、依赖于DBMS

C、独立于DBMS    D、独立于计算机的硬件和DBMS

2.将E-R模型转换为关系数据模型属于数据库的

A、概念设计 B、物理设计C、逻辑设计 D、运行设计

3.设在某个公司环境中,一个部门有多名职工,一名职工只能属于一个部门,则部门与职工之间的联系是

A、—对一 B、一对多C、多对多  D、不确定

4.概念结构设计的主要目标是真实地反映

A、企业对信息的需求B、DBA的管理信息需求

 C、数据库系统的维护需求D、应用程序员的编程需求

5.数据库设计人员和用户之间沟通信息的桥梁是

 A、程序流程图 B、实体-联系图  C、模块结构图D、数据结构图

6.在E-R模型转换成关系模型的过程中,下列不正确的做法是

 A、每个联系均转换成一个关系B、每个实体集均转换成一个关系

  C、1:

N联系不必转换成关系  D、M:

N联系转换成—个关系

7.假设任一个E-R模型中,存在10个不同的实体集和12个不同的二元联系(二元联系是指两个实体集之目的联系),其中3个1:

1联系、4个1:

N联系、5个M:

N联系,则这个E-R模型转换成关系的数目可能是

    A、14  B、15 C、19D、22

8.当同一个实体集内部实体之间存在着一个M:

N的关系时,根据E-R模型转换成关系模型的规则,转换成关系的数目为

A、1 B、2C、3  D、4

1.简述数据库设计的基本步骤。

2.概念设计的主要内容有哪些?

3.使用派生属性有什么好处?

4.确定基数的依据是什么?

基数的用途是什么?

5.举例说明一元、二元、三元和N元联系。

6.举例说明实体之间的联系方式?

7.简述E-R模型转换为关系模型的规则。

四、设计题

1.假设图书馆业

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1