数据库系统概论中常见问题【自用】

  1. 数据库:是长期存储在计算机内有组织可共享的大量数据的集合。数据库具有较小的冗余度较高的数据独立性易扩展性。
  2. 数据:描述事物的符号记录
  3. 数据模型的组成要素:数据结构数据操作数据的完整性约束
  4. 数据模型有:层次,网状,关系,面向对象模型。其中关系模型最广泛
  5. 关系模型的基本数据结构是二维表格
  6. 关系模型的三个组成部分:关系数据结构、关系操作集合、关系完整性约束
  7. 概念模型独立于硬件设备和DBMS
  8. 概念模型是面向信息世界的,它是按用户的观点对数据和信息的建模;数据模型是面向计算机世界的,它是按计算机观点对数据建模
  9. 在数据库的概念设计中,最常用/最著名的数据模型是实体-联系模型
  10. 数据库系统核心和基础数据模型
  11. 数据库系统的核心是DMBS主要功能是定义数据库
  12. 数据库系统:在计算机系统中引入数据库后的系统,一般由数据库数据库管理系统操作系统DBA用户构成,是一个具有管理数据库功能的计算机软硬件综合系统。
  13. 在数据库系统中,保证数据及语义正确和有效的功能是:完整性控制
  14. 数据库管理系统:位于用户与操作系统之间的一层数据管理软件,它是数据库系统的重要组成部分。DBMS具有定义,建立,维护和使用的数据库的功能,通常由数据描述语言及其翻译程序,数据操纵语言及其处理程序和数据库管理的例行程序。
  15. 数据库管理系统的功能:数据定义功能DDL数据操纵功能DML数据查询功能数据控制功能
  16. 数据库管理系统提供的数据控制/安全方面的功能包括:安全性保护、数据的完整性检查和并发控制和数据库恢复
  17. 现实中事物之间的联系有三种,这反映了实体集之间的联系,1对1,1对多,多对多
  18. 要保证数据库的数据独立性,需要修改的是三层模式之间的两种映射
  19. 数据库的三级模式:模式(逻辑模式和概念模式),外模式(子模式或用户模式),内模式(存储模式或物理模式)
  20. 单个用户使用的数据视图的描述为外模式
  21. 完整性约束:数据库中数据应该满足的语义约束条件
  22. 取出关系中的某些列,并消去重复元组的关系代数运算称为投影
  23. 域:一组具有相同数据类型的值的集合
  24. 关系:关系是笛卡尔积的有限子集,关系是值,是关系模式的实例,关系是动态的,随时间不断变化的。
  25. 关系模式是关系的框架,是对关系结构的描述。它指出了关系是哪些属性构成。是静态的,是稳定的。
  26. 候选码:能唯一标识关系中元组的一个属性或属性集
  27. 码:码(Key)指的是一种能够唯一识别数据库中记录的属性或属性组合
  28. 主码:从关系的多个候选码中的选择出其中一个作为查询,插入或删除原则的操作变量,被选中的候选码称为主码
  29. 外码:是关系模式R中的一个‌属性或属性组,其本身并非R的主码,但引用了另一个关系模式S的主码
  30. 全码:当整个属性组都是码的时候,称为全码
  31. 关系数据库:一组关系模式的集合就叫做关系数据库模式。与关系数据库模式对应的数据库即为关系数据库
  32. 连接操作时关系代数的笛卡尔积选择操作组合而成
  33. 聚集索引和非聚集索引:物理存储顺序与逻辑顺序相同/物理存储顺序与逻辑顺序不一致
  34. 索引的类型:聚集索引非聚集索引唯一索引视图索引全文索引XML索引
  35. 数据共享是指多种应用,多种语言,多个用户相互覆盖地使用数据集合
  36. 将数据库的结构划分为多个层次,是为了提高数据库的逻辑独立性物理独立性
  37. 在数据库中,产生数据不一致的根本原因是数据冗余
  38. 数据库关系系统的主要功能有,数据定义功能数据操纵功能数据库的运行管理数据库的建立以及维护
  39. 数据结构是对数据系统的静态特性的描述,数据操纵动态特性的描述
  40. 数据冗余可能导致的问题有,浪费存储空间修改麻烦潜在的数据不一致性
  41. 在关系代数运算中,五种基本运算是:并 差 选择 投影 乘积/笛卡尔积
  42. 传统的集合运算有:笛卡尔积,并 交 差 //三个字+四个字
  43. 专门的关系运算有,选择 投影 连接 //都是两个字
  44. 关系数据库中基于数学上两类运算是关系代数关系演算
  45. SQL语言是非过程化的语言,易学习
  46. SQL语言具有,数据定义数据操纵数据控制、查询功能
  47. 保护数据安全性的一般方法是:设置用户标识存储权限控制
  48. 安全性控制的一般方法:用户标识鉴定存取控制审计数据加密视图
  49. 存储权限包括两方面的内容,一个是要存取的数据对象,另一个是对此数据对象进行操纵的类型
  50. DBMS存储控制机制主要包括:自主存取控制强制存取控制
  51. 参照完整性是指在基本表中,外码可以是空值或者另一个关系主码的有效值
  52. 关系规范化中的删除异常是指不该删除的数据被删除,插入操作异常是,不该插入的数据被插入
  53. 规范化主要的理论依据是关系规范化理论,是设计逻辑结构的指南和工具
  54. 二元关系模式必定是BCNF
  55. 在关系模式中,若其函数依赖集中所有候选关键字都是决定因素,则R最高范式是4NF
  56. 关系模式中如果没有非主属性,则属于3NF,不一定属于BCNF
  57. 只有一个主属性的关系模式,一定满足BCNF
  58. 如果关系模式R的码都为单属性,则R一定是2NF
  59. 如果关系模式R中的所有属性都是主属性,则R的规范化程度至少达到了3NF
  60. 如果关系模式R属于1NF,且对于每一个非平凡的函数依赖X->Y,都有X包含码,则R最高一定可以达到BCNF
  61. 如果一个满足1NF关系的所有属性合起来组成一个关键字,则该关系最高满足的范式是3NF
  62. 任何一个三目关系都属于1NF
  63. 主属性:包含在任何一个候选码的属性
  64. 非规范化的关系模式在实际应用中可能存在的问题是数据冗余,插入异常,删除异常,更新异常
  65. Armstrong公理的三条推理规则是,自反律,增广律,传递律
  66. 在关系数据库的规范化理论中,在执行分解时,必须遵守规范化原则是保持函数依赖性无损连接性
  67. 一个SQL语句原则上可产生或处理一组记录,而程序语言一次只能处理一个记录,协调两种处理方式,这是通过游标机制来解决
  68. 若数据库中只包含成功事务提交的结果,则此数据库就称为处于一致状态。
  69. 数据库恢复的基础是利用转储冗余数据。这些转储的冗余数据包括日志文件,数据库后备副本
  70. 数据库恢复是将数据库从错误状态恢复到某一已知的正确状态
  71. 只有出现并发操作时,才有可能出现死锁
  72. 对并发操作若不加以控制,可能会带来不一致问题
  73. 属性是用于描述实体或对象特征的基本构成单元。属性可以看作是实体所具有的特性或性质,它们提供了有关实体的重要信息。
  74. 数据定义语言DDL:用来定义数据库模式、内模式、外模式的语言
  75. 在数据库三级模式中,模式的个数只有一个
  76. 外模式对应于视图和部分基本表,模式对应于基本表,内模式对应于存储文件
  77. 视图的构造基于基本表或视图
  78. 关系操作的特点是集合
  79. =ANY 和IN等价
  80. 分组进行条件判断的时候应该用HAVING
  81. 建立聚簇索引cluster Creat cluster index Stusname ON student (Sname)
  82. 可串行性是并发事务准确性的准则
  83. 从逻辑模型到物理模型的转换由DBMS完成。
  84. 外模式有任意多个,但是内模式和模式只有能有一个
  85. 外模式是模式的子集
  86. 关系数据库中,实现表与表之间的联系是通过参照完整性
  87. 在并发操作中,加锁不能解决的问题是读未提交数据
  88. 所有事务都遵守两段封锁协议,则对这些事务的任何并发调度策略都是可串行化的
  89. 触发器是一个能由系统自动执行对数据库修改的语句;由事件、条件和动作组成。
  90. 触发器是一个过程完整性约束,也是一段程序,该程序在特定的条件下被触发
  91. 实体间所有关系都可以转换为单独的联系表
