范文为教学中作为模范的文章,也常常用来指写作的模板。常常用于文秘写作的参考,也可以作为演讲材料编写前的参考。范文书写有哪些要求呢?我们怎样才能写好一篇范文呢?以下是我为大家搜集的优质范文,仅供参考,一起来看看吧
数据库原理及应用操作题篇一
范式是衡量关系模式优劣的标准。范式级别越高,其数据冗余和操作异常现象就越少。第一范式:如果一个关系模式r的所有属性都是不可分的基本数据项,则这个关系属于第一范式。第二范式:若关系模式r属于第一范式,且每个非主属性都完全函数依赖于主键,则r属于第二范式。第三范式:若关系模式r属于第一范式,且每个非主属性都不传递依赖于主关键字,则r属于第三范式。bc范式:若关系模式r属于第一范式,且每个属性都不传递依赖于主关键字,则r属于bc范式。
2对模式的分解显然不是随意的,主要涉及以下两个原则:无损联结:当对关系模式r进行分解时,r的元组将分别在相应属性集进行投影而产生新的关系。如果对新的关系进行自然联接得到的元组的集合与原关系完全一致,则称为无损联结。保持依赖:当对关系模式r进行分解时,r的函数依赖集也将按相应的模式进行分解。如果分解后总的函数依赖集与原函数依赖集保持一致,则称为保持依赖。
3事务的定义:事务是数据库的逻辑工作单位,由用户定义的一组操作序列组成,序列中的操作要么全做要么全不做。
4简述事务所具有的acid(原子性,一致性,隔离性,持续性)特性:事务的acid特性是: 原子性:事务是一个不可分割的单位。一致性:事务对数据库操作的结果是将数据库从一个一致性状态变为另一个一致性状态。隔离性:多个事务的并发执行不互相干扰。持续性:事务一旦提交,它对数据库中数据的改变就是永久性的。5事务的调度:事务的执行次序称为调度。若多个事务是按照某一次序串行地执行,则称事务的调度是串行调度。若多个事务同时交叉地并行执行,则称事务的调度为并发调度。
6事务并发执行产生的不一致情况及避免:并发操作可能会产生丢失修改,不能重复读和读”脏”数据这三种不一致情况,采用封锁机制来进行并发控制,可避各种不一致情况。一级封锁协议可以避免丢失修改,二级封锁协议可以避免丢失修改和读”脏”数据,三级封锁协议可以避免丢失修改、不能重复读和读”脏”数据。
7事务的commit语句和rollback语句的功能是什么?答:commit语句表示事务执行成功地接结束(提交),此时告诉系统,db要进入一个新的正确状态,该事务对db的所有更新都已交付实施(写入磁盘)。rollback语句表示事务执行不成功地结束(应该“回退”)此时告诉系统,已发生错误,db可能处在不正确的状态,该事务对db的所有更新必须被撤消,db应恢复该事务到初始状态。
8活锁和死锁:活锁:在多个事务并发执行的过程中,可能会存在某个总有机会获得锁的事务却永远也没得到锁的现象,可以通过“先来先服务”的策略预防活锁的发生。死锁:在多个事务并发执行过程中,多个并发事务处于相互等待的状态的现象。
9死锁的预防:数据库当中预防死锁的方法有两种。第一种方法是要求每个事务必须一次性地将所有要使用的数据加锁或必须按照一个预定的加锁顺序对使用到的数据加锁。第二种方法是每当处于等待状态的事务由可能导致死锁时,就不再等待下去,强行回滚该事务。
10完整性约束的定义:关系数据库提供的三类完整性约束:实体完整性、参照完整性和用户自定义完整性。实体完整性:实体完整性约束是指任何基本表(关系)的主键(主关键字)中的每一个属性列都不能取空值,即基本表中的每一个元组在主键上的分量都有值。参照完整性:根据参照完整性原则,用户只要定义了某一个关系(基本表)的外键(外部关键字),系统就会控制外键的值要么为空,要么等于被参照关系中某一个主键的值,这就是系统对外键的一种约束。用户定义完整性:用户定义完整性约束条件的作用对象可以是属性列、元组或关系(基本表),其中对属性列的约束可以规定属性列的数据类型、取值范围等;对元组的约束可以规定元组中各属性间的相互关系;而对关系的约束则可以规定各元组间或关系间的相互联系。
11故障恢复的原则:对数据库的影响有两种可能性:一是数据库本身被破坏;二是数据库没有被破坏,但数据可能不正确,这是因为事务的运行被非正常终止造成的。12恢复算法一般由两部分组成:在正常事务处理时采取措施,保证有足够的冗余信息可用于故障恢复。故障发生后采取措施,将数据库内容恢复到某个保证数据库一致性、事务原子性及持久性的状态。
13数据库在运行过程中可能产生的故障有哪几类? 答:1)事务故障:事务在运行过程中由于种种原因,如输入数据的错误,运算溢出,违反了某些完整性限制,某些应用程序的错误,以及并行事务发生死锁等,使事务未能运行到正常中指点之前就被撤消了,这种情况称为“事务故障”。2)系统故障:系统故障是指系统在运行过程中,由于某些原因,如os和dbms代码错误,操作员操作事物。特定类型的硬件错误(cpu故障),突然停电等造成系统停止运行,致使事物在执行过程中以非控方式中指。这时。内存中的信息丢失,而存储在外存储上的数据未受影响,这种情况称为“系统故障”。3)介质故障:系统在运行过程中,由于某种硬件故障,如磁盘损坏,磁头碰撞,或由于os的某种潜在的错误。瞬间强磁场干扰,使存储在外存的数据部分损失或全部损失,称之为“介质故障”。14故障恢复技术:数据转储、日志文件、检查点方法、数据库镜像
15关系的完整性约束:域完整性约束:关系中属性的值应是域中的值,并由语义决定其能否为空值。实体完整性约束:关系中的主键不能为空值。参照完整性约束:关系的外键必须是另一个关系主键的有效值或者是空值。用户自定义完整性约束:正对某一具体数据的约束条件,由应用环境决定。
16故障恢复原理是冗余可分为副本和日志。恢复算法:在正常事物处理时采取措施,保证有足够的冗余信息可用于故障恢复、故障发生后采取措施,将数据库内容恢复到某个保证数据库一致性、事物原子性及持久性的状态。
17事务故障的恢复:事务故障是指事务在运行至正常终止点前被中止,这时恢复子系统应利用日志文件撤消(undo)此事务已对数据库进行的修改。事务故障的恢复是由系统自动完成的,对用户是透明的,系统的恢复步骤是:⑴ 反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。⑵ 对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库。这样,如果记录中是插入操作,则相当于做删除操作(因此时“更新前的值”为空)。若记录中是删除操作,则做插入操作,若是修改操作,则相当于用修改前值代替修改后值。⑶ 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。⑷ 如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。
18系统故障的恢复:系统故障造成数据库不一致状态的原因有两个,一是未完成事务对数据库的更新可能已写入数据库,二是已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。因此,恢复操作就是要撤销故障发生时未完成的事务,重做已完成的事务。系统恢复步骤如下:正向扫描日志文件,即从头扫描日志文件,找出在故障发证前已经提交的事务,将其事务标示记入重做队列,同时找出故障发证时尚未完成的事务,将其事务标识计入撤销队列、对撤销队列中的各个事务进行撤销处理、对重做队列中的各个事务进行重做扫描
19日志文件作用及建立原因:答:日志文件是用来记录事务对数据库的更新操作的文件。目的是进行事物故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。
20三级模式:三级模式结构:数据库的三级模式由外模式、概念模式和内模式三级模式构成。概念模式:简称模式,又称数据库模式、逻辑模式。一个数据库只有一个概念模式,它是数据库系统三级模式结构的中间层,概念模式是数据库中全体数据的逻辑描述,而不是数据库本身,它是装配数据的一个结构框架。外模式:外模式简称子模式,又称用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是用户与数据库系统之间的接口。一个数据库可以有多个外模式,设置外模式的优点如下:方便用户使用,简化用户接口、保证数据的独立性、有利于数据共享、有利于数据安全和保密。内模式:内模式也称存储模式。是对数据库中数据物理结构和存储方式的描述,是数据在数据库内部的表示形式。一个数据库只能有一个内模式。21两级映像:外模式/概念模式映像:外模式/概念模式映像定义了各个外模式与概念模式间的映像关系。概念模式/内模式映像:概念模式/内模式映像定义了数据库全局逻辑结构与存储结构之间的对应关系。
22两极结构的独立性:物理数据独立性:如果数据库内模式要修改,即数据库的物理结构有所变化,那么只要对概念模式/内模式做相应的修改即可。概念模式/内模式提供了数据的物理数据独立性。逻辑数据独立性:如果概念模式要修改,例如增加记录类型或增加数据项,那么只要对外模式/概念模式映像做相应的修改,就可以使外模式和应用程序尽可能保持不变。这样,就称数据库打到了逻辑数据独立性。外模式/概念模式映像提供了数据的逻辑独立性。
23数据库技术的发展阶段:工管理阶段(数据部保存、没有对数据进行管理的软件系统、没有文件的概念、一组数据对应于一个程序,数据时面向应用的)、文件系统阶段(数据需要长期保存在外存上供反复使用、程序和数据之间有了一定得独立性、文件的形式已经多样化、数据的存取基本以记录为单位)、数据库系统阶段(数据结构化、数据共享、减少数据冗余、具有较高的数据独立性、方便用户接口、统一的数据管理与控制功能)
某校与教学管理相关的3个关系模式的结构如下: 学生(学号、姓名、年龄、性别、所在系)课程(课程号、课程名、开课系、任课教师)学习(学号、课程号、成绩)试进行如下操作:
1.创建“教学”数据库,在“教学”数据库中创建“学生”、“课程”、“学习”这3个基本表,并说明主键和外键。2.使用sql的查询语句表达下列查询(1)查询刘老师所授课程的课程号和课程名(2)查询年龄大于23岁的男学生的学号和姓名
(3)查询至少修读刘老师所授课程中一门课程的女学生和姓名(4)查询王乐同学不学的课程的课程号(5)查询至少修读两门课程的学生学号
(6)查询全部学生都修读的课程的课程号与课程名(7)查询修读课程中包含刘老师所授课程的学生学号
3)select 姓名 from 学生 where 性别=‘女’ and exists(select * from 学习where 学习.学号=学生.学号 and 课程号 in(select 课程号 from 课程 where 任课教师 like ‘刘%’))4)select 课程号 from 课程 where not exists(select * from 学习where 学习.课程号=课程.课程号 and 学号 in(select 学号 from 学生 where 姓名=‘王乐’))5)select 学号 from 学生 group by 学号 having count(*)>=2 6)select 课程号,课程名 from 课程 where not exists(select * from 学生 where not exists(select * 学号 from 学习where 学习.课程号=课程.课程号 and 学习.学号=学生.学号))7)select 学号 from 学习where exists(select * from 学习where 课程号 in(select * from 课程号 from 课程 where 任课教师 like ‘刘%’))试用sql查询语句表达下列对教学数据库中3个基本表“学生”、“课程”、“学习”的查询(1)统计有学生修读的课程门数(2)求修读c4课程的学生的平均年龄
(3)求刘老师所授课程的每门课程的学生平均成绩
(4)统计每门课程学生的修读人数(超过10人的课程才统计),要求输出课程号和修读人数,查询结果按人数降序排列,若人数相同,按课程号升序排列(5)查询学号比王乐同学大,而年龄比他小的学生姓名(6)查询姓名以王打头的所有学生的姓名和年龄(7)在“学习”表中检索成绩为空值的学生学号和课程号(8)求年龄大于女同学平均年龄的男学生姓名和年龄(9)求年龄大于所有女同学年龄的男学生姓名和年龄 select count(distinct 课程号)from 学习
select avg(年龄)from 学生 where exists(select * from 学习where学生.学号=学习.学号 and 课程号=’c4’)select avg(成绩)from 学习where group by 课程号 having 课程号 in(select 课程号 from 课程 where 任课教师 like ‘刘%’)select 课程号,count(*)as c_count from 学习having c_count>10 order by c_count desc,课程号
select 姓名 from 学生 where 学号>all(select 学号from 学生where 姓名=’王乐’)and 年龄(select avg(年龄)from 学生 where 性别=’女’)select 姓名, 年龄 from 学生where 性别=’男’ and年龄>(select max(年龄)from 学生 where 性别=’女’)试用sql更新语句表达对“教学”数据库中3个基本表“学生”、“课程”和“学习”的各个更新操作(1)向基本表“学生”中插入一个学生组(‘s009’,‘吴’,18)
(2)在基本表“学生”中查询每一门课程成绩都大于等于80分的学生学号、姓名和性别,并把查询到的值送往另一个已存在的基本表“结果”(学号,姓名,性别)中(3)在基本表“学习”中删除尚无成绩的元组
(4)把王乐同学在“学习”基本表中的课程和成绩全部删除(5)把修读java课程不及格的成绩全改为空值(6)把低于总平均成绩的女同学成绩提高5%(7)在基本表“学习”中修改c4课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个update语句实现)insert into 学生 values(‘s009’,’吴’,18)insert into 结果(学号,姓名,性别)select学号,姓名,性别 from 学生 where not exists(select * from 学习where 学生.学号=学习.学号 and 成绩<80)delete from 学习where 成绩 is null delete from 学习where 学号 in(select 学号 from 学生 where 姓名=’王乐’)update 学习set成绩=null where 成绩<60 and 课程号 in(select 课程号 from 课程 where 课程名=’java’)update 学习set 成绩=成绩*1.05 where 成绩<(select avg(成绩)from 学生)update 学习set 成绩=成绩*1.04 where 成绩>75 and 课程号=’c4’ update 学习set 成绩=成绩*1.05 where 成绩<=75 and 课程号=’c4’
数据库原理及应用操作题篇二
一、单选题 关系演算的基础是()
a、形式逻辑中的逻辑演算
b、形式逻辑中的关系演算
c、数理逻辑中的谓词演算
d、数理逻辑中的形式演算
答案:c 关于数据库系统的说法不正确的是().
a、数据库系统是指引入数据库技术后的计算机系统
b、狭义地讲,数据库系统就是数据库管理系统
c、狭义地讲,数据库系统由数据库和数据库管理系统组成
d、广义地讲,数据库系统由数据库、数据库管理系统(及其开发工具)、应用系统,数据库管理员和用户构成答案:b 对数据库并发操作有可能带来的问题包括()
a、读出“脏数据”
b、带来数据的冗余
c、未被授权的用户非法存取数据
d
答案:a 事务有多个性质,其中不包括()
a、一致性
b、唯一性
c、原子性
d
答案:b 属性类型允许是基本数据类型、结构类型和集合类型的模型是()
a、平面关系模型
b、嵌套关系模型
c、复合对象模型 d、分布式关系模型
答案:c 反映现实世界中实体及实体间联系的信息模型是()
a、关系模型
b、层次模型
c、网状模型
d、e-r
答案:d 设在关系模型中,同一表中的不同属性命名()。
a、可相同
b、必须相同
c、必须不同
d、可相同,但数据类型不同
答案:c 关系模式的规范化过程主要是为克服数据库逻辑结构中存在的插入异常、删除异常以及()
a、数据不一致性
b、结构不合理
c、数据冗余度大
d、数据丢失
答案:c 局部e-r图中实体类的冲突主要类型是().
a、属性冲突、命名冲突和结构冲突
b、命名冲突和属性冲突
c、属性冲突
d、结构冲突和命名冲突
答案:a 在关系演算中,元组变量的变化范围是().
a、某一命名的关系
b、数据库中的所有关系
c、某一个域 d、数据库中的所有域
答案:c 数据字典的内容应包括().
a、数据项,数据结构
b、数据流,数据存储,处理过程
c、数据项,数据结构,数据流,数据存储,处理过程
d、数据结构,数据流
答案:c 关于数据处理和数据管理,下列叙述正确的是()
a、数据处理经历了人工系统、文件系统、数据库系统三个阶段
b、数据处理是数据管理的中心问题
c、数据管理的主要工作是对数据进行收集、分类整理、组织、存储、维护、检索等操作
d、数据管理技术优劣不影响数据处理的效率
答案:c sql的全局约束是指基于元组的检查子句和()
a、非空值约束
b、域约束子句
c、断言
d、外键子句
答案:c
14下列四项中,不属于数据库特点的是()
a、数据共享
b
c、数据冗余很高
d
答案:c
15关系数据模型的三个组成部分中,不包括()
a、完整性规则
b、数据结构 c、数据操作
d
答案:d
16如何构造出一个合适的数据逻辑结构是()主要解决的问题。
a、关系数据库优化
b、数据字典
c、关系数据库规范化理论
d
答案:c 下面系统中不属于关系数据库管理系统的是()
a、oracle
b、ms sql server
c、ims
d、db2 答案:c 有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于()
a、实体完整性约束
b、参照完整性约束
c、用户自定义完整性约束
d、关键字完整性约束
答案:a 关于数据库的说法不正确的是().
a、一个相互关联的数据集合
b、包含了关于某个企业或组织的信息
c、是信息系统的核心和基础
d、是一种数据管理的软件
答案:d
每个属性,都有一个取值范围,这叫属性()。
a、域
b、值
c、主属性
d、关键字
答案:a 已知学生关系:(学号,性别,年龄,籍贯),若执行sql语句:select 姓名,年龄 from 学生 where 籍贯='北京' 说明该语句对学生执行了()操作.
a、交和选择
b、投影和选择
c、选择和连接
d、连接和投影
答案:b 以下数据库的数据模型中,现今使用的主要的数据模型是().
a、层次模型
b、网状模型
c、关系模型
d、面向对象模型
答案:c 概念设计的步骤是().
a、进行数据抽象,设计局部概念模式;评审;集成局部概念模式,得到全局概念模式
b、进行数据抽象,设计局部概念模式;集成局部概念模式,得到全局概念模式;评审
c、进行数据抽象,设计局部概念模式;集成局部概念模式,得到全局概念模式
d、评审;进行数据抽象,设计局部概念模式;集成局部概念模式,得到全局概念模式
答案:b 因为每个中间运算的结果被创建,然后用于下一层的运算,这种查询表达式的计算方法被称为()计算.
a、实体化
b、流水线
c、双缓冲
d、临时区
答案:a sql语言通常称为()
a、结构化查询语言
b
c、结构化定义语言
d、结构化操纵语言
答案:a sql中的视图提高了数据库系统的()
a、完整性
b、并发控制
c、隔离性
d、独立性
答案:d 在二维表中,不允许“表中套表”是指()。
a、分量是原子的 b、值是原子的 c、属性是原子的 d、域是原子的答案:a 数据的逻辑独立性是指()
a、模式变,应用程序不变
b、应用程序变,模式不变
c、内模式变,应用程序不变
d、应用程序变,内模式不变
答案:d 下列不是数据库系统与文件系统的本质区别是().
a、数据库系统实现了整体数据结构化,而文件系统只考虑某个具体应用的数据结构
b、数据具有较高的共享性,减少了冗余;文件之间基本不能共享,导致数据冗余度高
c、数据库系统中程序与数据的逻辑结构和物理存储相独立,而文件系统中数据逻辑结构与文件结构紧密联系
d、数据由数据库管理系统统一管理和控制
答案:a 如果文件没有使用索引,并按某一属性排序,且选择条件是镇属性上的等值比较,则可用()的选择运算算法来定位符合选择条件的记录.
a、线性搜索
b、二分搜索
c、聚簇索引
d、辅助索引
答案:b
要保证数据库逻辑数据独立性,需要修改的是()
a、模式
b
c、模式与外模式的映射
d、内模式
答案:c
在笛卡尔积可看成为一张()。
a、一维表
b、二维表
c、三维表
d、四维表
答案:b
关系模型是().
a、用关系表示实体
b、用关系表示联系
c、用关系表示实体及其联系
d、用关系表示属性
答案:c
对于经常在查询条件中出现的属性或者经常在聚集函数中出现的属性,可以考虑在这些属性上建立().
a、视图
b、关系
c、连接
d、索引
答案:d
35()是相互矛盾的,数据库物理设计过程中需要对它们进行折中权衡.
a、时间效率,维护代价
b、时间效率,空间效率
c、时间效率,空间效率,维护代价
d、空间效率,维护代价
答案:c
分布式数据库系统中分片模式和分配模式均是()
a、全局的 b、局部的 c、分布的 d、集中的答案:a
学生社团可以接纳多名学生参加,但每个学生只能参加一个社团,从社团到学生之间的联系类型是()
a、多对多
b、一对一
c、多对一
d
答案:d
关系代数表达式的优化策略中,首先要做的是()
a、对文件进行预处理
b、尽早执行选择运算
c、执行笛卡儿积运算
d 答案:b
在关系代数运算中,五种基本运算为()
a、并、差、选择、投影、自然连接
b、并、差、选择、交、投影
c、并、差、选择、投影、笛卡儿积
d、并、差、交、选择、笛卡儿积
答案:c
40()是关系代数的基本运算之一.
a、交
b、除
c、关系模型
d、广义笛卡儿积
答案:d
如果文件没有使用索引,并按某一属性排序,且选择条件是镇属性上的等值比较,则可用()的选择运算算法来定位符合选择条件的记录.
a、线性搜索
b、二分搜索
c、聚簇索引
d、辅助索引
答案:b
在关系数据库中,外模式对应的是()。
a、基本表
b、视图
c、存储文件
d、关系
答案:b
事务(transaction)是用户定义的一个数据库操作序列,下列()不是它的特性。
a、原子性
b、一致性
c、并发性 d、持续性
答案:c
根据关系模型的完整性规则,一个关系中的主码().
a、不能有两个
b、不可作为其他关系的外部键
c、可以取空值
d、不可以是属性组合答案:a
数据库逻辑设计的主要任务是()。
a、建立e-r图和说明书
b、创建数据库说明
c、建立数据流图
d、把数据送入数据库
答案:c
二、填空题 sql语言是一种________型数据库系统,它是以_______的形式组织起来的数据集合,二维表中的一行,在关系中称为_______;二维表中的一列,在关系中称为_______。
答案:关系型、表、元组、属性从逻辑结构的角度进行分类,数据库的数据模型主要有________和________模型.
答案:格式化、关系引起数据不一致的主要原因是事务的____________在并发中遭到了破坏.
答案:隔离性在函数信赖中,平凡的函数信赖根据armstrong推理规则中的_______________律就可推出。
答案:自反数据库物理设计中选择何种存储结构与选定的_________________类型有关。
答案:dbms 一个关系表中只能有___________个primary key,unique可以有______多个.
答案:一,任意事务必须具有的四个性质是: 原子性、____________、隔离性、持久性。
答案:不确定关键字是用来标识_________________。
答案:实体数据库操纵技术就是指插入、_______、_______和检索表中数据的技术.其中,前三种又被并称为更新操作.
答案:删除、修改数据库中要储存批发商与零售商的供货合同信息。一个合同中可以填写多种商品,每种商品需要记录定货数量。对应的关系模式为:合同(合同号,商品号,商品名,商品单价,数量),该关系的码是________________________。
答案:合同号,商品号事务必须具有的四个性质是:原子性、一致性、_______________和持久性。
答案:隔离性______是事务t在对数据项a修改之前,必须先对数据a加排它锁,直到事务结束才释放。
答案:一级封锁协议.假定利用create table命令建立如下一个表:book(总编号c(6),分类号c(3),书名c(16),单价n(10,2)),则单价字段的类型为_____型,字段宽度为_____,其中包含有_______位小数.
答案:numeric、10、2 从逻辑结构的角度进行分类,数据库的数据模型主要有格式化和________模型.
答案:关系
一般地,属性个数少的表上不建_______________,不同属性值少的属性上也不用建________________,元组数少或跟新频率高的关系上也不建索引.答案:索引,索引设关系模式r(a,b,c),f是r上成立的fd集,f = {b→a,b→c},则分解ρ = {ab,ac}丢失的fd是_______________。
答案:b→c 如果记录是做插入操作,那么撤销操作相当于__________________。
答案:做数据删除操作关系数据库的关系演算语言是以_______________为基础的dml语言。
答案:谓词演算实体是______“事件”或“物体’。
答案:客观存在并可相互区别的关系查询处理可以分4个步骤,包括_____,_____、______、______。
答案:查询分析和检查、查询翻译、查询优化、查询执行。用树型结构表示实体类型及实体间联系的数据模型称为_______________。
答案:层次模型分布式数据库中定义数据分片时,必须满足三个条件:完备性条件、重构条件和_______________。
答案:不相交条件在有泛化/细化联系的对象类型之间,较低层的对象类型称为_______________。
答案:子类型弱实体集的属性_______。
答案:不足以形成主码_____________是衡量模式优劣的标准,_______________表达了模式中数据依赖之间应满足的联系. 答案:范式,范式一个类可以从直接的或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的_______________。
答案:可重用性(或共享性)第一范式是指同一列中不能有________,即实体中的某个属性必须是原于项.
答案:多个值分解模式的目标是____________________,此外要遵守两个基本原则:分解是无损的,分解保持函数依赖。
答案:达到更高级的范式分解模式的目标是达到更高级的范式,此外要遵守两个基本原则:分解是无损的,________________________。
答案:分解保持函数依赖关系规范化的过程实质是___________的过程。
答案:不断分解
三、分析题 现有如下的银行系统关系: branch(branch_name nvarchar(10),branch_city nvarchar(10),asserts int)customer(customer_name nvarchar(10),customer_street nvarchar(10),customer_city rvarchar(10))loan(10an_number nvarchar(10),branch_name nvarchar(10),amount int)borrower(customer_name nvarchar(10),loan_number nvarchar(10))account(account_number nvarchar(10),branch_name nvarchar(10),balance int)depositor(customer_name nvarchar(10),account_number nvarchar(10))试用sql查询语句来表达下列查询:(1)创建branch表,其中branch_name和branch_city为联合主键.(2)向branch表中增加一个“address”列,其数据类型为10个字长的unicode字符串.(3)删除branch表的address列.(4)查询位于’广州’的,资产在10,000,000以上的的支行名.
答案:(1)创建branch表,其中branch_name和branch_city为联合主键 3分 create table branch(branch_name nvarchar(10), branch_city nvarchar(10), asserts int primary key(branch_name, branch_city))(2)向branch表中增加一个“address”列,其数据类型为十个字长的unicode字符串。2分 alter table branch add address nvarchar(10)(3)删除branch表的address列 2分 alter table branch rop column address(4)查询位于“广州”的,资产在10,000,000以上的的支行名。3分 select branch_name from branch where asserts> 10000000 一个电影资料数据库假定有三个基本表:电影表movie、演员表actor和电影主演表acts, 这三个关系的模式如下:(1)电影表movie(电影名称title,制作年份year,长度length).(2)演员表actor(姓名name,地址address,性别gender,出生日期birthdate).(3)电影主演表acts(电影名称movietitle,制作年份movieyear,主演姓名actorname). 用sql实现如下查询或更新操作:(1)统计1999年制作电影的平均长度和最短长度.(2)在1999年主演过电影的演员姓名.(3)把电影 ”的世界” 的长度改为110分钟.(4)删除1940年以前制作的所有电影记录以及电影主演记录.
答案:(1)统计1999年制作电影的平均长度和最短长度。2分 select平均长度=avg(length), 最短长度=min(length)from movie where year=1999(2)在1999年主演过电影的演员姓名 2分 select actorname from movie inner join acts on =itle where =1999(3)把电影“我的世界”的长度改为110分钟。3分 update movie set length=110 where title=’我的世界’(4)删除1940年以前制作的所有电影记录以及电影主演记录。3分 delete acts where movietitle in(select title from movie where year< 1904)delete movietitle where year< 1940 现有如下的银行系统关系: branch(branch_name nvarchar(10),branch_city nvarchar(10),asserts int)customer(customer_name nvarchar(10),customer_street nvarchar(10),customer_city rvarchar(10))loan(10an_number nvarchar(10),branch_name nvarchar(10),amount int)borrower(customer_name nvarchar(10),loan_number nvarchar(10))account(account_number nvarchar(10),branch_name nvarchar(10),balance int)depositor(customer_name nvarchar(10),account_number nvarchar(10))试用sql查询语句来表达下列查询:(1)向branch表中增加一个“address”列,其数据类型为10个字长的unicode字符串.(2)创建一个视图来显示每个顾客的顾客信息,贷款总额.(3)删除所有贷款在100以下的贷款记录.(4)删除每家支行贷款数额最大的记录.
答案:(1)向branch表中增加一个“address”列,其数据类型为十个字长的unicode字符串。alter table branch add address nvarchar(10)(2)创建一个视图来显示每个顾客的顾客信息、贷款总额。3分 create view customer_loan as select customer_name, amount_total=sum(amount)from borrower as t1 left join loan as t2 on _number=_number group by customer_name(3)删除所有贷款在100以下的贷款记录 2分 delete from loan where amount< 100(4)删除每家支行贷款数额最大的记录 3分 delete loan where not exists(select * from loan as t2 where _name=_name and < )
四、问答题已知学生关系模式student(sno,sname,sdept,mn,course,grade),其中:sno:学号,sname:学生姓名,sdept:系名,mn:系主任名,course:课程名,grade:成绩.(1)写出关系模式student的基本函数依赖及其主码.(2)将关系模式分解为2nf,并说明为什么?(3)将关系模式分解为3nf,并说明为什么? 答案:答:(1)该关系模式存在以下函数依赖: sno→sname,sdept→mn,sno→sdept,(sno,course)→grade 显然关系模式的码为sno,course。(2)原关系模式是属于1nf的,非主属性grade完全按函数依赖于码,而其他非主属性对码的函数依赖均为部分函数依赖,所以不属于2nf。可将该关系模式分解为2nf如下: student1(sno,sname,sdept,mn)student2(sno,course,grade)(3)(2)中的关系模式student1中存在sno→sdept,sdept→mn,即非主属性mn传递依赖于码sno,所以student1可以进一步分解为3nf如下: student11(sno,sname,sdept)student12(sdept,mn)而student2中不存在非主属性对码的传递依赖,故已经属于3nf。最终原关系模式分解为3nf得到: student11(sno,sname,sdept)student12(sdept,mn)student2(sno,course,grade)请举一个属于2nf,但不属于3nf的关系模式的例子,并指出可能出现的“异常”。
答案:关系模式r(a, b, c, d, e),在r上有如下函数依赖集:f={ab→e,b→c,c→d} 数据库设计的基本步骤分为哪几个阶段,各阶段结束后分别产生哪些文档或得到什么结果。
答案:数据库设计的基本步骤(六个阶段)需求分析、概念结构设计(e-r图)、逻辑结构设计(规范化)、物理结构设计、数据库实施、数据库运行和维护什么是数据库的物理设计? 答案:答:根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这个过程就叫做数据库的物理设计。用实体完整性规则解释关系数据库中,表的主码(主键)不能取空值的原因.
答案:答:(1)关系对应着事物实体集,如学生关系对应于一个学生集合;(2)现实世界的实体是可区分的,如学号是区分不同学生的标志;(3)关系以主码作为区分关系元组的惟一性标志,因此,候选码中的属性(主属性)不能取空值。否则,关系的一个元组就不能被标识,也就是说有个事物实体是不能区分的,这就和(2)矛盾。这种述规则称为关系的实体完整性。例如:邮政局派信,显然,信封上的通讯地址和姓名是主属性。如果这两个属性之一取空值,即“不知道”,那么信件将无法投递给收信人。这样,这封信就是不完整的。数据库的基本恢复技术有哪些?
答案:答:基于日志的数据恢复和基于数据转储的数据恢复。数据库为什么要并发控制?
答案:答:多个事务并发执行时,使用并发控制可以避免数据不一致。
数据库的体系的三级结构。
答案:答:数据库的体系的三级结构指数据库系统是由模式、外模式和内模式三级构成的。关系规范化一般应遵循的原则是什么?各范式之间有什么关系? 答案:(1)关系模式规范化一般应遵循的原则如下: ① 将关系模式进行无损连接分解,在关系模式分解的过程中,数据不能丢失或增加,要保持数据的完整性; ② 合理地选择规范化程度。在规范化时,既要考虑到低级范式造成的冗余度高、数据不一致性,又要考虑到高级范式带来的查询效率低的问题; ③ 要考虑正确性和可实现原则,即要保证规范化过程是正确的,并且通过规范化能达到要求。(2)各范式之间的关系为:4nf bcnf 3nf 2nf 1nf,1nf消去非主属性对码的部分函数依赖便得到2nf,2nf消去非主属性对码的传递函数依赖便得到3nf,3nf消去主属性对码的部分和传递函数依赖便得到bcnf,bcnf消去非平凡且非函数依赖的多值依赖得到4nf。
数据库原理及应用操作题篇三
1.请写出sql server 2000中的六种约束。
主键约束,唯一键约束,检查约束,默认值约束,外键约束,级联参照完整性约束
2.在关系模型中,有哪三类完整性约束?
实体完整性:体现在实体的唯一性上,在一个关系r中,设属性a是它的主
关键字的组成部分,则属性a不能取空值;
参照完整性:本关系的某一个非主属性值,必须等于另一个关系的关键
字的值;
用户定义的完整性:针对某一具体数据库的约束条件,由应用环境决定,它反映某一具体应用所涉及的数据必须满足的语义要求。
3.数据模型由哪三部分组成?
数据结构,数据操作,完整性约束
1.创建一个名为“产品”的数据库,其包含一个主文件和一个事务日志文件。主文件的逻辑名为“产品销售_data”,物理文件名为“c:”,初始容量为10mb,最大容量是20mb,每次的增量是10%。事务日志文件的逻辑名为“产品销售_log”,物理文件名为“c:”,初始容量是2mb,最大容量不受限制,每次的增量是2mb。
create database产品
on
primary
(name=产品销售_data,filename='c:',size=10mb,maxsize=20mb,filegrowth=10%)
log on
(name=产品销售_log,filename='c: ',size=2mb,maxsize=unlimited,filegrowth=2mb)
2、打开“产品”的数据库。
use产品
3、将“产品”的数据库改名为“产品销售”的数据库
exec sp_renamedb产品, 产品销售
4、删除“产品销售”的数据库
drop database产品销售5、2)、产品编号、销售商编号都是外键,其中产品编号参照表“产品信息”的产品编号属性,销售商编号参照表“销售商信息”的销售商编号属性。
create table 销售
(产品编号 char(6)references 产品信息(产品编号),销售商编号 char(6)references销售商信息(销售商编号),销售时间datetimenot null,数量int not null,primary key(产品编号,销售商编号)
6、已知有学生信息表:student;课程表:course;成绩表:sc
1)、向sc表中添加一条记录(’ 9309119’,‘ee-201’,90.5);
insertsc
values('9309119','ee-201',90.5)
2)、删除sc表中学号为9309120的记录;
delete sc
where sno='9309120'
3)、把所有课程的学分都改为4分;
update course
set credit =
44)、把学号为9104421的学生的身高改为1.83;
update student
set high=1.8
3where sno='9104421'
5)、查询course表中每门课程的课程名称、学分;
selectcname,creditfromcourse
order bycreditdesc
6)、查询所有男同学的学号和姓名;
select sno,sname
from student
where sex='男'
7)、查询成绩在90分以上的学生的学号、课程号、成绩。
select sno,cno,grade
from sc
where grade>90
8)、查询至少有一门课的成绩在80分以上的男同学的学号;
select sno
from student a
where exists(select *
from scb
where = and grade>80)
9)、求各门课程的最高分、最低分、平均分;
select sno,max(grade),min(grade), avg(grade)
from sc
group by sno
10)、查询欧阳美龄选修的课程名称和成绩,结果按成绩降序排列;
selectcname,grade
from student a,course b,sc c
where sname='欧阳美龄' and = and =
11)、查询身高大于李惟德身高的学生的姓名。
selectsname
from student
wherehigh>(select high
from student
where sname='李惟德'
12)、求选修了全部课程的学生学号、姓名
select sno
from student
where(select distinct cno
from sc b
where =)
=(select count(*)fromcourse)
1.实体间的联系可分为三类1:1(或一对一),1:n(或一对多),m:n(或多对多)
2.e-r模型的组成要素包括: 实体,属性,联系。
3.唯一标识实体的属性或属性组称为: 主键
4.关系模型要求关系必须规范化也就是要求关系必须满足一定的条件,这些规范条件中最基本的一条就是,关系的每一个分量必须是: 不可再分的数据项。
5.四种专门的关系操作是:选择、投影、连接、除。
数据库原理及应用操作题篇四
南 京 晓 庄 学 院
《数据库原理与应用》
课程实验报告
实验一 sql server 2005常用服务与实用工具实验
所在院(系): 数学与信息技术学院 班级:
学号:
姓名:
1.实验目的
(1)了解microsoft 关系数据库管理系统sql server的发展历史及其特性。(2)了解sql server 2005的主要组件、常用服务和系统配置。
(3)掌握microsoft sql server management studio 图形环境的基本操作方法。了解使用“sql server 2005 联机从书”获取帮助信息的方法;了解“查询编辑器”的使用方法;了解模板的使用方法。
2.实验要求
(1)收集整理microsoft关系数据库管理系统sql server的相关资料,总结其发展历史及sql server 2005主要版本类别和主要功能特性。
(2)使用sql server配置管理器查看和管理sql server 2005服务。
(3)使用microsoft sql server management studio连接数据库;使用sql server帮助系统获得所感兴趣的相关产品主题/技术文档。
(4)使用microsoft sql server management studio“查询编辑器”编辑并执行transact-sql查询语句。
(5)查看microsoft sql server 2005模板,了解模板的使用方法。(6)按要求完成实验报告。
3.实验步骤、结果和总结实验步骤/结果
(1)简要总结sql server系统发展历史及sql server 2005主要版本类别与主要功能特性。
(2)总结sql server management studio的主要操作方法。
(3)总结查询编辑器的功能和主要操作方法,并举例说明。
(4)总结“模板”的使用方法,并举例说明。
4.实验思考:
查询相关资料,简要描述sql server 2005的主要服务。
数据库原理及应用操作题篇五
南 京 晓 庄 学 院
《数据库原理与应用》
课程实验报告
实验二 数据库的创建、管理、备份及还原实验
所在院(系): 数学与信息技术学院 班级:
学号:
姓名:
1.实验目的
(1)掌握分别使用sql server management studio图形界面和transact-sql语句创建和修改数据库的基本方法;
(2)学习使用sql server查询分析窗口接收transact-sql语句和进行结果分析。
(3)了解sql server的数据库备份和恢复机制,掌握sql server中数据库备份与还原的方法。
2.实验要求
(1)使用sql server management studio创建“教学管理”数据库。
(2)使用sql server management studio修改和删除“教学管理”数据库。(3)使用transact-sql语句创建“教学管理”数据库。
(4)使用transact-sql语句修改和删除“教学管理”数据库。(5)使用sql server management studio创建“备份设备”;使用sql server management studio对数据库“教学管理”进行备份和还原。(6)sql server 2005数据库文件的分离与附加。(7)按要求完成实验报告
3.实验步骤、结果和总结实验步骤/结果
(1)总结使用sql server management studio创建、修改和册除“tm”(教学管理)数据库的过程。
一、使用sql server management studio创建数据库的步骤如下:
a.在磁盘上新建一个目录,如在c:盘中新建“mydb“目录
b.在wimdows系统“开始“菜单中,依次选取”程序->microsoft sql server 2005->sql management studio” ,打开sql server management studio并连接到sql server 2005服务。
c.在“对象资源管理器“中单击sql server服务器前面的“+”号或直接双击数据库名称,展开该服务器对象资源树形结构,然后右键点击“数据库”文件夹,在弹出的快捷菜单上选择“新建数据库”选项
d.在打开的“新建数据库”对话窗口中输入数据库名称“教学管理”,在该窗口中“数据库文件”设置部分可以修改数据文件和日志文件的文件名、初始大小、保存路径等。
e.单击“确定”按钮,创建“教学管理”数据库。
二、使用sql server management studio修改和删除“教学管理”数据库
1、使用sql server management studio图形界面直接修改“教学管理”数据库名为“tm”
2、使用sql server management studio图形界面查看和修改数据库属性 a.在快捷菜单中选择“属性”项进入
使用
3.使用sql server management studio图形界面删除数据库 在第一幅图中的快捷菜单中选择“删除”项
(2)总结在实验中为创建、修改和删除“教学管理”数据库所编写的各条t-sql语句及其完成了什么功能。
1、创建:
create database 教学管理 on primary(name=jxgl, filename='c:', size=3mb, maxsize=100mb, filegrowth=1mb)log on(name=jxgl_log, filename='c:', size=1mb, maxsize=unlimited, filegrowth=10%);点击执行
2、使用transact-sql语句修改和删除“教学管理”数据库
增加数据文件。例如,在数据库“教学管理”中增加数据文件jxgl_ext,需要在数据库查询编辑器中输入代码:
在增加数据文件之前,要先获得修改权限,即alter database数据库句法,然后再添加数据文件。具体参数也有5项,与创建数据文件相同,在添加数据文件项中,name项是必不可少的。
编写t—sql语句,删除“教学管理”数据库中的数据文件或日志文件,注意不能删除非空文件。如删除刚添加到数据库中的数据文件“jxgl_ext1” 实例代码如下: alter database 教学管理
removefile jxgl_ex1——删除数据库文件时应指定其逻辑名称
sql语句删除数据库删除了数据库“教学管理” drop database 教学管理
检查所输入sql语句有无语法错,确认正确后, 按f5键或单击“执行”按钮,这样就删除了数据库“教学管理”。
(3)总结使用sql server management studio备份与还原数据库的几种方法。
1、创建“备份设备”
2、对数据库“tm”进行备份
1)打开 sql server management studio,右击需要备份的数据库,从弹出的快捷菜单中依次选择【任务】--【备份】命令,打开【备份数据库】对话框。如下图所示:
(2)在【备份数据库】对话框的【常规】页面中根据需要选择需要备份的【数据库】,在本示例选择备份数据库.接下来还可以选择【备份类型】、备份集的名称等相关参数。默认情况下,备份操作会所数据库中的数据备份到 sql server 数据库的默认工作目录
(3)切换【备份数据库】对话框中的【选项】页面。在此页面中,可以根据需要进行相应的设置。例如,可以根据需要将现有数据备分到现有的备份集中,也可使用数据库中的当前数据覆盖现有的备份集。除此之外。还可以设置备份操作的可靠性选项。
单击【确定】按钮,即可执行备份操作。一旦备份操作结束。sql server 数据库系统将弹出名为 microsoft sql server management studio 的对话框,提示备份已成功完成。
3、使用“tm”数据库完整备份还原数据库到备份完成时点的数据库状态 通过 sql server management studio 还原数据库
使用 sql server management studio 进行数据还原操作的步骤如下所示:
(1)右击【数据库】节点,从弹出的快捷菜单中选择【还原数据库】命令,打开【还原数据库】对话框,如下图所示:
在[还原数据库]对话框中的[常规]页面中,选择[目标]下拉列框中的[源数据库]选项。
[选择用于还原的备份集]列表框中将显示用于还原tm数据库的可用备份集,备份集,且[目标数据库]将会被同时设置为tm
在“还原数据库”的窗口中选择“选项”页,在“还原选项”选项区域中选择“覆盖现有数据库”复选框,单击确定。还原操作完成后,打开“tm”数据库,可以看到tm数据库已进行还原
4.实验思考:
①sql server 2005物理数据库包含了哪能几种类型的文件以及它们的作用? sql server2005数据库具有三种类型的文件:
主数据文件
主数据文件是数据库的起点,指向数据库中的其他文件。每个数据库都有一个主数据文件。。它将数据存储在表和索引中,包含数据库的启动信息,还包括一些系统表,这些表记载数据库对象及其他文件的位置信息。
次要数据文件
除主数据文件之外的所有其他数据文件都是次要数据文件。某些数据库可能不含有任何次要数据文件。。
日志文件
sql server具有事物功能,日志文件包含着用于恢复数据库的所有日志信息。每个数据库必须至少有一个日志文件,当然也可以有多个,建立数据库时,sql server会自动建立数据库的日志文件。。②数据库备份与转储包含那些原理?
备份(backup)实际就是数据的副本,备份的目的是为了防止不可预料的数据丢 失和应用错误。
转储(restore)是指当数据文件或控制文件出现损坏时,将已备份的副本文件还原到原数据库的过程
数据库转存实现热备份恢复功能。通过修改初始化文件里的路径,实现转存。启 动到mount状态下,将所有数据文件和日志文件通过alter database rename file '原始路径/名称' to '当前路径/名称';然后将数据库打开,重建temp tablespace即可。数据转储是数据库恢复中采用的基本技术。
所谓转储即dba定期地将数据库复制到磁带或另一个磁盘上保存起来的过程。当数据库遭到破坏后可以将后备副本重新装入,将数据库恢复到转储时的状态。静态转储:在系统中无运行事务时进行的转储操作。静态转储简单,但必须等待 正运行的用户事务结束才能进行。同样,新的事务必须等待转储结束才能执行。显然,这会降低数据库的可用性。动态转储:指转储期间允许对数据库进行存取或修改。动态转储可克服静态 转储的缺点,它不用等待正在运行的用户事务结束,也不会影响新事务的运行。但是,转储结束时后援副本上的数据并不能保证正确有效。因为转储期间运行的 事务可能修改了某些数据,使得后援副本上的数据不是数据库的一致版本。为此,必须把转储期间各事务对数据库的修改活动登记下来,建立日志文件(log file)。这样,后援副本加上日志文件就能得到数据库某一时刻的正确状态。转储还可以分为海量转储和增量转储两种方式。海量转储是指每次转储全部数据库。
增量转储则指每次只转储上一次转储后更新过的数据。
从恢复角度看,使用海量转储得到的后备副本进行恢复一般说来更简单些。但如 果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效。
③如果数据或日志文件非空不能删除,查找sql server中缩小文件大小的方法。
在sql server中,所有对数据库执行的更新操作都会记录在数据库的事务日志文件中,除非将数据库设为可自动收缩的或手动的对数据库进行了收缩,否则事务日志文件将一直增长,直到达到事先设定的日志文件增长上限或用尽所有可用的磁盘空间。如果当前的数据库文件或日志文件过大,可以使用以下两个命令对其进行收缩: dbcc shrinkdatabase:收缩指定数据库的所有数据和日志文件的大小 dbcc shrinkfile:收缩数据库的某个指定数据或日志文件的大小
这两个命令可以释放数据库中的空闲空间,并将数据库或指定的数据库文件收缩到指定的大小,但收缩后的数据文件或日志文件的大小不会小于文件中现存的有效数据所占空间的大小。在使用以上命令收缩日志文件的时候需要注意,已写入数据库但未被截断的事务日志记录是 不会被收缩的,因为虽然这部分日志记录的信息已经写入数据库文件,但在使用事务日志备份进行数据库还 原的时候,还将用到其中的信息。
对于使用简单恢复模型的数据库,事务日志会在每次处理检查点(checkpoint)时自动被截 断。
对于使用完全恢复模型或大容量日志记录恢复模型的数据库,事务日志只有在执行日志备份(backup log)时才会被截断,这时事务日志中记录的信息被写入事务日志备份文件,而它们所占用的这部分空间被标记为可用(即被截断)。
截断事务日志并不会使日志文件变小,但可以将其中的部分空间释放供以后写入新的日志记录使用。若要减少日志文件的物理大小,则要使用上面提到的
在执行backup log语句的时候,还可以使用with no_log(或with truncate_only,含 义相同)参数,这时并不真正备份事务日志,而只是截断事务日志中的非活动部分
(这和普通的backup log语句作用相同)。这适合于剩余磁盘空间不够进行事务日志备份或不打算保 留事务日志中的非活动部分用于数据库恢复的情况。避免事务日志文件增长过快以致用尽所有磁盘空间的现象发生
一种办法是将数据库设为使用简单恢复模型,这样可以使sql server周期性的自动截断事务日志的
非活动部分,并回收其占用的空间供以后写入事务日志记录使用。但这将使数据库无法利用事务日志备份还原到即时点,降低了数据库的可靠性,因此一般不应用于生产型数据库。对于生产型数据库,推荐的做法是使用完全恢复模型,并定期进行数据库的完全备份和事务日志备份。例 如每周执行一次完全备份,每天执行一次事务日志备份,这可以通过sql server企业管理器中的数据库 维护计划向导很方便的实现(一般可以设为在每天夜里业务不繁忙的某个时刻自动执行备份)。
通过定期执行数据库的事务日志备份,可以避免日志文件的迅速增大,而使其保持一个比较稳定的大小。
虽然数据库备份文件也会占用很多磁盘空间,但随时可以将这些文件移到其他磁盘上或在不需要它们的时候将其删除,而且可以在出现故障或误操作的时候方便的进行数据库的还原。
由于数据文件的大小是随数据库中数据量的增长而增长的,数据库中已删除的数据所占的空间可以供新插 入的数据使用;而在定期执行了事务日志的备份后,我们可以将日志文件的大小控制在一个比较合理的范 围。因此,一般不需要对数据库进行收缩,也不推荐将数据库设为自动收缩模式。
减小事务日志文件大小的
首先在该数据库中执行checkpoint命令,然后将该数据库分离(detach),再将与其对应的数据库日志 文件(.ldf文件)改名或删除或移动到其他目录下,然后执行sp_attach_single_file_db存储过程或在企业管 理器中重新将其附加(attach)。由于找不到原来的日志文件,sql server将自动为该数据库建立一个大 小只有504k的日志文件。但这种方法必须暂时将数据库脱机,因此一般不适宜在生产环境中使用。
1、建议首先备份数据库(但不是必需的):
backup database database_name to backup_device
2、备份事务日志:
backup log database_name to backup_device 如果不需要当前事务日志中的记录进行数据库还原或没有足够的空间进行事务日志备份的 的话,也可仅执行以下命令截断事务日志: backup log database_name with no_log
3、收缩事务日志文件:
dbcc shrinkfile(log_file_name)其中log_file_name是事务日志文件的逻辑名称,可以在企业管理器中数据库属性的“事务 日志”页中看到(如northwind数据库的默认事务日志文件逻辑名称为northwind_log)。
4、如果日志文件仍然较大的话,可以尝试重复执行一次 backup log with no_log和dbcc shrinkfile命令。
5、如果这时仍没有明显的效果,请执行dbcc opentran(database_name)检查当前数据库中是否存在长时间未提交的活动事务。有必要的话,可以断开这些连接并重新尝试截断事务日志和收缩日志文件。
6、事务日志文件收缩完成后,建议立即执行一次数据库的完全备份并根据实际需要制定适当的数据库备份计划。④思考后续实验过程中,你计划采用哪种方法备份自己的数据库实验操作结果?并说明为什么采用该方法。
答:数据库备份有四种类型
完全备份 事务日志备份 差异备份
文件备份 采用完全备份
完全备份就是指对某一个时间点上的所有数据(包含用户表、系统表、索引、视图和存储过程等所有数据库对象)或应用进行的一个完全拷贝。
实际应用中就是用一盘磁带对整个系统进行完全备份,包括其中的系统和所有数据。
这种备份方式最大的好处就是只要用一盘磁带,就可以恢复丢失的数据。因此大大加快了系统或数据的恢复时间。