数据库系统、大题、简答题、名词解释

1.什么是事务?
事务一般是指要做的或所做的事情

2.事务应该具有哪些特性?
①原子性 事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。
②一致性 事务开始前和结束后,数据库的完整性约束没有被破坏 。
持久性 事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚。
③隔离性 同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。

3.如果事务不加限制地并发执行,会产生哪三类问题?
①脏读
脏读的定义是:一个事务读取了其他事务未提交的数据,在我们正常开发过程中,是不允许出现的.通常发生在事务在没有隔离性的条件下。
②不可重复读
定义:在一个事务内多次读取了表中的数据,且多次读取的结果不同.通常发生事务在update操作中。
③幻读
定义:一个事务读取到了别的事务插入或者删除的数据,导致的前后读取记录行数不同,通常发生事务在insert,delete操作中。

4.数据的独立性是什么?
数据的独立性是数据库系统的最基本的特征之一。数据独立性是指应用程序和数据结构之间相互独立, 互不影响。

5.数据库系统的三级模式
①模式:又称逻辑模式,DB的全局逻辑模式,即DB中全体数据的逻辑结构和特征的描述。
②外模式:又称子模式或用户模式。DB的局部逻辑结构
③内模式:又称存储模式。数据的物理结构和存储方式的描述,即DB中数据的内部表示方式。

6.基本的封锁类型有几种?
①排它锁:又称为写锁。若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。
②共享锁:又称为读锁。若事务T对数据对象A 加上S锁,则其它事务只能再对A 加S 锁,而不能加X锁,直到T释放A上的S锁。

7.数据库运行中可能产生的故障有哪几类?
①系统故障。由于电压不稳、突然断电、硬件错误、操作系统故障、DBMS的程序设计缺陷等导致系统停止运转的事件影响正在执行的事务,造成主存和数据库缓冲区中的内容丢失,没有将结果写入数据库,使数据库中的数据受损。
②事务故障。事务在运行中,由于某种原因使事务未能运行到正常终止点之前就被撤销了,这种情况称为事务故障。
③计算机病毒。计算机病毒已经成为计算机系统的主要威胁,自然也是数据库系统的主要威胁。
④介质故障。介质故障主要为存储介质(如磁盘等)损坏,使存储在外存上的数据库部分或全部损坏。
⑤人为破坏或操作错误。人为破坏主要是人为的故意破坏;操作员的误操作是数据库中输入了错误数据或删除了不应删除的数据等。

8.如果一个数据库的关系模式设计不好,则进行数据操作则可能出现哪些问题?
数据完整性、一致性得不到保证。
数据冗余会增大。
数据库性能会受到影响。

9.数据库中,导致数据不一致的根本原因是什么。
第一种是数据冗余造成的;
第二种是并发控制不当造成的;
第三种是由于某种原因(比如软硬件故障或者操作错误)导致数据丢失或数据损坏。

10.什么是实体完整性
实体完整性指表中行的完整性。要求表中的所有行都有唯一的标识符,称为主关键字。主关键字是否可以修改,或整个列是否可以被删除,取决于主关键字与其他表之间要求的完整性。

11.SQL采用什么方法可以保证数据的完整性?
①实体完整性
实体完整性表示每张表的主键唯一且不能为空。可以通过索引、UNIQUE约束、PRIMARY KEY约束或IDENTITY属性来实现实体完整性。
②域完整性
域完整性是指给定列的输入有效性。强制域有效性的方法有:限制类型(通过数据类型)、格式(通过CHECK约束和规则)或可能值的范围(通过Foreign Key约束、CHECK约束、DEFAULT定义、NOT NULL定义和规则)。
③引用完整性
在插入或删除记录时,引用完整性保持表之间已定义的关系。在SQL Server 2000中,引用完整性基于外键与主键之间或外键与唯一键之间的关系(通过Foreign Key和CHECK约束)。引用完整性确保键值在所有表中一致。这样的一致性要求不能引用不存在的值,如果键值更改了,那么在整个数据库中,对该键值的所有引用要进行一致的更改。④用户定义完整性
用户定义完整性能够定义不属于其它任何完整性分类的特定业务规则。所有的完整性类型都支持用户定义完整性(CREATE TABLE 中的所有列级和表级约束、存储过程和触发器)。

12.系统故障恢复步骤。
①正向扫描日志文件,找出在故障发生前已经提交的事务队列(REDO队列)和未完成的事务队列(UNDO队列)。
②对撤销队列中的各个事务进行UNDO处理。进行UNDO处理的方法是,反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。
③对重做队列中的各个事务进行REDO处理。进行REDO处理的方法是,正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作,即将日志记录中“更新后的值”写入数据库。

