网络数据库管理系统

上传人:沈*** 文档编号:45540091 上传时间:2021-12-07 格式:DOC 页数:24 大小:184.50KB
返回 下载 相关 举报
网络数据库管理系统_第1页
第1页 / 共24页
网络数据库管理系统_第2页
第2页 / 共24页
网络数据库管理系统_第3页
第3页 / 共24页
点击查看更多>>
资源描述
第1章 数据库的概念习题1 名词解释:数据库、数据库管理系统、数据库系统答案:数据库是长期储存在计算机内的、有组织的、可共享的数据的集合。DBMS - DataBase Management System .是处理数据库访问的软件。 .提供数据库的用户接口。数据库系统(DataBase System,DBS), DBS是指在计算机系统中引入数据库后的系统。带有数据库的整个计算机系统,包括硬件、软件、数据、人员。数据库系统(Database System,简称DBS)指数据库应用系统,系统构成包括数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户习题2 数据库系统阶段有和特点?答案:特点:§有了数据库管理系统。§面向全组织,面向现实世界。§独立性较强。§由DBMS统一存取,维护数据语义及结构习题3 结构数据模型三要素是什么,各什么含义?答案:数据模型通常由数据结构、数据操作和完整性约束组成。§数据结构-反映数据的静态特性 §数据操作-反映数据的动态特性 §数据的完整性约束 -反映数据的约束条件习题4 试述数据库的三级模式结构与两级映象答案:外模式是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序,与所使用的应用开发工具及高级程序设计语言(如C、Cobol、Fortran)无关。内模式也称存储模式(Storage Schema),一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。例如,记录的存储方式是顺序存储、按照B树结构存储、还是按Hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定等。所形成的两级映象§外模式/模式映象:v定义某一个外模式和模式之间的对应关系,映象定义通常包含在各外模式中。当模式改变时,修改此映象,使外模式保持不变,从而应用程序可以保持不变,称为逻辑独立性。§模式/内模式映象:v定义数据逻辑结构与存储结构之间的对应关系。存储结构改变时,修改此映象,使模式保持不变,从而应用程序可以保持不变,称为物理独立性。习题5 从最终用户出发,数据库系统可分为哪几类?答案:集中式DBS客户/服务器式DBS并行式DBS分布式DBS习题6 数据库管理系统的功能与组成答案:数据库管理系统(Database Management System,简称DBMS)是位于用户与操作系统之间的一层数据管理软件。它的主要功能包括:1)数据定义功能数据定义语言(Data Definition Language,简称DDL)2)数据操纵功能数据操纵语言(Data Manipulation Language,简称DML)3)数据库的运行管理在系统运行过程中保障数据的安全性、完整性、一致性,并发使用,故障恢复。4)数据库的建立和维护功能DBMS的组成:ü数据、元数据ü存储管理程序ü事务管理程序ü查询处理程序第2章实体联系模型(ER Model)习题1定义并解释下列术语:实体、实体集、联系、联系集、属性、实体-联系图、表、字段、记录答案:(略)习题2说明强实体集与弱实体集之间的不同。答案:强实体集是可以单独存在的实体,而弱实体集中存在属性依赖于强实体集中的属性,一般情况下它们通过主码与外码联系起来。习题3 设某商业集团数据库有三个实体集。一是“商品”实体集,属性有商品号、商品名、规格、单价等;二是“商店”实体集,属性有商店号、商店名、地址等;三是“供应商”实体集,属性有供应商编号、供应商名、地址等。供应商与商品之间存在“供应”联系,每个供应商可供应多种商品,每种商品可向多个供应商订购,每个供应商供应每种商品有个月供应量;商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品可在多个商店销售,每个商店销售每种商品有个月计划数。试画出反映上述问题的ER图,并将其转换成关系模型。答案:ER图如下图所示。商店号供应商编号商店名地址供应商名地址供应商商店M M月计划数销售月供应量供应NN商品商品号商品名规格单价(2)这个ER图可转换5个关系模式:供应商(供应商编号,供应商名,地址)商店(商店号,商店名,地址)商品(商品号,商品名,规格,单价)供应(供应商编号,商品号,月供应量)销售(商店号,商品号,月计划数)习题4 假设要根据某大学的系、学生、班级、学会等信息建立一个数据库,一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可以参加多个学会,每个学会有若干学生,学生参加某学会有个入会年份。试为该大学的系、学生、班级、学会等信息设计一个ER模型。答案:解:下图是ER图的一种设计方案。设置专业系住宿宿舍区 1 N N 1招收班级N有学生N参加学会 N M 1 1习题5 假设某超市公司要设计一个数据库系统来管理该公司的业务信息。该超市公司的业务管理规则如下:该超市公司有若干仓库,若干连锁商店,供应若干商品。每个商店有一个经理和若干收银员,每个收银员只在一个商店工作。每个商店销售多种商品,每种商品可在不同的商店销售。每个商品编号只有一个商品名称,但不同的商品编号可以有相同的商品名称。每种商品可以有多种销售价格。超市公司的业务员负责商品的进货业务。试按上述规则设计ER模型答案:解:下图是ER图的一种设计方案。具有销售价格 N 1业务员 M库存仓库商品 M发货进货 M N N N P主管拥有商店收银员 1 P 1 N 1M N销售经理 N习题 6 E-R模型向关系模型转换的原则有哪些?举例说明.答案:一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。4.一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。5.三个或三个以上实体间的一个多元联系转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。 6.同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n和m:n三种情况分别处理。7.具有相同码的关系模式可合并。以学生选课或其它例子来说明。第3章关系模型及oracle对象关系数据库 习题1关系模型的三要素?各要素的具体内容?答案:1数据结构两维的扁平表2 数据操作关系代数语言关系演算语言SQL语言3 数据的完整性实体完整性参照完整性用户定义的完整性习题2 笛卡儿积、等值联接、自然联接三者之间有什么区别?答案:笛卡尔积是一个基本操作,而等值联接和自然联接是组合操作。设关系R的元数为r,元组个数为m;关系S的元数为s,元组个数为n。那么,R×S的元数为r+s,元组个数为m×n;ij RS的元数也是r+s,但元组个数小于等于m×n;RS的元数小于等于r+s,元组个数也小于等于m×n;习题3 设有关系R和S:RABCSABC3673 4 5257723723443计算RS,R-S,RS,R×S,3,2(S),B<5(R),R 2<2 S, R S。解:RSABCRSABCRSABC367367723257257723443443345R×SR.A R.B R.C S.A S.B S.C3,2(S)CB 36 73 4554 36 77 2332 25 73 45 25 77 23 72 33 45 72 37 23 44 33 45 44 37 232<2B<5(R)ABCRSR.A R.B R.C S.A S.B S.C723 72 33 45443RSABC723习题4 设有三个关系:S(SNO,SNAME,AGE,SEX,SDEPT)SC(SNO,CNO,GRADE)C(CNO,CNAME,CDEPT,TNAME)试用关系代数表达式表示下列查询语句: 检索LIU老师所授课程的课程号、课程名。 检索年龄大于23岁的男学生的学号与姓名。 检索学号为S3学生所学课程的课程名与任课老师名。 检索至少选修LIU老师所授课程中一门课的女学生姓名。 检索WANG同学不学的课程的课程号。 检索至少选修两门课程的学生学号。 检索全部学生都选修的课程的课程号与课程名。 检索选修课程包含LIU老师所授课程的学生学号。答案:解:CNO,CNAME(TNAME='LIU'(C)SNO,SNAME(AGE'23' SEX='M'(S)CNAME,TNAME(SNO='S3'(SCC)SNAME(SEX='F' TNAME='LIU'(SSCC)CNO(C)CNO(SNAME='WANG'(SSC)1(1=4 25(SC×SC)CNO,CNAME(C(SNO,CNO(SC)÷SNO(S)SNO,CNO(SC)÷CNO(TNAME='LIU'(C)习题5 简述oracle 的体系结构(物理、存储、进程、内存结构)答案:体系结构包括物理、内存、进程与逻辑结构。物理结构:数据文件、日志文件、控制文件、参数文件;内存结构:系统全局区、程序全局区、排序区;进程结构:用户进程、服务器进程、后台进程;逻辑结构:数据库、表空间、段、区;§ORACLE的体系结构-物理结构数据文件、日志文件、控制文件、参数文件§ORACLE的体系结构-系统全局区共享池、 数 据 库 缓 冲 区、日 志 缓 冲 区、large pool(可选)§ORACLE的体系结构-进 程用 户 进 程、服务器进程、后 台 进 程主要的后台进程有 DBWR 数据库写进程 LGWR 日志写进程 CKPT 检查点写进程 SMON 系统监控进程 PMON 进程监控进程 ARCH 归档进程 RECO 恢复进程 LCKn 封锁进程习题6 试述用户进程、后台进程和SGA数据文件之间的关系,以dml图为例。答案:答题要点:处理DML语句,主要包括5步,每步适当展开InstanceSGA共享池库高速缓存重做日志缓冲区数据高速缓存数据字典高速缓存UPDATE empSET sal=sal*1.1WHERE empno=73691服务器进程控制文件重做日志数据文件数据库2345习题7 oracle的后台进程的作用是什么?答案:DBWR数据库写进程:将数据高速缓存中的脏数据写入到相应的数据文件中; LGWR日志写进程 :将重做日志缓存中日志写入到重做日志文件中;系统监测进程 (SMON): 实例恢复、接合自由的空间、释放临时表空间;进程监测进程 (PMON): 清除失败的进程;检查点进程 (CKPT):给信号给DBWR、更新数据文件头、更新控制文件;归档进程 (ARCn):当启用归档方式后自动归档重做日志文件;第4章 Oracle的sql和pl/sql习题1 SQL的特点答案:1)一体化集DDL,DML,DCL于一体单一的结构-关系,带来了数据操作符的统一2)面向集合的操作方式一次一集合3)高度非过程化用户只需提出“做什么”,无须告诉“怎么做”,不必了解存取路径4)两种使用方式,统一的语法结构SQL既是自含式语言(用户使用),又是嵌入式语言(程序员使用)5)语言简洁,易学易用习题2 描述SQL数据库体系结构答案:用户1用户2用户4用户3基本表B1基本表B2基本表B4基本表B3存储文件S1存储文件S2存储文件S4存储文件S3SQL用户VIEWBase TableStored file视图V1视图V1习题3 对于教学数据库的三个基本表 S(SNO,SNAME,AGE,SEX,SDEPT) SC(SNO,CNO,GRADE) C(CNO,CNAME,CDEPT,TNAME)试用SQL的查询语句表达下列查询:检索LIU老师所授课程的课程号和课程名。检索年龄大于23岁的男学生的学号和姓名。检索至少选修LIU老师所授课程中一门课程的女学生姓名。检索WANG同学不学的课程的课程号。检索至少选修两门课程的学生学号。检索全部学生都选修的课程的课程号与课程名。检索选修课程包含LIU老师所授课程的学生学号。答案:SELECT CNO, CNAMEFROM CWHERE TNAME=LIU; SELECT SNO, SNAMEFROM SWHERE AGE>23 AND SEX=M;SELECT SNAME(联接查询方式)FROM S, SC, CWHERE S.SNO=SC.SNO AND SC.CNO=C.CNO AND SEX=FAND TNAME=LIU;或:SELECT SNAME(嵌套查询方式)FROM SWHERE SEX=FAND SNO IN (SELECT SNOFROM SCWHERE CNO IN (SELECT CNOFROM CWHERE TNAME=LIU);或:SELECT SNAME(存在量词方式)FROM SWHERE SEX=FAND EXISTS (SELECT *FROM SCWHERE SC.SNO=S.SNOAND EXISTS (SELECT * FROM C WHERE C.CNO=SC.CNOAND TNAME=LIU); SELECT CNOFROM CWHERE NOT EXISTS(SELECT * FROM S, SC WHERE S.SNO=SC.SNO AND SC.CNO=C.CNOAND SNAME=WANG); SELECT DISTINCT X.SNOFROM SC AS X, SC AS YWHERE X.SNO=Y.SNO AND X.CNO!=Y.CNO; SELECT CNO, CNAMEFROM CWHERE NOT EXISTS(SELECT *FROM SWHERE NOT EXISTS(SELECT * FROM SC WHERE SNO=S.SNO AND CNO=C.CNO); SELECT DISTINCT SNOFROM SC AS XWHERE NOT EXISTS(SELECT * FROM C WHERE TNAME=LIUAND NOT EXISTS(SELECT * FROM SC AS Y WHERE Y.SNO=X.SNO AND Y.CNO=C.CNO);习题4 设有两个基本表R(A,B,C)和S(D,E,F),试用SQL查询语句表达下列关系代数表达式:A(R) B='17'(R) R×S A,F(C=D(R×S)答案:SELECT A FROM R; SELECT * FROM R WHERE B=17; SELECT * FROM R, S; SELECT A, F FROM R, S WHERE C=D;习题5 设有两个基本表R(A,B,C)和S(A,B,C),试用SQL查询语句表达下列关系代数表达式: RS RS RS A,B(R) B,C(S) 答案:(SELECT * FROM R)UNION(SELECT * FROM S);(SELECT * FROM R)INTERSECT(SELECT * FROM S);(SELECT * FROM R)EXCEPT(SELECT * FROM S);(SELECT A, B FROM R)NATURAL INNER JOIN(SELECT B, C FROM S);或SELECT R.A, R.B, S.CFROM R, SWHERE R.B=S.B; 习题6 试用SQL查询语句表达下列对教学数据库中三个基本表S、SC、C的查询:统计有学生选修的课程门数。求选修C4课程的学生的平均年龄。求LIU老师所授课程的每门课程的学生平均成绩。统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。检索学号比WANG同学大,而年龄比他小的学生姓名。检索姓名以WANG打头的所有学生的姓名和年龄。在SC中检索成绩为空值的学生学号和课程号。求年龄大于女同学平均年龄的男学生姓名和年龄。求年龄大于所有女同学年龄的男学生姓名和年龄。答案:SELECT COUNT(DISTINCT CNO)FROM SC;SELECT AVG(AGE)FROM S, SCWHERE S.SNO=SC.SNO AND CNO=C4;SELECT SC.CNO, CNAME, AVG(GRADE)FROM SC, CWHERE SC.CNO=C.CNO AND TNAME=LIUGROUP BY SC.CNO;SELECT CNO, COUNT(SNO)FROM SCGROUP BY CNOHAVING COUNT(*)>10ORDER BY 2 DESC, CNO ASC;SELECT X.SNAMEFROM S AS X, S AS YWHERE Y.SNAME=WANGAND X.SNO>Y.SNO AND X.AGE<Y.AGE;SELECT SNAME, AGEFROM SWHERE SNAME LIKE WANG%;SELECT SNO, CNOFROM SCWHERE GRADE IS NULL;SELECT SNAME, AGEFROM SWHERE SEX=MAND AGE> (SELECT AVG(AGE)FROM SWHERE SEX=F);SELECT SNAME, AGEFROM SWHERE SEX=MAND AGE>ALL(SELECT AGEFROM SWHERE SEX=F);习题7 试用SQL更新语句表达对教学数据库中三个基本表S、SC、C的各个更新操作:往基本表S中插入一个学生元组('S9','WU',18)。在基本表S中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别,并把检索到的值送往另一个已存在的基本表STUDENT(SNO,SNAME,SEX)。在基本表SC中删除尚无成绩的选课元组。把WANG同学的学习选课和成绩全部删去。把选修MATHS课不及格的成绩全改为空值。把低于总平均成绩的女同学成绩提高5。在基本表SC中修改C4课程的成绩,若成绩小于等于75分时提高5,若成绩大于75分时提高4(用两个UPDATE语句实现)。答案:INSERT INTO S(SNO, SNAME, AGE)VALUES(S9, WU, 18);INSERT INTO STUDENTSELECT SNO, SNAME, SEXFROM SWHERE 80<=ALL(SELECT GRADEFROM SCWHERE SNO=S.SNO);DELETE FROM SCWHERE GRADE IS NULL;DELETE FROM SCWHERE SNO IN (SELECT SNOFROM SWHERE SNAME=WANG);UPDATE SCSET GRADE=NULLWHERE GRADE<60AND CNO IN (SELECT CNOFROM CWHERE CNAME=MATHS);UPDATE SCSET GRADE=GRADE*1.05WHERE SNO IN (SELECT SNOFROM SWHERE SEX=F)AND GRADE< (SELECT AVG(GRADE)FROM SC);UPDATE SCSET GRADE=GRADE*1.04WHERE CNO=C4 AND GRADE>75;UPDATE SCSET GRADE=GRADE*1.05WHERE CNO=C4 AND GRADE<=75;注:这两个语句顺序不能颠倒。习题8 用PL/SQL实现,若MARTIN的佣金不足1500元,则将其工资提升为1500元。答案:declare v_ename varchar2(10):='MARTIN'v_comm m%type;begin select comm into v_comm from emp where ename=v_ename; if nvl(v_comm,0)<1500 then update emp set sal=1500 where ename=v_ename; end if ; -; can not be ignored!commit;end;/习题9 用pl/sql,在EMP表上编写一个触发器,审计任何对sal和comm列的修改,若修改后比原值小,则阻止修改,若可以修改,则将每次修改此两列的数据库用户,修改时间、修改的用户和改前与该后此两列的值存入新建的一个审计表中,并然后测试其正常。答案:create table audit2 ( time DATE, username varchar2(10), befor_sal number(7,2), befor_comm number(7,2), after_sal number(7,2), after_comm number(7,2); create or replace trigger emp_checkbefore update of sal,common emp for each rowwhen (old.dno is not null)begin if (:new.sal < = :old.sal) then raise_application_error(-20000, your changing action is denied ') ;else insert into audit2 values(sysdate,user,:old.sal,:m,:new.sal,:m);end if;end; - update emp set sal=2000 where empno=7654;习题9 用pl/sql,编写一个给职工加工资的存储过程(该过程有两个参数,参数1为要加薪的部门号,参数2为要加薪幅度,部门号为0表示要给所有部门的职工都加),同时将该存储过程放入Test_Package包中。答案:create or replace procedure raise_salary (deptno_id emp.deptno%type, increase real)is begin if(deptno_id=0) then update emp set sal=sal+increase; else update emp set sal=sal+increase where deptno=deptno_id; end if;end;/execute raise_salary(20,100) execute raise_salary(0,100)/*将上小题中存储过程放到一个包里去*/-*package specification*create or replace package Test_Package as procedure raise_salary(deptno_id emp.deptno%type, increase real);end Test_Package;-*package body*create or replace package body Test_Packageas procedure raise_salary (deptno_id emp.deptno%type, increase real)is begin if(deptno_id=0) then update emp set sal=sal+increase; else update emp set sal=sal+increase where deptno=deptno_id; end if;end raise_salary;end Test_Package;/test*execute Test_Package.raise_salary(0,2000);*/ declare begin Test_Package.raise_salary(0,2000); end;习题9试用游标实现:为职工长工资。从最低工资长,工资总额限制在50万元。Declare cursor c1 is select eno,sal from emp order by sal for update of sal ; emp_num number :=0 ; s_sal number ; e_sal number ; e_eno char(3);Begin open c1; select sum(sal) into s_sal from emp ; while s_sal<500000 loop fetch c1 into e_eno,e_sal ; exit when c1%notfound ; update emp set sal=sal*1.1 where eno=e_eno ; s_sal:=s_sal + e_sal*0.1; emp_num:=emp_num+1 ; end loop ; Close c1;insert into msg values(emp_num , s_sal) ;commit ;end;第5章关系数据库设计理论习题1 设关系模式R(ABCD),如果规定,关系中B值与D值之间是一对多联系,A值与C 值之间是一对一联系。试写出相应的函数依赖。答案:解:从B值与D值之间有一对多联系,可写出函数依赖DB。从A值与C值之间有一对一联系,可写出函数依赖AC和CA。习题2 设关系模式R(ABCD),F是R上成立的FD集,F= AB,CB ,则相对于F,试写出关系模式R的关键码。并说明理由。答案:解:R的关键码为ACD。因为从已知的F,只能推出ACDABCD。习题3设关系模式R(ABC),F是R上成立的FD集,F= AC,BC ,试分别求F在模式AB和AC上的投影。答案:答:AB(F)=(即不存在非平凡的FD)AC(F)= AC 习题4 设关系模式R(ABC),F是R上成立的FD集,F= BA,CA ,= AB,BC 是R上的一个分解,那么分解是否保持FD集F?并说明理由。答案:答:已知F= BA,CA ,而AB(F)= BA ,BC(F)=,显然,分解丢失了FD CA。习题5 设关系模式R(ABCD),F是R上成立的FD集,F= AB,BC,AD,DC ,= AB,AC,BD 是R的一个分解。 相对于F,是无损分解吗?为什么? 试求F在的每个模式上的投影。 保持F吗?为什么?答案:答:用测试过程可以知道,相对于F是损失分解。AB(F)= AB ,AC(F)= AC ,BD(F)=。显然,分解不保持FD集F,丢失了BC、AD和DC等三个FD。习题 6 设关系模式R(ABCD),F是R上成立的FD集,F= ABCD,AD 。 试说明R不是2NF模式的理由。 试把R分解成2NF模式集。答案:答:从已知FD集F,可知R的候选键是AB。另外,ABD是一个局部依赖,因此R不是2NF模式。此时R应分解成= AD,ABC ,是2NF模式集。习题 7 设关系模式R(ABC),F是R上成立的FD集,F= CB,BA 。 试说明R不是3NF模式的理由。 试把R分解成3NF模式集。答案:答:从已知FD集F,可知R的候选键是C。从CB和BA,可知CA是一个传递依赖,因此R不是3NF模式。此时R应分解成= CB,BA ,是3NF模式集。习题 8 设有一个记录各个球队队员每场比赛进球数的关系模式R(队员编号,比赛场次,进球数,球队名,队长名)如果规定每个队员只能属于一个球队,每个球队只有一个队长。 试写出关系模式R的基本FD和关键码。 说明R不是2NF模式的理由,并把R分解成2NF模式集。 进而把R分解成3NF模式集,并说明理由。答案:解: 根据每个队员只能属于一个球队,可写出FD 队员编号®球队名;根据每个球队只有一个队长,可写出FD 球队名®队长名;“每个队员每场比赛只有一个进球数”,这条规则也是成立的,因此还可写出FD : (队员编号,比赛场次)®进球数。从上述三个FD可知道,R的关键码为(队员编号,比赛场次)。 从可知,R中存在下面两个FD:(队员编号,比赛场次)®(球队名,队长名)队员编号 ®(球队名,队长名)显然,其中第一个FD是一个局部依赖,因此R不是2NF模式。对R应该进行分解,由第二个FD的属性可构成一个模式,即R1(队员编号,球队名,队长名);另一个模式由R的属性集去掉第二个FD右边的属性组成,即R2(队员编号,比赛场次,进球数)。R1和R2都是2NF模式,因此= R1,R2 R2(队员编号,比赛场次,进球数)中,FD是(队员编号,比赛场次)®进球数,关键码为(队员编号,比赛场次),可见R2已是3NF模式。R1(队员编号,球队名,队长名)中,FD有两个:队员编号®球队名 球队名®队长名关键码为队员编号,可见存在传递依赖,因此R1不是3NF模式。对R1应分解成两个模式:R11(队员编号,球队名),R12(球队名,队长名)。这两个模式都是3NF模式。因此,R分解成3NF模式集时,= R11,R12,R2 。习题9 设有关系模式R(职工名,项目名,工资,部门名,部门经理)如果规定每个职工可参加多个项目,各领一份工资;每个项目只属于一个部门管理;每个部门只有一个经理。 试写出关系模式R的基本FD和关键码。 说明R不是2NF模式的理由,并把R分解成2NF模式集。 进而把R分解成3NF模式集,并说明理由。答案:解: R的基本FD有三个:(职工名,项目名)®工资 项目名 ®部门名 部门名 ®部门经理关键码为(职工名,项目名)。 根据,R中存在下列两个FD:(职工名,项目名)®(部门名,部门经理) 项目名 ®(部门名,部门经理)其中前一个FD是一个局部依赖,因此R不是2NF模式。R应分解成两个模式:R1(项目名,部门名,部门经理)R2(职工名,项目名,工资)R1和R2都是2NF模式。 R2已是3NF模式。在R1中,由于存在两个FD:项目名®部门名部门名®部门经理即存在一个传递依赖,因此R1不是3NF模式。对R1应分解成两个模式:R11(职工名,部门名),R12(部门名,部门经理)。这两个模式都是3NF模式。因此,R分解成3NF模式集时,= R11,R12,R2 。习题 10描述关系模式规范化的过程。答案:第6章数据库设计与维护习题 1 数据库设计步骤有哪些,每一步的任务是什么?答案:需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。 概念结构设计阶段 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以 用E-R图或类图表示。 逻辑结构设计阶段 将概念结构转换为某个DBMS所支持的数据模型(例如关系模型),并对其进行优化。 数据库物理设计阶段 为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。 数据库实施阶段 运用DBMS提供的数据语言(例如SQL)及其宿主语言(例如C),根据逻辑设计和物理 设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 数据库运行和维护阶段 数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断 地对其进行评价、调整与修改。习题 2根据讲义理解设计中每步的任务,及该步中实施的步骤和方法?答案: 1需求分析阶段 系统需求分析的任务和方法 系统调查的内容 系统调查的步骤 系统需求分析方法 数据流图 数据字典及其表示2概念结构设计阶段 概念结构的特点 概念结构的设计方法 概念结构的设计步骤 1、设计局部E-R图 2、综合成初步E-R图(视图的集成) 3、优化成基本E-R图3逻辑结构设计阶段 设计逻辑结构的步骤 E-R模型向关系模型转换 数据模型的优化 设计用户的子模式4数据库物理设计阶段 物理设计步骤 1、确定数据库的物理结构 2、评价物理结构 5数据库实施阶段 数据库实施的工作 一、 定义数据库结构 二、 数据装载 三、 编制与调试应用程序 四、 数据库试运行 6数据库运行和维护阶段 数据库运行与维护的必要性 DBA对运行维护的主要工作 数据库的转储和恢复 数据库的安全性、完整性控制 数据库性能的监督、分析和改造数据库的重组织与重构造习题 3课本P173页17-24答案:(略)第7章数据库保护习题 1 数据库保护的内容,以及内容中每项的具体含义?答案:数据库保护是安全性、完整性、并发控制、恢复的合称。数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄漏、更新或破坏。数据库运行时,应防止输入或输出不符合语义的错误数据,而始终保持其中数据的正确性和相容性。这就是通常所说的数据库的完整性(Integrity),包括实体完整性、参照完整性、用户自定义完整性并发控制是指通过对事务间并发操作进行控制,防止并发操作与数据的不一致性出现,从而实现事务操作的ACID特性,同时提高效率。数据库管理系统(恢复子系统)必须具有把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)的功能,这就是数据库的恢复。习题 2并发操作引起的数据不一致有哪些?并举例说明.答案:出现数据不一致有:1)丢失修改2)读脏数据3)不能重复读(数据不一致或发生幻象)实际例子可以参考课本习题 3什么是封锁?封锁协议有哪些?它们的联系和区别答案:封锁的定义:1)封锁就是一个事务对某个数据对象加锁,取得对它一定的控制,限制其它事务对该数据对象使用。2)并发控制的基本方法就是封锁封锁协议: 0级封锁协议、1级封锁协议、2级封锁协议、3级封锁协议联系和区别可用下表描述:3级封锁协议2级封锁协议1级封锁协议可重复读不读“脏”数据不丢失修改事务结束释放操作结束释放事务结束释放操作结束释放 一致性保证 S 锁 X 锁习题 4 设教学数据库的关系如下:S(SNO,SNAME,AGE,SEX,SDEPT)SC(SNO,CNO,GRADE)C(CNO,CNAME,CDEPT,TNAME)试用多种方法定义下列完整性约束: 在关系S中插入的学生年龄值应在1625岁之间。 在关系SC中插入元组时,其SNO值和CNO值必须分别在S和C中出现。 在关系C中删除一个元组时,首先要把关系SC中具有同样CNO值的元组全部删去。 在关系S中把某个SNO值修改为新值时,必须同时把关系SC中那些同样的SNO值也修改为新值。答案:解:这里每个约束用一种方式定义。(1)用检查子句定义:CHECK(AGE BETWEEN 16 AND 25);(2)在关系SC的定义中,用外键子句定义:FOREIGN KEY(SNO) REFERENCES S(SNO);FOREIGN KEY(CNO) REFERENCES C(CNO);(3)在关系SC的定义中,用外键子句定义:FOREIGN KEY(CNO) REFERENCES C(CNO)ON DELETE CASCADE;(4)在关系SC的定义中,用外键子句定义:FOREIGN KEY(SNO) REFERENCES S(SNO)ON UPDATE CASCADE;习题 5 基本的恢复操作和WAL(先写日志、再写数据)是什么?答案:n基本的恢复操作:n对圆满事务所做过的修改操作应执行redo操作,即重新执行该操作,修改对象被赋予新记录值。n对夭折事务所做过的修改操作应执行undo操作,即撤消该操作,修改对象被赋予旧记录值。n先写日志的原则(WAL)n对于尚未提交的事务,在将DB缓冲区写到外存之前,必须先将日志缓冲区内容写到外存去。n如果先写DB,则可能在写的中途发生系统崩溃,导致内存缓冲区内容丢失,而外存DB处于不一致状态,由于日志缓冲区内容已破坏,导致无法对DB恢复。n日志记录将要发生何种修改。n写入DB表示实际发生何种修改。习题 6故障的种类和恢复方法答案见ppt.习题 8什么是日志文件,它的作用是什么?答案:日志文件是用来记录事务对数据库的更新操作的文件。日志文件在数据库恢复中起着非常重要的作用。可以用来进行事务故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复,在动态转储方式中必须建立日志文件,后援副本和日志文件综合起来才能有效地恢复数据库。在静态转储方式中,也可以建立日志文件,不必重新运行那些已完成的事务程序就可把数据库恢复到故障前某一时刻的正确状态。习题 6课本P201页第16-19题答案:(略)第8章ORACLE的企业管理器(Enterprise Manager)习题 1课本P244页第1-8题、16题。答案:略习题 2试述ORACLE DBA(数据库管理员)工作以及一个典型工作流程。答案:详见 一个典型的应用过程.doc第9章ORACLE的备份与恢复习题 1描述Oracle数据库系统的故障类型与解决办法?答案:详见 本章ppt习题 2描述备份与恢复的含义与相互关系?答案:详见 本章ppt习题 3 描述归档日志模式和不归档日志模式含义,以及对数据库恢复的影响?答案:详见 本章ppt习题 4 描述联机/脱机,逻辑/物理备份,粒度(数据库、表空间、用户、表)概念?答案:详见 本章ppt习题 5 备份的分类与物理/逻辑备份的相互关系,应用场合?答案:详见 本章ppt习题 6非归档日志模式修改为归档日志模式过程?答案:在参数文件 initSID.ora 中设定:log_archive_start = TRUE / FALSE 归档/不归档TRUE:要执行sql> alter database archivelog 启动数据库时确定sql> connect / as sysdba sql> startup mount sql> alter database archivelog - ¬ sql> archive log start - ­ sql> alter
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!