ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:36.56KB ,
资源ID:6070506      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6070506.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库恢复习题.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据库恢复习题.docx

1、数据库恢复习题6 什么是数据库的恢复?恢复的基本原则是什么,恢复如何实现? 数据库的恢复是指当数据库系统发生故障时,通过一些技术, 使数据库从被破坏、不正确的状态恢复到最近一个正确的状态。 恢复的基本原则就是冗余,即数据的重复存储。恢复的常用方法有: (1)定期对整个数据库进行复制或转储; (2)建立日志文件; (3)恢复。用REDO或UNDO处理。 7 数据库的并发操作会带来哪些问题?如何解决? 数据库的并发操作会带来三类问题: (1)丢失更新问题;(具体内容见教材P158) (2)不一致分析问题 (3)“脏数据”的读出。 解决的办法通常是采用“封锁”技术。 8 有哪些“丢失更新”问题?如何

2、处理? (1)并发调度引起的“丢失更新”问题。在并发调度中,如两个事务同时对某数据库进行更新操作, 在操作中丢失了其中某个事务对某数据的更新操作。处理的办法就是对并发操作采用X封锁技术。 (2)由恢复引起的更新丢失现象。采用X封锁以后,先执行事务T1,再执行事务T2,此时, 如果T2做ROLLBACK操作,就把事务T2的更新丢失了。 处理方式是采用PXC协议,不允许事务T1执行解锁操作直到事务执行到终点(COMMIT或ROLLBACK)。 9 为什么DML只提供解除S封锁的操作,而不提供解除X封锁的操作? 为了防止由恢复引起的更新丢失现象,PXC协议规定:X封锁必须保留到事务终点(COMMIT

3、或ROLLBACK)。 因此在DML中,COMMIT或ROLLBACK的语义中包含了X封锁的解除,不用提供解除X封锁的操作。 而对于S封锁而言,它是一种共享型的封锁(读取但不能修改),其数据不可能是未提交的修改, 封锁不必等提交后才能解除,因此可以由事务用UNLOCK解除各自对数据的封锁。 10 为什么有些封锁需保留到事务终点,而有些封锁可随时解除? 因为有的封锁需要更新数据,保留到终点才能确认是否提交或回退以避免脏数据的读出, 所以这些封锁需要保留到事务终点。 而有些事务全部或部分操作只是读取数据,不涉及更新数据操作, 因此这一部分操作的封锁可以随时解除。 11死锁的发生是坏事还是好事?试说

4、明理由。如何解除死锁状态? 死锁的发生即是坏事又是好事。 (1)使并发事务不能继续执行下去,造成时间开销却不产生结果。 (2)在某些时候我们要利用它来解决更新操作导致的数据库不一致状态。 解除死锁状态:抽出某个事务作为牺牲品,把它撤消,做回退操作,解除它的所有封锁,并恢复到初始状态。 12 试叙述串行调度与可串行化调度的区别。 串行调度是多个事务按照一定的次序依次执行;在某一时刻只有一个事务在执行。 而可串行化调度是并发调度中的一个概念。在并发调度中,某一时刻有多个事务同时被处理。 如果某事务集的一个并发调度的结果与某个串行调度等价, 则称此并发调度是是可串行化调度。 (以上几题具体可参照书上

5、p20-21) 13 什么是数据库的完整性? DBMS的完整性子系统的功能是什么? 数据库的完整性是指数据的正确性和相容性。DBMS完整性子系统的功能是: (1)监督事务的执行,并测试是否违反完整性规则; (2)如有违反,则采取恰当的操作,如拒绝、报告违反情况,改正错误等方法进行处理。 14 完整性规则由哪几个部分组成?关系数据库的完整性规则有哪几类? 完整性规则由三部分组成: 触发条件:即什么时候使用规则进行检查; 约束条件:即要检查什么样的错误; ELSE子句:即查出错误后该如何处理。 完整性规则有以下三类: 域完整性规则,用于定义属性的取值范围; 域联系的规则,定义一个或多个关系中,属性

6、值间的联系、影响和约束。 关系完整性规则,定义更新操作对数据库中值的影响和限制。 15 试详述SQL中的完整性约束机制? SQL中的完整性约束规则有主键约束、外键约束、属性值约束和全局约束等多种形式。 主键约束。它是数据中最重要的一种约束。在关系中主键值不允许空,也不允许出现重复, 体现了关系要满足实体完整性规则。主键可用主键子句或主键短语进行定义。 外键约束。根据参照完整性规则,依赖关系中外键或者为空值, 或者是基本关系(参照关系)中的该键的某个值。外键用外键关系子句定义, 并考虑删除基本关系元组或修改基本关系的主键值的影响,依赖关系可按需要采用RESTRICT、SET NULL、CASCA