实体:实体是指在现实世界中能够被独立识别的事物,每个实体通常具有一组特征或属性。
实体型:实体型是对一类实体的抽象描述。它定义了一组具有共同特征和属性的实体。
实体集 实体集是实体型的具体实例集合。它是具有相同实体型的所有实体的集合。
实体与实体型的关系:实体是实体型的 具体实例。每个实体都是某一特定实体型的一个实例。
实体型与实体集的关系:实体型定义了实体集的 结构或属性,而实体集则是这个结构或属性的具体体现,包含所有符合该实体型的实体实例。
平凡的函数依赖:在关系模式R中,对于U的子集X和Y,如果X->Y,但是Y属于X,则是平凡函数依赖
非平凡的函数依赖: 但是Y不属于X
函数依赖:R是U上的关系模式,X,Y是U的子集。若对于R的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y,或者Y函数依赖于X
部分函数依赖:X->Y,但是对于X的某一个真子集Z->Y成立,则Y部分函数依赖于X
完全函数依赖:X->Y,对于X任一真子集都不存在Z->Y,则Y完全函数依赖于X
传递依赖:设关系模式R中,X,Y,Z是不同的属性子集,X->Y成立,但是Y->X不成立,而Y->Z成立,则Z对X传递函数依赖
1NF:在关系模式R中,每一个具体关系r中,如果每个属性都是不可再分的最小数据单位,则称R是第一范式关系模式。
2NF:若关系模式是1NF,且所有非主属性都完全函数依赖于任意一个候选码
3NF:若关系模式是2NF,且所有非主属性都对任何候选关键字不存在传递函数依赖
BCNF:在关系模式R中,如果每一个决定因素都包含候选码,则满足BCNF
数据库设计的几个步骤是:需求分析,概念分析,逻辑设计,物理设计, 数据库的实施系统运行和维护
数据库概念结构设计的步骤:概念结构的抽象、局部E-R图设计、全局E-R图设计、概念结构的优化
因为有删除,序号有差
1.什么是基本表?什么是视图?两者的区别和联系是什么?
答:基本表是实际存储在数据库中的 二维表,它是本身 独立存在的表,在SQL中一个关系就对应一个表。
视图是关系数据库系统 提供给用户以多种角度观察数据库中数据的重要 机制
区别:视图是从一个或几个基本表(或视图)中导出的表,是一个 虚表,数据库中只存放视图的 定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。
2.什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性?
答:数据独立性是指 应用程序数据结构之间相互独立,互不影响。数据独立性包括 逻辑数据独立性物理数据独立性两个方面。
数据与程序的物理独立性是指当数据库的 存储结构改变时,DBA将 模式/内模式映象作相应改变,使模式保持不变,从而应用程序不必改变。用户的应用程序与存储在磁盘上数据库的数据是相互独立的
数据与程序的逻辑独立性是指当模式改变时,DBA将模式/外模式 的映象作相应改变,使外模式保持不变,从而应用程序不用修改。保证了逻辑独立性。
DBMS在三级模式之间提供了二级映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
4.登记日志文件时为什么必须先写日志文件,后写数据库?
答:把数据的修改写到数据库和把对数据的修改操作写到日志文件是两个不同的操作,在两个操作之间可能会发生故障。
如果先写了数据库修改,而在日志文件中没有登记这个修改,在恢复的时候就无法恢复这个修改了;
如果先写日志,但没有修改数据库,按日志恢复时只是多执行一次撤消操作,并不影响数据库的正确性,为了安全,一定要先写日志文件。
6.什么是数据字典?数据字典的作用是什么?
答:数据字典是系统中各类 数据描述信息和控制信息的集合,基本内容有 数据项,数据结构,数据流,数据存储和处理过程
作用:供DBMS在处理数据存取时 快速查找有关对象的信息,供DBA查询 掌握系统的运行情况,支持数据库设计和系统分析。
7.什么样的并发调度是正确的调度?
答:多个事务的并发执行的结果与按某一次序串行的执行它们时的结果相同,我们说这样的并发调度是可串行化的调度,如果一个调度是可串行化的,那么认为它是正确的调度。
8.试叙述事务的4个性质,并解释每一个性质由DBMS的哪个子系统实现?每一个性质对DBS有什么益处?
答:事务是指作为单个逻辑工作单元执行的一系列操作
1)原子性:事务是一个不可分割的单位。要么都做,要么都不做
原子性是由DBMS的 事务管理子系统实现的。事务的原子性保证了DBS的 完整性。
2)事务对数据库操作的结果是将数据库从一个一致性状态变为另一个一致性状态。
事务的一致性是由DBMS的 完整性子系统实现的。事务的一致性保证数据库的 完整性。
3)事务的隔离性是指多个事务的并发执行不互相干扰
事务的隔离性是由DBMS的 并发控制子系统实现的。隔离性使并发执行的事务不必关心其他事务,如同在单用户环境下执行一样。
4)事务的持久性,事务一旦提交,它对数据库中数据的改变就是永久性的。
持久性是由DBMS的 恢复管理子系统实现的。持久性能保证DB具有 可恢复性。
9.事务的COMMIT语句和ROLLBACK语句的功能是什么?
答:COMMIT语句表示事务执行成功地接结束(提交),此时告诉系统, DB要进入一个新的正确状态,该事务对DB的所有更新都已交付实施(写入磁盘)。
ROLLBACK语句表示事务执行不成功地结束(应该“回退”)此时告诉系统,已发生错误,DB可能处在不正确的状态,该事务对DB的 所有更新必须被撤消,DB应恢复该事务到初始状态。
10.日志文件中记载了哪些内容?为什么要设立日志文件?
答:日志文件中记载了
事务开始标记
事务结束标记
务对DB的插入、删除和修改的每一次操作前后的值。
设立日志文件的目的,是为了记录对数库中数据的每一次更新操作,从而DBMS可以根据日志文件进行事务故障的恢复和糸统故障的恢复,并可结合后授副本进去介质故障的恢复。
11.并发操作会产生几种不一致情况?用什么方法避免各种不一致的情况?
答:
丢失修改:两个事务都同一数据并修改,有可能T2提交的结果 破坏或者覆盖了T1提交的结果导致T1的修改丢失。
不可重复读:T1读取了某一数据后,T2对其进行更新操作,T1 无法再现前一次的读取结果
读脏数据:指T1修改了某一数据,将其写回磁盘,T2读取同一数据后, T1由于某种原因撤销了操作,此时T2读取的数据就和数据库中数据不一样。
幻读:T1读取某一个范围的数据,T2向这个范围内插入数据,T1重复读时发现结果不同了。
避免不一致性的方法就是并发控制,常见的并发控制技术是封锁方法
12.X封锁与S封锁有什么区别?
只允许一个事务独锁数据
允许多个事务并发S锁某一数据
获准X锁的事务可以修改数据
获准S锁的事务只能读取数据,但不能修改数据
事务的并发度低
事务的并发度高,但增加了死锁的可能性
X锁必须保留到事务终点
根据需要,可随时解除S锁
解决“丢失更新”问题
解决“读不一致性”问题
16.数据库在运行过程中可能产生的故障有哪几类?
答:1)事务故障
事物在运行过程中由于种种原因,如输入数据的错误,运算溢出,违反了某些完整性限制,某些应用程序的错误,以及并行事物发生死锁等,使事物未能运行到正常中指点之前就被撤消了,这种情况称为“事物故障”。
2)系统故障
系统鼓掌是指系统在运行过程中,由于某些原因,如OS和DBMS代码错误,操作员操作事物。特定类型的硬件错误(CPU故障),突然停电等造成系统停止运行,致使事物在执行过程中以非控方式中指。这时。内存中的信息丢失,而存储在外存储上的数据未受影响,这种情况称为“系统故障”。
3)介质故障
系统在运行过程中,由于某种硬件故障,如磁盘损坏,磁头碰撞,或由于OS的某种潜在的错误。瞬间强磁场干扰,使存储在外存的数据部分损失或全部损失,称之为“介质故障”。
4)计算机病毒
    计算机病毒是一种人为的故障和破坏,它是一种计算机程序,通过读写染有病毒的计算机系统中的程序和数据这些病毒可以迅速繁殖和传播,危害计算机系统和数据库。
