数据库系统概论离线作业浙江大学远程教育学院.docx
- 文档编号:24656471
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:27
- 大小:36.71KB
数据库系统概论离线作业浙江大学远程教育学院.docx
《数据库系统概论离线作业浙江大学远程教育学院.docx》由会员分享,可在线阅读,更多相关《数据库系统概论离线作业浙江大学远程教育学院.docx(27页珍藏版)》请在冰豆网上搜索。
数据库系统概论离线作业浙江大学远程教育学院
浙江大学远程教育学院
《数据库系统概论》课程作业
姓名:
李小宇
学号:
713503012002
年级:
2013秋
学习中心:
中山公用培训中心
—————————————————————————————
第一章习题2、6、10
习题2使用数据库系统有什么好处?
答:
使用数据库系统的好处是由数据库管理系统的特点或优点决定的。
使用数据库系统的好处很多,例如,可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担,等等。
使用数据库系统可以大大提高应用开发的效率。
因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由 DBMS 来完成。
用一个通俗的比喻,使用了 DBMS 就如有了一个好参谋、好助手,许多具体的技术工作都由这个助手来完成。
开发人员就可以专注于应用逻辑的设计,而不必为数据管理的许许多多复杂的细节操心。
还有,当应用逻辑改变,数据的逻辑结构也需要改变时,由于数据库系统提供了数据与程序之间的独立性,数据逻辑结构的改变是 DBA 的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序,从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改。
使用数据库系统可以减轻数据库系统管理人员维护系统的负担。
因为DBMS 在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性、多用户并发控制、故障恢复等,都由 DBMS 执行。
总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,提高数据的利用率和一致性,又有利于应用程序的开发和维护。
习题6数据库管理系统的主要功能有哪些?
答:
数据库管理系统的主要功能有:
数据定义功能、数据操纵功能、数据库的运行管理、数据库的建立和维护功能、其他功能等。
习题10试给出三个实际情况的E-R图,要求实体型之间具有一对一、一对多、多对多各种不同的联系。
答:
部门
1
课程
1
科研项目
1
讲授
参加
领导
11m
1nmn
教员
学生
教员
总经理
一对一联系一对多联系多对多联系
部门和总经理是两个实体。
一个部门或者一个公司只有一个总经理,一个总经理只在一个公司工作,不能兼任两个以上公司的总经理,所以部门和总经理两个实体之间是一对一的联系。
一个科研项目可以由多个教员和多个学生承担。
如果规起一个教员只能参加一个项目,一个学生也只能参加一个项目。
按照这样的语义,科研项目和教员、学生三者之间是一对多的联系。
如果一门课程可以由多个教员讲授,一个教员可以讲授多门课程,则课程和教员之间是多对多的联系。
第二章习题4、5
习题4试述关系模型的完整性规则。
在参照完整性中,为什么外部码属性的值也可以为空?
什么情况下才可以为空?
答:
关系模型的完整性规则是对关系的某种约束条件。
关系模型中可以有三类完整性约束:
实体完整性、参照完整性和用户定义的完整性。
在参照完整性中,外部码属性的值可以为空,它表示该属性的值尚未确定。
但前提条件是该外部码属性不是其所在关系的主属性。
例如,在下面的 “学生”表和“专业”表中,(主码用下划线标识)。
“专业号”是“学生”表的一个外部码,不是“学生”表的主属性,可以为空。
其语义是,该学生的专业尚未确定。
学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)
而在下面的 “选修”表中的“课程号”虽然也是一个外部码属性,但它又是“选修”表的主属性,所以不能为空。
因为关系模型必须满足实体完整性。
课程(课程号,课程名,学分)
选修(学号,课程号,成绩)
习题5(详细见书本74页)
答:
由于ALPHA、QBE语言未讲授,所以该题只用关系代数语言来完成如下查询:
(1)求供应工程J1零件的供应商号码SNO;
πSNO(σJNO=’J1’(SPJ))
(2)求供应工程J1零件P1的供应商号码SNO;
πSNO(σJNO=’J1’˄ PNO=’P1’(SPJ))
(3)求供应工程J1零件为红色的供应商号码SNO;
πSNO(πSNO,PNO(σJNO=’J1’(SPJ))πPNO(σCOLOR=’红’(P)))
(4)求没有使用天津供应商生产的红色零件的工程号JNO;
πJNO(J)-πJNO(πSNO(σCITY=’天津’(S))πSNO,PNO,JNO(SPJ)πPNO(σCOLOR=’红’(P)))
(5)求至少用了供应商S1所供应的全部零件的工程号JNO。
πPNO,JNO(SPJ)÷πPNO(σSNO=’S1’(SPJ))
第三章习题3、4、5、11
习题3用SQL语句建立第二章习题5中的4个表
答:
对于 S表:
S( SNO,SNAME,STATUS,CITY);
CREATE TABLE S(SNO CHAR(3)UNIQUE, SNAME CHAR(10),STATUS CHAR
(2),CITY CHAR(10));
对于P表:
P(PNO,PNAME,COLOR,WEIGHT );
CREATE TABLE P(PNO CHAR(3)UNIQUE,PNAME CHAR(10),COLOR CHAR(4),WEIGHT INT);
对于 J 表:
J ( JNO,JNAME,CITY) ;
CREATE TABLE J(JNO CHAR(3)UNIQUE,JNAME CHAR(12), CITY CHAR(10)) ;
对于 SPJ 表:
SPJ (SNO , PNO , JNO , QTY) ;
CREATE TABLE SPJ(SNO CHAR(3),PNO CHAR(3),JNO CHAR(3),QTY INT)) ;
习题4针对上题中建立的四个表试用SQL完成第二章习题5中的查询。
答:
(1)求供应工程J1零件的供应商号码SNO;
SELECT DISTINCTSNO
FROM SPJ
WHERE JNO=’J1’;
(2) 求供应工程J1零件P1的供应商号码SNO;
SELECT DISTINCTSNO
FROM SPJ
WHERE JNO=’J1’ AND PNO=’P1’';
(3)求供应工程J1零件为红色的供应商号码SNO;
SELECT DISTINCTSNO
FROM SPJ,P
WHERE JNO=’J1’ AND SPJ.PNO=P.PNOANDCOLOR=’红’;
( 4) 求没有使用天津供应商生产的红色零件的工程号JNO;
SELECT JNO
FROM J
WHERE NOT EXISTS
(SELECT *
FROM S, P, SPJ
WHERE SPJ.JNO=J.JNO
AND SPJ.SNO=S.SNO
AND SPJ.PNO=P.PNO
ANDS.CITY=’天津’
ANDP.COLOR=’红’ ) ;
(5)求至少用了供应商S1所供应的全部零件的工程号JNO;
SELECT DISTINCT JNO
FROM SPJ SPJZ
WHERE NOT EXISTS
(SELECT *
FROM SPJ SPJX
WHERE SNO =’S1’
AND NOT EXISTS
(SELECT *
FROM SPJ SPJY
WHERE SPJY.PNO=SPJX.PNO
AND SPJY.JNO=SPJZ.JNO));
习题5针对习题3中的四个表试用SQL完成以下各项操作:
答:
(1)找出所有供应商的姓名和所在城市。
SELECTSNAME,CITY
FROMS;
(2)找出所有零件的名称、颜色、重量。
SELECTPNAME,COLOR,WEIGHT
FROMP;
(3)找出使用供应商S1所供应零件的工程号码。
SELECTDISTINCTJNO
FROMSPJ
WHERESNO=’S1’;
(4)找出工程项目J2使用的各种零件的名称及其数量。
SELECTP.PNAME,SPJ.QTY
FROMP,SPJ
WHEREP.PNO=SPJ.PNOANDSPJ.JNO='J2';
(5)找出上海厂商供应的所有零件号码。
SELECTDISTINCTPNO
FROMSPJ
WHERESNOIN
(SELECTSNO
FROMS
WHERECITY=’上海’);
(6)找出使用上海产的零件的工程名称。
SELECTJNAME
FROMJ,SPJ,S
WHEREJ.JNO=SPJ.JNO
ANDSPJ.SNO=S.SNO
ANDS.CITY=’上海’;
(7) 找出没有使用天津产的零件的工程号码。
SELECT JNO
FROM J
WHERE NOT EXISTS
(SELECT *
FROM SPJ
WHERE SPJ.JNO=J.JNO
ANDSNOIN
(SELECTSNO
FROMS
WHERECITY=’天津’)) ;
(8) 把全部红色零件的颜色改成蓝色。
UPDATE P SET COLOR=’蓝’
WHERE COLOR=’红’;
(9) 由S5供给J4的零件P6改为由S3供应,请作必要的修改。
UPDATE SPJ SET SNO=’S3’
WHERE SNO=’S5’ AND JNO=’J4’ AND PNO=’P6’;
(10) 从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。
DELET FROM SPJ
WHERE SNO=’S2’;
DELET FROM S
WHERE SNO=’S2’;
(11) 请将 (S2,J6,P4,200) 插入供应情况关系。
INSERT INTO SPJ(SNO, JNO, PNO, QTY)
VALUES (‘S2’,’J6’,‘P4’,200);
习题11请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码( PNO)、供应数量(QTY)。
针对该视图完成下列查询:
( 1)找出三建工程项目使用的各种零件代码及其数量。
( 2)找出供应商S1的供应情况。
答:
建视图:
CREATE VIEW V_SPJ AS
SELECT SNO, PNO, QTY FROM SPJ WHERE JNO=
( SELECT JNO FROM J WHERE JNAME='三建');
对该视图查询:
(1) 找出三建工程项目使用的各种零件代码及其数量。
SELECT PNO, QTY FROM V_SPJ;
(2) 找出供应商S1的供应情况。
SELECT PNO, QTY /* S1供应三建工程的零件号和对应数量*/
FROM V_SPJ
WHERE SNO=’S1’;
第四章习题4、8、9、11
习题4试述CC评估保证级划分的基本内容
答:
CC提出国际公认的表述信息技术安全性的结构,把信息产品的安全要求分为安全功能要求、安全保证要求。
CC文本由三部分组成:
简介和一般模型;安全功能要求;安全保证要求。
CC评估保证级划分如下:
评估保证级
定义
TCSEC安全级别(近似相当)
EAL1
功能测试(functionallytested)
EAL2
结构测试(structurallytested)
C1
EAL3
系统地测试和检查(methodicallytestedandchecked)
C2
EAL4
系统地设计、测试和复查(methodicallydesigned,tested,andreviewed)
B1
EAL5
半形式化设计和测试(semiformallydesignedandtested)
B2
EAL6
半形式化验证的设计和测试(semiformallyverifieddesignandtested)
B3
EAL7
形式化验证的设计和测试(formallyverifieddesignandtested)
A1
习题8今有两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号)
部门(部门号,名称,经理名,地址,电话号)
请用SQL 的GRANT 和REVOKE 语句(加上视图机制)完成以下授权定义或存取控制功能:
(a)用户王明对两个表有SELECT 权力。
GRANT SELECT ON 职工,部门 TO 王明
(b)用户李勇对两个表有INSERT 和DELETE 权力。
GRANT INSERT,DELETE ON 职工,部门 TO 李勇
(c)每个职工只对自己的记录有SELECT 权力。
GRANT SELECT ON 职工WHENUSER()=NAME TO ALL;
这里假定系统的GRANT 语句支持WHEN子句和USER( )的使用。
用户将自己的名字作为ID。
注意,不同的系统这些扩展语句可能是不同的。
(d)用户刘星对职工表有SELECT 权力,对工资字段具有更新权力。
GRANT SELECT,UPDATE(工资) ON 职工 TO 刘星
(e)用户张新具有修改这两个表的结构的权力。
GRANT ALTER TABLE ON 职工,部门 TO 张新;
(f) 用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的 权力。
GRANT ALL PRIVILIGES ON 职工,部门TO 周平
WITH GRANT OPTION;
(g) 用户杨兰具有从每个部门职工中SELECT 最高工资、最低工资、平均工资的权力,他不能查看每个人的工资。
首先建立一个视图,然后对这个视图定义杨兰的存取权限:
CREATE VIEW 部门工资 AS
SELECT 部门.名称,MAX(工资),MIN(工资),AVG(工资) FROM 职工,部门
WHERE 职工.部门号=部门.部门号 GROUP BY 职工.部门号;
GRANT SELECT ON 部门工资 TO 杨兰;
习题9把习题8中(a)~(g)的每一种情况,撤消各用户所授予的权力。
(a)
REVOKE SELECT ON 职工,部门
FROM 王明;
(b)
REVOKE INSERT , DELETE ON 职工,部门
FROM 李勇;
(c)
REOVKE SELECT ON职工
WHEN USER ( ) =NAME
FROM ALL
这里假定用户将自己的名字作为ID,且系统的REOVKE语句支持WHEN子句,系统也支持USER( )的使用。
(d)
REVOKE SELECT , UPDATE ON 职工
FROM 刘星;
(e)
REVOKE ALTER TABLE ON 职工,部门
FROM 张新;
(f)
REVOKE ALL PRIVILIGES ON 职工,部门
FROM 周平;
(g)
REVOKE SELECT ON 部门工资
FROM 杨兰;
DROP VIEW 部门工资;
习题11理解并解释MAC机制中主体、客体、敏感度标记的含义。
答:
在MAC中,DBMS所管理的全部实体被分为主体和客体。
主体是系统中的活动实体,既包括DBMS 所管理的实际用户,也包括代表用户的各进程。
客体是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等。
对于主体和 客体,DBMS 为它们每个实例(值)指派一个敏感度标记(Label )。
敏感度标记被分成若干级别,例如绝密(Top Secret )、机密(Secret )、 可信( Confidential )、公开(Public )等。
主体的敏感度标记称为许可证级别,客体的敏感度标记称为密级(Classification Level )。
MAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体。
第五章习题2、5、6、7
习题2数据库的完整性概念与数据库的安全性概念有什么区别和联系?
答:
数据的完整性和安全性是两个不同的概念,但是有一定的联系。
数据的完整性是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。
数据的安全性是保护数据库防止恶意的破坏和非法的存取。
完整性检查和控制的防范对象是不合语义的、不正确的数据,防止它们进入数据库。
安全性措施的防范对象是非法用户和非法操作,防止他们对数据库数据的非法存取。
习题5RDBMS 在实现参照完整性时需要考虑哪些方面?
答:
RDBMS在实现参照完整性时需要考虑以下几个方面:
(l)外码是否可以接受空值。
(2)删除被参照关系的元组时的考虑,这时系统可能采取的作法有三种:
l)级联删除(CASCADES )
2)受限删除(RESTRICTED )
3)置空值删除(NULLIFIES)。
(3)在参照关系中插入元组时的问题,这时系统可能采取的作法有:
l)受限插入; 2)递归插入。
(4)修改关系中主码的问题。
一般是不能用 UPDATE 语句修改关系主码值。
如果需要修改主码值,只能先删除该元组,然后再把具有新主码值的元组插入到关系中。
如果允许修改主码,首先要保证主码的惟一性和非空,否则拒绝修改。
然后要区分是参照关系还是被参照关系。
习题6假设有下面两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;
部门(部门号,名称,经理名,电话),其中部门号为主码;
用 SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:
(1)定义每个模式的主码;
(2)定义参照完整性;(3)定义职工年龄不得超过 60岁。
答:
定义部门
CREATE TABLE DEPT (Deptno NUMBER
(2), Deptname CHAR(10), Manager CHAR(10), PhoneNumber CHAR(12) PRIMARY KEY (Deptno) );
定义职工
CREATE TABLE EMP (Empno NUMBER(4), Ename CHAR(10), Age NUMBER
(2) CHECK (Age<=60), Job CHAR(9),
Sal NUMBER(7,2),
Deptno NUMBER
(2), PRIMARYKEY(Empno),
FOREIGN KEY (Deptno) REFERENCES DEPT(Deptno) );
习题7关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的?
答:
对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。
而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。
第六章习题2、12
习题2
建立一个关于系、学生、班级、学会等诸信息的关系数据库。
描述学生的属性有:
学号、姓名、出生年月、系名、班号、宿舍区。
描述班级的属性有:
班号、专业名、系名、人数、入校年份。
描述系的属性有:
系名、系号、系办公室地点、人数。
描述学会的属性有:
学会名、成立年份、地点、人数。
有关语义如下:
一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。
一个系的学生住在同一宿舍区。
每个学生可参加若干学会,每个学会有若干学生。
学生参加某学会有一个入会年份。
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。
指出各关系的候选码、外部码,有没有全码存在?
答:
E—R图:
设置
班级
包含
专业
1n1n
系
1
入会年份
人数
组成
分配
1
属于
加入
nm
学生
学会
宿舍区
1nnm
关系模式:
学生(学号,姓名,出生年月,系号,班号,专业号,宿舍区)
专业 (专业号,专业名)
班级(班号,专业名,系号,班人数,入校年份)
系 (系号,系名,系办公室地点,系人数)
学会(学会名,成立年月,地点,学会人数)
学生—学会(学号,学会名,入会年份)
每个关系模式的极小函数依赖集:
学生:
学号→姓名,学号→出生年月,学号→系号,学号→班号,班号→系号,系号→宿舍区,学号→专业号,学号→宿舍区, 班号→宿舍区 专业:
专业号→专业名
班级:
班号→专业名,班号→班人数,班号→入校年份,班号→系号,专业号→系号, (专业号, 入校年份)→班号
系:
系号→系名,系名→系号,系号→系办公室地点,系号→系人数
学会:
学会名→成立年月,学会名→地点,学会名→学会人数
学生—学会:
(学号,学会名)→入会年份
‘学生’中存在传递函数依赖:
学号→班号,班号→系号
‘班’中存在传递函数依赖:
(专业名, 入校年份)→班号,班号→班人数, ( 学号,学会名)→入会年份和(专业名,入校年份)→班号 均为’学生—学会’和’班级’中的函数依赖,是完全函数依赖
关系
候选码
外部码
全码
学生
学号
班号,系号
无
班级
班号,(专业号,入校年份)
系号
无
系
系号和系名
无
无
学会
学会名
无
无
学生----学会
(学号,学会名)
学号,学会名
无
习题12下面的结论哪些是正确的,哪些是错误的?
对于错误的结论请给出理由或给出反例说明之。
答:
(1)任何一个二目关系是属于3NF。
----对 。
(2)任何一个二目关系是属于BCNF。
----对 。
(3)任何一个二目关系是属于4NF。
----对 。
(4)错。
当A→B在R上成立,关系R(A,B,C)等于其投影R1(A,B)和R2(A,C)的连接,反之则不然。
正确的应当是:
当且仅当多值依赖A→→B在R上成立,关系R(A,B,C)等于其投影R1(A,B) 和R2(A,C)的连接。
(5)对。
(6)对。
(7)对。
(8)错。
反例:
关系模式SC(S#,C#,G),(S#,C#)→G,但是S#→G,C#→G.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 概论 离线 作业 浙江大学 远程教育 学院