《数据库原理与系统》习题解答.docx

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

《数据库原理与系统》习题解答.docx

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

《数据库原理与系统》习题解答.docx

《数据库原理与系统》习题解答

《数据库原理与系统》习题解答

习题一

一、名词解释

DB、DBMS、DBS、DBA、数据冗余、数据异常

二、单项选择题

1.DBMS是

A、数据库 B、数据库系统 C、数据库应用系统C、数据库管理软件

2.DB、DBMS和DBS三者之间的关系是

A、DB包括DBMS和DBS

B、DBMS包括DBS和DB

C、DBS包括DB和DBMS

D、DBS与DB和DBMS无关

3.关系数据模型的基本数据结构是

A、树 B、图 C、索引D、关系

4.层次数据模型的基本数据结构是

A、树 B、图 C、索引D、关系

5.层次模型实现数据之间联系的方法?

A、连接 B、指针 C、公共属性  D、关系

6.常见的数据模型是

A、层次模型、网状模型、关系模型 B、概念模型、实体模型、关系模型

C、对象模型、外部模型、内部模型 D、逻辑模型、概念模型、关系模型

7.提供数据库定义、数据操纵数据控制和数据库维护功能的软件称为

A、OS B、DS C、DBMS   D、DBS

三、简答题

1.数据库系统的组成部分

2.DBA的主要职责

3.文件系统的数据管理方法

4.文件系统的主要缺陷

5.数据库系统的主要优点

6.什么是数据模型

7.层次结构的特点

8.DBTG提出的关于数掂库的3个重要规范

9.关系数据模型的基本结构

10.关系数据模型实现数据联系的方法

习题二

一、概念题

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(成绩)|×| 学生)

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

(三表连接,投影)

π学号,姓名,专业(σ课程名称=‘数据库原理’(课程)|×|成绩|×| σ专业=‘国际贸易’(学生))

3、设有3个关系模式:

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

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

 公司(公司名称,城市)

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

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

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

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

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

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

答案:

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

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

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

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

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

π职工姓名,街道,城市(σ公司名称=‘泰斗公司’AND工资>100000(员工|×|工作)Ù

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

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

(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

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

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)

2.设有3个关系模式:

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

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

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

回答下列

(1)-(10)题。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

答案:

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

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

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

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

要求写出关系代数表达式和实现这个查询的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