17.怎样进行事务故障的恢复
答:事务故障是指事务在运行至正常终止点前被中止,这时恢复子系统应利用日志文件撤消(UNDO)此事务已对数据库进行的修改。事务故障的恢复是由系统自动完成的,对用户是透明的。系统的恢复步骤是:
反向扫描文件日志,查找该事务的 更新操作
⑵ 对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库。
⑶ 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。
⑷ 如此处理下去, 直至读到此事务的开始标记,事务故障恢复就完成了。
14.怎样进行糸统故障的恢复?
答: 正向扫描日志文件,找出在故障发生前 已经提交的事务,将其事务表示计入redo队列,同时找出故障发生时尚未完成的事务,将其事务标识计入undo队列,对undo队列中的各个事务进行撤销处理,对redo队列中的各个事务进行重做处理。
15.怎样进行介质故障的恢复?
答:发生介质故障后,磁盘上的 物理数据和日志文件被破坏,恢复方法是 重装数据库,然后 重做已完成的事务。
⑴ 装入最新的数据库后备副本,使数据库恢复到最近一次转储时的一致性状态。
对于 动态转储的数据库副本,还须 同时装入转储开始时刻的日志文件副本,利用恢复系统故障的方法(即REDO+UNDO),才能将数据库恢复到一致性状态。
⑵ 装入相应的日志文件副本( 转储结束时刻的日志文件副本),重做已完成的事务。
首先扫描日志文件,找出故障发生时已提交的事务的标识,将其记入重做队列。
然后正向扫描日志文件,对重做队列中的所有事务进行重做处理。即将日志记录中“更新后的值”写入数据库。
18.试述文件系统与数据库系统的区别和联系。
答:
文件系统与数据库系统的区别是:
最主要的区别就是 文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决
文件系统面向某一应用程序, 共享性差,冗余度大,数据独立性差,记录内有结构,整体无结构,由应用程序自己控制。
数据库系统面向现实世界, 共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据的安全性、完整性、并发控制和恢复能力。
文件系统与数据库系统的联系:文件系统与数据库系统都是计算机系统中管理数据中管理数据的 软件。文件系统是操作系统的重要组成成分,而DBMS是独立于操作系统的软件。
21.数据库中为什么要有恢复子系统?它的功能是什么?
答:因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失。
功能:是把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态),这就是数据库的恢复。
22.数据库转储的意义是什么?常用的有几种方法?
答:数据转储和 登记日志文件是数据库恢复中采用的基本技术
所谓转储即DBA 定期将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些备用的数据文本称为后备副本。当数据库遭到破坏后可以将后备副本重新载入,将数据库恢复到转储时的状态。
转储可分为 静态转储动态转储。静态转储是在系统中 无运行事务时进行的转储操作。动态转储是指转储期间允许对数据库进行存取或修改。即转储和用户事务可以并发执行。
转储还可分为海量转储和增量转储两种方式。
26.请给出预防死锁的若干方法。
答:在数据库中,产生 死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都请求对已为其他事务封锁的数据对象加锁,从而出现死等待。
预防死锁通常有两种方法:
1)一次封锁法。一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。
2)顺序封锁法。顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。
27.请给出检测死锁发生的方法,当发生死锁后如何解决死锁?死锁产生的原因
答:死锁产生的原因:封锁可以引起死锁,比如事务T1封锁了数据A,事务T2封锁了数据B,T1又申请封锁数据B,但是数据B被T2封锁,所以T1只能等待,T2又申请封锁数据A,A已经被T1封锁,T2只能等待。这样形成了死锁
一般使用超时法或事务等待图法。
① 超时法
    如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。超时法实现简单,但其不足也很明显。一是有可能误判死锁,事务因为其他原因使等待时间超过时限,系统会误认为发生了死锁。二是时限若设置得太长,死锁发生后不能及时发现。
