数据库课后答案(简约版)1.什么是数据,数据库,数据库管理系统,数据库系统?数据:是数据库中存储的基本对象;是描述事物的符号纪录;与语义不可分割.数据库:是长期存储在计算机内,有组织的,可共享的大量数据的集合.数据库管理系统:位于用户和操作系统之间的一层数据管理软件;是计算机的基础软件,也是一个大型复杂的软件系统.数据库系统:是指在计算机系统中引入数据库后的系统,一般由数据库,DBMS,应用系统,DBA 构成.数据库技术经历阶段: 人工管理----文件系统----数据库系统数据库系统的特点: 1.数据结构化2.数据的共享性高,冗余度低,易扩充3.数据独立性高4.数据由DBMS统一管理和控制从数据库最终用户角度看,数据库系统的结构分为:单用户结构, 主从式结构, 分布式结构, 客户/服务器, 浏览器/服务器.2.试述数据系统的三级模式结构,这种结构的优点是什么?数据库的三级模式: 外模式,模式,内模式.{ 外模式: 也称子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述. 模式: 也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述. 内模式: 也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式. } 这种结构的优点: 数据库的三级模式是对数据的三个抽象级别,它对数据的具体组织留给DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式.为了能够在内部实现这三个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映像:外模式/模式映像,模式/内模式映像.这是这两层映像保证了数据库中的数据能够具有较高的逻辑独立性和物理独立性.3.什么是物理独立性?什么是逻辑独立性?为什么数据库系统具有数据与程序的独立性?数据与程序的物理独立性: 当数据库的存储结构发生改变,由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变. 数据与程序的逻辑独立性: 应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性.数据库系统具有数据和程序的独立性的原因: 数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去.另外,由于数据的存取由DBMS管理,用户不必考虑存取路径等细节,从而简化了应用程序的编制,大大减少了应用程序的维护和修改.4.什么是候选码,主码,外部码?候选码: 若关系中的某个属性组的值能够唯一地标识一个元组,则称该属性组为候选码.主码: 若一个关系有许多候选码,则选定其中一个为主码.外部码: 设F是基本关系R的一个或一组属性,但不是关系R的码.K 是基本关系S的主码.如果F与K相对应,则称F是R的外码.5.等值连接和自然连接的区别和联系是什么?的连接运算称为等值连接.它是从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:自然连接是一种特殊的等值连接.它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉.即若R和S 具有相同的属性组B,则自然连接可记作:6.什么是基本表?什么是视图?两者的区别和联系是什么?基本表是本身独立存在的表.一个关系就对应一个基本表,一个(或多个)基本表对应一个存储文件. 视图是从一个或几个基本表导出的表,视图是一个虚表.两者区别: 即基本表是实表,数据库可存放其定义及其对应数据;视图是虚表,是由基本表导出的表,数据库只存放其定义而不存放其对应数据.两者联系:视图在概念上与基本表相同,用户可以如同基本表那样使用视图,另外可以在视图上再定义视图.7.所有的视图是否都可以更新?为什么?不是的,因为视图时不实际存储数据的虚表,因此对视图的更新,最终要转为对基本表的更新.而有些视图的更新不能唯一有意义地转换成相对应基本表的更新,所以不是所有的视图都是可更新的.8.什么是数据库的安全性?什么是计算机系统安全性?数据库的安全性: 是指保护数据库以防止不合法的使用造成的数据泄露,更改或破坏.计算机系统安全性: 是指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件,软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到修改或泄露等.三类安全性问题: 技术安全类, 管理安全类, 政策法律类9.什么是数据库中自主存取控制方法和强制存取控制方法?自主存取控制方法(DAC): 在此方法中,用户对于不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将拥有的存取权限转授给其它用户. 强制存取控制方法(MAC): 在此方法中,每一个数据库对象被标以一定的密级,每一个用户也被授予某一个级别的许可证.对于任意一个对象,只有具有合法许可证的用户才可以存取.10.什么是数据完整性?什么是完整性约束条件?数据的完整性是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据. 数据的安全性是保护数据库防止恶意的破坏和非法的存取.完整性约束条件也称为完整性规则,是数据库中的数据必须满足的语义约束条件.SQL标准使用了一系列概念来描述完整性,包括关系模型的实体完整性,参照完整性和用户定义完整性.11.数据库设计分为哪几个阶段?每个阶段做哪些工作?1.需求分析阶段即进行数据库设计之前需准确了解与分析用户需求.2.概念结构设计阶段即通过对用户需求进行集合、归纳与抽象,形成一个独立于具体DBMS的概念模型.3.逻辑结构设计阶段即将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化.4.物理设计阶段即为逻辑数据模型选取一个最适合应用环境的物理结构.5.数据库实施阶段即根据逻辑设计和物理设计的结构建立数据库,编制与调试应用程序,组织数据入库,并进行试运行.6.数据库运行和维护阶段即在数据库系统运行过程中必须不断地对其进行评价、调整和修改.12.设计概念结构时如何区分实体和属性?实体与属性之间并没有形式上可以截然划分的界限,但可以给出两条准则:1.作为”属性”,不能再具有需要描述的性质.”属性”必须是不可分的数据项,不能包含其它属性.2.”属性”不能与其它实体具有联系,即E-R图中所表示的联系是实体之间的联系.凡满足上述两条准则的事物,一般均可以作为属性对待.13.各个分视图在集成时可能会产生哪些冲突?冲突主要有三类: 属性冲突, 命名冲突, 结构冲突.14.E-R图在转换成关系模型时,遵循哪些原则?一个实体型转换为一个关系模式.实体的属性就是关系的属性,实体的码就是关系的码.对于实体型之间的联系则有以下不同的情况:1.一个1:1联系可以转换为一个独立的关系模式,也可以与任意一段对应的关系模式合并.2.一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并.3.一个m:n联系转换为一个关系模式.4.3个或3个以上实体间的一个多元联系可以转换为一个关系模式.5.具有相同码的关系模式可合并.15.数据物理设计的内容和方法是什么?内容:1.为关系模式选择存取方法;2.设计关系、索引等数据库文件的物理存储结构.方法:1.索引方法 2.聚簇方法 3.HASH方法16.数据库实施阶段和运行阶段分别有哪些需要做的工作?实施阶段:1.数据的载入 2.应用程序的编码和调试运行阶段:1.数据的转储和恢复 2.数据的安全性和完整性控制3.数据库性能的监督、分析和改造4.数据库的重组织和重构造17.什么是事务?四个特性是什么?恢复技术能保证事务的哪些特性?事务是: 一个数据库操作序列;一个不可分割的工作单位;恢复和并发控制的基本单位.四个特性:原子性、一致性、隔离性、持续性(ACID)恢复技术保证:原子、一致、持续性.18.数据库运行中可能产生的故障有哪几类?故障大致可分为:1.事务内部的故障 2.系统故障 3.介质故障 4.计算机病毒其中123影响事务的正常执行, 34破坏数据库数据.19.数据库恢复的基本技术有哪些?1.数据转储2.登记日志文件20.数据库转储的意义是什么?试比较各种数据转储方法.数据转储是数据库恢复中采用的基本技术.所谓转储即DBA定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程.静态转储实现简单,但会降低数据库的可用性.动态转储不用等待正在运行的用户事务结束,也不会影响新事务的运行,但不能保证正确有效.海量转储从恢复的角度看,使用它得到的后台副本进行恢复一般说来会更方便些.但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效.21.什么是日志文件?为什么要设立日志文件?日志文件是用来记录事务对数据库的更新操作的文件,主要有两种格式:以记录为单位的日志文件和以数据块为单位的日志文件.日志文件在数据库恢复中起着非常重要的作用,具体是:1.事务故障恢复和系统故障恢复必须用日志文件.2.在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库.3.在静态转储方式中,也可以建立日志文件.所以,有必要建立日志文件.22.登陆日志文件时为什么必须先写日志文件,后写数据库?把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作.有可能在这两个操作之间发生故障,即这两个写操作只完成了一个.如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了.如果先写日志,但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的UNDO操作,并不会影响数据库的正确性.所以为了安全,一定要先写日志文件,后写数据库.23.数据库为什么要并发控制?数据库的重要特征是它能为多个用户提供数据共享.当多个用户并发地存取数据库时就会产生多个事务同时存取同一数据的情况.若对并发控制不加控制,就可能会存取和存储不正确的数据,破坏事务的一致性和数据库的一致性.所以数据库管理系统必须提供并发控制机制.并发控制技术能保证事务的:隔离性、一致性.24.并发控制可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?并发操作带来的数据不一致包括三类:1.丢失修改2.不可重复读3.读”脏”数据避免不一致性的方法和技术是并发控制.而并发控制的主要技术是封锁、时间戳和乐观控制法.其中,最常用的技术是封锁技术.25.解释封锁、活锁、死锁、排它锁、共享锁、并发事务调度、可串行化调度、两段锁协议? 封锁: 事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁.加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他的事务不能更新此数据对象.活锁: 如果事务T1封锁了数据R,事务T2又请求封锁R,于是T2等待.T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求,T2仍等待.然后T4又请求封锁R,当T3释放了R上的封锁之后系统又批准了T4的请求……T2有可能永远等待,这就是活锁的情形.死锁: 如果事务T1封锁了输入R2,然后T1又请求封锁R2,因T2已经锁了R2,于是T1等待T2释放R2上的锁.接着T2又申请封锁R1,因T1已经封锁了R1,T2也只能等待T1释放R1上的锁.这样就出现了T1在等待T2,而T2又在等待T1的局面,T1和T2两个事务永远不能结束,形成死锁.排它锁: 又称为写锁,X锁.若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T 释放A上的锁.共享锁: 又称为读锁,S锁.若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁.并发事务调度: 事务的执行次序称为”调度”.如果利用分时的方法,同时处理多个事务,则称为事务的并发调度.可串行化调度: 多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同,称这种角度策略为可串行化的调度.两段锁协议: 所谓的”两段”锁的含义是:1.扩展阶段----可以申请封锁,但是不能解除任何已取得的封锁.2.收缩阶段----可以释放封锁,但不能申请新的封锁.两段锁协议规定所有事务都要遵循下列规则:1.在对任何数据进行读写操作之前,事务首先要获得对该数据的封锁.2.在释放一个封锁之后,事务不再获得任何其它封锁.关系数据模型: 数据结构+ 数据操作+ 完整性约束.。