考研数据库经典面试题
-
数据库:长期存储在计算机内、有组织、可共享的大量数据的集合。冗余度较小,数据独立性较高,易扩展,为用户共享
-
数据库系统:数据库系统是由数据库、数据库管理系统、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统
-
数据库管理系统:数据库管理系统是位于用户与操作系统之间的一层数据管理软件。他和操作系统一样是计算机的基础软件
-
数据模型是数据库系统的核心和基础
-
数据模型包括两类,第一类是概念模型第二类是逻辑模型和物理模型
-
数据模型的三要素:数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成。
-
数据模型的概念:数据模型是对现实世界数据特征的抽象,一般来讲,数据模型是严格定义的概念的集合
-
数据结构三级模式两层映像:外模式/模式映像(保证了数据的逻辑独立性);模式/内模式映像(保持数据的物理独立性)
-
查询操作:选择,投影,连接,除,并,差,交,笛卡尔积
-
关系模型中的三类完整性约束条件:实体完整性,参照完整性,用户定义的完整性
-
SQL的功能:数据查询SELECT; 数据定义:CREATE,DROP,ALTER; 数据操纵:INSERT,UPDATE,DELETE; 数据控制:GRANT,REVOKE
-
视图:视图是从一个或几个基本表导出来的表,是虚表,数据库中只存放视图的定义,不存放视图对应的数据
-
数据库的数据保护主要包括数据的安全性和完整性
-
数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露,更改或破坏
-
数据库的完整性即数据的正确性和相容性。是为了防止数据库中存在不符合语义的数据
-
函数依赖:R(u)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等而在Y上的属性值不等,则称X函数确定Y,或者Y函数依赖于X,记作X->Y
-
数据库设计的基本步骤:需求分析;概念结构设计;逻辑结构设计;物理结构设计;数据库的实施;数据库运行和维护
-
查询树的启发式优化:先执行选择操作,把投影操作和选择运算同时进行
-
事务:是用户定义的一个数据库操作序列,这些操作要么全做、要么全不做,是一个不可分割的工作单位
-
事务的ACID特性:原子性;一致性;隔离性;持续性
-
数据库系统故障的种类:事务故障;系统故障;介质故障;计算机病毒
-
数据库恢复采用的技术:数据转储,登记日志文件
- 三级封锁协议:一级封锁协议可防止丢失修改,并保证事务T是可恢复的;二级封锁协议防止丢失修改和防止读“脏数据”,三级封锁协议防止丢失修改,读“脏数据”,和不可重复读
-
事务T1等待T2,T2又在等待T1,两个事务永远不能结束,形成死锁
-
多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行执行这些事务的结果相同,成这种调度策略为可串行化调度
-
可串行化是并发事务正确调度的准则
-
简述三级封锁协议的内容以及不同级别的封锁协议能解决哪些数据不一致性问题
-
一级封锁协议是: 事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放/一级封锁协议能够解决“丢失修改”问题
-
二级封锁协议是:在一级封锁协议的基础上增加上事务T在读取数据R之前必须先对其加S锁,读完即可释放S锁。二级封锁协议不仅可以解决“丢失修改”问题,而且可以解决读“脏”数据问题
- 三级封锁协议是: 在一级封锁协议的基础上增加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。三级封锁协议不仅解决了“丢失修改”、读“脏”数据问题,而且进一步解决了“不可重复读”问题
答案:
-
封锁技术通常采用两种锁:排他锁(x锁),共享锁(S锁)。
X锁:如果事务对数据R实现X锁则其他事务必须要等待该事物解除X锁之后才能对该数据进行封锁。
S锁:如果事务对数据R实现S锁,则其他事务仍可以对该数据加S锁,但在事务对该数据没有解除S锁之前,其他任何事务不能对该数据加X锁。
-
SQL的数据更新包括数据插入,数据删除,数据更改,分别用insert,delete和update语句实现
-
采用ER方法的数据库概念设计包括以下步骤: 设计局部ER模式;设计全局ER模式;全局ER模式的优化
-
数据库中的关键码包括超键、候选键、主键、外键。超键和候选键是唯一地标示关系中元组的属性或属性集,但候选键中不含有多余的属性;主键是从候选键中人为指定的; 外键是指一个关系中包含的另一个关系的主键所对应的属性
-
试述视图的作用?
-
视图能够简化用户的操作
-
视图能够使用户从多个角度看待同一数据
-
视图对重构数据库提供了一定程度的逻辑独立性
-
视图对机密数据提供安全保护
3. 登记日志文件时必须遵循什么原则?
-
登记的次序严格按照并发事务执行的时间次序
-
先登记日志文件再写入数据库
4. 两段锁协议是:
-
在对任何数据进行读写操作之前,首先要申请并获得对该数据的封锁
-
在释放一个封锁之后,事务不再申请和获得任何其他封锁
作用: 若并发执行的所有事务均遵循两段锁协议,则对这些事务的任何并发调度策略都是可串行化的
5. 死锁的诊断与解除
超时法:如果一个事务等待时间超过了规定的时限,就认为该事务发生了死锁。解除死锁的办法: 将其撤销
等待图法:用事务等待图动态反映所有事务的等待情况。 解除死锁:选择一个处理代价最小的事务,将其撤销,并释放该事务所持有的所有锁,使其它事务能继续运行下去
6. 什么是死锁?请给出预防死锁的若干方法
-
如果事务T1封锁了数据R1,事务T2封锁了数据R2。T1又申请封锁数据R2,因为数据R2已被事务T2封锁,所以事务T1需要等待。T2又申请封锁数据数据R1,因为数据R1已被数据T1封锁,所以事务T2需要等待。事务T1和T2相互等待而永不能结束,形成死锁
-
预防死锁发生通常可以有两种方法
-
一次封锁法:要求每个事务必须一次将所用到的所有数据全部加锁,否则就不能执行
-
顺序封锁法: 预先对数据对象规定一个封锁顺序,所有事务都按照这个顺序实行封锁。
7. 考虑如下的调度,说明这些调度集合之间的包含关系
-
正确的调度
-
可串行化的调度
-
遵循两段锁的调度
-
串行调度
答案:(3)Ç(2)Ç(4)Ç(1)
8. 什么是数据库中的自主存取控制方法和强制存取控制方法?
-
自主存取控制定义:用户对不同的数据对象具有不同的存取权限,不同的用户对同一数据对象也有不同的权限,而且用户还可以将其所有的权限转授给其他用户。
-
强制存取控制的定义:每一个数据库对象被标以一定的密级,每一个用户也被授予某一级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取
9. 什么是数据库镜像?它有什么用途?
-
数据库镜像即根据DBA的要求,自动把整个数据库或者其中的部分关键数据复制到另一个磁盘上。每当主数据库更新时,DBMS自动把更新后的数据复制过去,即DBMS自动保证了镜像数据与主数据的一致性。
数据镜像的用途有两点:
-
用于数据库的恢复。
-
提高数据的可用性
10. 试述数据库系统的三级模式和两级映像/数据的逻辑独立性和物理独立性
数据系统的三级模式结构由外模式、模式、内模式组成
两级映像:外模式/模式,模式/内模式
当模式改变时,由数据库管理员对各个外模式/模式的映像做相应改变可以使外模式保持不变,从而不必修改应用程序,保证了数据与程序的逻辑独立性。简称数据的逻辑独立性。
当内模式改变时,由数据库管理员对各个模式/内模式的映像做相应改变可以使模式保持不变,从而不必修改应用程序,保证了数据与程序的物理独立性。简称数据的物理独立性
11. 事务的特点
事务的ACID特性
原子性:事务中包括的诸操作要么全做,要么全部做
一致性:事务执行的结果必须是使数据库从一个一致性的状态变到另一个一致性的状态
隔离性:一个事务内部的操作及使用的数据对其他并发事务是隔离的
持续性: 一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的
12. 完全函数依赖
13. 什么是数据库的完整性?
数据库的完整性是指数据的正确性和相容性。数据库的完整性是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据
14. 说明视图与基本表的区别和联系
-
-
数据库保护分为:安全性控制、 完整性控制 、并发性控制和数据的恢复。
-
试述数据库管理系统的基本功能:
-
数据库定义和创建:创建数据库主要是用数据定义语言DDL定义和创建数据库模式、外模式、内模式等数据库对象
-
数据组织、存储和管理:DBMS要分类组织、存储和管理各种数据
-
数据存取:提供用户对数据的操作功能,实现对数据库数据的检索、插入、修改和删除
-
数据库事务管理和运行:DBMS运行控制和管理功能。这些功能保证了数据库的正常运行,保证了事务的ACID特性
-
数据库的建立和维护:数据库的建立和维护包括数据库的初始建立、数据的转换、数据库的转储和恢复等
-
其他功能
18. 实体完整性:若属性(或属性组)F为基本关系R的主码,则F不能取空值
19. 参照完整性:若属性(或属性组)F为基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系)则对于R中的每个元组在F上的取值必须:
或者取空值;或者等于S中某个元组的主码值
20. 数据的独立性:数据的独立性表示应用程序与数据库中存储的数据不存在依赖关系,包括数据的逻辑独立性和物理独立性
21. 数据字典:数据字典是数据库中各种描述信息和控制信息的集合。
数据字典的基本内容有:数据项,数据结构,数据流,数据存储和处理