②等待图法
   事务等待图动态地反映了所有事务的等待情况。并发控制子系统周期性地(比如每隔1分钟)检测事务等待图,如果发现图中存在回路,则表示系统中出现了死锁。
DBMS的并发控制子系统一旦检测到系统中存在死锁,就要设法解除。
1.通常采用的方法是选择一个 处理死锁代价最小的事务将其撤消释放此事务持有的所有的锁,使其它事务得以继续运行下去。当然,对撤消的事务所执行的数据修改操作必须加以恢复。
2.要求每个事务 一次性就要将他所需要的数据全部加锁
3.预先 规定一个封锁顺序,所有的事务都按照这个顺序来实行封锁
28.试述两段锁协议的概念。
答:所谓两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁。
1)在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁;
2)在释放一个封锁之后,事务不再申请和获得对该数据的封锁。
所谓“两段”锁的含义是,事务分为两个阶段,第一阶段是获得封锁。在这个阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不释放任何锁。第二阶段是释放封锁,在这个阶段,事务可以释放任何数据项上的任何类型的锁,但是不能再申请任何锁。
29.什么是数据库的完整性约束条件?
答:完整性约束条件是指数据的 正确性和相容性
具体分为实体完整性,参照完整性,用户自定义完整性。
实体完整性是对主键的约束,主属性独一无二且不为空
参照完整性是对外键的约束,外键必须是另一个关系的主键有效值或者为空
用户自定义完整性是根据用户需求来的
31.什么是数据库的安全性?DBMS有哪些安全性措施?‌
答:数据库的安全性是指 保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏
DBMS的安全性措施包括 用户身份鉴别、存取控制、视图机制、审计、数据加密等。
32.数据库系统中有哪三层模式结构?采用三层模式结构有什么好处?
数据库系统中有外模式、模式和内模式三层模式结构。
外模式是数据库用户能够看见和使用的 局部数据的逻辑结构和特征的描述,是数据库用户的数据视图;
模式是数据库中 全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图;
内模式是数据库在 物理存储方面的描述,定义了数据的物理存储结构和存取方法。
采用三层模式结构的好处是 数据独立性高、数据冗余度小、便于数据的集中管理、系统易于扩展和维护。
35.使用数据库系统有什么好处
1.数据结构化,数据共享性高,冗余度低,数据独立性高
2.数据存取颗粒小,数据由DBMS集中管理,为用户提供了友好的接口
3.大大提高应用开发的效率
4.当数据的逻辑结构改变时,开发人员不必要修改应用程序。
5.使用数据库系统可以减轻DBA维护系统的负担