7、DE方式。 属性值约束。当要求某个属性的值不允许空值时,那么可以在属性定义后加上关键字:NOT NULL , 这是非空值约束。还可以用CHECK子句对一个属性值加以限制以及使用域约束子句CREATDOMAIN 定义新域并加以属性值检查。 全局约束。在关系定义时,可以说明一些比较复杂的完整性约束,这些约束涉及到多个属性间的联系 或不同关系间的联系,称为全局约束。主要有基于元组的检查子句和断言。 前者是对单个关系的元组值加以约束,后者则可对多个关系或聚合操作有关的完整性约束进行定义。 6.17 参照完整性规则在SQL可以用哪几种方式实现?删除基本关系的元组时, 依赖关系可以采取的做法有哪三种?修改

8、基本关系的主键值时,依赖关系可以采取的做法有哪三种? 参照完整性规则要求不引用不存在的实体,参照完整性规则在SQL可用以下几种方式实现: (1)在SQL中采用外键子句定义外键,并考虑删除基本关系元组或修改基本关系的主键值, 对依赖关系产生的影响; (2)在属性值上进行约束如基于属性的检查; (3)全局约束中的基于元组的检查子句等。 删除基本关系元组或修改基本关系的主键值时,依赖关系可以采用的做法有: RESTRICT方式:只有当依赖关系中没有一个外键值与基本关系中要删除/修改的主键值相对应时, 系统才能执行删除/修改操作,否则拒绝删除或修改。 SET NULL方式:删除基本元组时,将依赖关系中

9、所有与基本关系中被删除主键值相对应的外键值置为空值。 修改基本关系的主键值时,将依赖关系中所有与基本关系中被修改主键值相对应的外键值置为空值。 CASCADE方式:若删除则将依赖关系中所有外键值与基本关系中要删除的主键值相对应的元组一并删除, 若修改则将依赖关系中所有与基本关系中要修改的主键值相对应的外键值一并修改为新值。 6.18 试对SQL2中的基于属性的检查约束、基于元组的检查约束和断言 三种完整性约束进行比较:各说明什么对象?何时激活?能保证数据库的一致性吗? 约束形式说明对象激活条件是否保证一致性基于属性的检查只对一个属性值加以约束 插入或修改属性值时不一定 基于元组的检查对单个关系

