1、浙江大学远程教育学院数据库系统概论课程作业姓名: 吴发根 学 号: 714100012044年级: 14 秋(3)班 学习中心: 浙大直属西溪第一章习题 2、6、102.使用数据库系统有什么好处?答:使用数据库系统的好处是由数据库管理系统的特点或优点决定的。使用数据库系统的好处很多,例如,可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担,等等。使用数据库系统可以大大提高应用开发的效率。因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由 DBMS 来完成。用一个通俗的比喻,使用了 DBMS 就如有了一个好参谋、好助手,许多具体的技术工
2、作都由这个助手来完成。开发人员就可以专注于应用逻辑的设计,而不必为数据管理的许许多多复杂的细节操心。还有,当应用逻辑改变,数据的逻辑结构也需要改变时,由于数据库系统提供了数据与程序之间的独立性,数据逻辑结构的改变是 DBA 的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序,从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改。使用数据库系统可以减轻数据库系统管理人员维护系统的负担。因为 DBMS 在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性、多用户并发控制、故障恢复等,都由 DBMS 执行。总之,使用数据库系统的优点是很多的,既便于数据
3、的集中管理,控制数据冗余,提高数据的利用率和一致性,又有利于应用程序的开发和维护。6 数据库管理系统的主要功能有哪些?答:数据库定义功能、数据存取功能、数据库运行管理、数据库的建立和维护功能。10 试给出 3 个实际部门的 E 一 R 图,要求实体型之间具有一对一、一对多、多对多各种不同的联系。答:1 11 nm n第二章习题 5、65设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:(1)求供应工程J1零件的供应商号码SNO:Sno(Sno=J1(SPJ))(2)求供应工程J1零件P1的供应商号码SNO:Sno(Sno=J1Pno=P1(SPJ)(3)求供应工程J1零件为红色的供应商
4、号码SNO:Sno(Pno=P1 (COLOR=红 (P)SPJ))(4)求没有使用天津供应商生产的红色零件的工程号JNO:Jno(SPJ)- JNO(city=天津Color=红 (SSPJP)(5)求至少用了供应商S1所供应的全部零件的工程号JNO:Jno,Pno(SPJ) Pno(Sno=S1 (SPJ)6 试述等值连接与自然连接的区别与联系。答:连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉两者联系:自然连接是一种特殊的
5、等值连接。两者区别:1、自然连接一定是等值连接,但等值连接不一定是自然连接。2、等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分量部门 负责人负责学生 图书借阅学生 社团参加必须是公共属性。3、等值连接不把重复的属性除去;而自然连接要把重复的属性除去。第三章习题 4、5、94.针对上题中建立的 4 个表试用 sQL 语言完成第二章习题 5 中的查询。( l )求供应工程 Jl 零件的供应商号码 SNO ;SELECT DIST SNO FROM SPJ WHERE JNO=J1( 2 )求供应工程 Jl 零件 Pl 的供应商号码 SNO ;SELECT DIST SNO FRO
6、M SPJ WHERE JNO=J1 AND PNO=P1( 3 )求供应工程 Jl 零件为红色的供应商号码 SNO ;SELECT SNO FROM SPJ,P WHERE JNO=J1 AND SPJ.PNO=P.PNO AND COLOR=红( 4 )求没有使用天津供应商生产的红色零件的工程号 JNO ;SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROMSPJ,P,S WHERE S.CITY=天津 AND COLOR=红 AND S.SNO=SPJ.SNO ANDP.PNO=SPJ.PNO)。( 5 )求至少用了供应商 Sl
7、 所供应的全部零件的工程号 JNO ;由于VFP不允许子查询嵌套太深,将查询分为两步A、查询S1供应商供应的零件号SELECT DIST PNO FROM SPJ WHERE SNO=S1结果是(P1,P2)B、查询哪一个工程既使用P1零件又使用P2零件。SELECT JNO FROM SPJ WHERE PNO=P1AND JNO IN (SELECT JNO FROM SPJ WHERE PNO=P2)5. 针对习题 3 中的四个表试用 SQL 语言完成以下各项操作: (1) 找出所有供应商的姓名和所在城市。 (2) 找出所有零件的名称、颜色、重量。 (3) 找出使用供应商 S1 所供应零
8、件的工程号码。 (4) 找出工程项目 J2 使用的各种零件的名称及其数量。 (5) 找出上海厂商供应的所有零件号码。 (6) 找出使用上海产的零件的工程名称。 (7) 找出没有使用天津产的零件的工程号码。 (8) 把全部红色零件的颜色改成蓝色。 (9) 由 S5 供给 J4 的零件 P6 改为由 S3 供应,请作必要的修改。 (10) 从供应商关系中删除 S2 的记录,并从供应情况关系中删除相应的记录。(11) 请将 (S2,J6,P4,200) 插入供应情况关系。 答: (1) 找出所有供应商的姓名和所在城市。 SELECT SNAME, CITY FROM S; (2) 找出所有零件的名称
9、、颜色、重量。 SELECT PNAME, COLOR, WEIGHT FROM P; (3) 找出使用供应商 S1 所供应零件的工程号码。 SELECT JNO FROM SPJ WHERE SNO=S1; (4) 找出工程项目 J2 使用的各种零件的名称及其数量。 SELECT P.PNAME, SPJ.QTY FROM P, SPJWHERE P.PNO=SPJ.PNO AND SPJ.JNO=J2; (5) 找出上海厂商供应的所有零件号码。 SELECT DISTINCT PNO FROM SPJ WHERE SNO IN ( SELECT SNO FROM S WHERE CITY=
10、上海);或: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. 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) 把全部
11、红色零件的颜色改成蓝色。 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 的记录,并从供应情况关系中删除相应的记录。 解析:注意删除顺序,应该先从 SPJ 表中删除供应商 S2 所供应零件的记录,然后从从 S 表中删除 S2。 DELET FROM SPJ WHERE SNO=S2DELET FROM S WHERE SNO=S2(11)
12、 请将 (S2,J6,P4,200) 插入供应情况关系。 INSERT INTO SPJ(SNO, JNO, PNO, QTY) VALUES (S2, J6, P4,200);9哪类视图是可以更新的?哪类视图是不可更新的?各举一例说明。答:基本表的行列子集视图一般是可更新的。若视图的属性来自集函数、表达式,则该视图肯定是不可更新的。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。例如一个信息系学生视图IS_Student是学生基本表Student的行列子集视图,所以视图IS_Student可更新的。如将学号为2015090168的学生名称改为“王学兵”,更新语句为:
13、UPDATE IS_StudentSET Sname=王学兵WHERE Sno=2015090168;转换为对基本表的更新语句为:UPDATE StudentSET Sname=王学兵WHERE Sno=2015090168 AND Sdept=IS;再例如一个由学号和平均成绩两个属性组成的视图S_G,其中平均成绩一项是由基本表SC中对元组分组后计算平均值得来的,视图创建语句如下:CREATE VIEW S_G(Sno,Gavg)ASSELECT Sno,AVG(Grade)FROM SCGROUP BY Sno;如果要想把视图S_G中学号为2015090168的学生的平均成绩改成90分,SQ
14、L语句如下:UPDATE S_GSET Gavg=90WHERE Sno=2015090168;但这个视图的更新是无法转换成对基本表SC的更新的,因为系统无法修改各科成绩,以使平均成绩成为90分。所以S_G视图就是不可更新的。第四章习题 3、7、8、103 试术信息安全标准的发展历史,试述TDI/TCSEC和CC V2.1标准的基本内容。答:信息安全标准的发展历史如下:(1)1985年美国国防部可信计算机系统评估准则(TCSEC)(2)1991年欧洲信息技术安全评估准则(ITSEC)(3)1993年加拿大可信计算机产品评估准则(CTCPEC)(4)1993年美国信息技术安全联邦标准(FC)草案
15、(5)1996年通用准则(CC V1.0)(6)1998年通用准则(CC V2.0)(7)1999年通用准则(CC V2.1)(8)1999年CC V2.1成为国际标准(ISO15408)其中TDI/TCSEC标准的基本内容包括四个方面:安全策略、责任、保证和文档。每个方面又细分为若干项。根据计算机系统对各项指标的支持情况,TDI/TCSEC将系统划分为四组七个等级,依次是:D、C(C1,C2)、B(B1,B2,B3)、A(A1),按系统可靠信或可信程度逐渐增高。CC V2.1标准的基本内容包括三个部分:第一部分是“简介和一般模型”;第二部分是安全功能要求;第三部分是安全保证要求。三部分相互依
16、存,缺一不可。CC保证级别划分为EAL1到EAL7共7级,按保证程度逐渐增高。粗略而言,TCSEC的C1和C2级分别相当于EAL2和EAL3;B1、B2和B3分别相当于EAL4、EAL5和EAL6;A1相当于EAL7。7.SQL 中提供了哪些数据控制(自主存取控制)的语句?请试举几例说明它们的使用方法。答:SQL 中的自主存取控制是通过GRANT语句和REVOKE语句来实现的。如:GRANT SELECT , INSERT ON Student TO 王平WITH GRANT OPTION ; 就将Student 表的SELECT 和INSERT 权限授予了用户王平,后面的“WITH GRAN
17、T OPTION ”子句表示用户王平同时也获得了“授权”的权限,即可以把得到的权限继续授予其他用户。REVOKE INSERT ON Student FROM 王平 CASCADE ; 就将Student 表的INSERT 权限从用户王平处收回,选项CASCADE 表示,如果用户王平将Student 的INSERT 权限又转授给了其他用户,那么这些权限也将从其他用户处收回。8.今有两个关系模式: 职工(职工号,姓名,年龄,职务,工资,部门号) 部门(部门号,名称,经理名,地址,电话号) 请用 SQL 的 GRANT 和 REVOKE 语句(加上视图机制)完成以下授权定义或存取控制功能: ( a
18、 )用户王明对两个表有 SELECT 权力。GRANT SELECT ON 职工,部门TO 王明( b )用户李勇对两个表有 INSERT 和 DELETE 权力。GRANT INSERT,DELETE ON 职工,部门TO 李勇( c ) 每个职工只对自己的记录有 SELECT 权力。GRANT SELECT ON 职工WHEN USER()=NAMETO ALL;( d )用户刘星对职工表有 SELECT 权力,对工资字段具有更新权力。GRANT SELECT,UPDATE(工资) ON 职工TO 刘星( e )用户张新具有修改这两个表的结构的权力。GRANT ALTER TABLE ON
19、 职工,部门TO 张新;( f )用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力。GRANT ALL PRIVILIGES ON 职工,部门TO 周平WITH GRANT OPTION;( g )用户杨兰具有从每个部门职工中 SELECT 最高工资、最低工资、平均工资的权力,他不能查看每个人的工资。CREATE VIEW 部门工资 ASSELECT 部门.名称,MAX(工资),MIN(工资),AVG(工资)FROM 职工,部门WHERE 职工.部门号=部门.部门号GROUP BY 职工.部门号GRANT SELECT ON 部门工资TO 杨兰;10为什么强制存取
20、控制提供了更高级别的数据库安全性?答:强制存取控制(MAC )是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性。第五章习题 2、5、6、72 数据库的完整性概念与数据库的安全性概念有什么区别和联系?答:数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出( Garba : e InGarba : e out )所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象
21、是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。5.RDBMS 在实现参照完整性时需要考虑哪些方面? 答: RDBMS 在实现参照完整性时需要考虑以下几个方面: 1)外码是否可以接受空值 2)删除被参照关系的元组时的考虑,这时系统可能采取的作法有三种: (a)级联删除(CASCADES) ; (b)受限删除(RESTRICTED) ; (c)置空值删除(NULLIFIES) 3)在参照关系中插入元组时的问题,这时系统可能采取的作法有: (a)受限插入 (b)递归插入 4)修改关系中主码的问题 一般是不能用 UPDATE 语句修改关系主码的。如果需要修改主码值,只能先删除该元组,然后
22、再把具有新主码值的元组插入到关系中。 如果允许修改主码,首先要保证主码的唯一性和非空,否则拒绝修改。然后要区分是参照关系还是被参照关系。6 假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门(部门号,名称,经理名,电话),其中部门号为主码。用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:(1)定义每个模式的主码;(2)定义参照完整性;(3)定义职工年龄不得超过60岁。答:CREATE TABLE DEPT(Deptno NUMBER(2),Deptname VARCHAR(10),Manager VARCHAR(10),Ph
23、oneNumber Char(12)CONSTRAINT PK_SC RIMARY KEY(Deptno);CREATE TABLE EMP(Empno NUMBER(4),Ename VARCHAR(10),Age NUMBER(2),CONSTRAINT C1 CHECK ( Aage=60),Job VARCHAR(9),Sal NUMBER(7,2),Deptno NUMBER(2),CONSTRAINT FK_DEPTNOFOREIGN KEY(Deptno)REFFERENCES DEPT(Deptno);7关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,
24、一般是如何分别进行处理的? 答:对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。第六章习题 2、7 2建立一个关于系、学生、班级、学会等诸信息的关系数据库。描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区。描述班级的属性有:班号、专业名、系名、人数、入校年份。描述系的属性有:系名、系号、系办公地点、人数。描述学会的属性有:学会名、成立年份、办公地点、人数。语义如下的:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一
25、宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在?解:(1)关系模式如下:学生:S(Sno,Sname,Sbirth,Dept,Class,Rno)班级:C(Class,Pname,Dept,Cnum,Cyear)系:D(Dept,Dno,Office,Dnum)学会:M(Mname,Myear,Maddr,Mnum)(2)每个关系模式的最小函数依赖集如下:A、学生
26、S (Sno,Sname,Sbirth,Dept,Class,Rno) 的最小函数依赖集如下:SnoSname ,SnoSbirth ,SnoClass ,ClassDept ,DEPTRno传递依赖如下:由于SnoDept ,而DeptSno ,DeptRno (宿舍区)所以Sno与Rno之间存在着传递函数依赖。由于ClassDept ,Dept Class,DeptRno所以Class与Rno之间存在着传递函数依赖。由于SnoClass ,ClassSno ,ClassDept所以Sno与Dept之间存在着传递函数依赖。B、班级C(Class,Pname,Dept,Cnum,Cyear)的
27、最小函数依赖集如下:ClassPname ,ClassCnum ,ClassCyear ,PnameDept.由于ClassPname ,PnameClass ,PnameDept所以C1ass与Dept之间存在着传递函数依赖。C、系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:DeptDno ,DnoDept ,DnoOffice ,DnoDnum根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。D、学会M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下:MnameMyear ,MnameMaddr ,MnameMn
28、um该模式不存在传递依赖。(3)各关系模式的候选码、外部码,全码如下:A、学生S候选码:Sno;外部码:Dept、Class;无全码B、班级C候选码:Class;外部码:Dept;无全码C、系D候选码:Dept或Dno;无外部码;无全码D、学会M候选码:Mname;无外部码;无全码7设关系模式为R(U,F),X,Y为属性集,X,YU。证明:(1)XX F+(2)(X F+)F+=XF+(3)若XY则X F+YF+(4)U F+=U答:(1)因为XX,所以XX F+(根据X F+的定义)(2)*解析:a)要证明(X F+)F+=XF+,只要证明X F+(XF+)F+,并且(X F+)F+XF+,
29、而XF+(XF+)F+是显然的,因此只要证明(X F+)F+XF+。b)这里的证明要用集合论的基本知识,复习一下有关集合论中的有关概念和证明方法。证明:下面求证(X F+)F+XF+。任意A(X F+)F+,(由题意知)存在BX F+,使BA能由F根据Armstrong公理导出,而从BX F+,可知XB能由F根据Armstrong公理导出,根据公理中的传递律可知XA能由F根据Armstrong公理导出,所以AX F+,因此(X F+)F+XF+。所以(X F+)F+=XF+。(3)对任意AX F+,可知XA能由F根据Armstrong公理导出,因为XY,由自反律可以得YX,由传递律得YA,所以
30、AY F+。 X F+YF+得证。(4)*解析:要证明U F+=U,只要证明UU F+,并且U F+U,而U UF+是显然的;下面证明U F+U,即证U由F据Armstrong公理推出的集合仍属于U:自反律:YU,UY为F所蕴含。显然U由F据Armstrong公理的自反律推出的Y仍属于U;增广律:UY为F所蕴含,且ZU,则UZYZ为F所蕴含,YZU。传递律:UY和YZ都为F所蕴含,则UZ为F所蕴含。ZU。第七章习题 9、109.试述数据库概念结构设计的重要性和设计步骤。 答:重要性:数据库概念设计是整个数据库设计的关键,将在需求分析阶段所得到的应用需求首先抽象为概念结构,以此作为各种数据模型的
31、共同基础,从而能更好地、更准确地用某一 DBMS实现这些需求。设计步骤:概念结构的设计方法有多种,其中最经常采用的策略是自底向上方法,该方法的设计步骤通常分为两步:第 1步是抽象数据并设计局部视图,第2步是集成局部视图,得到全局的概念结构。10为什么要视图集成?视图集成的方法是什么?答:在对数据库系统进行概念结构设计时一般采用自底向上的设计方法,把繁杂的大系统分解子系统。首先设计各个子系统的局部视图,然后通过视图集成的方式将各子系统有机地融合起来,综合成一个系统的总视图。这样,设计清晰,由简到繁。由于数据库系统是从整体角度看待和描述数据的,因此数据不再面向某个应用而是整个系统。因此必须进行视图
32、集成,使得数据库能被全系统的多个用户、多个应用共享使用。一般说来,视图集成可以有两种方式:(1)多个分E-R图一次集成;(2)逐步集成,用累加的方式一次集成两个分E-R图。无论采用哪种方式,每次集成局部E-R图时都需要分两步走:(1)合并,解决各分E-R图之间的冲突,将各分E-R图合并起来生成初步E-R图;(2)修改和重构,消除不必要的冗余,生成基本E-R图。 第九章习题 33试述查询优化的一般准则。答:下面的优化策略一般能提高查询效率:(1)选择运算应尽可能先做;(2)把投影运算和选择运算同时进行;(3)把投影同其前或其后的双目运算结合起来执行;(4)把某些选择同在它前面要执行的笛卡儿积结合
33、起来成为一个连接运算;(5)找出公共子表达式;(6)选取合适的连接算法。第十章习题 3、4、53数据库中为什么要有恢复子系统?它的功能是什么?答:因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此必须要有恢复子系统。恢复子系统的功能是:把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)。4数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据?答:数据库系统中可能发生各种各样的故障,大致可以分以下几类:(1)事务内部的故障;(2)系统故障;(3)介质故障;