36.数据库管理系统的主要功能由哪些?

1.数据库定义功能,数据库定义就是对数据库最基本信息的描述,是数据库基本规则与结构的体现,是数据库运行的基本依据
2.数据库操作功能,数据库操作使用的是DML,对数据库的数据进行查询增加修改删除。
3.数据库运行处理,数据库运行处理,就是对数据库运行的过程时刻进行控制和管理,是数据或操作按照数据库数据字典中最初定义的规则和约定正常存储或进行。
4.数据组织,存储和管理,数据组织和存储的基本目标是提高存储空间利用率和方便存取,提供多种存取方式,从而提供存取效率。
5.数据库的建立和维护,若要使DBMS真正发挥作用,就必须使他真正的工作,建立应用数据库为用户服务。

41.简述E-R图转换为关系模式的一般规则

1.一个是实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码
2.一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则于该关系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果于某一端对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
3.一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并,如果转换为一个独立的关系模式,则于该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码就是n端实体的码
4.一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体的码的组合。
5.三个或三个以上的实体间的一个多元联系转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换位关系的属性,而关系的码位各实体码的组合。
6.具有相同码的关系模式可以合并

43.试述数据库系统的特点

1.数据结构化,这是与文件系统的本质区别
2.数据的共享性高,冗余度低,易扩充
3.数据的独立性高,如物理独立性 逻辑独立性 二级映像
4.数据由DBMS统一管理和控制。

44.什么是概念模型?试述概念模型的作用

概念模型实际上是现实世界到机器世界的一个中间层次。
概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象
特点:
能真实、充分的反映现实世界,包括事物和事物之间的联系
易于理解,可用它和不熟悉计算机的用户交流意见。
易于更改,当环境改变的时候,易对模型进行修改和扩充
易于向关系、网状、层次等各数据模型转换
设计策略:
自顶向下、自底向上、逐步扩张、混合策略。

45.试述网状、层次数据库的优缺点

层次模型:
优点:数据结构简单清晰、数据库的查询效率高、提供了良好的完整性支持
缺点:现实世界由很多非层次的,层次模型不能标识这类联系、查询子女节点必须通过双亲结点、如果一个结点有多个双亲结点,查询比较笨拙,由于结构严密,层次命令趋于程序化
网状模型:
优点:更为直接地描述现实世界:具有良好地性能,存储效率较高
缺点:结构比较复杂,不利于最终用户掌握,网状数据库地DDL,DML比较复杂,要求用户掌握数据库结构和存取路径,不易使用
46.试述关系数据库的优缺点
优点:
关系模型是严格建立在数学基础上的,关系模型概念单一;
关系模型的存取路径对用户是透明的,从而具有更高的数据独立性,更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
缺点:
由于存取路径对用户透明, 查询效率不如非关系模型

50.试述等值连接和自然连接的区别和联系

它们试连接运算中两种最重要也是最常用的连接。
等值连接试为等号的连接运算,试从关系R和S的笛卡尔积中选A,B属性值相等的元组。
自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量,即连接属性必须是相同的属性组,并且要在结果中去掉其中一个重复属性。

51.关系代数的五种基本运算有哪些?如果用这些基本的运算来表示其他运算

