华东师大 数据库系统概论 作业.docx
《华东师大 数据库系统概论 作业.docx》由会员分享,可在线阅读,更多相关《华东师大 数据库系统概论 作业.docx(28页珍藏版)》请在冰豆网上搜索。
华东师大数据库系统概论作业
《数据库系统概论》作业
第一章概述
1.层次模型的数据结构是_树形___结构;网状模型的数据结构是网状结构;关系模型的数据结构是__二维表____结构。
2.数据库系统具有“数据独立性”特点的原因是因为在数据库系统中(B)
(A)、采用磁盘作为外存(B)、采用三级模式结构
(C)、使用OS来访问数据(D)、用宿主语言编写应用程序
3.数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)三者之间的关系是(A)。
(A)、DBS包括DB和DBMS
(B)、DBMS包括DB和DBS
(C)、DB包括DBS和DBMS
(D)、DBS就是DB,也就是DBMS
4.数据库系统的数据独立性体现在(B)
(A)、不会因为数据的变化而影响到应用程序
(B)、不会因为系统数据存储结构和数据逻辑结构的变化而影响应用程序
(C)、不会因为存储策略的变化而影响存储结构
(D)、不会因为某些存储结构的变化而影响其他的存储结构
5.要保证数据库的数据独立性,需要修改的是(A)
(A)、模式与外模式
(B)、模式与内模式
(C)、三层之间的两种映射
(D)、三层模式
6.下述(D)不是DBA(数据库管理员)的职责。
(A)、完整性约束说明(B)、定义数据库模式
(C)、数据库安全(D)、数据库管理系统设计
7.(B)是按照一定的数据模型组织的,长期储存在计算机内,可为多个用户共享的数据的集合。
(A)、数据库系统(B)、数据库
(C)、关系数据库(D)、数据库管理系统
8.数据模型的三要素是(D)。
(A)、外模式、模式、内模式
(B)、关系模型、层次模型、网状模型
(C)、实体、联系、属性
(D)、数据结构、数据操作、完整性约束
9.简述数据库系统的主要特点。
(1)、数据结构化数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。
(2)数据的共享性高,冗余度低,易扩充数据库的数据不再面向某个应用而是面向整个系统,
(3)数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独立性。
(4)数据由 DBMS 统一管理和控制数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。
10.简述数据库系统的三级模式和两级映像。
答:
数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。
(2分)模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
模式实际上是数据库数据在逻辑级上的视图,一个数据库只有一个模式,数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。
(1分)外模式也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据购逻辑表示。
外模式通常是模式的子集。
一个数据库可以有多个外模式。
(1分)内模式也称存储模式,一个数据库只有一个内模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
第二章 关系数据库
1.设有如下图所示的关系R,W和D:
计算下列代数表达式的结果:
(1)R1=πY,T(R)
(2)R2=бp>5^T=’e’(R)
(3)R3=(R
W)
(4)R4=R÷D
2、设有如下图所示的关系S,SC,C:
关系S
S#
SNAME
AGE
SEX
1
李强
23
男
2
刘丽
22
女
3
张友
22
男
关系C
C#
CNAME
TEACHER
K1
C语言
王华
K5
数据库原理
程军
K8
编译原理
程军
关系SC
S#
C#
GRADE
1
K1
83
2
K1
85
3
K1
92
2
K5
90
3
K5
84
3
K8
80
请用关系代数表达式表示下列查询语句:
(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。
(2)检索“李强”同学不学课程的课程号。
(3)检索既选修了K1课程,也选修了K5课程的学生学号(S#)。
(4)检索选修了课程表中的全部课程的学生姓名(SNAME)。
(5)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。
3.在关系中,“元数”(arity)是指(列数)
(A).行数(B).元组个数(C).关系个数(D).属性个数
4.在关系中,“基数”(cardinality)是指(行数)
(A).列数(B).元组个数(C).关系个数(D).属性个数
5.设W=RS,且W、R、S的元组个数分别为p、m、n,那么三者之间满足( D )
(A).p<(m+n) (B).p≤(m+n)
(C).p<(m×n) (D).p≤(m×n)
6.下列式子中,不正确的是(D )
(A).R-S=R-(R∩S)(B).R=(R-S)∪(R∩S)
(C).R∩S=S-(S-R)(D).R∩S=S-(R-S)
7.如果两个关系没有公共属性,那么其自然联接操作(A)
(A).转化为笛卡尔积操作(B).转化为联接操作
(C).转化为外部并操作(D).结果为空关系
8.一个关系只有一个( D )
(A)、候选码 (B)、外码
(C)、超码 (D)、主码
9.下面的选项不是关系的基本特征( A )
(A)、不同的列有不同的数据类型 (B)、不同的列有不同的列名
(C)、与行的次序无关 (D)、与列的次序无关
第三章SQL语言
有两个基本表:
表EMP(ENO,ENAME,SALARY,DNO)
其属性分别表示职工的工号、姓名、工资和所在部门的编号
表DEPT(DNO,DNAME)
其属性分别表示部门的编号和部门名
1.有一SQL语句:
SELECTDNO,COUNT(DISTINCTENO)
FROM EMP
GROUPBY DNO;
该SQL语句实现了以下哪个功能?
( C )
(A).统计职工的总人数
(B).统计每一部门的职工人数
(C).统计职工服务的部门数目
(D).统计每一职工服务的部门数目
2.有一个SQL语句:
SELECTENO,ENAME
FROMEMP
WHEREDNONOTIN
(SELECTDNO
FROMDEPT
WHEREDNAME='金工车间';
其等价的关系代数表达式是:
(C)
(A).πENO,ENAME(бDNAME≠'金工车间'(EMP⋈DEPT))
DNAME≠'金工车间'
(B).πENO,ENAME(EMP⋈DEPT)
(C).πENO,ENAME(EMP)-πENO,ENAME(бDNAME='金工车间'(EMP⋈DEPT))
(D).πENO,ENAME(EMP)-πENO,ENAME(бDNAME≠'金工车间'(EMP⋈DEPT))
3.有一个SQL语句:
UPDATEEMP
SETSALARY=SALARY*1.05
WHEREDNO='D6'
ANDSALARY<(SELECTAVG(SALARY)
FROMEMP);
其等价的修改语句为(C)
(A).为工资低于D6部门平均工资的所有职工加薪5%
(B).为工资低于整个企业平均工资的职工加薪5%
(C).为在D6部门工作、工资低于整个企业平均工资的职工加薪5%
(D).为在D6部门工作、工资低于本部门平均工资的职工加薪5%
4.SQL中,谓词EXISTS可用来测试一个集合是否(C)
(A).有重复元组(B).有重复的列名
(C).为非空集合(D).有空值
5.SQL中,与“NOTIN”等价的操作符是(B)
(A).=SOME(B).<>SOME
(C).=ALL (D).<>ALL
6.下列关于索引的叙述,正确的是(A)。
(A)、可以根据需要在基本表上建立一个或多个索引,从而提高系统的查询效率。
(B)、一个基本表最多只能有一个索引。
(C)、建立索引的目的是为了给数据表中的元素指定别名,从而使别的表也可以引用这个元素。
(D)、一个基本表至少要存在一个索引。
7.下面列出的关于视图的条目中,不正确的是(C)。
(A)、视图是外模式
(B)、视图是虚表
(C)、使用视图可以加快查询语句的执行速度
(D)、使用视图可以简化查询语句的编写
8.设数据库中有三个关系:
职工表EMP(E#,ENAME,AGE,SEX,ECITY),
其属性分别表示职工工号、姓名、年龄、性别和籍贯。
工作表WORKS(E#,C#,SALARY),
其属性分别表示职工工号、工作的公司编号和工资。
公司表COMP(C#,CNAME,CITY),
其属性分别表示公司编号、公司名称和公司所在城市。
请写出完成下列操作的SQL语句:
①用CREATETABLE语句创建上述三个表,需定义出各表的主键和外键。
②检索超过50岁的男职工的工号和姓名。
③假设每个职工只能在一个公司工作,检索工资超过1000元的男性职工工号和姓名。
④假设每个职工可在多个公司工作,检索在编号为C4和C8公司兼职的职工工号和姓名。
⑤检索在“联华公司”工作、工资超过1000元的男性职工的工号和姓名。
⑥假设每个职工可在多个公司工作,检索每个职工的兼职公司数目和工资总数,查询结果显示为(E#,NUM,SUM_SALARY),分别表示工号、兼职的公司数目和工资总数。
⑦工号为E6的职工在多个公司工作,试检索至少在E6职工兼职的所有公司工作的职工工号。
⑧检索联华公司中低于本公司平均工资的职工工号和姓名。
⑨在每一公司中为50岁以上职工加薪100元(若职工为多个公司工作,可重复加)。
⑩在EMP表和WORKS表中删除年龄大于60岁的职工有关元组。
解:
① CREATE TABLE EMP
( E# CHAR(4) NOT NULL, ENAME CHAR(8) NOT NULL, AGE SMALLINT, SEX CHAR
(1), ECITY CHAR(20), PRIMARY KEY(E#)); CREATE TABLE COMP
( C# CHAR(4) NOT NULL,
CNAME CHAR(20) NOT NULL, CITY CHAR(20), PRIMARY KEY(C#));
CREATE TABLE WORKS
( E# CHAR(4) NOT NULL, C# CHAR(4) NOT NULL, SALARY SMALLINT, PRIMARY KEY(E#, C#),
FOREIGN KEY(E#) REFERENCES EMP(E#), FOREIGN KEY(C#) REFERENCES COMP(C#));
② SELECT E#, ENAME
FROM EMP
WHERE AGE>50 AND SEX='M';
③ SELECT EMP.E#, ENAME
FROM EMP, WORKS
WHERE EMP.E#=WORKS.E# AND SALARY>1000;
④ SELECT A.E#, A.ENAME
FROM EMP A, WORKS B, WORKS C WHERE A.E#=B.E# AND B.E#=C.E# AND B.C#='C4' AND C.C#='C8';
⑤ SELECT A.E#, A.ENAME
FROM EMP A, WORKS B, COMP C WHERE A.E#=B.E# AND B.C#=C.C#
AND CNAME='联华公司' AND SALARY>1000 AND SEX='M';
⑥ SELECT E#, COUNT(C#) AS NUM, SUM(SALARY) AS SUM_SALARY
FROM WORKS
GROUP BY E#;
⑦
SELECT X.E# FROM WORKS X
WHERE NOT EXISTS
(SELECT *
FROM WORKS Y WHERE E#='E6' AND NOT EXISTS
(SELECT *
FROM WORKS Z WHERE Z.E#=X.E#
AND Z.C#=Y.C#));
⑧
SELECT A.E#, A.ENAME
FROM EMP A, WORKS B, COMP C WHERE A.E#=B.E# AND B.C#=C.C# AND CNAME='联华公司'
AND SALARY<(SELECT AVG(SALARY)
FROM WORKS, COMP
WHERE WORKS.C#=COMP.C# AND CNAME='联华公司');
⑨
UPDATE WORKS
SET SALARY=SALARY+100
WHERE E# IN (SELECT E# FROM EMP WHERE AGE>50);
⑩
DELETE FROM WORKS
WHERE E# IN (SELECT E# FROM EMP WHERE AGE>60); DELETE FROM EMP
WHERE AGE>60;
第四章数据库安全性
1.以下(D)不属于实现数据库安全性的主要技术和方法。
(A)、存取控制技术(B)、视图技术
(C)、审计技术(D)、出入机房登记和加锁
2.把对关系SC的GRADE属性的修改权授予用户ZHAO的SQL语句是(C)。
(A)、GRANTGRADEONSCTOZHAO
(B)、GRANTUPDATEONSCTOZHAO
(C)、GRANTUPDATE(GRADE)ONSCTOZHAO
(D)、GRANTUPDATEONSC(GRADE)TOZHAO
3.保护数据库、防止XX的或不合法的使用造成的数据泄露、更改破坏。
这是数据库的(A)。
(A)、安全性(B)、完整性
(C)、并发控制(D)、恢复
4.今有两个关系模式:
(1)职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门号为外码;
(2)部门(部门号,名称,经理名,地址,电话),其中部门号是主码;
请用SQL语言的GRANT语句(加上视图机制)完成以下授权定义:
用户杨兰具有SELECT每个部门的职工最高工资,最低工资,平均工资的权力,但他不能查看每个人的工资。
CREATE VIEW 部门工资 AS
SELECT 部门.名称,MAX(工资),MIN(工资),AVG(工资)
FROM 职工,部门
WHERE 职工.部门号=部门.部门号
GROUP BY 职工.部门号
GRANT SELECT ON 部门工资
TO 杨兰;
第五章数据库完整性
1.关于主码约束以下说法错误的是(C)
A.一个表中只能设置一个主码约束
B.允许空值的字段上不能定义主码约束
C.允许空值的字段上可以定义主码约束
D.可以将包含多个字段的字段组合设置为主码
2.在SQLServer中,可以使用(C)语句创建存储过程。
A.CreateTriggerB.InstallProcedure
C.CreateProcedureD.CreateView
3.SQLServer为每个触发器创建了两个临时表,它们是(B)。
A.Updated和DeletedB.Inserted和Deleted
C.Inserted和UpdatedD.Seleted和Inserted
4.设有供应商关系S和零件关系P,如下图所示,S和P的主码分别是“供应商号”和“零件号”,P的外码是“供应商号”。
分析下列4个操作能否被正确执行,并说明理由。
(1)在P中插入元组(′P2′,′白′,′A2′)
(2)在P中插入元组(NULL,′绿′,′A1′)
(3)在P中插入元组(′P4′,′白′,′A5′)
(4)在P中插入元组(′P4′,′绿′,′A2′)
(1)不能正确执行,插入操作破坏了实体完整性约束,待插入的元组的“零件号”属性值“P2”,在P表中已经存在。
“零件号”作为主键,其值不能重复,必须唯一。
(2)不能正确执行,插入操作破坏了实体完整性约束,待插入的元组的“零件号”属性值为空,“零件号”作为主属性,其值不能为空。
(3)不能正确执行,插入操作破坏参照完整性约束,待插入的元组的“供应商号”属性值“A5”,在S中找不到没有相应的主键值。
(4) 能正确执行,因为满足数据库的实体完整性和参照完整性。
5.假设有下面两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门号为外码。
部门(部门号,名称,经理名,电话),其中部门号为主码,经理名为外码
请用SQL语言定义这两个关系模式,要求在关系模式中完成以下完整性约束条件的定义:
(1)定义每个模式的主码;
(2)定义参照完整性;职工关系模式中的部门号属性参照部门关系模式中的主码部门号;部门关系模式中的经理名属性参照职工关系模式中的姓名属性。
(3)定义职工年龄不超过60岁。
答:
CREATE TABLE DEPT
( Deptno NUMBER
(2),
Deptname VARCHAR(10),
Manager VARCHAR(10),
PhoneNumber Char(12),
CONSTRAINT PK_SC RIMARY KEY(Deptno)
);
CREATE TABLE EMP
( Empno NUMBER(4),
Ename VARCHAR(10),
Age NUMBER
(2)
CONSTRAINT C1 CHECK ( Age<=60),
Job VARCHAR(9), Sal NUMBER(7,2),
Deptno NUMBER
(2),
CONSTRAINT PK_EMP RIMARY KEY(Empno),
CONSTRAINT FK_DEPTNO
FOREIGN KEY(Deptno) REFFERENCES DEPT(Deptno)
);
第六章关系数据理论
1.为了设计出性能较优的关系模式,必须进行规范化,规范化主要的理论依据是(A)
(A)、关系规范化理论(B)、关系代数理论
(C)、数理逻辑(D)、关系运算理论
2.规范化理论是关系数据库进行逻辑设计的理论依据,根据这个理论,关系数据库中的关系必须满足:
每一个属性都是(B)
(A)、长度不变的(B)、不可分解的
(C)、互相关联的(D)、互不相关的
3.已知关系模式R(A,B,C,D,E),及其上的函数相关性集合F={A→D,B→C,E→A},该关系模式的候选码是(B)
(A)、AB(B)、BE(C)、CD(D)、DE
4.关系数据库规范化是为了解决关系数据库中的(A)问题而引入的。
(A)、插入、删除、更新异常和数据冗余
(B)、提高查询速度
(C)、减少数据操作的复杂性
(D)、保证数据的安全性和完整性
5.数据库中的冗余数据是指(D)的数据。
(A)、容易产生错误
(B)、容易产生冲突
(C)、无关紧要
(D)、由基本数据导出
6.在关系规范化过程中,分解关系的基本原则是(B)
I.实现无损失连接
II.分解后的关系相互独立
III.保持原有的函数依赖关系
(A)、I和II(B)、I和III(C)、I(D)、II
7.设关系模式R(A,B,C),F是R上成立的函数依赖集合,F={B→C},则分解P={AB,BC}相对于F(A)。
(A)、是无损失联接,也是保持函数依赖的分解
(B)、是无损失联接,但不保持函数依赖的分解
(C)、不是无损失联接,但保持函数依赖的分解
(D)、既不是无损失联接,也不保持函数依赖的分解
第8到第9题基于以下的叙述:
有关系模式A(C,T,H,R,S),其中各属性的含义是:
属性C代表课程名,属性T代表教师姓名,属性H代表上课时间,属性R代表上课教室,属性S代表学生姓名。
根据语义有如下函数依赖集:
F={C→T,(H,R)→C,(H,T)→R,
(H,S)→R}。
8.请问该关系模式A的候选码是(D)
(A)、C(B)、(H,R)
(C)、(H,T)(D)、(H,S)
9.关系模式A的规范化程度最高达到(B)
(A)、1NF(B)、2NF(C)、3NF(D)、BCNF
10.设有关系模式R(职工编号,日期,日营业额,部门名,部门经理),该模式统计商店里每个职工的日营业额,以及职工所在的部门和经理信息。
如果规定:
每个职工每天只有一个营业额;每个职工只在一个部门工作;每个部门只有一个经理。
试回答下列问题:
(1)根据上述规定,写出模式R的基本函数依赖和候选码;
(2)说明R不是2NF的理由,并把R分解成2NF模式集;
(3)进而分解成3NF模式集。
(1)基本的FD有三个:
(职工编号,日期)->日营业额 职工编号->部门编号 部门名->部门经理
R的关键码为(职工编号,日期)
(2)R中有两个这样的FD:
(职工编号,日期)-> (部门名,部门经理)
职工编号->(部门名,部门经理)
可见前一个FD是部分依赖,关系模式中存在非主属性对码的部分函数依赖,所以
R不是2NF模式。
R应分解成R1(职工编号,部门名,部门经理)
R2(职工编号,日期,日营业额) 此处,R1和R2都是2NF。
(3)R2已是3NF模式。
在R1中,存在两个FD:
职工编号->部门名 部门名->部门经理
因此,“职工编号->部门经理”是一个传递依赖,R1不是3NF模式。
R1应分解成R11(职工编号,部门名) R12(部门名,部门经理) 这样,ρ=(R11,R12,R2)是一个3NF模式集