《数据库原理与系统》习题解答.docx
《《数据库原理与系统》习题解答.docx》由会员分享,可在线阅读,更多相关《《数据库原理与系统》习题解答.docx(35页珍藏版)》请在冰豆网上搜索。
《数据库原理与系统》习题解答
《数据库原理与系统》习题解答
习题一
一、名词解释
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、OSB、DSC、DBMSD、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、0B、空格C、空字符串D、不确定
4.实体完整性是指关系中
A、不允许有空行B、主码不允许空值
C、属性值外码取空值D、外码允许取空值
5.已知关系R与S如图所示:
?
在关系S中,违反参照完整性约束的元组是
A、(11,21)B、(22,NULL)
C、(33,33)A、(44,11)
6.已知关系R和S,R∩S等价于
A、(R-S)-SB、S-(S-R)
C、(S-R)-RD、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个元组,则R1R2的元组个数为
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)
l5.设有关系R和S如图2.26所示,则关系
的元组数目是
A、6B、7C、8D、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、XZWD、YZW
]8.关系R和S分别有20、15个元组,则RS、R-S、R∩S的元组数不可能是
A、29,13,6B、30,15,5C、35,20,0D、28,13,7
R-S=R-(R∩S)
]9.设关系R和S的属性数目分别是a和b、则关系RS的属性数目是
A、a十bB、a—bC、a×bD、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、UNIONC、COUNTD、DISTINCT
5.当关系R和S做自然连接时,能够保留R中不满足连接条件元组的操作是
A、左外连接B、右外连接C、内部连接D、全外连接
6.SQL语言中,更新表结构的的命令是
A、UPDATETABLEB、MODIFYTABLE
C、ALTERTABLED、CHANGETABLE
7.下列聚合函数中不忽略空值(NULL)的是
A、SUM(列名)B、MAX(列名)C、AVG(列名)D、COUNT(*)
,
8.SQL语言中,下列涉及空值操作的短语,不正确的是(VFP全部正确,SQLSERVER中C错)
A、AGEISNULLB、AGEISNOTNULL
C、AGE=NULLD、NOT(AGEISNULL)
9.SQL语言中,删除一个表的命令是
A、CLEARTABLEC、DROPTABLE
C、DELETETABLED、REMOVETABLE
10.设有一个关系:
DEPT(DNO,DNANE).如果要找出倒数第三个字母为W.并且至少包含4个字母的DNAME,则查询条件子句应写成WHEREDNANCLIKE01”03”02”
务员姓名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业务员编号HAVINGCOUNT(*)>2)
(9)将所有业务员的月薪增加10%;
UPDATE业务员SET月薪=月薪*
(10)将业务员关悦的月薪改为3500元;
UPDATE业务员SET月薪=3500WHERE业务员姓名=‘关悦’
(11)检索超过平均月薪的业务员姓名和年龄;
SELECT业务员姓名,年龄FROM业务员WHERE月薪>(SELECTAVG(月薪)FROM业务员)
(12)将签定订单总金额超过2万元的月薪增加5%。
UPDATE业务员SET月薪=月薪*WHERE业务员编号IN(SELECT业务员编号FROM业务员GROUPBY业务员编号HAVINGSUM(金额)>20000)
2.设有3个关系模式:
学生(学号,姓名,性别,专业,籍贯)
课程(课程号,课程名,学时,性质)
成绩(学号,课程号,分数)
回答下列
(1)-(10)题。
(1)检索所有女同学的姓名。
试写出实现该查询的关系代数表达式;
(2)检索选修“数据库”课程的学生姓名。
要求写出关系代数表达式和实现这个查询的SQL语句;
(3)检索课程号等于“C101”,且分数90分以上(含90分)学生的姓名。
要求写出关系代数表达式和实现这个查询的SQL语句;
、
(4)写出SQL语句,检索学习“Cl01”课程中分数最高的学生姓名;
(5)写出SQL语句,检索所有未选修“Cl01”课程的学生姓名;
(6)写出SQL语句,在成绩表中增加“学分”列,并根据学分=学时/18的算法,填上每门课程的学分;
(7)写出SQL语句,实现关系代数表达式:
成绩-分数>=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成绩WHERENOT课程号=‘C101’)
(6)写出SQL语句,在成绩表中增加“学分”列,并根据学分=学时/18的算法,填上每门课程的学分;
ALTERTABLE成绩ADD学分INTEGER
UPDATE成绩SET学分=课程.学时/18FROM成绩INNERJOIN课程ON成绩.课程号=课程.课程号
(7)写出SQL语句,实现关系代数表达式:
成绩-分数>=60(成绩);
SELECT*FROM成绩WHERENOT分数<60
SELECT*FROM成绩MINUSSELECT*FROM成绩WHERE分数>=60
(8)写出SQL语句,检索选修5门以上课程的学生姓名;
SELECT姓名FROM学生WHERE学号IN(SELECT学号FROM成绩GOUPBY学号HAVINGCOUNT(*)>5)
(9)创建一个查询成绩的视图VSK,其属性有姓名、课程名和分数;
>
CREATEVIEWVSKASSELECT学生.姓名,课程.课程名,成绩.分数FROM课程,成绩,学生WHERE课程.课程号=成绩.课程号AND成绩.学号=学生.学号
(10)检索学生选课情况,显示姓名、课程名和分数,其中包括没有选课的学生。
SELECT学生.姓名,课程.课程名,成绩.分数FROM学生leftouterjoin成绩innerjoin课程on成绩.学号=学生.学号ON课程.课程号=成绩.课程号(错误的写法)
SELECT学生.姓名,课程.课程名,成绩.分数FROM学生leftouterjoin成绩on成绩.学号=学生.学号innerjoin课程ON课程.课程号=成绩.课程号inner、outer可省略
SELECT,,
FROMstudentleftouterjoinscon
=innerjoincourse
ON=
习题四
{
一、名词解释
实体、实体集、属性、属性域、主码、单值属性、多值属性、派生属性、基数
二、单项选择题
1.数据库设计中,概念模型
A、依赖于计算机的硬件B、依赖于DBMS
C、独立于DBMSD、独立于计算机的硬件和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、14B、15C、19D、22
"
8.当同一个实体集内部实体之间存在着一个M:
N的关系时,根据E-R模型转换成关系模型的规则,转换成关系的数目为
A、1B、2C、3D、4
三、简答题
1.简述数据库设计的基本步骤。
2.概念设计的主要内容有哪些
3.使用派生属性有什么好处
4.确定基数的依据是什么基数的用途是什么
5.举例说明一元、二元、三元和N元联系。
6.举例说明实体之间的联系方式
【
7.简述E-R模型转换为关系模型的规则。
四、设计题
1.假设图书馆业务规则:
(1)读者需要凭借书证借阅图书,借书证有借书证号、姓名、年龄、单位等属性;
(2)每一本图书有书号、书名、作者、出版社等属性;
(3)每一本借出的图书有借书证号、书号、借出日期、应还日期。
试:
①根据上述业务规则设计E-R模型,要求E-R图中注明属性和联系的类型。
②将E-R模型转换成关系模型。
③用SQL语句创建表、定义完整性规则。
*
答案:
②三个关系模式:
借书证(借书证号,姓名,年龄,单位),主码为{借书证号};
图书(书号,书名,作者,出版社),主码为{书号};
借阅(借书证号,书号,借出日期,应还日期),主码为{借书证号,书号},{借书证号}为外码,{书号}为外码。
①
(
③略
2.假设城市交通管理业务规则:
(1)每个驾车者必须有驾驶执照,驾照有编号、姓名、性别、年龄、身份证号、工作单位、发证日期等属性
(2)每个机动车要有一个牌照,牌照有车号、型号、制造商、生产日期、所有者等属性;
(3)如果司机违反交通规则,将受到惩罚,惩罚记录有日期、车号、驾照编号、违章情节记载、处罚方式等属性。
/
试:
①根据上述业务规则设计E-R模型,要求E-R图中注明属性和联系的类型。
②将E-R模型转换成关系模型。
③用SQL语句创建表、定义完整性规则。
答案:
①
·
②三个关系模式:
③略
3.假设某集团公司生产多种产品,公司在全国没有多个代理两,由代理商经销本公司的所有产品。
每个代理商可以经销公司的多种产品,且在每一个代理商处都能够买到公司的任何一种产品。
代理商有编号、代理商名称和地址等属性;产品有产品号、品名、规格、单价等属性。
代理商与产品之间存在供货联系,每次供货将记录供贷日期、产品号、数量、单价和经办人。
试:
*
①根据上述业务规则设计E-R模型,要求E-R图中注明属性和联系的类型。
②将E-R模型转换成关系模型。
③用SQL语句创建表、定义完整性规则。
答案:
略
习题五
一、单项选择题
1.如果关系模式R属于1NF,且每个非主属性都完全函数依赖于R的主码,则R属于
A、2NFB、3NFC、BCNFD、4NF
2.有关系R(P,Q,M,N),F是R上成立的函数依赖集,F={(P→Q,Q→M)|,则R的候选码是
;
A、PB、QC、PQD、PN
3.有学生关系R(学号,姓名,系名称,系地址),每一名学生属于一个系,每一个系有一个地址,则R属于
A、1NFB、2NFC、3NFD、4NF
4.下列陈述中.错误的是
A、2NF必然属于1NFB、3NF必然属于2NF
C、3NF必然属于BCNFD、BCNF必然属于3NF
5.已知关系R(A,B,C,D),F是R上成立的函数依赖集,F={(A,B→C,D),B→D},则R应分解成
A、R1(A,B)和R2(C,D)B、R1(A,B,C)和R2(B,D)
C、R1(A,C)和R2(B,D)D、R1(A,B,D)和R2(B,C)
6.在订单管理中,客户—次购物(一张订单)可以订购多种商品。
设有订单关系R(订单号,日期,客户名称,商品编码,数量),则R的主码是
,
A、订单号B、订单号,客户名称C、商品编码D、订单号,商品编码
7.第6题中的关系R最高属于
A、1NFB、2NFC、3NFD、4NF({