并、差、笛卡尔积、投影、选择
其他三种交、连接、除都可以用这5种基本运算来表达?
交可以使用并和差的组合表示 R-(R-S)
连接可以使用笛卡尔积和选择的组合表示 ,R于S连接,σF(RXS)
除可以使用选择、投影和差来得到结果。

54.drop table时,RESTRICT和CASCADE区别

restrict 表示表的删除是有限制条件的。要删除的表不能被其他表的约束所引用,不能有视图,触发器,存储过程或函数等,如果存在这些依赖这张表的对象,则表不能被删除。
Cascade表示表的删除没有限制条件,在删除基本表的同时,相关的依赖对象都将被删除。

56.试述视图的优点

1.视图能够简化用户的操作
2.视图使用户能以多种角度看待同一数据
3.视图对重构数据库提供一定程度的逻辑独立性
4.视图能够对机密数据提供安全保护
5.适当利用视图可以更清晰地表达查询

57.哪类视图是可以更新的?哪类视图是不可更新的?举例说明

基本表的行列子集视图一般是可更新的。
若属性来自聚集函数、表达式、则该视图不可更新的。比如计算平均值

58.解释相关子查询和不相关子查询

在嵌套查询中,如果子查询的查询条件不依赖于夫查询,称为不相关子查询,如果子查询的查询条件依赖于夫查询,称为相关查询。

59.什么是数据库中的自主存取控制和强制存取控制

自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限,防止不合法用户对数据库的存取。
强制存取控制方法:每一个数据对象被强制地标以一定地密级,每一个用户也被授予某一个级别的许可证,系统规定只有具有某一级别的用户才能存取某以密级的数据对象。

60.存取控制机制是如何确定主体能够存取客体的?

存取规则:
仅当主体的许可证级别大于或等于客体的密级时才能读取相应的客体
仅当主体的许可证级别小于或等于客体的密级时才能写相应的客体。

66.为什么要进行关系模式的分解?分解的依据是什么?分解有什么优缺点?

由于数据之间存在联系和约束、在关系模式的关系中可能会存在数据冗余和操作异常现象,所以要进行关系模式的分解,以消除冗余和异常现象。
分解的依据是数据依赖和范式。
分解的优点是消除冗余和异常。
分解的缺点是做查询操作,需进行连接操作,增加了查询时间。

67.试述数据库设计过程中形成的数据库模式

在概念结构设计阶段形成于机器特点、独立于各个DBMS产品的概念模式,如E-R图
在逻辑结构设计阶段就是将E-R图转换为具体的数据库产品支持的数据模型,然后在基本表的基础上建立必要的视图等,形成数据的外模式。
在物理结构设计阶段,需要进行物理存储安排,建立索引,形成数据库内模式。

69.什么是数据库的逻辑结构设计?试述其设计步骤

数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为于选用DBMS产品所支持的数据模型相符合的逻辑结构。
设计步骤:将概念结构转换为关系模型,对数据模型进行优化。

70.数据库设计的任务是什么?主要阶段?哪些阶段独立于DBMS,那些阶段依赖于DBMS?

数据库设计的基本任务试:根据一个单位的信息需求,处理需求和数据库的支撑环境,设计出数据库模式以及应用程序。
主要阶段是四个:需求分析、概念设计、逻辑设计和物理设计
需求分析和概念设计独立于DBMS,逻辑设计和物理设计依赖于DBMS

72.试述数据库物理设计的内容和步骤?

为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构。
设计步骤:确定数据库的物理结构,主要是存取方法和存储结构,对物理结构进行评价,评价的重点是时间和空间的效率。

73.在进行概念结构设计的时候,将事务作为属性的基本准则是什么?

作为属性,不能在具有需要描述的性质,属性必须是不可分的数据项,不能包含其他属性。
属性不能于其他实体具有联系,即E-R图中所表示的属性是实体之间的联系。

74.什么是E-R图?构成E-R的基本要素是什么?

E-R图作为实体联系图,提供了表示实体性、属性和联系的方法,用来描述现实世界的概念模型。
构成E-R图的基本要素是实体型、属性和联系,其表示方法为:实体型用矩形表示,属性用椭圆形表示,联系用菱形表示

77.为什么事务非正常结束时会影响数据库数据的正确性

事务执行结果必须是使数据库从一个一致性状态变到另一个一致性状态。
如果数据库系统运行中发生故障,有些事务尚未完成就被迫终端,这些未完成事务对数据库所作的修改有一部分已经写入物理数据库,这时数据库就可能处于不正确的状态,或者说是不一致的状态。

78.具有检查点的恢复技术有什么优点?

利用日志文件进行数据库恢复时,恢复必须搜索整个日志,耗费时间。而且需要处理的事务实际上已经将其更新的结果写道数据库,恢复子系统又重新执行,浪费时间。检查点技术就是为了解决这些问题。
利用检查点技术只需要从 检查点开始扫描日志,缩短了扫描时间而且检查点以前的更新操作已经写入到数据库,不需要再redo处理。

79.什么是数据库的恢复?恢复原则是什么?恢复如何实现?

数据库恢复是指当数据库系统发生故障的时候,通过一些技术,使数据库从被破坏、不正确的状态恢复到最近一个正确的状态。
恢复的原则时冗余,即数据的重复存储。
恢复的常用方法:
1.定期对整个数据库进行复制和转储。
2.建立日志文件。
3.恢复,用redo和undo处理

