第一章
1.简述数据、数据库、数据库管理系统、数据库系统的概念(期末题库、课后题、大纲要求、试题三)
数据:描述事物的符号记录
数据库:(什么是数据库?答下面所有)
长期存储在计算机内、有组织、可共享的大量数据的集合
基本特征:
(1)数据按照一定的数据模型组织、描述和存储
(2)可为各种用户所共享
(3)具有较小的冗余度
(4)数据独立性较高
(5)易扩展性
数据库管理系统:(什么是数据库管理系统?答下面所有)(2001研招)
位于用户与操作系统之间的一层数据管理软件,他与操作系统一样都是计算机的基础软件,也是一个大型复杂的软件系统。
DBMS的功能:
(1)数据定义功能
(2)数据组织、存储和管理
(3)数据操纵功能
(4)数据库的事务管理和运行管理功能
(5)数据库的建立和维护功能
(6)其他功能
数据库系统:在计算机系统中引入数据库后的系统。是由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户组成。(大纲、期末二、2020)
特点:
(1)数据结构化
(2)数据共享性高,冗余度低,易扩充
(3)数据的独立性高
(4)数据由DBMS统一管理和控制
2.DBMS提供的数据控制功能(2020)
(1)数据的安全性保护
(2)数据的完整性检查
(3)并发控制
(4)数据库恢复
3.数据库管理系统有哪些功能?(简述数据库管理系统的概念和功能)(试题三、2001、2018研招、期末二、2020、大纲)
数据库管理系统位于用户与操作系统之间的一层数据管理软件
(1)数据定义功能:DBMS提供数据定义语言(DDL),用户可以通过DDL定义数据对象
(2)数据组织、存储和管理
(3)数据操纵功能:DBMS提供数据操纵语言(DML),实现对数据库的增删改查
(4)数据库的事务管理和运行管理功能:这是DBMS运行时的核心部分,包括并发控制,安全性检查,完整性约束条件的检查和执行,发生故障后的恢复。
(5)数据库的建立和维护功能:包括数据库初始数据的输入及转换,数据库的转储与恢复,数据库的重组和性能的监视与分析等。
(6)其他功能
4.使用数据库系统有什么好处?(好处是由特点决定的)(2001、2003期末)
数据结构化;
数据共享性高,冗余度低,易扩充;
数据的独立性高;
由DBMS统一运行管理;DBMS还提供了数据控制功能
查询效率高、准确
5.数据管理的发展阶段及每个阶段的特点(大纲要求、2020)
1.人工管理阶段:
(1)数据不保存(2)数据不共享
(3)数据不具有独立性(4)应用程序管理数据
2.文件系统阶段:
(1)数据长期保存
(2)数据共享性差、冗余度大
(3)数据独立性差:物理独立性逻辑独立性均差
(4)由文件系统管理数据
3.数据库系统阶段;
(1)数据结构化(2)数据的共享性高、冗余度低、易扩充(3)数据独立性高(4)由DBMS统一运行管理和控制
6.数据模型的概念,组成数据模型的三要素(大纲要求、试题五、课后题、2016研招)
数据模型:是现实世界数据特征的抽象,一组概念的集合。
数据模型是数据库的核心概念
作用:组织,描述,操作数据
数据模型三要素:(试题五、2020)
(1)数据结构:描述数据库的组成对象以及对象之间的联系。
对系统静态特性的描述
(2)数据操作:对数据库中各种对象实例允许进行操作的集合。
对系统动态特性的描述
(3)完整性约束条件(一组完整性规则的集合)
分类:概念模型、逻辑模型和物理模型(2020)
(1)概念模型:又称信息模型,从用户的观点来对数据和信息建模,用于数据库的设计。
(2)逻辑模型:包括层次模型、网状模型、关系模型、面向对象模型等,用于DBMS的实现。
(3)物理模型:对数据最底层的抽象,描述数据在数据库系统内部的表达方式和存取方式,是面向计算机系统的。
7.概念模型的概念,作用(大纲要求)
概念:又称信息模型,从用户的观点来对数据和信息建模。
作用:(1)用于信息世界的建模
(2)是现实世界到机器世界的一个中间层次
(3)是数据库设计的有力工具
(4)是数据库设计人员与用户交流的语言
8.ER图分解时解决三种冲突(在合并分ER图时要解决哪些冲突问题?)(期末2)
属性冲突(属性域冲突、属性取值单位冲突)、命名冲突(同名异议、同义异名)、结构冲突
什么是ER 图?构成ER图的基本要素是什么?
ER图为实体-联系图,用来描述现实世界的概念模型。
构成ER图的基本要素是实体型、联系、属性
表示方法为:
实体型:用矩形来表示,矩形框里写明实体名
属性:用椭圆来表示,并用无向边与相应的实体联系
联系:用菱形来表示,菱形框内写明联系名,并用无向边与实体联系起来,在边上标上联系的类型(1:1,1:n,1:m)
9.实体间的联系:一对一、一对多、多对多(大纲要求)
一对一:实体集A中的每一个实体,实体集B至多有一个实体与之联系,反之亦然。
一对多:实体集A中的每一个实体,实体集B中有N个实体与之联系,反之,对于实体集B中的每一个实体,实体集A中至多有一个实体与之联系。
多对多:实体集A中的每一个实体,实体集B中有N个实体与之联系。反之,实体集B中的每一个实体,实体集A中也有M个实体与之联系。
10.简述说明两级映像所包含的内容?(期末2)
外模式/模式映像、模式/内模式映像
外模式/模式映像:当模式改变的时候,数据库管理员修改有关的外模式/模式映像,使得可以使外模式保持不变,应用程序是根据外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性。
模式/内模式映像:当数据库的存储结构改变时,数据库管理员修改模式/内模式映像,可以使模式保持不变,从而应用程序不必修改,保证了数据与程序的物理独立性。
11.简述数据库系统的三级模式结构,并说明这种结构的优点(2001研招、大纲)
三级模式是由内模式、模式、外模式组成
外模式:也称子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图。外模式涉及的是数据的局部逻辑结构,是模式的子集。
模式:也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共视图。模式描述的是数据的全局逻辑结构。(2020)
内模式:也称存储模式,是数据在数据库系统内部的表示,即对数据库物理结构和存储方式的描述。
三级模式的优点:保证数据的独立性,简化了用户接口,有利于数据共享,有利于数据的安全保密。DBMS在三级模式之间提供的两级映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
12.什么是数据库的数据独立性?什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性?(简述数据库的独立性)(2017研招、章节1、大纲、2005研招、2016研招、2020、大纲)
数据独立性:表示应用程序与数据库中的数据不存在依赖关系,它包括逻辑独立性、物理独立性。
逻辑独立性:是用户的应用程序与数据库的逻辑结构是相互独立的。
当模式改变时,数据库管理员修改外模式/模式映像,可以使外模式保持不变,应用程序是根据外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性。
(啥改变记清楚:填空)
物理独立性:是用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的
当数据库的存储结构改变时,数据库管理员修改模式/内模式映像,可以使模式保持不变,从而应用程序不必修改,保证了数据与程序的物理独立性。
为何具有数据与程序的独立性:DBMS在三级模式之间提供的两级映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
13.试述关系模型(数据库)的优缺点(特点)(2001、2003、课后题、2020)
优点:关系数据库是以关系模型作为数据的组织方式,
关系模型是建立在严格的数学基础之上的;概念单一,结构简单清晰;存取路径对用户透明,从而有更高的数据独立性,更好的安全保密性,简化了程序员的工作。
缺点:由于存取路径透明,查询效率不如非关系模型。
14.论述网状、层次数据库的优缺点
层次模型:①有且只有一个结点无双亲②根以外的其他结点有且只有一个双亲
优点:数据结构简单清晰,查询效率高,提供了良好的完整性支持
缺点:
(1)多对多联系表示不自然
(2)查询子女必须通过双亲结点
(3)对插入和删除操作的限制多,应用程序的编写比较复杂
(4)由于结构严谨,层次命令趋于程序化
网状模型:①允许一个以上的结点无双亲②一个结点可以有多于一个的双亲
优点:更加直接的表示现实世界,拥有良好的性能,存取效率较高
缺点:(1)结构比较复杂,不利于用户的掌握,
(2)DDL、DML语言比较复杂,不利于用户的使用
注:层次模型是网状模型的一个特例
15.试述数据库完整性保护的主要任务和措施。(期末二)
主要任务:保证数据的正确性,相容性提高数据对用户的可用性
措施:
(1)适当的检查完整性约束条件,保持语义完整。
(2)并发控制操作,使其不破坏完整性
(3)在系统出现故障后,及时进行数据库的恢复
注:可结合DBMS提供的数据功能来背诵
16.数据库管理员的职责(期末二)
(1)决定数据库中信息内容和结构
(2)决定数据库的存储结构和存取策略
(3)定义数据库的安全性要求和完整性检查约束条件
(4)监控数据库的使用与运行
(5)数据库的改进和重组
注:以下三个职责,大纲没说不背的一定要背,真有人抽到这种题
17.系统分析员的职责
(1)负责应用系统的需求分析和规范说明
(2)与用户及DBA协商,确定系统的硬软件配置
(3)参与数据库的概要设计
18.数据库分析员
(1)负责数据库中数据的确定和各级模式设计
(2)参加用户需求调查和系统分析进行数据库设计
19.应用程序员
(1)负责设计编写系统的程序模块,并进行调试和安装
20.数据库阶段的数据管理有些什么特点
(1)采用复杂的数据模型表示数据结构
(2)数据的最小存储单元是数据项
(3)具有较高的数据与程序的独立性
(4)系统为用户提供方便的用户接口
(5)系统提供数据控制功能(安全性、完整性、并发控制、数据库的恢复)
21.小概念
实体:客观存在并可相互区别的事物
属性:实体所具有的某一特性
码:唯一标识实体的属性集称为关键字又叫码(关键字可包含一个或多个属性)
候选码:若关系中某一属性组的值能唯一标识一个元组,则称该属性组为候选码
主码:从多个候选码中选择一个作为主码,主码不能随意变换。候选码可以有多个,但是主码只能有一个。
外码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码KS相对应,则称F是基本关系R的外码
域:一组具有相同数据类型的值的集合,属性的取值范围
实体型:实体名及其属性名集合来抽象刻画同类实体
实体集:同型实体的集合
元组:笛卡尔积中的每一个元素,表中的一行
分量:笛卡尔积中元素的每一个Di
基数:域中包含值的个数
主属性:包含在任何一个候选码中的各属性称为主属性
非主属性: 不包含在任何候选码中的属性称为非主属性
全码:所有的属性组是这个关系的候选码,则称为全码
关系模式:对关系的一种描述,静态的,稳定的
关系:是关系模式在某一时刻的状态或内容。
DDL:用来定义数据库模式,内模式,外模式
DML:用来对数据库中数据进行查询,插入,删除,修改的语句
第二章
1.简述外码的概念及关系参照完整性规则,并举例说明外码在什么情况下可以取空值。(2005研招、试题一、六、课后题)
外码:
设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码KS相对应,则称F是基本关系R的外码
参照完整性规则:若F是基本关系R的外码,与基本关系S的主码KS相对应,则对于R中每个元组在F上的值必须为下面两者之一:
(1)或者取空值
(2)或者等于S中某个元组的主码值
在参照完整性规则中若外码属性不是其所在关系的主属性,则外码的值可以为空
2.简述关系模式五元组描述形式:R(U,D,dom,F)中各部分含义。(2005研招、2020)
R:关系名
U:组成该关系的属性名集合
D:属性所来自的域
Dom:属性向域的一个映射集合
F:属性间数据的依赖关系
3.简述等值连接与自然连接的区别和联系。(试题四、2020)
连接符号为“=”的连接运算称为等值连接。它不要求连接属性的属性名相同
自然连接:是一种特殊的等值连接。要求被连接的两关系有若干同名属性才能进行自然连接。
等值连接不将重复属性列去掉,而自然连接要去掉重复属性列。
4.试述关系的完整性规则(2020)。
实体的完整性:若属性A是基本关系R的主属性,则A不能取空值。
参照完整性规则:若F是基本关系R的外码,与基本关系S的主码KS相对应,则对于R中每个元组在F上的值必须为下面两者之一:
(1)或者取空值
(2)或者等于S中某个元组的主码值
用户定义的完整性:针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。
5.关系的三种类型
基本表:实际存在的表,是实际存储数据的逻辑表示。
查询表:查询结果对应的表
视图表:由基本表或者其他视图导出的表,是虚表,不对应实际存储的数据
6.基本关系的六种性质(关系的特性)
(1)列是同质的
(2)不同的列可来自同一个域
(3)列的顺序无所谓
(4)任何两个元组不能完全相同
(5)行的次序无所谓
(6)分量必须取原子量
7.关系的数据逻辑结构—一张二维表
8.关系的定义-----笛卡尔积的有限子集
9.简述关系模式与关系的区别
关系模式:是型,是对关系的描述,是关系的框架,是静态的,稳定的。
关系:是值,是关系模式在某一时刻的状态或内容,是动态的,不断变化的
关系数据库:在一个给定的领域中,所有关系的集合构成关系数据库
关系数据库的型和值?
关系数据库的型:关系数据库模式,是对关系数据库的描述
关系数据库的值:这些关系模式在某一时刻对应的关系的集合,称为关系数据库
10.传统的集合操作:并交叉笛卡尔积
专门的关系运算:选择、投影、连接、除法
五种基本操作:选择、投影、并、差、笛卡尔积------其他的交、差、除均可以用这五种基本运算表示
11.试述关系语言的特点和分类
关系语言特点:高度非过程化
分为三类:关系代数语言、关系演算语言、具有关系代数和关系演算双重特点的语言
12.关系操作的特点:
关系操作的特点是集合操作,
操作对象和结果都是关系,
关系模型的语言是高度非过程化
第三章(一定要看PPT)
1.SQL概念
SQL是一种介于关系代数和关系演算之间的结构化查询语言,其功能是数据定义,数据操纵(数据更新、数据查询),数据控制
2.简述SQL语言的特点(2001研招、期末二)
(1)综合统一
(2)高度非过程化:只要提出什么,无需指明怎么做
(3)面向集合的操作方式
(4)以同一种语法结构提供多种使用方法
3.视图的作用(优点)(2012-2013期末、2015研招、试题一)
(1)简化用户操作
(2)使用户能以多个角度看待同一数据
(3)对重构数据库提供了一定的逻辑独立性
(4)对机密数据提供安全保护
(5)适当利用视图可以更清晰地表达查询
4.什么是视图?(视图的概念或定义)什么是基本表?(基本表的概念或定义)说明视图与基本表的区别和联系。(课后题、试题二、四、六、期末二)
基本表:本身独立存在的表,在SQL中一个关系对应一个表。是实际存储数据的逻辑表示
视图:
(1)是从一个或几个基本表中导出的表,是一个虚表。
(2)数据库中只存放视图的定义,而不存放视图对应的数据,数据仍然存放在原来的基本表中。
(3)当基本表中的数据发生变化时,从视图查询的数据也发生变化。
(4)视图一经定义就可以像基本表一样被查询、删除,也可以在视图上再定义新的视图,但对视图的更新操作有限制。
5.SQL对视图更新,遵循以下规则(哪些视图可以更新,那些视图不可以更新)
(1)从多个基本表通过连接操作导出的表,不允许更新;
(2)使用了分组、聚集函数、distinct不允许更新;
(3)视图定义中有嵌套查询,且内层查询的FROM字句中涉及到的表也是导出该视图的基本表,则不允许更新;
(4)一个不允许更新的视图上定义的视图也不允许更新;
(5)字段表达式或者常数的视图可以查询删除,但是不可以更新
注:
行列子集视图可更新;
视图是由基本表通过投影、选择操作导出的,则允许进行更新;
6.ALTER、UPDATE区别和功能
ALTER修改基本表
UPDATE修改基本表里面的数据
7.DROP TABLE时,RESTRICT与CASCADE 区别?
Restrict :删除表有限制,要删除的表不能被其他表所约束(不能由视图,触发器,索引)如果有的话则不能删除
Cascade:删除表没有限制,删除表的同时,相关的依赖对象也都被删除
8.索引的目的,优点,以及类型
索引是一种数据结构,是对照表、指针表。
作用:是为了加快查询速度,减慢更新速度。类型包括了聚簇索引、唯一索引、非唯一索引
改变表中的数据,索引将自动更新。
最经常查询的表上建立聚簇索引来提高查询效率,一个基本表上最多建立一个聚簇索引,经常更新的表上,不宜建立聚簇索引
聚簇索引:索引项的顺序与表中记录的物理顺序一致的索引组织
索引的作用:
(1)可以在一个基本表上创建多个索引
(2)可以提高查询效率
(3)提供多条存取路径
(4)保证行的唯一性
9.where子句:根据where子句的条件表达式,从FROM子句指定的基本表和视图中找出满足条件的元组。
10.相关子查询和不相关子查询
相关子查询:子查询的查询条件依赖于父查询的某个属性值:EXISTS
由 外向内处理
不相关子查询:子查询的查询条件不依赖于父查询:IN
由里向外处理
第四章
1.计算机系统的三类安全性:技术安全类、管理安全类、政策法律类
2. 什么是数据库的安全性?
保护数据库以防止不合法的使用所造成的数据泄露、更改、或破坏
3.试论述数据库安全性控制常用的方法和技术
用户身份鉴别、存取控制、视图机制、审计、数据加密
4.什么是数据库的自主存取控制方法和强制存取控制方法?
自主存取控制:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时,首先检查用户的存取权限,防止不合法用户对数据的存取。
强制存取控制:每一个数据对象都被强制的标以一定的密级,每一个用户也被授予某一个级别的许可证,系统规定只有具有某一级别的用户才能存取某一密级的数据对象。
5.存取控制机制是如何确定确定能否存取客体的
强制存取的规则:
仅当主体的许可证级别大于或等于客体的密级时才能读相应的客体。
仅当主体的许可证级别等于客体的密级时才能写相应的客体
6.为什么强制存取提供了更高级别的数据库安全性?
因为强制存取他是对用户本身进行密级标记,无论数据如何复制,标记与数据都不可分,只有符合密级标记要求的用户才能操作数据,从而具有了更高的安全性
7.SQL语言中提供了数据控制功能的语句
SQL中的自主存取控制是通过GRANT和REVOKE 语句来实现的
8.角色的作用:角色是一组权限的集合,可以简化授权的过程 create role
9.审计概念
将用户对数据库的操作都自动记录到审计日志上
因为任何系统的安全保护措施并不是完美无缺的,蓄意破坏数据的人总可能存在,利用好数据库的审计功能可以追踪信息,重现导致现有状况的一系列事件,从而找出非法存取数据的人,时间和内容。
10.数据加密:替换方法、置换方法
第五章
1.数据库的完整性与数据库的安全性的区别
(1)数据库的完整性:是指数据的正确性和相容性,防止不合语义的数据,防止错误信息的输入输出,及所谓的垃圾进,垃圾出所造成的无效操作和错误结果
(2)数据库的安全性:是指保护数据库以防止不合法的使用所造成的数据的泄露、更改、和破坏。
安全性的防范对象是非法用户的操作
完整性的防范对象是不合语义的数据
2.数据库系统为了维护数据库的完整性所提供的功能(关系数据库管理系统DBMS的完整性机制应具有哪些功能?)
(1)定义功能:(提供定义完整性约束条件的机制)
(2)检查功能:(检查用户发出的请求是否违背了完整性约束条件)
(3)违约处理功能:(如果发现违背了完整性约束条件,则采取一定的动作来保证数据的完整性)
3.什么是数据库的完整性约束条件?可分为几类?
完整性约束条件是指数据库中的数据应该满足的语义约束条件
静态列级约束、静态元组约束、静态关系约束、
动态列级约束、动态元组约束、动态关系约束、
4.关系系统中,当操作违反了实体完整性、参照完整性和用户定义完整性的约束条件时,一般如何分别进行处理?
对于实体完整性和用户定义的完整性,一般采用拒绝执行的方式进行处理。
对于违反了参照完整性的并不是简单的拒绝执行,有时候也要根据应用语义来附加操作,保证数据库的正确性。
第六章(一定要看PPT)
1.范式:规范化的关系,符合某一种级别的关系模式的集合
2.1NF:若关系模式R的每一个分量都是不可分的数据项,则关系模式R属于第一范式。
3.2NF:若关系模式R属于1NF,且每一个非主属性都完全函数依赖于码,则关系模式属于2NF。
4.3NF:若关系模式R属于2NF,且每一个非主属性既不部分依赖也不传递依赖于码,则关系模式属于3NF。
5.BCNF:关系R中的所有决定因素都是候选码
(所有的非主属性,对于每一个码,都是完全函数依赖。
所有的主属性,对于每一个不包含它的码,也是完全函数依赖
没有任何属性完全函数依赖于非码 的任何一组。)
5.数据依赖的类型:函数依赖、多值依赖
函数依赖:若关系模式R(U)是属性集U上的关系模式,X、Y是U的子集,若对于R(u)上的任何一个关系R,R中不可能存在两个元组t,s在X属性值相等,而在Y属性值上不等。则称X函数确定Y。
通俗讲:对于X的一个值,只有唯一的Y值与之对应,则称X—Y
非平凡的函数依赖:在关系模式R(u)中,对于U的子集X和Y,X→Y,且Y不属于X 则称为非平凡的函数依赖。
通俗讲:X能确定Y ,但是Y不是X的子集。
平凡的函数依赖:在关系模式R(u)中,对于U的子集X和Y,X→Y,且Y属于X 则称为平凡的函数依赖。
通俗讲:X能确定Y ,且是Y是X的子集
完全函数依赖:在关系模式R(u)中,若X→Y,并且对于X的任何一个真子集都不能函数确定Y,则称Y完全函数依赖于X
部分函数依赖:在关系模式R(u)中,若X→Y,并且对于X的某一个真子集都能函数确定Y,则称Y部分函数依赖于X
传递函数依赖:
在关系模式R(u)中,若X→Y,Y不能函数确定X,Y→Z,则称Z传递函数依赖于X
超码:
若在属性集U中,某一属性组K,能部分函数确定U,则称K为超码
候选码:
若在属性集U中,某一属性组K,能完全函数确定U,则称K为候选码
若决定因素只有一个属性,则必然是完全函数依赖。所以必然属于2nf
若所有的属性都是主属性,则R的规范化程度至少达到了3NF
全码的最高范式BCNF
二元关系最高范式4NF
6.关系模式可能存在的问题:插入、删除、修改异常、数据冗余
7.什么是规范化,为何要规范化,如何规范化?
规范化:一个低一级的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这个过程就叫做规范化。
为什么:因为一个不好的关系存在插入删除修改异常、数据冗余,为了解决这些问题,来改造关系模式。
如何规范化:
规范化的步骤:
非规范化表将其属性转换为最基本不可分的数据项
1NF→2NF消除非主属性对候选码的部分依赖
2NF→3NF 消除非主属性对候选码的传递依赖
3NF→BCNF 消除主属性对码的部分和传递函数依赖
BCNF→4NF消除非平凡且非函数依赖的多值依赖
8.阿姆斯特朗公理系统:
自反律:若Y是X的子集,则必然有X→Y为函数依赖F所蕴含。
增广律:若X→Y为函数依赖F所蕴含,且Z属于集合U,则XZ→YZ为F所蕴含
传递律:X→Y及Y→Z为F所蕴含,则X→Z为F所蕴含。
推到规则:
合并规则:X→Y,X→Z,有X→YZ
伪传递规则:X→Y,WY→Z,有WX→Z
分解规则:由X→YZ,则有X→Y,X→Z。
9.规范化理论对数据库设计有什么指导性意义?
(1)需求分析阶段,用数据依赖的概念来分析和表示各个数据项之间的联系
(2)概念结构设计阶段,用规范化理论为工具来构造实体类型和联系类型,设计ER模型并对其进行优化。
(3)在逻辑设计阶段,使用规范化理论来设计和评价模式
10.模式分解的标准(分解的等价标准):无损连接性和保持原有的函数依赖
第七章
1.简述数据库的设计阶段?(简要回答数据库设计步骤?)((数据库设计有哪几个阶段?)(2012-2013期末,期末2、试题三、五)
需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施、数据库的运行和维护
2.数据库设计一般有哪几个过程?每个阶段的中心任务是什么?(数据库设计各阶段设计要点)(2001研招,章节7)
(1)数据库设计一般包括6个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施、数据库的运行和维护
(2)各阶段任务如下:
①需求分析:准确了解和分析用户需求
②概念结构设计:对用户需求进行综合、归纳和抽象,形成独立于具体的DBMS和机器的概念模型
③逻辑结构设计:将概念结构设计阶段设计好的ER图转换为某个DBMS 所支持的数据模型,并对其进行优化
步骤
①将概念结构转换为一般的关系、网状、层次模型
②将关系、网状、层次模型转换为DBMS支持的数据模型
③对数据模型进行优化
④物理结构设计:为逻辑数据模型选取一个最适合应用环境的物理结构
步骤
① 确定数据库的物理结构,主要是存取方法和存储结构
② 对物理结构进行评价,评价的重点是时间和空间效率
⑤数据库的实施:设计人员运用DBMS提供的数据语言、工具、及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制和调试应用程序,组织数据入库,并进行试运行。(选择)
⑥数据库的运行和维护:在数据库运行过程中对其进行评价、调整和修改
注:
需求分析和概念设计独立于数据库管理系统
逻辑设计和物理设计依赖于数据库管理系统
3.数据字典的内容和作用(章节一、2003期末)
数据字典:是数据库中各种描述信息和控制信息的集合,是数据库设计的有力工具,是元数据,而不是数据本身
基本内容:
数据项、数据结构、数据流、数据存储、处理过程5个部分
数据项是数据的最小组成单位,若干个数据项组成一个数据结构。
数据字典是通过数据项和数据结构的定义来描述数据流、数据存储的逻辑内容
作用:在需求分析阶段建立,是下一步进行概念结构设计的基础,并在数据库设计阶段不断修改、补充、完善。
数据流程图(DFD)是为了描述结构化方法中需求分析阶段的工具。(选择)
4.什么是数据库的概念结构?试述概念结构的特点和设计策略
概念结构是信息世界的结构,即概念模型
概念结构的特点:
(1)比较真实的反映现实世界
(2)易于理解,与用户之间交流意见的工具
(3)易于更改,当环境变化时,容易对模型进行修改和扩充
(4)易于向关系、网状、层次等各种数据模型转换
设计策略:
自顶向下:(先定义全局,再逐步细化)
自底向上:先定义局部,再集成起来,得到全局结构
逐步扩张:先定义核心,在向外扩充
混合策略:将自顶向下和自底向上相结合,先定义全局,以他为骨架再自底向上设计局部概念结构
5.数据库的运行和维护的内容?
(1)数据库的转储和恢复
(2)数据库的重组和重构
(3)数据库性能的监视、分析和改造
(4)数据库的安全性、完整性控制
6. 规范化理论对数据库设计有什么指导意见?
(1)在需求分析,用数据依赖的概念分析和表示各个数据项之间的联系。
(2)在概念结构设计阶段,以规范化理论为工具来构造实体类型和联系类型,设计ER模型并对其进行优化。
(3)在逻辑设计阶段,以规范化理论来设计和评价模式
7.数据库中常见的存取方法(关系模式的存取方法)
索引方法、聚簇方法、HASH方法
(索引b+索引,hash索引是数据库中最经典的存取方法)
8.试述数据库设计过程中形成的数据库模式(课后题、选择题)
(1)在概念结构设计阶段形成独立于机器特点、独立于DBMS的概念模型,即ER图(选择)
(2)在逻辑结构设计阶段将ER 图装变为具体的数据库支持的数据模型,形成数据库逻辑模式(基本表),然后在基本表的基础上建立视图,形成数据的外模式
(3)在物理结构阶段,进行物理存储安排,建立索引,形成数据库的内模式
9.将ER图转换为关系模式时规则,如何处理实体型间的联系
(1)一个1:1的联系可以转换为一个独立的关系模式(两边的码+联系的属性,其中候选码为每个实体的码①②),也可以与任意一端对应的关系模式合并
(2)一个1:n的联系可以转换为一个独立的关系模式(两边的码+联系的属性,其中候选码为n端实体码)也可以与n端对应的关系模式合并
(3)一个m:n的联系可以转换为一个独立的关系模式(两边的码+联系的属性,其中候选码为两端实体码的组合)
(4)三个或三个以上实体间的一个多元联系可以转换为一个关系模式
(5)具有相同码的关系模式可合并。
(6)一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。
第八章
1.简述使用游标的步骤?(2012-2013期末、期末二)
定义游标、打开游标、推进游标、关闭游标
第九章
1.查询处理步骤
**查询处理分为:**查询分析、查询检查、查询优化、查询执行
2.关系系统查询优化的一般策略(准则)(查询树的启发式优化规则)
(1)选择运算应尽可能的先做
(2)把投影运算和选择运算同时进行
(3)把投影同其前后的双目运算结合起来进行运算
(4)把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算
(5)找出公共子表达式
(6)选择合适的连接运算
3.查询优化的一般步骤
(1)把查询转化成语法树
(2)把语法树利用优化算法换成标准的形式
(3)选择低层的存取路径
(4)生成查询计划,选择代价最小的
第十章
1.数据库系统的故障有哪些类型?(试题二、2012-2013期末、期末二)
(1)事务故障
(2)系统故障
(3)介质故障
(4)计算机病毒
2.数据库恢复:把数据库从错误状态恢复到某一已知的正确状态
3.事务可能遭到破坏的因素有:多事务并行,交叉执行,强行停止
4.简述事务故障的恢复策略(2018、2020研招)
(1)反向扫描日志文件,查找该事务的更新操作。
(2)对该事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。
(3)继续反向扫描日志文件,查找该事务更新操作,并做同样处理。
(4)如此处理下去,直到读到此事务的开始标记,事务故障恢复就完成了。
5.简述系统故障时的数据库恢复策略。(试题五、六、课后题、2015、2016、2018、2020研招)
(系统故障时的恢复)
(1)正向扫描日志文件,找出在故障发生前已经提交的事务,将其事务标识记入REDO队列(重做队列)。同时找出故障发生时尚未完成的事务,将其事务标识记入UNDO队列(撤销队列)。
(2)对UNDO队列(撤销队列)中的各个事务进行撤销处理
(3)对REDO队列(重做队列)中的事务进行重做处理
UNDO反向扫描日志文件,撤销对数据库的更新,使得数据库恢复到更新前状态
REDO正向扫描日志文件,重做一次更新,使得数据库恢复到更新后的状态
6.简述介质故障的恢复策略。(2017、2018、2020研招)
(1)装入最新的数据库后备副本,使数据库恢复到最近一次转储时的一致性状态。对于动态转储的数据库后备副本,还要转入日志文件副本,利用REDO+UNDO.才能使数据库恢复到以一致性状态。
(2)装入相应的日志文件副本,重做已完成的事务。
7.什么是事务(事务的概念)?事务具有哪些特性?定义事务的语句有哪些?(试题五、课后题、2012-2013期末、章节10、期末二)
事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。事务是并发控制的基本单位。
事务具有原子性、一致性、隔离性、持续性四个特性。
开始Begin transaction;
结束commit(提交); rollback(回滚:撤销到事务最开始的状态);
8.简述(试述)事务的特性。恢复技术能保证事务的哪些特性?(试题四、六、课后题、2005研招,章节10)
事务具有四个特性,即ACID特性:
(1)原子性:事务中包括的所有操作要么都做,要么都不做。
(2)一致性:事务必须使数据库从一个一致性状态变到另一个一致性状态。
(3)隔离性:一个事物的执行不能被其他事务干扰。
(4)持续性:(永久性)事务一旦提交,对数据库的改变是永久性的。
故障恢复可以保证事务的原子性和持续性
并发控制可以保证事务的一致性和隔离性
9.事务中的提交和回滚是什么意思?(章节10)
提交(commit):提交事务的所有操作。将事务中所有对数据库的更新写回到磁盘上的物理数据库中,事务正常结束。
回滚(rollback):是数据库滚回到事务开始时的状态。在事务运行的过程中发生了某种故障,事务不能再继续执行,系统将事务对数据库的所有已完成的更新操作全部撤销,使数据回滚到事务最开始的状态。
10.数据库恢复的基本技术有哪些?恢复的原理(2020)
**恢复基本原理:**冗余 建立冗余数据最常用的技术是数据转储和登记日志文件
数据库恢复的基本技术
(1)数据转储:海量转储、增量转储
(2)登录日志文件
当故障发生的时候,利用转储的数据库后备副本和日志文件就可以将数据库恢复到故障前某一一致性状态
11.什么是日志文件?为什么要设立日志文件?(章节10)
日志文件:用来记录事务对数据库更新操作的文件
设立日志文件的目的:记录对数据库中数据的每一步更新操作。从而DBMS可以根据日志文件进行事务故障恢复和系统故障恢复(事务未完成);还可协助后备副本进行介质故障的恢复。
12.登录日志文件时必须遵循什么原则?(试题一)
(1)登记的次序严格按并发事务执行的时间次序。
(2)必须先写日志文件,后写数据库。
13.登录日志文件时为什么是先写日志文件,后写数据库?
(1)因为如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了
(2)但是若是先写日志文件,但是没有修改数据库,在恢复时只不多多一次执行UNDO操作,但是不会影响数据库的正确性。所以…
14.数据转储的意义
数据转储是数据库恢复中采用的技术,即DBA定期的将数据库复制到磁带或另一个磁盘上保存起来的过程,当数据库遭到破坏的时候可以将后备副本重新装入,将数据恢复到转储时的状态。
静态转储:在系统中无运行事务时进行的转储操作
动态转储:指的是转储期间允许对数据库进行存取或修改
海量转储:每次转储全部数据库
增量转储:每次只转储上一次转储后的更新过的数据
注:简述事务的概念及性质。要把3、4条均答上
第十一章
1.什么是封锁?基本的封锁类型有几种?叙述他们的含义。(课后题、章节11、2005研招、)
封锁就是事务T在对某个数据对象操作之前,先向系统发出请求,对其加锁,在事务T释放他的锁之前,其他的事务不能更新或读此数据对象。
注:封锁是并发控制的一个重要技术
基本的封锁类型有两种:排他锁、共享锁
**排他锁:**又称写锁,事务T对数据对象A加上X锁,则只允许T读取和修改A,其他事务不能再对A加任何类型的锁,直到T释放A上的锁。
**共享锁:**又称读锁,事务T 对数据对象A加上S锁,则事务T可以读A 但不能修改A,其他的事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。
2.并发操作可能会产生哪几类数据不一致?用什么方法可以避免各种数据不一致的情况?(课后题、期末二、试题五、2012-2013期末)
(简述数据库并发操作通常带来哪些问题)
丢失修改、不可重复读、读“脏”数据
避免不一致的方法和技术:并发控制。
丢失修改:T1和T2读入同一数据并修改。T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失
不可重复读:T1读取数据,事务T2执行更新操作,使得T1无法再现更新前的操作
读脏数据:T1修改数据并写回磁盘,T2读取同一数据,然后由于某种原因,T1撤销操作,使得T1恢复到原值,所以T2读到的数据与数据库中的不一致。
**○常用的并发控制技术:**封锁、时间戳、乐观控制法、多版本并发控制等(2020)
为什么要并发控制?
因为数据库中可能会存在数据不一致问题,并发控制可以保证事务的一致性和隔离性。
3.简述三级封锁协议的内容以及不同级别的封锁协议能解决哪些数据不一致性问题?(课后题、试题三、期末二、2012-2013期末分开考、2015、2017、2018、2020研招)(如何用封锁机制保证数据的一致性)
**(1)一级封锁协议:**事务T在修改数据R以前必须先对其加X锁,直到事务结束才释放。-----解决了“丢失修改”问题
**(2)二级封锁协议:**在一级封锁协议的基础上增加事务T在读取数据R之前必须先对其加上S锁,读完可释放S锁。-----不仅解决“丢失修改”,还解决了读“脏”数据问题。
**(3)三级封锁协议:**在一级封锁协议的基础上增加事务T在读取数据R之前必须先对其加上S锁,直到事务结束才释放S锁。-----不仅解决“丢失修改”,读“脏”数据问题,还解决了“不可重复读”问题。
注:若只让简述第三级封锁协议或者第二级封锁协议,则需要将第一封锁协议也要叙述,因为他们均是在第一协议的基础上。
4.简述两段锁协议(2015研招)
两段锁协议是指所有事务必须分成两个阶段对数据项加锁和解锁
第一阶段:获得封锁(扩展阶段) 事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁。
第二阶段:释放封锁(收缩阶段) 事务可以释放任何数据项上的任何类型的锁,但是不能申请任何锁。
注:遵守两段锁是可串行化调度的充分条件,而不是必要条件。
5.什么是活锁?叙述活锁产生的原因和解决办法?(章节11)
**活锁:**该事务等待时间太长,似乎被锁住了,实际上可能被激活。(都在排队等)
产生的原因:当一系列的封锁不能按照其先后顺序执行时,就可能导致一些事务无限等待某个封锁,从而导致活锁。
**避免活锁的办法:**先来先服务的策略
6.什么是死锁?叙述死锁产生的原因和解决办法?(章节11、2016研招)
**死锁产生的原因:**封锁可以引起死锁
死锁:T1等待T2,T2等待T1,T1和T2两个事务永远不能结束,形成死锁。
产生的原因:两个或多个事务都已封锁了一些数据对象,然后请求已被其他事务封锁的数据对象加锁,从而出现死等待。
预防死锁的办法:
(1)一次封锁法:(每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行)
(2)顺序封锁法:(预先对数据对象规定一个封锁顺序,所有事务都按照这个顺序实行封锁)
诊断死锁的方法:超时法、等待图法
解决死锁的办法:当死锁发生时,就要选择一个处理死锁代价小的事务,将其撤销,释放此事务所持有的所有的锁,使其他事务得以运行下去。
(注:答题的时候 解决死锁的常用方法要答三条:预防死锁的办法+解决思索的方法)
7.什么样的并发调度是正确的调度?
可串行化的调度是正确的调度
可串行化的调度定义:多个事务并发执行是正确的,当且仅当其结果与按照某一次序串行执行这事务的结果相同,则称这种调度策略为可串行化的调度。
8.“串行调度”和“可串行化调度”有何区别
事务的执行次序叫做调度。
如果多个事务依次执行,则称为事务的串行调度。
如果利用分时的方法,同时处理多个事务,则称为事物的并发调度。
如果要是一个并发调度的结果与某一个串行调度的结果等价,则称该并发调度为可串行化调度。
11.什么是封锁粒度
封锁对象的大小叫做封锁粒度,封锁对象可以是一些逻辑单元,也可以是一些物理单元。
封锁粒度与系统的并发度和并发控制的开销有关:封锁粒度越大,数据库所能够封锁的数据单元越小,并发度也就越小,系统开销也越小;反之