序言:笔者在进行《数据库》学习中整理的一些题目和笔记,参考书目是施伯乐教授主编的《数据库系统教程第三版》和配套的《习题解答与实验指导》,同时参考了王珊教授主编的《数据库系统概论第五版》,部分题目来自网络。前七章部分两书通用,第七章之后的选学。
索引:
6.试叙述层次、 网状、关系和对象模型这4种逻辑数据模型的区别。
8.根据计算机的系统结构, DBS可分成哪4种?各有什么特点?
11.DBS 由哪几部分组成?它有哪些系统软件?其中DD有什么作用?
4.为什么要对关系代数表达式进行优化?有哪3条启发式规则?对优化起什么作用?
7.什么是存储过程?使用存储过程后,系统具有什么特点?用什么来调用?
4.在关系模式R分解成数据库模式ρ时,如何对待出现的寄生元组和悬挂元组现象?
7.定义并解释概念模型中以下术语:实体,实体型,实体集,实体之间的联系。
1.封闭式散列法和开放式散列法之间有什么区别?在数据库应用中,这两种方法各有什么利弊?
2.在什么情况下使用稠密索引比稀疏索引要好?并做必要的解释。
3.索引机制加快了查询处理速度,但为什么文件只在单属性的查找键上建立索引?
5.试对“被拴记录”下个确切的定义。被拴记录在物理存储中起什么作用有什么利弊?
7.什么是触发器?触发器的作用?触发器有哪两个级别?各用于什么场合?
8.事务是什么?试叙述事务的4个性质,并说明每个性质由DBMS的哪个子系统实现,每一个性质对DBS有什么益处。
20.数据库的并发控制、恢复、完整性和安全性之间有些什么联系和区别?
22.“检查点机制”的主要思想是什么?COMMIT语句与检查点时刻的操作如何协调?
2.关系DBS、OODBS、ORDBS三者各有什么长处和劣势?
5.在数据库设计中,子类实体与超类实体之间应具有哪两个性质?
5.DDB中数据分片必须满足哪3个条件?这3个条件的目的各是什么?
正文:
第一章 概论
1.试述数据、数据库、数据库管理系统、数据库系统的概念。
答:数据:描述事物的符号和记录称为数据。
数据库:长期储存在计算机内的,有组织的,可共享的数据集合。
数据库管理系统:是位于用户和操作系统之间的数据管理软件。
数据库系统:由数据库,数据库管理系统(及其应用开发工具),应用软件,数据库管理员组成的存储,管理,处理,维护数据的系统。
2.数据库系统的特点是什么?
答:数据结构化; 数据共享性高、冗余度低且易扩充; 数据独立性高; 数据由DBMS统一管理。
3.和文件系统相比,数据库文件有什么优点?
文件系统 | 数据库管理系统 |
---|---|
文件系统管理 | DBMS管理 |
面向某一应用 | 面向现实世界 |
共享性差,冗余度大 | 共享性高,冗余度小 |
独立性差 | 具有较高的物理独立性和逻辑独立性 |
记录内有结构,整体无结构 | 整体结构化,用数据模型描述 |
应用程序自己控制 | 由数据库管理系统提供数据安全性,完整性,并发控制和恢复能力 |
4.三级模式结构是什么?二级映像有什么优点?
答:三级模式包括外模式、逻辑模式、内模式; 外模式是用户与数据库系统的接口,是用户用到的那部分数据的描述。外模式由若干个外部记录类型组成; 逻辑模式是数据库中全体数据的整体逻辑结构的描述。它由若干个逻辑记录类型组成,还包含记录间联系、数据的完整性和安全性等要求; 内模式是数据库在物理存储方面的描述,定义所有内部记录类型、索引和文件组织方式以及数据控制方面的细节。
外模式/逻辑模式映像的优点:当模式改变时,由DBA对外模式/逻辑模式映像做相应的改变,外模式可以保持不变。应用程序是根据外模式而编写的,因而应用程序不必修改,保证了数据与逻辑的独立性,即数据的逻辑独立性; 逻辑模式/内模式映像的优点:当数据库的存储结构改变时,由DBA对逻辑模式/内模式映像作相应的改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,即数据的物理独立性。
5.数据抽象的过程有哪几个步骤?
答:数据抽象的过程,也就是数据库设计的过程,分为如下4个步骤。 第1步:根据用户需求,设计数据库的概念模型。 第2步:根据转换规则,把概念模型转换成数据库的逻辑模型。 第3步:根据用户的业务特点,设计不同的外部模型,供程序员使用。 第4步:实现数据库时,要根据逻辑模型设计其内部模型。 一般将上述第 1步称为DB的概念设计,第2、第3步称为DB的逻辑设计,第4步称为DB的物理设计。
6.试叙述层次、 网状、关系和对象模型这4种逻辑数据模型的区别。
答:层次模型的数据结构为树结构,记录之间的联系通过指针实现,查询较快,但DML属于过程性的,操作复杂。 网状模型的数据结构为有向图,记录之间的联系通过指针实现,查询较快,并且容易实现M:N联系,但DML也属于过程性的语言,编程较复杂。 关系模型的数据结构为二维表格,容易为初学者所理解。记录之间的联系通过关键码实现。DML属于非过程性语言,编程较简单。 对象模型能完整描述现实世界的数据结构,具有丰富的表达能力,能表达嵌套、 递归的数据结构,通过对象标识符(OID)实现。但涉及的知识面较广,用户较难理解,这种模型尚未普及。
7.试述DBMS的工作模式和主要功能。
答:DBMS的工作模式如下。 ①接受应用程序的数据请求和处理请求。 ②将用户的数据请求转换成低层指令。 ③实现对DB的操作。 ④从对DB的操作中接受查询结果。 ⑤对查询结果进行处理。 ⑥将处理结果返回给用户。 DBMS的主要功能体现在DB的定义、操纵、保护、维护和数据字典5个方面。
8.根据计算机的系统结构, DBS可分成哪4种?各有什么特点?
答:根据计算机的系统结构,DBS 可分成集中式、C/S式、并行式和分布式4种。 集中式DBS的特点是单点数据(DB 集中在一个场地)单点处理( 单个CPU)。 C/S式DBS的特点是计算机的功能分布在客户机和服务器上(即功能的分布)。客户机上专门实现前端处理和用户界面。服务器上完成事务处理和数据访问控制。 并行式 DBS的特点是使用多个CPU和多个磁盘进行并行操作。 分布式DBS的特点是多点数据(DB分布在多个场地)多点处理(多个CPU)。数据具有物理分布性和逻辑整体性特点。系统中事务有本地事务(访问本地DB)和全局事务(访问至少两个场地的DB)之分。
9.试述逻辑模式在数据库结构中的重要地位。
答:数据按外模式的描述提供给用户,按内模式的描述存储在磁盘中,而逻辑模式提供了连接这两级的相对稳定的中间观点,并使得两级中任何一级的改变都不受另一级的牵制。
10.元数据”与“数据”有什么联系与区别?
答:元数据(Metadata)是指“数据的数据”,即数据的描述。DB中的元数据是指三层模式结构的详细描述。 数据(Data)一般是指用户使用的具体值。
11.DBS 由哪几部分组成?它有哪些系统软件?其中DD有什么作用?
答:DBS由DB、硬件、软件和DBA等4个部分组成。 系统软件主要有DBMS、OS、3GL和4GL。 在DBS中,DD是存储三层结构描述(即元数据)的DB,DBMS 的所有工作都要以DD中的元数据为依据,也就是所有工作都要通过DD访问DB。
12.数据字典的内容和作用是什么?
答:数据字典是对数据的数据项,数据结构,数据流,物理存储和处理逻辑进行定义和描述。其目的是对数据流图上的每个成份加以定义和说明,是分析阶段的工具。
第二章 关系模型和关系运算理论
1.关系模型中的完整性约束是哪几类?定义?
答:实体完整性:关系模式中的主码不能为空值; 参照完整性:关系模式中的外码只能是空值或者另一关系模式的主码; 用户定义完整性:关系模式中针对某一属性的约束。
*2.等值连接和自然连接的区别是什么?
答:自然连接是等值连接的一种特殊情况; 等值连接要求连接的是值相等的分量,两个关系中可以没有相同的属性;进行自然连接的两个关系中必须有相同的属性。 等值连接不要求去掉重复属性列;自然连接时需要除掉重复的属性列。
*3.外连接是什么?
答:外连接是指两个表在进行操作时,不仅返回符合连接和查询条件的元组,还返回不符合条件的一些元组; 左外连接是指返回左表中仅符合连接条件不符合查询条件的元组; 右外连接是指返回右表中仅符合连接条件不符合查询条件的元组; 全外连接是左外连接和右外连接去掉重复项的元组集并集。
4.为什么要对关系代数表达式进行优化?有哪3条启发式规则?对优化起什么作用?
答:关系代数表达式由关系代数操作组合而成。其中,笛卡儿积和连接操作最费时,并且会生成大量的中间结果。如果直接按表达式书写的顺序执行,必将花费很多时间,并生成大量的中间结果,效率较低。在执行前,由DBMS的查询子系统先对关系代数表达式进行优化,尽可能先执行选择和投影操作,以便减少中间结果,并节省时间。 优化工作是由DBMS完成的,用户书写时不必关心优化的问题,仍以简练的形式书写即可。 3条启发式规则是:尽可能早执行选择操作;可能早执行投影操作;把笛卡儿积与附近的一连串选择和投影合并起来做。 使用这3条规则,能最大限度地减少中间关系的数据量。
5.在关系模型中, 对关系作了哪些规范性限制?
答:对关系作了4个限制:属性值不可分解;没有重复元组;没有行序;使用时有列序。
6.试述关系模型的三个组成部分
答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
7.什么是基本表?什么是视图?两者的区别和联系是什么?
答:基本表是本身独立存在的表,在SQL中一个关系就对应一个表。 视图是从一个或几个基本表导出的表。 (1) 存在不同 基本表:基本表是本身独立存在的表; 视图:视图本身不存在独立存储在数据库中,是一个虚表。 (2) 存储内容不同 基本表:基本表存储的内容是实际的数据。 视图:视图存储的内容只有存储定义,不存放实际数据。 (3)操作不同 基本表:操作者可以对基本表进行增删改查四种操作。 视图:操作者只可以对视图进行查操作,不能进行增删改操作。
8.哪类视图是可以更新的?哪类视图是不可更新的?
答:从单个基本表只使用选择、投影操作导出的视图称为“行列子集视图”,是可以更新的。允许用户更新的视图定义时必须加上WITH CHECK OPTIOM。 相反,定义在多个基本表上的视图、使用聚合操作的视图、不含基本表主键的视图都是不可更新的。
9.试述关系数据模型的优缺点
答:关系数据模型具有下列优点: (1)关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。 (2)关系模型的概念单一无论实体还是实体之间的联系都用关系表示。对数据的检索结果也是关系。所以其数据结构简单、清晰,用户易懂易用。 (3)关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。 关系模型最主要的缺点是:由于存取路径对用户透明,查询效率往往不如非关系模型。因此为了提高性能,必须对用户的查询要求进行优化,增加了开发数据库管理系统的难度。
10.关系代数的基本操作和组合操作
答:5个基本操作:并、差、笛卡尔积、选择和投影。
4个组合操作:交、连接、自然连接、除。
11.试述查询优化的一般步骤
答:各个关系系统的优化方法不尽相同,大致的步骤可以归纳如下: (1)把查询转换成某种内部表示,通常用的内部表示是语法树。 (2)把语法树转换成标准(优化)形式。 即利用优化算法,把原始的语法树转换成优化的形式。 (3)选择低层的存取路径。 (4)生成查询计划,选择代价最小的。
12.什么是SQL/PSM?这个标准中有哪些流程控制语句?
答:SQL/PSM是SQL标准的一部分,它指定了如何编写持久存储模块,提供流程控制语句来表示过程处理的应用逻辑。 这个标准中的流程控制语句主要有条件分支语句和3种循环语句。
第三章 SQL语言
1.SQL的特点?
答:综合统一。集DCL,DML,DDL功能于一体;
高度非过程化。使用SQL进行数据操作时,是需要提出“做什么”,而不需要指明怎么做;
面向集合的操作方式。操作的对象、查找结果都可以是元组的集合;
同一种语法结构提供多种使用方式。既可以作为独立的语言进行交互,又可以作为嵌入式语言嵌入到更高级的语言程序中进行操作;
语言简洁,易学易用。
2.什么是数据库操纵语言、什么是数据库控制语言,试举例说明
答:数据操纵语言是指通过对表中的数据进行插入、删除和修改等操作,实现对数据库的基本操作。如:SELECT命令的作用是检查表的内容,UPDATE命令的作用是修改表等。 数据控制语言是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT、REVOKE等语句。
3.索引的作用?和它的优点缺点是什么?
答:当表的数据量比较大时,查询操作比较耗时,建立索引可以加快查询速度。 优点:加速查询速度; 缺点:索引需要占一定的存储空间,且基本表更新时需要维护索引表。
4.索引和键有什么区别?
答:索引是存储在数据库中的一个物理结构,是实际存在的,相当于一本书的目录; 键是一个逻辑概念,不是数据库中的物理部分。键分为主键和外键,主键相当于一本书中每个页的页码。 (扩展:聚簇索引:将数据存储与索引放到了一块,找到索引也就找到了数据。)
5.数据库中常用的索引有哪些?
答:B+树索引:B+树是对B树优化处理了的多路搜索树,与B树的区别在于,B树的每个结点都可以存储数据,而B+树只有叶子结点可以存储数据,且每个叶子结点都用链表链接。在数据库的查询中一般都是批量查询数据,采用B+树一次查询多条时,确定首尾位置,便可以方便的确定多条数据位置,提高查询效率。 Hash索引:通过一定的算法计算出哈希值,然后映射出对应的数据存储位置。检索速度快,但是哈希值可能存在碰撞。
6.视图是什么?有何作用?
答:视图是从一个或几个基本表中导出的表,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据。基本表中的数据发生变化时,从视图中查询出来的数据也就随之发生变化。 作用:能够简化用户的操作; 使用户能以多种角度看待同一数据; 在一定程度上提供了数据的逻辑独立性; 能够对秘密数据提供安全保护; 可以更清晰的表达查询。
7.什么是存储过程?使用存储过程后,系统具有什么特点?用什么来调用?
答:存储过程是使用SQL语句和流程控制语句编写的模块,存储过程经编译和优化后存储在数据库服务器端的数据库中,使用时调用即可。 使用存储过程后,系统具有以下5个优点:提高运行速度;增强了SQL的功能和灵活性;可以降低网络的通信量;减轻了编写程序的工作量;间接实现安全控制功能。 调用:可以创建一个命令对象进行调用。
8.描述数据库对嵌入式SQL的处理过程
答:DBMS的预处理程序对源程序进行扫描,识别出嵌入式SQL语句,把他们转换成主语言调用语句,使得主语言编译程序可以识别它们,然后将它们编译成目标代码。
9.游标是什么?
答:系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。当SELECT语句的查询结果是个多元组时,此时主语言程序无法使用,一定要用游标机制把多个元组一次一个地传送给主语言程序处理。
10.关系数据库中查询处理的步骤是什么?每一步进行简要概括
答:查询分析:对查询语句进行词法分析、语法分析(检查其是否正确);
查询检查:对合法的查询语句进行语义检查(语义检查就是检查其是否有效)
查询优化:选择一个高效执行的查询处理策略;
查询执行:依据优化得到的执行策略生成查询执行计划,并生成相应的查询执行计划代码。
11.CASCADE方式和RESTRICT方式
答:CASCADE方式表示:在基本表中删除某列时,所有引用到该列的视图和约束也要一起自动地被删除。
RESTRICT方式表示:在没有视图或约束引用该属性时,才能在基本表中删除该列,否则拒绝删除操作。
第四章 关系数据库的规范化设计
1.规范化过程中,逐级依次消除了何种函数依赖?
答:由1NF到2NF,消除了非主属性对主属性的部分函数依赖;
由2NF到3NF,消除了非主属性对主属性的传递函数依赖;
由3NF到BCNF,消除了主属性对码的部分函数依赖和传递函数依赖;
由BCNF到4NF,消除了非平凡且非函数依赖的多值依赖。
1NF:如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是1NF的模式。
2NF:如果R是1NF的模式,且每个非主属性完全函数依赖于R的候选键,那么称R是2NF的模式。 3NF:如果R是1NF的模式,且每个非主属性都不传递依赖于R的候选键,那么称R是3NF的模式。 BCNF:如果R是1NF的模式,且每个属性都不传递依赖于R的候选键,那么称R是BCNF的模式。
2.为什么要进行关系模式的分解?分解的依据是什么?
答:由于数据之间存在着联系和约束,在关系模式的关系中可能会存在数据冗余和操作异常现象,因此需把关系模式进行分解,以消除冗余和异常现象。分解的依据是数据依赖和范式(模式的标准)。
3.分解有什么优缺点?
答:分解有两个优点: ①消除冗余和异常。 ②在分解了的关系中可存储悬挂元组。
分解有两个缺点: ①可能分解了的关系不存在泛关系。 ②做查询操作时需做连接操作,增加了查询时间。
4.在关系模式R分解成数据库模式ρ时,如何对待出现的寄生元组和悬挂元组现象?
答:当数据库中出现寄生元组时,说明R到ρ的分解是损失分解,应该重新对R进行分解,同时应保证分解是无损分解。 当数据库中出现悬挂元组时,说明系统未执行泛关系假设。但存储悬挂元组是分解的优点,能存储泛关系中无法存储的元组。
第五章 数据库设计与ER模型
1.数据库设计的基本步骤是什么?
答:需求分析。了解和分析用户需求;
概念结构设计。对用户需求进行抽象和归纳,形成一个独立于DBMS的概念模型(E-R图);
逻辑结构设计。将概念结构转换为某个DBMS所支持的数据模型,通常为关系模型;
物理结构设计。为逻辑数据模型选取一个最适合存储结构和存取方法;
数据库实施阶段。构建数据库,编写和调试应用程序;
数据库运行和维护。正式投入运行。
2.概念模型有什么作用?
答:概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。
3.合并E-R图时主要包括哪几种冲突?
答:属性冲突。不同的实体对同一属性的定义不同;
命名冲突。同名异义、异名同义;
结构冲突。同一实体在不同的局部E-R图中有不同的抽象。
4.一个实体型转换为一个关系模式有哪几种情况?
答:一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并;
一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并;
一个m:n联系可以转换为一个关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。
5.在数据库设计中,为什么要有概念设计这一阶段?
答:如果在需求分析之后,直接把用户信息需求得到的数据存储格式转换成DBMS能处理的逻辑模型。这样,注意力往往被牵扯到更多的细节限制方面,而不能集中在最重要的信息组织结构和处理模型上。 为了改善这种状况,在需求分析和逻辑设计之间增加了概念设计阶段。此时,设计人员仅从用户角度看待数据及处理需求和约束,而后产生一个反映用户观点的概念模型(也称为“组织模型”)。将概念设计从设计过程中独立开来,可以使数据库设计各阶段的任务相对单一化,得以有效控制设计的复杂程度,便于组织管理。概念模型能充分反映现实世界中实体间的联系,又是各种基本数据模型的共同基础,同时也容易向现在普遍使用的关系模型转换。
6.对象联系图与ER图的主要差别是什么?
答:对象联系图与ER图的主要差别是对象联系图能通过“引用”类型表示嵌套、递归的数据结构,还有能表示数据结构之间的继承性(即子类和超类)。
7.定义并解释概念模型中以下术语:实体,实体型,实体集,实体之间的联系。
答:实体:客观存在并可相互区别的事物。
实体型:用实体名及其属性名集合来抽象刻画同类实体。
实体集:同一类型实体的集合。
实体之间的联系:通常是指不同实体之间的联系,有一对一、一对多、多对多等多种类型。
第六章 数据库的存储结构
1.封闭式散列法和开放式散列法之间有什么区别?在数据库应用中,这两种方法各有什么利弊?
答:封闭式散列法和开放式散列法是指在桶溢出时所采用的方法。 封闭式散列法是指每个桶号的存储空间分成基本桶和溢出桶两种。溢出桶链接成一条溢出链,查找某桶号的数据就在这条溢出链中进行,不会到其他溢出链中查找。 开放式散列法是把桶集固定下来,也就是只考虑基本桶,不考虑溢出桶。如果有一个桶装满了记录,那么就在桶集中挑选一个有空闲空间的桶,装入新记录。 封闭散列法的优点是查找速度快,但结构比较复杂。开放式散列法的空间较省,但插入、删除操作比较复杂。所以现在大多数DBS中都使用封闭散列法。
2.在什么情况下使用稠密索引比稀疏索引要好?并做必要的解释。
答:在存取时间和空间开销方面,如果强调存取时间,那么应采用稠密索引。这是因为稠密索引是对每个查找键值建立一个索引记录,所以查找速度较快。
3.索引机制加快了查询处理速度,但为什么文件只在单属性的查找键上建立索引?
答:文件只在单属性的查找键上建立索引,这样可以简化系统的管理。如果一个索引由多个属性构成,那么在查询时,若查询条件不是等值操作,而是比较操作,就会带来复杂性,会有较多的I/O操作。
4.主索引和辅助索引之间有什么区别?
答:两种索引的区别在于:主索引是指索引的查找键值的顺序与主文件的顺序一致的索引。而辅助索引是指索引的查找键值的顺序与主文件的顺序不一致的索引。
5.试对“被拴记录”下个确切的定义。被拴记录在物理存储中起什么作用有什么利弊?
答:在数据库中,被指针指向的记录称为“被拴记录”。被拴记录表示记录已被其他用户引用。如果不小心把被拴记录删掉,那么指向该记录的指针就成了“悬挂指针”。悬挂指针指向的空间是“垃圾”,别人无法使用。
第七章 系统实现技术
1.数据库的安全性是指什么?有哪些安全性技术?
答:数据库的安全性是指保护数据库,防止恶意破坏和非法存取。 安全性技术:用户标识和鉴别、多层存取控制、审计、视图、数据加密。
2.存取控制是指什么?主要包括哪两部分?有哪两类方法?
答:存取控制是指确保只授权给有资格的用户访问数据库的权限,且令所有未被授权的人员无法接近数据。
两个部分:定义用户权限和合法权限检查;
两种方法: 自主存取控制(DAC):用户对不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限 强制存取控制(MAC):每一个数据库对象被标以一定的密级,每一个用户也被授予一定级别的许可证,只有具有合法许可证的用户才可以进行存取。
3.视图机制是如何对数据库实现安全性控制的?
答:可以对不同的用户定义不同的视图,也就是说,通过视图机制把要保密的数据对无权存取的用户隐藏起来。
4.审计功能是如何对数据库实现安全性控制的?
答:审计功能是把用户对数据库的一系列操作自动记录到审计日志中,审计员可以利用审计日志监控数据库中的各种行为,找出导致数据库发生异常的事件。
5.数据库的完整性是指什么?
答:数据库的完整性是指数据的正确性、有效性和相容性,防止错误的数据进入DB。 DBMS完整性子系统的主要功能有两点:监督事务的执行,并测试是否违反完整性规则;若有违反现象,则采取恰当的操作。
6.什么是断言?
答:断言是指更具有一般性的约束,断言创建后,任何涉及到断言中的关系的操作都会引发数据库对断言的检查,任何使断言为假的操作都会被拒绝执行。
7.什么是触发器?触发器的作用?触发器有哪两个级别?各用于什么场合?
答:触发器是一个能由系统自动执行对数据库进行修改的语句。任何用户对表进行增删改操作都会有数据库服务器自动激活相应的触发器,对数据库进行相应的检查和操作。 触发器分成元组级和语句级两个级别。在只对元组中的值有某种限制时,可采用元组级触发器实现。如果在插、删、改后对关系中若干元组的聚合值有限制,则可采用语句级触发器实现。
8.事务是什么?试叙述事务的4个性质,并说明每个性质由DBMS的哪个子系统实现,每一个性质对DBS有什么益处。
答:事务是数据库进行操作的一个基本单位。
①原子性(Atomicity),是指一个事务对DB的所有操作是一个不可分割的工作单元。原子性是由DBMS的事务管理子系统实现的。事务的原子性保证了事务对数据库的操作不会丢失。
②一致性(Consistency),是指数据不会因事务的执行而遭受破坏。事务的一致性是由DBMS的完整性子系统实现的。事务的一致性保证事务对数据库的操作正确执行。
③隔离性(Isolation),是指事务并发执行时与这些事务单独执行时结果一样。事务的隔离性是由DBMS的并发控制子系统实现的。隔离性使并发执行的事务不必关心其他事务,如同在单用户环境下执行一样。
④持久性(Durability),是指事务对DB的更新应永久地反映在DB中。持久性是由DBMS的恢复管理子系统实现的。持久性能保证DB具有可恢复性。
9.为什么事务非正常结束时会影响数据库数据的正确性?
答:事务具有一致性,事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。
10.数据库恢复的基本技术有哪些?
答:数据转储和登录日志文件是数据库恢复的基本技术。
数据转储是指DBA定期将数据库复制到其他介质上进行保存,这些备份的数据叫做后备副本; 登记日志文件,日志文件是用来记录事务对数据库进行更新操作的文件。 当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性状态。
11.登记日志文件时为什么必须先写日志文件,后写数据库?
答:把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。 如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,在恢复时并不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。
*12.数据库故障的种类有哪几种?相应的恢复策略是什么?
答:三种:事务故障、系统故障、介质故障; 事务故障是指事务在运行至终点前被中止; 事务故障恢复是由系统自动完成,利用日志文件撤销此事务已对数据库进行的修改;
系统故障是指造成系统停止运转的任何事件,使得系统要重新启动; 系统故障的恢复是在重新启动后系统自动完成,为了防止系统故障造成的数据不一致性,必须撤销故障时未完成的事务,重做已完成的事务;
介质故障是指磁盘上的物理数据和日志文件被破坏; 介质故障的恢复方法就是重装数据库,重做已经完成的事务。
13.在数据库中为什么要并发控制?
答:数据库是共享资源,通常有多个事务在同时执行,当多个事务并发的存取数据库时就会存在同时读或写同一数据的情况,如果对并发操作不加控制,就会存在数据读取或存取错误,破坏数据库的一致性。
*14.并发造成的数据不一致性包括什么?
答:丢失修改:A、B两个事务同时对一个数据进行操作,A的修改破坏了B的修改,导致B的修改丢失;
读脏数据:A对数据进行了修改之后,B读入该数据,然后A又因为某一原因撤销了该修改,导致数据恢复原值,此时B读取的数据就成了脏数据;
不可重复读:A读取了数据后,B对数据进行了修改,导致A无法再现前一次的读取结果。
*15.什么是锁?有哪两种锁?
答:锁是最常用的并发控制机构,是防止其他事务访问指定资源,实现并发控制的一种手段。 排他锁(X写锁):当数据被加上写锁,其他事务不能对该数据进行读和写; 共享锁(S读锁):当数据被加上读锁,允许其他事务对该数据进行读,不允许写。
*16.简要概括一、二、三级封锁协议
答:一级封锁协议:事务在修改数据之前加写锁,直到事务结束才释放。该协议可以防止丢失修改; 二级封锁协议:在一级封锁协议的基础上,加上了事务在读取数据之前对其加读锁,读完后即可释放读锁。该协议避免了读脏数据;
三级封锁协议:在一级封锁协议的基础上,加上了事务在读取数据之前必须加上读锁,直到事务结束才释放。该协议解决了不可重复读问题。
17.数据库保护(访问)的内容有哪些?
答:安全性控制,完整性控制,并发性控制和数据恢复。
18.什么是UNDO操作和REDO操作?为什么要这样设置?
答:UNDO和REDO是系统内部命令。 在DB恢复时,对于已经COMMIT但更新仍停留在缓冲区的事务要执行REDO(重做)操作,即根据日志内容把该事务对DB的修改重做一遍。 对于还未结束的事务要执行UNDO(撤销)操作,即根据日志内容把该事务对DB已做的修改撤销掉。 设置UNDO和REDO操作是为了使数据库具有可恢复性。
19.封锁会带来哪些问题?如何解决?
答:封锁技术可以避免并发操作引起的各种错误,但有可能产生3个问题,其解决办法如下: ①“活锁”问题,可用“先来先服务”排队的方式和提高事务优先级的方法来解决。 ②“饿死”问题,可用“授权加锁”方法来避免。 ③“死锁”问题,可用抽取某事务作为牺牲品将其撤销的方法来解决。
活锁:系统可能使某个事务永远处于等待状态,得不到封锁的机会,这种现象称为“活锁”。
饿死:有可能存在一个事务序列,其中每个事务都申请对某数据项加S锁,且每个事务在授权加锁后的一小段时间内释放封锁,此时若另有一个事务T2欲在该数据项上加X锁,则将永远轮不上封锁的机会,这种现象称为“饿死”。
死锁:系统中有两个或两个以上的事务都处于等待状态,并且每个事务都在等待其中另一个事务解除封锁,它才能继续执行下去,结果造成任何一个事务都无法继续执行,这种现象称系统进入了“死锁”状态。
20.数据库的并发控制、恢复、完整性和安全性之间有些什么联系和区别?
答:这4个方面是一个有机的整体,不可偏废某一方面。DBMS的这4个子系统一起保证了DBS的正常运行。 DB的可恢复性防止DB被破坏或DB中的数据有错误。 DB的并发控制是为了防止并发操作的事务发生相互干扰的现象。 DB的完整性是为了保证DB中的数据是正确的,避免非法的更新。 DB的安全性也是为了保护DB,防止被不合法地使用,以免数据被泄露、非法更改和破坏。
21.为什么X锁需保留到事务终点,而S锁可随时解除?
答:为防止由事务的ROLLBACK引起丢失更新操作,X封锁必须保留到事务终点,因此DML不提供专门的解除X锁的操作,即解除X锁的操作合并到事务的终点去做。 而在未到事务终点时,执行解除S锁的操作可以增加事务并发操作的程度,但对DB不会产生什么错误的影响,因此DML可以提供专门的解除S锁的操作让用户使用。
22.“检查点机制”的主要思想是什么?COMMIT语句与检查点时刻的操作如何协调?
答:“检查点机制”的主要思想是在检查点时刻才真正把对DB的修改写到磁盘中。在DB恢复时,只有那些在最后一个检查点到故障点之间还在执行的事务才需要恢复。 在执行COMMIT语句后,事务对DB的更新已提交,但对DB的更新可能还留在内存的缓冲区,在检查点时刻才真正写到磁盘中,因此事务真正结束是在COMMIT后还要加上到达检查点时刻。
23.日志文件中记载了哪些内容?
答:日志文件中记载了事务开始标记、事务结束标记以及事务对DB进行插入、删除和修改的每一次操作前后的值。
24.解释强制存取控制机制中主体、客体、敏感度标记的含义
答:主体:系统中的活动实体,包括数据库管理系统的实际用户,以及代表各个用户的进程
客体:系统中的被动实体,是受主体操纵的,包括基本表,视图,索引等
主体的敏感度标记为许可证级别
客体的敏感度标记称为密级
第八章 对象数据库系统
1.面向对象数据的定义
面向对象数据库(OODB)是一个基于面向对象编程语言(OOP)的数据库,其数据都是以对象/类的形式表示并存储在面向对象数据库中。简单来讲,面向对象数据库 = 面向对象编程语言 + 关系型数据库特性。在这个公式里面,面向对象编程语言的三个特性为继承、多态、封装;而关系型数据库特性的三个特性:实体完整性、并发、查询处理。
2.关系DBS、OODBS、ORDBS三者各有什么长处和劣势?
答:关系DBS的数据类型简单,查询语言功能强大,具有较好的保护性。其缺点是不能表示嵌套、递归的数据结构。 OODBS能支持复合数据类型,与程序设计语言集成一体化,性能高。其缺点是较难提供对说明性查询的支持。 ORDBS能支持复合数据类型,查询语言功能强大,具有较好的保护性。其缺点是还不能说是严格意义上的面向对象数据模型。
3.OODB与ORDB有什么区别?
答:ORDB是从SQL出发的,引入了复合类型、维承性、引用类型等面向对象概念,很可能是从关系世界通往面向对象世界的一条平坦之路。 OODB在面向对象语言(C++)基础上引入了持久数据的概念,能操作DB,ODMG93标准不支持SQL标准,因此尚难推广使用。
4.与传统的关系模型相比,对象关系模型有哪些扩充?
答:与传统的关系模型相比,对象关系模型有下列扩充。 ①在定义语言上有3个扩充: ●数据类型的扩充(引入复合类型); ●在类型一级和表一级实现继承性: ●使用“引用类型”。 ②在查询语言方面,用户需记住属性值是单值还是多值。在属性值是多值时,需定义新的元组变量。
5.在数据库设计中,子类实体与超类实体之间应具有哪两个性质?
答:子类与超类之间有如下两个性质: ①子类与超类之间具有继承性特点,即子类实体继承超类实体的所有属性,但子类实体本身还可以包含比超类实体更多的属性。 ②这种继承性是通过子类实体和超类实体有相同的实体标识符实现的。
第九章 分布式数据库系统
1.与集中式DBS、分散式DBS相比,DDBS有什么不同?
答:与集中式DBS的集中存储相比,分布式DBS的数据具有“分布性”特点:数据不是存储在一个场地,而是分布存储在各个场地的。 与分散式DBS的分散存储相比,分布式DBS的数据具有“逻辑整体性"特点。
2.DDBS有哪些基本特点?还可以导出哪些特点?
答:DDBS有4个基本特点:物理分布性、逻辑整体性、场地自治性、场地之间的协作性。 由此还可导出其他4个特点:数据独立性、集中与自治相结合的控制机制、适当增加数据冗余度、事务管理的分布性。
3.DDBS有哪些优点和缺点?
答:与集中式DBS相比,DDBS有6个优点:灵活的体系结构,分布式的管理和控制机构,经济性能优越,系统可靠性高、可用性好,局部应用的响应速度快,可扩展性好。 缺点有3个:花在通信部分的开销较大,复杂的存取结构在分布式系统中不一定有效,数据的安全性和保密性较难处理。
4.在分布式数据库中,什么时候要使用投票和选举方法?
答:在分布式并发控制中,如果不存在备份场地,或主场地和备份场地都有故障,就要采用选举方法产生一个备份场地。 在系统中如果不采用识别副本技术,那么并发控制就要采用投票方法来决定封锁是否成功。
5.DDB中数据分片必须满足哪3个条件?这3个条件的目的各是什么?
答:DDB中的数据分片必须满足如下3个条件。
①完备性条件:指全局关系中的所有数据均应映射到片段中。目的是保证所有数据均在DB中存储,不会丢失数据。
②重构条件:由各个片段可以重建全局关系。目的是可以像无损联接那样不丢失信息。
③不相交条件:数据片段相互之间不应该重叠(主键除外)。目的是为了防止数据冗余。
第十章 ODBC技术
1.ODBC技术有什么作用?其卓越贡献是什么?
答:ODBC技术的作用是使应用程序与DBMS在逻辑上可以分离,使应用程序具有数据库无关性。 ODBC的卓越贡献是使应用程序具有良好的互用性和可移植性,并且具备同时访问多种DBS的能力,从而克服了传统数据库应用程序的缺陷。对用户而言,ODBC驱动程序屏蔽掉了不同DBS的差异。
2.ODBC的体系结构有哪几层?试叙述各层之间的联系。
答:ODBC的体系结构有4层:应用程序,驱动程序管理器,DB驱动程序,数据源。
应用程序要完成ODBC外部接口的所有工作,用C语言和ODBC函数来编写应用程序。
驱动程序管理器管理应用程序和DB驱动程序之间的交互作用,为应用程序加载和调用DB驱动程序。
DB驱动程序执行ODBC函数,解释执行SQL语句。
数据源是DB驱动程序与DB连接的桥梁。
第十一章 XML技术
1.什么是 XML?
答:XML 指可扩展标记语言 XML 是一种标记语言,很类似 HTML
XML 的设计宗旨是传输数据,而非显示数据 XML
标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准
2.XML 与 HTML 的主要差异
答:XML 不是 HTML 的替代。
XML 和 HTML 为不同的目的而设计:
XML 被设计为传输和存储数据,其焦点是数据的内容。
HTML 被设计用来显示数据,其焦点是数据的外观。
第十二章 现代信息集成技术
1.DW数据与DB数据有什么区别?
答:DW数据具有分析型、综合的或提炼的、代表过去、不更新、操作需求事先不知道、分析驱动、面向分析、一次操作数据量大、支持决策工作及数据量在100 GB到几TB之间等特点。 DB数据具有操作性、细节的、在存取时准确的、可更新的、操作需求事先可知道、事务驱动、面向应用、一次操作数据量小、支持日常工作及DB规模在100 MB到几GB之间等特点。
2.试叙述DW的定义。
答:数据仓库(DW)是面向主题的、集成的、相对稳定的、不同时间的数据集合,用于支持经营管理中的决策制定过程。
3.DM与DW的区别
答:DW是一种存储技术,它的数据存储量是一般数据库的100倍,DW中包含了大量的历史数据、当前的详细数据以及综合数据。它能为不同用户的不同决策提供所需的数据和信息。 DM是从人工智能和机器学习中发展起来的,研究从大量的数据中挖掘出有用的信息和知识的各种方法和技术。
4.DM与OLAP的联系
答:DM和OLAP都是决策支持系统的重要组成部分,两者都属于分析型工具,都可以从大量的数据中找出决策中需要的信息。然而,它们是完全不同的工具,基于的技术也大相径庭。
5.DM与OLAP的区别
答:DM与OLAP的本质区别是,DM是在没有明确假设的前提下去挖掘信息、发现知识,DM所得到的信息是先前未知的信息,是预先未曾预料到的信息。 DM与OLAP的不同之处是,DM不是用于验证某个假定的模式的正确性,而是在数据库中自己寻找模型,这在本质上是一个归纳的过程。
6.OLTP与OLAP之间的比较
OLTP | OLAP | |
---|---|---|
用户 | 操作人员,低层管理人员 | 决策人员,高级管理人员 |
功能 | 日常操作处理 | 分析决策 |
DB 设计 | 面向应用 | 面向主题 |
数据 | 当前的, 最新的细节的, 二维的分立的 | 历史的, 聚集的, 多维的集成的, 统一的 |
存取 | 读/写数十条记录 | 读上百万条记录 |
工作单位 | 简单的事务 | 复杂的查询 |
DB 大小 | 100MB-GB | 100GB-TB |
总的来说,OLTP就是面向我们的应用系统数据库的,OLAP是面向数据仓库的。