80.在系统故障的恢复策略中,为什么undo处理方向扫描日志文件,redo处理正向扫描日志文件。

如果存在同一个数据的多个undo操作,需要将数据库恢复到第一个失败事务之前,如果正向扫描处理日志文件无法实现这一目标,因此应该反向扫描日志文件。对于同一个数据的多个redo操作。需要将数据库恢复到最后一个成功事务之后,因此应该正向扫描日志文件。

81.恢复系统是否可以保证事务的原子性和持续性

可以,原子性是指要么都做,要么都不做,在恢复策略中undo可以保证将未成功提交的事务所有操作都取消,redo可以保证成功提交的时候所有操作都完成,因为需要确保事务的原子性。
持续性是指,一旦事务提交,对数据库数据的改变是永久性的,redo可以保证事务只要提交,改变一定被永久实现,因此要确保事务的持续性。

83.undo操作和redo操作各自做些什么事情?

undo操作时 反向扫描日志文件,撤销对数据库的更新操作,使数据库恢复到更新的状态。
redo操作时 正向扫描日志文件,重新做一次更新,使数据库恢复到更新后的状态。

84.登记日志文件时必须遵循的两条原则

登记的次序严格按照并发事务执行的时间次序
必须先写日志文件,后写数据库。

85.数据库中为什么要并发控制?并发控制技术能保证事务的哪些特性?

数据库是共享资源,通常有多个事务在运行,当多个事务并发存取数据库时就会产生同时读取或修改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性,所以数据库管理系统必须提供并发控制机制。

86.什么是封锁?基本的封锁类型有几种?试述他们的含义

封锁就是事务T在对某个数据对象操作之前,先向系统发出请求,对其加锁,在事务T释放它的锁之前,其他事务不能更新或者读取次数据对象。
有两种,排他锁和共享锁。
排他锁又称做写锁,事务T对数据对象A加上X锁,则只允许T读取和修改,其他事务不能再对A添加任何类型的锁,直到T释放A的锁。
共享锁又称作读锁,事务T对数据对象A加上S锁,则事务T可以读A但是不能修改A,其他事务只能再对A加S锁,直到T释放S锁。

87.如何对封锁机制保证数据的一致性?

DBMS按照一定的封锁协议对并发控制进行操作,使得多个并发操作有序得执行,就可以避免丢失修改,不可重复,读脏数据等数据不一致性。有一二三级封锁协议

88.什么是活锁?试述活锁得产生原因和解决方法?

活锁:该 事务等待时间太长,似乎被锁住了,实际上可能被激活。
产生原因:当一系列封锁不能按照其先后顺序执行时,就可能导致一些事务无期限等待某个封锁,从而导致活锁。避免活锁的简单方法就是采用先来先服务的策略。

92.试述串行调度和可串行化调度的区别?

串行调度试多个事务按照一定的次序依次执行;在某一个时刻只有一个事务在执行。
可串行化调度试并发调度的一个概念。在并发调度中,某一个时刻有多个事务同时被处理。如果某事务集的一个并发调度的结果和某个串行调度等价,则称此并发调度试可串行化调度。

94.简述三级封锁协议的内容以及不同级别的封锁协议能解决哪些数据不一致性问题?

1.一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。能解决丢失修改的问题。
2.二级封锁协议是:一级封锁协议上事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。能够解决读脏数据问题。
3.三级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。解决了不可重复读

97.什么是一个好的关系模式?为什么要提出关系数据理论/规范化理论?

好的关系模式就是在增删改查的时候不会发生异常、数据冗余尽可能小,由于模式中的有些数据依赖引起了这些异常,所以要规范化理论。

98什么是数据依赖?

数据依赖就是一个属性确定之后,另外一个属性也就唯一确定了,分为函数依赖、多值依赖、连接依赖。

99.什么是游标,有什么用

游标是一个数据缓冲区,存放SQL语句的执行结果。
由于SQL是面向集合的,一条SQL可以产生多条记录,而主语言的面向记录的,一次只能存放一条记录,故用游标来协调这两种不同的处理方式。

100.