10、的元组值加以约束在插入或修改元组时 不一定 断言多个关系或聚合操作任何变动保证6.19 设教学数据库的模式如下: S(S#,SNAME,AGE,SEX) SC(S#,C#,GRADE) C(C#,CNAME,TEACHER) 试用多种方式定义下列完整性约束: (1)在关系S中插入学生年龄值应在1625岁之间 (2)在关系SC中插入元组时,其S#值和C#值必须分别在S和C中出现。 (3)在关系SC中修改GRADE值时,必须仍在0100之间。 (4)在删除关系C中一个元组时,首先要把关系SC中具有同样C#的元组全部删去。 (5)在关系S中把某个S#值修改为新值时,必须同时把关系SC中那些同样的S#

11、值也修改为新值。 (1)定义S时采用检查子句: CREAT TABLE S( S# CHAR(4), SNAME char (10) NOT NULL , AGE SMALLINT , PRIMARY key(S#), CHECK (AGE=16 and AGE=0 and AGE=100) ) (4)采用外键约束 CREAT TABLE SC( S# CHAR(4), C# CHAR(4), GRADE SMALLINT, FOREIGN key(S#) REFERENCE S(S#), FOREIGN key(C#) REFERENCE C(C#) ) 若改为:在删除关系C中一个元组时,同

12、时把关系SC中具有同样C#的元组全部删去,则为: . FOREIGN key(C#) REFERENCE C(C#) ON DELETE CASCADE . (5)采用外键约束 CREAT TABLE SC( S# CHAR(4), C# CHAR(4), GRADE SMALLINT, FOREIGN key(S#) REFERENCE S(S#) ON UPDATE CASCADE , FOREIGN key(C#) REFERENCE C(C#) ) 6.20 在教学数据库的关系S、SC、C中,试用SQL2的断言机制定义下列两个完整性约束: (1)学生必须在选修Maths课后,才能选修其

13、他课程。 (2)每个男学生最多选修20门课程 (1) CREAT ASSERTION ASSE1 CHECK ( NOT EXISTS ( SELECT S FROM SC WHERE C# IN (SELECT C# FROM C WHERE CNAMEMATHS) AND S# NOT IN (SELECT S# FROM SC WHERE C# IN (SELECT C# FROM C WHERE CNAME=MATHS); (2) CREAT ASSERTION ASSE2 CHECK ( ALL(SELECT COUNT (SC.C#) FROM S,SC WHERE S.S#=SC

14、.S AND SEX=M GROUP BY S#)=20); 6.21 什么是数据库的安全性?有哪些安全措施? 数据库的安全性是指保护数据库防止不合法的使用,以免数据的泄漏、非法更改和破坏。 可以从以下方面设置数据库的安全措施:环境级、职员级、OS级、网络级和数据库系统级。 (具体可参见教材P173) 6.22对银行的数据库系统应采取哪些安全措施?分别属于哪一级? 答案基本同上一题。 6.23 什么是权限?用户访问数据库可以有哪些权限?对数据库模式有哪些修改权限? 用户使用数据库的方式称为权限。 用户访问数库的权限有:读权限、插入权限、修改权限、删除权限。 用户修改数据库模式的权限有索引权限、

15、资源权限、修改权限、撤销权限。 6.24 试解释权限的转授与回收。 在数据库系统中,为了保证数据的安全性,用户对数据的操作必须首先从DBA处获得权限,才能进行对数据的操作。 同时数据库系统也允许用户将获得的权限转授给其他用户,也允许把已授给其他用户的权限再回收上来。 但应保证转授出去的权限能收得回来。 6.25 SQL 语言中的视图机制有哪些优点? 视图机制使系统具有三个优点:数据安全性、数据独立性和操作简便性。 6.26 SQL2中用户权限有哪几类?并作必要的解释。 SQL2中定义了六类用户权限,分别是: (1)SELECT :允许用户对关系或视图执行SELECT操作。 (2)INSERT

16、:允许用户对关系或视图执行INSERT操作,如果还说明了一个属性表, 那么表示只能插入这些属性的值,关系中其他属性值将置为缺省值或为空值。 (3)DELETE:允许用户对关系或视图执行DELETE操作。 (4)UPDATE:允许用户对关系或视图执行UPDATE操作,如果还说明了一个属性表, 那么表示只能修改这些属性的值,否则表示可以修改关系中任一属性值。 (5)REFERENCES:允许用户定义新关系时,引用其他关系的主键作为外键。 (6)USAGE:允许用户使用定义的域。 6.27 数据加密法有些什么优点?如何实现? 数据加密可以更好地保证数据的完全性。加密采用一定的加密算法给把源文变为密文

17、来实现。 常用的加密算法有替换方法和明键加密法。创建数据库 创建之前判断该数据库是否存在 if exists (select * from sysdatabases where name=databaseName) drop database databaseName go Create DATABASE database-name删除数据库 drop database dbname备份sql server - 创建 备份数据的 device USE master EXEC sp_addumpdevice disk, testBack, c:mssql7backupMyNwind_1.dat

18、- 开始 备份 BACKUP DATABASE pubs TO testBack创建新表 create table tabname(col1 type1 not null primary key,col2 type2 not null,.) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2 from tab_old definition only删除新表 drop table tabname增加一个列 Alter table tabname

19、add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。添加主键 Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col)创建索引 create unique index idxname on tabname(col.) 删除索引:drop index idxname on tabname 注:索引是不可更改的,想更改必须删除重新建。创建视图 create view viewname

20、 as select statement 删除视图:drop view viewname几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like %value1% (所有包含value1这个模式的字符串)-lik

21、e的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 desc 总数:select count(*) as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1separat

22、or几个高级查询运算词 A: UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B: EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C: INTERSECT 运算符 INTERS

23、ECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。使用外连接 A、left outer join: 左外连接(左连接):结果集既包括连接表的匹配行,也包括左连接表的所有行。 SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c B:right outer join: 右外连接(右连接):结果集既包括连接表

24、的匹配连接行,也包括右连接表的所有行。 C:full outer join: 全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。编辑本段提升复制表 (只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 11 法二:select top 0 * into b from a拷贝表 (拷贝数据,源表名:a 目标表名:b) (Access可用) insert into b(a, b, c) select d,e,f from b;跨数据库之间表的拷贝 (具体数据使用绝对路径) (Access可用) insert

25、into b(a, b, c) select d,e,f from b in 具体数据库 where 条件 例子:.from b in &Server.MapPath(.&data.mdb & where.子查询 (表名1:a 表名2:b) select a,b,c from a where a IN (select d from b 或者: select a,b,c from a where a IN (1,2,3)显示文章、提交人和最后回复时间 select a.title,a.username,b.adddate from table a,(select max(adddate) add

26、date from table where table.title=a.title) b外连接查询 (表名1:a 表名2:b) select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c在线视图查询 (表名1:a select * from (Select a,b,c FROM a) T where t.a 1;between的用法 between限制查询数据范围时包括了边界值,not between不包括 select * from table1 where time between time1 and ti

27、me2 select a,b,c, from table1 where a not between 数值1 and 数值2in 的使用方法 select * from table1 where a not in (值1,值2,值4,值6)删除主表中已经在副表中没有的信息 两张关联表delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1四表联查问题 select * from a left inner join b on a.a=b.b right inner joi

28、n c on a.a=c.c inner join d on a.a=d.d where .日程安排提前五分钟提醒 SQL: select * from 日程安排 where datediff(minute,f开始时间,getdate()5一条sql 语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段前10条记录 select top 10 * form table1 where 范围选

29、择排名 选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.) select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)派生结果表 包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表 (select a from tableA except (select a from tableB) except (select a from tableC)随机取出10条数据 select top 10 * from tablename order by newid()随机选择记录 select newid()删除重复记录 Delete from tablename where id n

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1