13.视图和表的区别和联系
区别:
①视图是已经编译好的sql语句。而表不是。
②视图没有实际的物理记录。而表有。
表是内容,视图是窗口。
③表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改。
④表是内模式,试图是外模式。
⑤视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
⑥表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。 
⑦视图的建立和删除只影响视图本身,不影响对应的基本表。
⑧不能对视图进行update或者insert into操作。
联系:
视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。

14.参照完整性
它表示的是两个关系之间的联系,是表与表之间的引用。对应的就是外键,外键约束实现参照完整性。

15.什么叫索引?索引的作用和分类。优缺点。
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
作用:
索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应于表的SQL语句执行得更快,可快速访问数据库表中的特定信息。
分类:
①唯一索引
唯一索引是不允许其中任何两行具有相同索引值的索引。当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。
②主键索引
数据库表经常有一列或多列组合,其值唯一标识表中的每一行。该列称为表的主键。在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。
③聚集索引
在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。
④索引列
可以基于数据库表中的单列或多列创建索引。多列索引可以区分其中一列可能有相同值的行。如果经常同时搜索两列或多列或按两列或多列排序时,索引也很有帮助。例如,如果经常在同一查询中为姓和名两列设置判据,那么在这两列上创建多列索引将很有意义。
优点:
①大大加快数据的检索速度。
②创建唯一性索引,保证数据库表中每一行数据的唯一性。
③加速表和表之间的连接。
④在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。
缺点:
①索引需要占物理空间。
②当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。

16.并发操作会带来哪些数据不一致性?①丢失修改:两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了)T1提交的结果,导致T1的修改被丢失。
②不可重复读:不可重复读是指事务T1读取数据后,事务几执行更新操作,使T1无法再现前一次读取结果。
③读“脏”数据:读“脏’数据是指事务T1修改某一数据,并将其写回磁盘,事务几读取同一数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复原值,读到的数据就与数据库中的数据不一致,则读到的数据为“脏”数据,即不正确的数据。

17.游标的概念和作用
游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标充当指针的作用。尽管游标能遍历结果中的所有行,但他一次只指向一行。

18.两段锁协议,在并发控制中引入两段锁协议的目的是什么。
两段锁协议是指每个事务的执行可以分为两个阶段:生长阶段(加锁阶段)和衰退阶段(解锁阶段)。若并发执行的所有事务均遵守两段锁协议,则对这些事务的任何并发调度都是可串行化的。

19.DBMS的主要功能是什么?
①数据定义功能。DBMS提供相应数据语言来定义(DDL)数据库结构,它们是刻画数据库框架,并被保存在数据字典中。
②数据存取功能。DBMS提供数据操纵语言(DML),实现对数据库数据的基本存取操作:检索,插入,修改和删除。
③数据库运行管理功能。DBMS提供数据控制功能,即是数据的安全性、完整性和并发控制等对数据库运行进行有效地控制和管理,以确保数据正确有效。④数据库的建立和维护功能。包括数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。
⑤数据库的传输。DBMS提供处理数据的传输,实现用户程序与DBMS之间的通信,通常与操作系统协调完成。

20.数据库系统能否克服数据冗余。
数据库系统不能避免数据冗余,因为冗余的数据也是日后进行数据库恢复的技术手段之一,所以只能说尽可能减少数据冗余度,不能克服。

21.视图如何在一定程度上保证了数据的安全性。
通过定义视图,可以使用户只看到指定表中的某些行,某些列,也可以将多个表中的列组合起来,使得这些列看起来就像一个简单的数据库表,另外,也可以通过定义视图,只提供用户所需的数据,而不是所有的信息。

22.事物的结束方式有
提交和回滚。

23.什么是存储过程,优点。
存储过程:是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升。

24.为什么数据库系统具有数据与程序的独立性?
因为有了数据库,应用程序对数据的访问是要通过DBMS进行的,程序不能直接操作数据本身。而且DBMS提供了两层映像机制:外模式/模式映像和模式/内模式映像。这两层映像机制保证了数据库系统中数据的逻辑独立性和物理独立性。

25.什么是活锁,试述活锁的产生原因和解决方法。
活锁产生的原因:当一系列封锁不能按照其先后顺序执行时,就可能导致一些事务无限期等待某个封锁,从而导致活锁。
避免活锁的简单方法是采用先来先服务的策略。当多个事务请求封锁同一数据对象时,封锁子系统按请求封锁的先后次序对事务排队,数据对象上的锁一旦释放就批准申请队列中第一个事务获得锁。

你可能感兴趣的:(数据库,database,database)