索引
索引的数据结构
B-Tree (平衡树, Balance Tree):也称为 多路平衡查找树 ,并且所有叶子节点位于同一层。
B+Tree:它不仅具有 B-Tree 的平衡性,并且可通过 顺序访问指针 来提高 区间查询 的性能。
在 B+Tree 中,一个节点中的 key 从左到右非递减排列,若某个指针的
左右相邻分别是
,且不为 null,则该指针指向节点的所有 key 满足
B+Tree 与 B-Tree 最大区别是,B+Tree 的非叶子结点不保存数据,只用于索引,所有数据都保存
在叶子结点中。而且叶子结点间按照从小到大顺序链接起来。
B-Tree/B+Tree 的增删改查:
查找操作 :首先在 根节点 进行 二分查找 ,找到一个 key 所在的指针,然后递归地在指针所指向的
节点进行查找。直到查找到叶子节点,然后在 叶子节点 上进行 二分查找 ,找出 key 所对应的
data。
二分查找要求表有序,正好 B-Tree 和 B+Tree 结点中的 key 从左到右非递减有序排列。
增删操作 :会破坏平衡树的平衡性,因此在插入删除操作之后,需要对树进行一个分裂、合并、
旋转等操作来维护平衡性。
MySQL 索引
索引,在 MySQL 也称为键 (Key),是 存储引擎 快速找到记录的一种 数据结构 。相当于图书的目
录,可根据目录中的页码快速找到所需的内容。
索引结构类型
(1)B+Tree 索引
B+Tree 索引是大多数 MySQL 存储引擎的默认索引类型。
因为 B+ Tree 的 有序性 ,因此可用于 部分查找 范围查找 排序 分组 。适用于全键值、键值范围和键前缀查找,其中键前缀查找只适用于最左前缀查找。若不是按照索引
列的顺序进行查找,则无法使用索引。
(2)Hash 索引
Hash 索引能以 O(1) 时间进行查找,但是失去了有序性。因此无法用于排序与分组,无法用于部
分查找和范围查找,只支持 精确查找
Hash 索引仅满足 = , IN 和 <=> 查询,不能使用范围查询。因为 Hash 索引比较的是
Hash 运算后的 Hash 值,所以它只能用于等值的过滤。
(3)全文索引
全文索引使用倒排索引实现,它记录着关键词到其所在文档的映射。
(4)空间数据索引
空间数据索引会从所有维度来索引数据,可以有效地使用任意维度来进行组合查询。
必须使用 GIS 相关的函数来维护数据。
索引的优点缺点
优点
大大减少了服务器需要扫描的数据行数。
避免服务器进行排序和分组操作,以避免创建 临时表
B+Tree 索引是有序的,可以用于 ORDER BY 和 GROUP BY 操作。临时表主要是在排序和分
组过程中创建,不需要排序和分组,也就不需要创建临时表。
随机 I/O 变为 顺序 I/O 。
B+Tree 索引是有序的,会将相邻的数据都存储在一起。
缺点
索引并不是越多越好,索引固然可以提高相应的 SELECT 的效率,但同时也降低了 INSERT 及
UPDATE 的效率,因为 INSERT 或 UPDATE 时有可能会 重建索引
索引的设计原则
从索引的优、缺点考虑索引的设计原则。
忌过度索引 :索引需要额外的磁盘空间,而且会降低写操作的性能。
在修改表内容时,索引会进行更新甚至重构,索引列越多花销时间越长。为此优化检索性
能,只保持需要的索引即可。
经常用在 排列 分组 范围搜索 的列适合创建索引,因为索引是有序的。
经常出现在 WHERE 子句的列,或是 JOIN 连接子句中指定的列适合创建索引。
使用短索引 :若对长字符串列进行索引,应该指定一个前缀长度,这样能够节省大量索引空间。
索引的优化策略
独立的列 :在进行查询时,索引列不能是 表达式 的一部分,也不能是 函数参数 ,否则无法使用
索引。
多列索引 :在需要使用多个列作为条件进行查询时,使用多列索引比使用多个单列索引性能更
好。
索引列的顺序 :让选择性最强的索引列放在前面。
前缀索引 :对于 BLOB、TEXT 和 VARCHAR 类型的列,必须使用前缀索引,只索引开始的部分字
符。前缀长度的选取需要根据索引选择性来确定。 覆盖索引 :索引包含所有需要查询的字段的值。具有以下优点:
索引通常远小于数据行的大小,只读取索引能大大减少数据访问量。
一些存储引擎(例如 MyISAM)在内存中只缓存索引,而数据依赖于操作系统来缓存。因
此,只访问索引可以不使用系统调用(通常比较费时)。
索引的使用场景
对于 非常小的表 :大部分情况下简单的 全表扫描 比建立索引更高效;
对于 中大型的表 建立索引 非常有效;
对于 特大型的表 :建立和维护索引的代价将会随之增长。这种情况下,需要用到一种技术可以直
接区分出需要查询的一组数据,而不是一条记录一条记录地匹配。例如可以使用 分区技术

101.简述数据库的二级映像模式和数据独立性

数据库的二级映像模式分为外模式/模式,模式/内模式
数据独立性分为逻辑独立性和物理独立性
逻辑独立性是由外模式/模式映像保证的,当模式发生改变的时候,DBA对外模式/模式的映射做出相应改变,使外模式保持不变,保证数据的逻辑独立性。
物理独立性是由内模式/模式映像保证的,当数据库存储结构发生变化的时,DBA对模式/内模式做出改变,使得模式不变,保证了数据的物理独立性。

102.索引和键的区别?

索引是存储在数据库中的一个物理结构,是实际存在的,相当于一本书的目录。
键是一个逻辑概念,不说数据库的物理部分。键分为主键和外键。

103.什么是存储过程?用什么来调用?

存储过程时一个预编译的SQL语句集合,优点时可以建立非常复杂的查询,只需创建一次,便可以重复调用,且比执行单纯的SQL要快。

104.关系数据中查询处理的步骤是什么?

查询分析:对查询语句进行词法分析、语法分析,检查是否正确
查询检查:对合法的查询语句进行语义检查,检查是否有效。
查询优化:选择一个高效执行的查询处理策略
查询执行:依据优化得到的执行策略生成查询执行计划,并生成相应的查询执行计划代码。

105.数据库的存储过程是什么?

是在大型数据库系统中,一组为了完成特定功能的SQL语句集,它存储再数据库中,一次编译后永久有效,用户通过指定存储过程的名字并且给出参数来执行它。存储过程时数据库中一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的有效提升。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值