1、数据库系统概论离线作业答案浙江大学远程教育学院数据库系统概论课程作业姓名:张伟鹏学 号:712100012032年级:2012秋学习中心:西溪直属第一章习题2、6、10第二章习题4、5第三章习题3、4、5、11第四章习题4、8、9、11第五章习题2、5、6、7第六章习题2、12 第七章习题9、11、12第九章习题2第十章习题6、7、8第十一章习题4、7、9、10第一章习题2、6、102、 答:数据库系统使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的阶段,这样既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据的利用率和相容性,提高了决策的可靠性。6、 答:数据定义功能
2、、数据操纵功能、数据库的运行管理、数据库的建立和维护功能。10、 1 n 1 1 n m第二章习题4、54、 答:关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。 5答:(1) SNO( JNO=J1(SPJ))(2) SNO( JNO=J1PNO=P1(SPJ)(3) SNO( JNO=J1(SPJ) COLOR=红(P))(4) JNO(SPJ)- JNO(CITY=天津(S)(SPJ) COLOR=红(P)(5) JNO,PNO(SPJ) PNO( SNO=S1(SPJ)第三章习题3、4、5、113、答:对于 S表:S
3、( SNO,SNAME,STATUS,CITY); CREATE TABLE S (SNO CHAR(3),SNAME CHAR(10),STATUS CHAR(2),CITY CHAR(10); 对于P表:P((PNO ,PNAME ,COLOR ,WEIGHT )CREATE TABLE P(PNO CHAR(6),PNAME CHAR(10),COLOR CHAR(2),WEIGHT MEMBER); 对于 J 表: J ( JNO , JNAME , CITY) ;建 J 表:CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4)对于
4、sPJ 表: sPJ ( sNo , PNo , JNo , QTY) ;建 SPJ 表:SPJ(SNO,PNO,JNO,QTY)CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), QTY INT) 4. 答: (1) 求供应工程J1零件的供应商号码SNO; SELECT SNO FROM SPJ WHERE JNO=J1; (2) 求供应工程J1零件P1的供应商号码SNO; SELECT SNO FROM SPJ WHERE JNO=J1 AND PNO=P1; ( 3) 求供应工程J1零件为红色的供应商号码SNO; SELECT SNO FROM SP
5、J WHERE JNO=J1 AND PNO IN (SELECT PNO FROM P WHERE COLOR=红); ( 4) 求没有使用天津供应商生产的红色零件的工程号JNO; SELECT JNO FROM J WHERE JNO NOT IN (SELECT JNO FROM S, P, SPJ WHERE S.SNO=SPJ.SNO AND SPJ.PNO=P.PNO AND COLOR=红 AND CITY=天津)(5) SELECT DISTINCT Jno FROM SPJ SPJX WHERE NOT EXISTS (SELECT * FROM SPJ SPJY WHERE
6、 SCY.Sno = S1 AND NOT EXISTS (SELECT * FROM SPJ SPJZ WHERE SCZ.Sno=SCX.Sno AND SCZ.Jno=SCY.Jno);5. 答: (1) 找出所有供应商的姓名和所在城市。 SELECT SNAME, CITY FROM S; (2) 找出所有零件的名称、颜色、重量。 SELECT PNAME, COLOR, WEIGHT FROM P; (3) 找出使用供应商S1所供应零件的工程号码。 SELECT JNO FROM SPJ WHERE SNO=S1; (4) 找出工程项目J2使用的各种零件的名称及其数量。 SELECT
7、 P.PNAME, SPJ.QTY FROM P, SPJ WHERE P.PNO=SPJ.PNO AND SPJ.JNO=J2; (5) 找出上海厂商供应的所有零件号码。 SELECT DISTINCT PNO FROM SPJ WHERE SNO IN ( SELECT SNO FROM S WHERE CITY=上海);或:SELECT PNO FROM S,SPJ WHERE S,SNO=SPJ.SNO AND S.CITY=上海 (6) 找出使用上海产的零件的工程名称。 SELECT JNAME FROM J, SPJ, S WHERE J. JNO=SPJ. JNO AND SPJ
8、. SNO=S.SNO AND S.CITY=上海; (7) 找出没有使用天津产的零件的工程号码。 SELECT DISTINCT JNO FROM SPJ WHERE JNO NOT IN (SELECT JNO FROM S,SPJ WHERE S.SNO=SPJ.SNO AND S.CITY= 天津)(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
9、; (10) 从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。 解析:注意删除顺序,应该先从 SPJ表中删除供应商S2所供应零件的记录,然后从从S表中删除S2。 DELET FROM SPJ WHERE SNO=S2DELET FROM S WHERE SNO=S2(11) 请将 (S2,J6,P4,200) 插入供应情况关系。 INSERT INTO SPJ(SNO, JNO, PNO, QTY) VALUES (S2,J6,P4,200);11. 答:建视图: CREATE VIEW V_SPJ AS SELECT SNO, PNO, QTY FROM SPJ WHERE
10、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、114、8. 答: (a)用户王明对两个表有SELECT权力; GRANT SELECT ON 职工,部门 TO 王明; (b)用户李勇对两个表有INSERT和DELETE权力; GRANT INSER
11、T,DELETE ON 职工,部门 TO 李勇; (c)每个职工只对自己的记录有SELECT权力; GRANT SELECT ON 职工 WHEN USER()= NAME TO ALL; 这里假定系统的 GRANT语句支持WHEN子句和USER()的使用。用户将自己的名字作为ID。注意,不同的系统这些扩展语句可能是不同的。读者应该了解你使用的DBMS产品的扩展语句。 (d)用户刘星对职工表有SELECT权力,对工资字段具有更新权力; GRANT SELECT,UPDATE(工资) ON 职工 TO 刘星; (e)用户张新具有修改这两个表的结构的权力; GRANT ALTER TABLE ON
12、 职工,部门 TO 张新; (f)用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力; GRANT ALL PRIVILIGES ON 职工,部门 TO 周平 WITH GRANT OPTION; (g)用户杨兰具有从每个部门职工中SELECT最高工资、最低工资、平均工资的权力,他不能查看每个人的工资。 答:首先建立一个视图。然后对这个视图定义杨兰的存取权限。 CREATE VIEW 部门工资 AS SELECT 部门.名称,MAX(工资),MIN(工资),AVG(工资) FROM 职工,部门 WHERE 职工.部门号 = 部门. 部门号 GROUP BY 职工.部
13、门号; GRANT SELECT ON 部门工资 TO 杨兰; 9. 答: (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
14、 张新; (f) REVOKE ALL PRIVILIGES ON 职工,部门 FROM 周平; (g) REVOKE SELECT ON 部门工资 FROM 杨兰; DROP VIEW 部门工资;11、答:主体是系统中的活动实体,既包括DBMS 所管理的实际用户,也包括代表用户的各进程。客体是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等。对于主体和 客体,DBMS 为它们每个实例(值)指派一个敏感度标记(Label )。敏感度标记被分成若干级别,例如绝密(Top Secret )、机密(Secret ) 可信( Confidential )、公开(PubliC )等。主体的敏感度标记称为许可证级别(ClearanCe 玫vel ) ,客体的敏感度标记称为密级(Classification Level )。第五章习题2、5、6、72. 答:数据的完整性和安全性是两个不同的概念,但是有一定的联系。 前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出( Garbage In Garbage Out)所造成的无效操作和错误结果。 后者是保护数据库防止恶意的破坏和非法的存取。 也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。5. 答: RDBMS在实现参照完整性时需
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1