大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
数据库系统概论题目自整理
说复试题目过于牵强,只是自己整理的一些知识点而已,为了便于理解和背诵,有些部分定义和说明尽量简明扼要,如有错误请多多指教!(不可转载)
大家觉得有用点点赞啊啊我升到3级就可以自定义标签了谢谢~
1.试述数据、数据库、数据库系统、数据库管理系统的概念。
( l)数据( Data ) :描述事物的符号记录称为数据。数据的含义称为语义,数据与其语义是不可分的。
( 2)数据库( DataBase,简称 DB ) :若干个相互之间有关联关系的表的集合,表就是关系。数据库中的数据具有 永久存储,易扩展,可共享的特点。
( 3)数据库系统( DataBase Sytem,简称 DBS ) :数据库系统是一个大的环境,是DB+DBMS+DBAP+DBA+计算机基本系统。(DBAP:为某一个用户更好的使用数据库而开发的应用程序)
(4)数据库管理系统( DataBase Management sytem,简称 DBMs ):管理数据库的一种系统软件。位于用户和操作系统之间。DBMS的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。
2.数据库系统的特点
(l)数据结构化 数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是
数据库系统与文件系统的本质区别。“整体”的意思是,在数据库系统中,数据不再针对某一个应用,而是面向全组织,具有整体的结构化。
(2)数据的共享性高,冗余度低,易扩充 ;数据库的数据不再面向某个应用而是面向整个
系统,因此可以被多个用户、多个应用以多种不同的语言共享使用。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充。
数据共享可以大大减少数据冗余,节约存储空间,同时还能
够避免数据之间的不相容性与不一致性。所谓“数据面向某个应用”是指数据结构是针对某
个应用设计的,只被这个应用程序或应用系统使用,可以说数据是某个应用的“私有资源
”。所谓“弹性大”是指系统容易扩充也容易收缩,即应用增加或减少时不必修改整个数据
库的结构,只需做很少的改动。可以取整体数据的各种子集用于不同的应用系统,当应用需
求改变或增加时,只要重新选取不同的子集或加上一部分数据,便可以满足新的需求。
( 3)数据独立性高 数据独立性包括数据的物理独立性和数据的逻辑独立性。数据库管理系
统的模式结构和二级映像功能保证了数据库中的数据具有很高的物理独立性和逻辑独立性。
(4)数据由 DBMS统一管理和控制 数据库的共享是并发的共享,即多个用户可以同时存
取数据库中的数据甚至可以同时存取数据库中同一个数据。为此, DBMS必须提供统一的
数据控制功能,包括数据的安全性保护、数据的完整性检查、并发控制和数据库恢复。解析
DBMS数据控制功能包括四个方面:
数据的安全性保护:保护数据以防止不合法的使用造成的数据的泄密和破坏;
数据的完整性检查:保证数据的正确性和相容性。
并发控制:对多用户的并发操作加以控制和协调,保证并发操作的正确性;
数据库恢复:能将数据库从错误状态恢复到某一已知的正确状态(亦称为完整状态或一致状态)。
下面可以得到“什么是数据库”的一个定义:
数据库是长期存储在计算机内有组织的大量的共享的数据集合,它可以供各种用户共享,具有最小冗余度和较高的数据独立性。 DBMS在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在生故障后对系统进行恢复。数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。
3.数据库管理员的职责
1.决定数据库中的信息内容和结构;
2.决定数据库的存储结构和存取策略;
定义数据库的安全性要求和完整性约束条件;
3.监控数据库的使用和运行;
4.数据库的改进和重组,重构;
4.试述文件系统与数据库系统的区别和联系。
文件系统与数据库系统的区别是:
文件系统面向某一应用程序,共享性差,冗余度大,数据独立性差,记录内有结构,整体无结构,由应用程序自己控制。
数据库系统面向现实世界,共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由DBMS统一管理。
文件系统与数据库系统的联系是:文件系统与数据库系统都是计算机系统中管理数据的软
件。文件系统是操作系统的重要组成部分;而DBMS是独立于操作系统的软件。但是DBMS是在操作系统的基础上实现的;数据库中数据的组织和存储是通过操作系统中的文件系统来实现的。
5.数据模型的层次
数据模型:是对现实世界数据特征的抽象。可分为 概念模型,逻辑模型和物理模型
概念模型:用于数据库设计,是从用户的角度对数据建模,是现实世界抽象出来的模型。
逻辑模型:用计算机的角度对数据建模,分为:层次模型,关系模型,网状模型。
物理模型:描述数据在系统内部的表示方式和存取方法。是对数据最底层的抽象。
6.试述数据模型的概念、数据模型的作用和数据模型的三个要素。
数据模型是对现实世界数据特征的抽象,是现实世界的模拟。
数据模型是用来描述数据,组织数据和对数据进行操作的。
一般地讲,数据模型是严格定义的概念的集合。这些概念精确描述了系统的静态特性、动态特性和完整性约束条件。因此数据模型通常由数据结构、数据操作和完整性约束三部分组成。
( l)数据结构:是描述数据库组成对象以及对象之间的关系,是对系统静态特性的描述。
(2)数据操作:是指对数据库中各种对象的实例允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。
( 3)数据的约束条件:是一组完整性规则的集合。完整性规则是给定的数据模型中数据及
其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,
以保证数据的正确、有效、相容。
解析数据模型是数据库系统中最重要的概念之一。必须通过
《概论》的学习真正掌握数据模型的概念和作用。数据模型是数据库系统的基础。任何一个DBMS都以某一个数据模型为基础,或者说支持某一个数据模型。数据库系统中,模型有不同的层次。根据模型应用的不同目的,可以将模型分成两类或者说两个层次:一类是概念模型,是按用户的观点来对数据和信息建模,用于信息世界的建模,强调语义表达能力,
概念简单清晰;另一类是数据模型,是按计算机系统的观点对数据建模,用于机器世界,
人们可以用它定义、操纵数据库中的数据,一般需要有严格的形式化定义和一组严格定义了语法和语义的语言,并有一些规定和限制,便于在机器上实现。
7.试述概念模型的作用(待补充)
概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是
现实世界到信息世界的第一层抽象,概念模型是整个数据库设计的基础。
8.定义并解释概念模型中以下术语0:实体,实体型,实体集,属性,码,实体联系图(E—R图)
实体:客观存在并可以相互区分的事物叫实体。
实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
实体集:同型实体的集合称为实体集。
属性:实体所具有的某一特性,一个实体可由若干个属性来刻画。
码:惟一标识实体的属性集称为码。
实体联系图( E一 R图):提供了表示实体型、属性和联系的方法:
·实体型:用矩形表示,矩形框内写明实体名;
·属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;
·联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型( 1: 1,1: n或 m: n)。
9.试述网状、层次、关系模型的优缺点。
层次模型:数据集合之间的联系满足除根节点以外的所有节点有且只有一个双亲结点的条件称为层次模型。
优点主要有:
( l)模型简单。
(2)查询效率高。
( 3)层次数据模型提供了良好的完整性支持。
缺点主要有:
( l)现实世界中很多联系无法用层次模型来描述,如多对多联系。
(2)对插入和删除操作的限制比较多;
(3)查询子女结点必须通过双亲结点。
网状数据模型:数据集合之间的联系满足允许多个节点无双亲或者有多个双亲条件成为网状模型。
优点主要有:
(1)能够更为直接地描述现实世界,如一个结点可以有多个双亲;
(2)具有良好的性能,存取效率较高。
网状数据模型的缺点主要有:
(1)结构比较复杂。
(2)其 DDL、 DML语言复杂,用户不容易使用。
(3)由于记录之间联系是通过存取路径实现的,加重了编写应用程序的负担。
关系数据模型:由一组关系组成,一个关系就是一张表。
具有下列优点:
( l)关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。
( 2)其数据结构简单、清晰,用户易懂易用。关系模型的概念单一,无论实体还是实体之间的联系都用关系表示,操作的对象和操作的结果都是关系。
( 3)关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
关系数据模型最主要的缺点是,由于存取路径对用户透明,查询效率往往不如非关系数据模型。因此为了提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。
10.试述关系模型的概念,定义并解释以下术语:
(l)关系(2)属性(3)域(4)元组 ( 5)主码(6)分量(7)关系模式
关系模型中无论是实体还是实体间的联系均由单一的结构类型——关系来表示。由关系数据结构、关系操作集合和关系完整性约束三部分组成。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
( l)关系:一个关系对应通常说的一张表;
( 2)属性:表中的一列即为一个属性;
( 3)域:属性的取值范围;
( 4)元组:表中的一行即为一个元组;
( 5)主码:表中的某个属性组,它可以惟一确定一个元组;
(6)分量:元组中的一个属性值;
(7)关系模式:对关系的描述,一般表示为关系名(属性 1,属性 2,…,属性 n)
10. 试述数据库系统三级模式结构,这种结构的优点是什么?
模式:对数据库中的数据进行的一种结构化的描述。其实就是对数据的结构的抽象。
数据库系统的三级模式结构由外模式、模式和内模式组成。
外模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图。
特点:一个数据库可以有多个外模式;外模式就是用户视图;外模式是保证安全性的一个有力措施。
模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集。
特点:一个数据库只能有一个模式,是数据库数据在逻辑上的视图,数据库模式以某一个数据模型为基础。
内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。一个数据库中只能有一个内模式。
为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
三级结构的优点
(1)保证数据的独立性。将模式和内模式分开,保证了数据的物理独立性;将外模式和模式分开,保证了数据的逻辑独立性。
(2)简化了用户接口。按照外模式编写应用程序,而不需了解数据库内部的存储结构,方便用户使用系统。
(3)有利于数据共享。在不同的外模式下可有多个用户共享系统中数据,减少了数据冗余。
(4)利于数据的安全保密。在外模式下根据要求进行操作,不能对限定的数据操作,保证了其他数据的安全。
11.简述数据库的二级映像
外模式/模式映像:一个模式可以有多个外模式。当模式改变时,由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
模式/内模式映像:模式与内模式映像是唯一的。当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
12.数据库管理系统的功能
( l)数据库定义功能;定义数据库中表的格式,DBMS提供DDL给用户,用户通过DDL来描述表的结构,DBMS按照用户的定义创建数据库和表。
( 2)数据库操作功能;对数据库中的表进行操作,DBMS提供DML给用户,用户通过DML对表进行操作,DBMS按照用户的操作,去实际执行这些操作。
( 3)数据库控制功能;控制数据库中数据的使用(哪些用户可以访问,那些不可以),DBMS提供DCL给用户,用户通过DCL来描述对数据库所要实施的控制,DBMS按照用户的描述进行控制。
(4)数据库维护功能。DBMS提供一系列程序给用户,这些程序提供了数据库维护的各种功能,用户通过这些程序来对数据库进行维护。
13.试述关系模型的三个组成部分。
关系模式:是关系的结构,关系是关系模式在某一时刻的数据。
关系模型:是关系模式的结构。
关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
14.试述关系数据语言的特点和分类。
答:关系数据语言可以分为三类:
关系代数语言:一组抽象的查询语言,他对关系的运算表达查询。
关系演算语言:元组关系演算语言和域关系演算语言。
SQL:具有关系代数和关系演算双重特点的语言。
这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作
语言,功能强,能够嵌入高级语言中使用。
15.试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?
关系模型的完整性规则就是对关系的某种约束条件。可分为实体完整性,参照完整性,用户定义的完整性。
实体完整性是针对主码而言的,关系数据库中的每一个元组应该是唯一的,可区分的。即若属性为主码,则不能空值。()
参照完整性是针对外码而言的。用来定义外码于主码之间的引用规则。
用户自定义完整性是某一个应用所涉及的数据必须满足的语义要求
如果一个属性是某个关系的外码,若关系中每个元组的属性值都为空值时,属性可以为空。
16.数据库中的几种关键码元
数据库中的关键码包括超码、候选码、主码、外码。
超码和候选码是唯一地标示关系中元组的属性或属性集,但候选码中不含有多余的属性;
主键是从候选码中选出一个坐老大;
外键是指一个关系中包含的另一个关系的主码所对应的属性
17.基本的关系操作(查询,修改,插入,删除)
查询的关系运算:
基本的关系运算:选择,投影,并,差,笛卡尔积
特殊的关系运算:交,除,连接。均可以用基本关系运算表达,可以简化描述语句
18.试述等值连接与自然连接的区别和联系。
连接运算符是“=”的连接运算称为等值连接。它是从两组关系的笛卡尔积中选取属性值相等的那些元组。
自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,
并且在结果中把重复的属性列去掉。
19.试述 SQL语言的特点。
(l)综合统一。SQL语言集数据定义语言
DDL数据定义语言
DML数据操纵语言
DCL数据控制语言
的功能于一体。
(2)高度非过程化。用 SQL语言进行数据操作,只要提出“做什么”,而无需指明“怎么
做”,因此无需了解存取路径,存取路径的选择以及 SQL语句的操作过程由系统自动完
成。
(3)面向集合的操作方式。SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元
组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
(4)以同一种语法结构提供多种使用方式。SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式;作为嵌入式语言,它能够嵌入到
高级语言程序中,供程序员设计程序时使用。
(5)语言简捷,易学易用。
20.SQL的功能
数据查询;
数据库模式创建;
数据的插入删除;
数据库安全性与完整性的定义与控制;
21.试述 SQL的定义功能。
SQL语言的定义功能包括定义表,定义视图,定义索引。
SQL语言通过create table来定义表,通过alter table更新表,通过drop table删除表;
SQL语言通过create index,drop index 建立索引和删除索引;
通过create view,drop view建立视图和删除视图。
22.SQL的更新操作有哪些?
SQL的数据更新包括数据插入,数据删除,数据更改,分别用insert,delete和update语句实现
23.什么是基本表?什么是视图?两者的区别和联系是什么?
基本表就是本身独立存在的表,一个关系就对应一张表;
视图是有一个或多个基本表导出的表,是一个虚表,在数据库中只存放对视图的定义,不存放视图对应的数据,视图对应的数据仍然存放在相应的基本表中,视图在概念上与基本表等同,用户可以像使用基本表那样使用视图,视图可以再定义视图。
24.视图的优点作用?
1.可以简化用户的操作,是用户把注意力集中在多关注的数据上面;
2.对重建数据库提供一定程度的逻辑独立性,有时尽管数据库的逻辑结构发生变化,而应用程序不需要改变。
3.对机密数据能提供安全保护,通过对不同用户定义不同的视图,使得机密数据可以不出现在某些用户视图上。
4.使用户以多种角度看待同一数据,视图机制能够使不同用户以多种方式看同一数据。
25. 所有的视图是否都可以更新?为什么?
视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。
因为有些视图的更新不能惟一有意义地转换成对相应基本表的更新,所以,并不是所有的
视图都是可更新的.
基本表的行列子集视图一般是可更新的。若视图的属性来自集函数、表达式,则该视图
肯定是不可以更新的。
26.简述索引,索引的作用是什么?
索引:能够快速定位到所要查询的内容,用户可以根据应用环境的需要在基本表上建立一个或多个索引,以提供多种存取路径,加快查找速度。
27.Where和having语句的区别
区别在于作用对象不同,where子句作用于基本表和视图,从中选择满足条件的元组,having与group by连用,group by将查询结果分组,having从中选择满足条件的元组。Where子句中不能使用聚合函数作为条件表达式。
28.聚合函数有哪些?
Count():返回某列的行数
Avg():返回某列的平均值
Sum():返回某列的总数
max():返回某列的最大值
Min():返回某列的最小值
29.简述连接查询
连接查询:如果一个查询同时涉及两个以上的表。
包括:等值连接查询(使用连接运算符‘=’),自然连接查询(特殊的等值连接,在结果中把重复的属性列去掉),非等值连接查询(不用‘=’),自身连接查询(一个表与自身连接),外连接查询(把悬浮元组也保存在查结果中)等。
悬浮元组:自然连接中被舍弃的那些元组被称为悬浮元组。(左连接,右连接)
30.Exists谓词的子查询
Exists代表存在量词,带有exist是谓词的子查询不返回任何数据,只产生逻辑真和逻辑假值。
31.集合查询
集合查询包括:并操作union,交操作intersect,差操作except。
参加集合操作的各查询结构必须列数相同,对应项的数据类型也必须相同。
32.数据库安全性是什么?
保护数据库防止因为不合法的操作而造成数据库数据的泄露,更改或破坏。
33.为什么需要对数据库的安全性控制?
存在一些不安全的因素:
非授权用户对数据库的恶意存取和破坏,
数据库中重要或敏感的数据被泄露,
安全环境的脆弱性。
34.数据库安全性和计算机系统的安全性有什么关系?
数据库安全性是计算机系统安全性的一部分,两者是紧密联系,相互支持的。
安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。只是在数据库系
统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。
35.试述实现数据库安全性控制的常用方法和技术。
1.用户身份鉴别;系统提供一定的方式让用户标识自己的身份,每次用户要求进入系统时,系统进行核实用户的身份,成功才能提供系统的使用权。(静态口令鉴别,动态口令鉴别,生物特征鉴别,智能卡鉴别)
2.存取控制;确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的用户无法接近数据。包括定义用户权限和合法权限检查两部分。
(1).定义用户权限,将用户权限登记到数据字典中。
(2).合法权限检查,当用户发出操作请求后,系统根据数据字典的安全性规则对其进行合法权限检查。
3.视图机制;为不同的用户定义不同的视图,把数据对象限定在一定范围内。
4.审计;审计功能是把用户对数据库的操作自动记录下来放到审计日志中,审计员利用审计日志来监控数据库的各种行为,可以重现导致数据库现有状况的一系列操作,找出非法事件。
5. 数据加密;根据一定的算法将数据变为密文,使不知道解密算法的人不知道数据的内容。
36.什么是数据库中的自主存取控制方法和强制存取控制方法?
自主存取控制方法:定义各个用户对不同数据对象的存取权限,当用户对数据库进行访问时,先检查用户的存取权限。
强制存取控制方法:每一个数据对象被强制的标以一定的密级,每一个用户也被强制的授予某一级别的许可证,系统规定只有某一许可证级的用户才能访问某一密级的数据对象。
37.试述TcsEC ( TDI)将系统安全级别划分为4组7个等级的基本内容。
TCSEC ( TDI)将系统划分为四组(division ) 7个等级,依次是D、C( C1, C2)、B ( B1 , B2 ,B3)、A( A1) ,按系统可靠或可信程度逐渐增高。
D级
D级是最低级别。一切不符合更高标准的系统,统统归于D组。
Cl级只提供了非常初级的自主安全保护。能够实现对用户和数据的分离,进行自主存取控
制( DAC ),保护或限制用户权限的传播。
C2级实际是安全产品的最低档次,提供受控的存取保护,即将Cl级的 DAC进一步细化,
以个人身份注册负责,并实施审计和资源隔离。
Bl级标记安全保护。对系统的数据加以标记,并对标记的主体和客体实施强制存取控制
( MAC)以及审计等安全机制。
B2级结构化保护。建立形式化的安全策略模型并对系统内的所有主体和客体实施
DAC和MAC。
B3级安全域。该级的TCB必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢
复过程。
A1级验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证以确信各安全
保护真正实现。
38.数据加密的方式?
数据加密:原始数据——明文变换为不可直接识别的格式——密文。
存储加密:基于数据库内核的数据存储加密、解密方法性能好,安全完备性高。
透明:采用内核级加密保护方式
非透明:采用加密函数实现
传输加密:链路加密:对报文和报头均加密。
端到端加密:只加密报文,不加密报头
38.自主存取控制
引用某博主的思维导图,完整导图链接在文章末尾
40.授权与回收
Grant:grant 权限 on 对象类型 对象名 to 用户
Revoke:revoke 权限 on 对象类型 对象名 to 用户
41.简述数据库角色,数据库角色的作用
数据库角色:数据库角色就是权限的集合,是被命名的一组与数据库操作相关的权限。
作用:可以为一组具有相同权限的用户创建一个角色,来简化授权的过程。当某个用户需要角色的权限时,只需要将用户添加为该角色成员,不需要时就从角色中删除,不用反复的对某个用户单独的授予,废除权限。权限在用户成为角色成员时自动生效。
42.为什么强制存取控制提供了更高级别的数据库安全性?
强制存取控制是对数据本身进行密级标记,无论数据怎么变化,数据和标记都是一个不可分的整体,只有符合密级标准的用户才能够访问数据,所以提供了更高级别的数据库安全性保护。
43.理解并解释强制存取控制机制中主体、客体、敏感度标记的含义。
主体是系统中的活动实体,既包括 DBMS所管理的实际用户,也包括代表用户的各进程。
客体是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等。对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label)。
敏感度标记被分成若干级别,例如绝密(Top Secret)、机密(Secret)、可信
( Confidential)、公开( PubliC)等。主体的敏感度标记称为许可证级别,客体的敏感度标记称为密级。
44.什么是数据库的完整性?
数据库的完整性是指数据的正确性,完整性和相容性。
45.数据库的完整性概念与数据库的安全性概念有什么区别和联系?
数据库的完整性和数据库的安全性是两个不同的概念但是还有一定的联系,数据库的安全性防止因为不合法的操作而造成数据库数据的泄露,更改或破坏。数据库的完整性就是保证数据库中不出现不合语义的数据,防止错误信息的输入输出造成无效操作或错误后果,也就是说,完整性措施防范的对象是不合语义的数据,安全性措施防范的对象是非法用户和非法操作。
46.DBMS的完整性控制机制应具有哪些功能?
定义功能:DBMS应该能提供定义完整性约束条件的机制;
检查功能:能够检查一个操作是否违背了完整性约束条件;
违约反应:如果发现用户的操作使数据违背了完整性约束条件,系统能够采取一定的动作来保证数据的完整性。
47.关系数据库管理系统在实现参照完整性时需要考虑哪些方面?
48.关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的?
对于违反实体完整性和参照完整性的操作一般会拒绝执行;
当操作违反定义的完整性约束条件时,一般会执行一些相应的操作来保证数据库的正确性。
49.
50.什么是断言?断言的作用?(create assertion)
断言也是一种约束,是对数据库操作必须满足的条件,创建断言之后,任何对数据库关系的操作都会触发对断言的检查,任何使断言为假的操作都会被拒绝执行。
51.什么是触发器,触发器的作用?
触发器就是用户定义的一类由事件驱动的特殊过程,也就是说,当对一张表进行操作时,自动触发了预先定义的若干SQL语句的执行。和约束类似,但是比约束灵活,能够实施更为复杂的检查和操作。
52.触发器的定义
Create trigger 触发器名 //创建触发器名
before/after 触发事件 on 表名 //触发时机
Reference new row/old row as 变量 //声明变量
for each row/each statement //作用范围
when 触发条件 触发动作体
(each row:触发动作体多次 each statement:触发动作体一次)
Drop trigger 触发器名 on 表名
数据库的规范化理论
规范化的目的:寻求解决某些关系模式存在插入,删除异常,以及修改复杂,数据冗余的问题,
规范化的基本思想是 逐步消除数据依赖中不合适的部分,使模式中的各关系模式满足“一事一地”的模式设计原则。(一项信息只存一次,一项加工只做一次)
1.理解并给出下列术语的定义:
数据依赖,函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码、1 NF、2NF、3NF、BCNF、多值依赖、4NF。
数据依赖:是一个关系内部属性与属性之间的一种约束关系;
函数依赖:设R(U)是属性集U的关系模式,X,Y是U的子集,如果对于R的任意一个关系中不可能存在两个元组在X上的属性值相等,而在Y的属性值不等,就称Y依赖于X。
非平凡函数依赖:对于X—>Y,但是Y不是X的子集时,就称X—>Y为非平凡的函数依赖;
平凡函数依赖:当关系中属性集合Y是X的子集时,存在函数依赖X—>Y,就称X—>Y为平凡函数依赖;
完全函数依赖:设X,Y是关系R的两个属性集合,存在X→Y,但对X的任意一个真子集X’都有X’!→Y,则称Y完全函数依赖于X;
部分函数依赖:设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。
传递依赖:设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。
候选码:表中可以唯一确定一个元组的某个属性(或者属性组),如果这样的码有不止一个,那么大家都叫候选码,我们从候选码中挑一个出来做老大,它就叫主码。
全码:如果一个码包含了所有的属性,这个码就是全码。
主属性:一个属性只要在任何一个候选码中出现过,这个属性就是主属性。
非主属性:与上面相反,没有在任何候选码中出现过,这个属性就是非主属性。
外码:一个属性(或属性组),它不是码,但是它别的表的码,它就是外码。
1NF:关系中的每个分量都是不可分的数据项,即属性不可分,只要是关系数据库那就是第一范式;1NF要求关系中不能有复合属性多值属性及其组合。
2NF:满足1NF,(并且每一个主属性完全函数依赖于任何一个候选码。)消除了非主属性对候选码的部分依赖,减少了数据冗余以及数据库设计与应用过程中不一致的问题。
比如有两个主键,不能存在这样的属性,它只依赖于其中一个主键,这就是不符合第二范式 学生表(学生号,学生名,年龄,课程号,课程地址)
3NF:满足2NF,(没有传递函数依赖。)消除了非主属性对候选码的传递依赖。
爸爸资料表(爸爸,儿子,女儿,女儿的海绵宝宝,女儿的派大星)
BCNF:满足3NF,排除了任何属性对候选码的传递依赖和部分依赖。意味着在关系模式中每一个决定因素都包含候选码。(若一个关系达到了第三范式,并且它只有一个候选码,或者它的每个候选码都是单属性,则该关系自然达到BC范式。)
多值依赖:在关系模式中,函数依赖不能表示属性值之间的一对多关系,这些属性之间有些虽然没有直接关系,但存在间接关系,把没有直接关系,但有间接关系的称为多值依赖的数据依赖。(多值依赖:Y->->X 且X存在t[X]和u[X]
通俗点讲:
“多值依赖”说白了就是”一夫多妻”制 一个男人[Y]可以有老婆[X]但是老婆可以是t[X]和u[X]就是两个人或者多个
“函数依赖”就是”一夫一妻”制一个男人只能有老婆但是只能是一个人
由上可理解”一夫一妻”制也是”一夫多妻”的一种,因为”一夫多妻”你可以只能娶一个老婆
“函数依赖”就是”多值依赖”的特殊情况)
4NF:消除了非主属性对候选码以外属性的多值依赖。(要求把同一表内的多对多关系删除。)
5NF:从最终结构重新建立原始结构。
数据依赖的公理系统
逻辑蕴涵:设F为关系模式R的一组函数依赖,X,Y是R的属性子集,如果从F中的函数依赖能够推导出X→Y,就称F逻辑蕴涵X→Y。
函数依赖集闭包:被F逻辑蕴涵的所有函数依赖集合被称为F的闭包,记为F+;
Armstrong公理系统的推理规则:
A1 自反律
A2 增广律
A3 传递律
有这三条推理规则可以得出 合并规则 伪传递规则 分解规则
把自反律,增广律,传递律称为Armstrong公理系统。Armstrong公理系统是有效的,完备的。 有效性是指从F出发根据公理系统推导出来的每一个函数依赖都一定在F+中;
完备性是指F+中的每一个函数依赖,必定可以用F根据公理系统推导出来。
属性集闭包:F+中所有X→A的A的集合称为X的闭包,记为X+。可以理解为X+表示所有X可以决定的属性。
判定X→Y是否能由F根据公里推导出的问题就转换为求X+,判定Y是否为X+的子集的问题。
最小覆盖:满足下列条件的逻辑蕴涵F称为最小覆盖
1.每个函数依赖的右端是单一属性;
2.每个函数依赖都是不可或缺的;
3.每个函数依赖的左端没有多余的属性;
每个函数依赖集都有等价的最小覆盖F’。
53.试举出3个多值依赖的实例。
54.数据库设计的特点?
(1)三分技术,七分管理,十二分基础数据:在数据库开发的过程中,技术固然重要,然而管理更加重要。十二分基础数据则强调了数据的收集,整理,组织和不断更新是数据库建设中的重要环节。
(2)结构设计和行为设计相结合:在整个设计过程中应该把数据库结构设计和对数据的处理设计密切结合起来。
55.怎么进行数据库设计?数据库设计的方法有哪些?
E-R模型,第三范式,统一建模语言…
56.试述数据库设计过程以及数据库设计过程各个阶段上的设计描述。
各阶段的设计要点如下:
( l)需求分析:准确了解与分析用户需求(包括数据与处理)。
( 2)概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
( 3)逻辑结构设计:将概念结构转换为某个 DBMS所支持的数据模型,并对其进行优化。
( 4)数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
( 5)数据库实施:设计人员运用 DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编写与调试应用程序,组织数据入库,并进行试运行。
( 6)数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改。
57.试述数据库设计过程中结构设计部分形成的数据库模式。
数据库结构设计的不同阶段形成数据库的各级模式,即:
(1)在概念设计阶段形成独立于机器特点,独立于具体DBMS的概念模式,比如E-R图。
(2)在逻辑设计阶段将E-R图转换为具体DBMS所支持的数据模型,就是关系模型。
(3)在物理设计阶段,根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。
58.需求分析阶段的设计目标是什么?调查的内容是什么?
设计目标就是通过详细调查现实世界所要处理的对象,充分了解原系统的状况,明确用户的各种需求,然后在此基础上确定新系统的功能。
调查的内容是“数据’和“处理”,即获得用户对数据库的如下要求:
(1)信息要求,即在数据库中需要存储哪些数据;
(2)处理要求,指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理;
(3)安全性与完整性要求。
59.简述数据字典及其作用?
数据字典是对数据的描述,即元数据(描述数据的数据)而不是数据本身,在需求分析阶段建立。
作用:作为分析阶段的工具,任何字典最重要的作用就是供人查询对不了解的条目的解释,在结构化分析中,数据字典的作用是给数据流图上每个成分加以定义和说明。是概念设计的基础。
60.什么是数据库的概念结构?试述其特点和设计策略。
概念结构是信息世界的结构,也就是概念模型。特点:
能够真实,充分的反映现实世界。
易于理解。
易于扩展。
易于向层次,网状,关系模型等转换。
概念结构的设计策略通常有四种:
(1)自顶向下;先定义全局概念结构的框架,再逐步细化。
(2)自底向上;先定义局部概念结构,然后再将它们集成起来,形成全局概念结构。
(3)逐步扩张;先定义核心的概念结构,然后再逐步向外扩张生成其他概念结构,最后得出总体概念结构。
(4)混合策略;将自顶向下和自底向上相结合。
61.E-R模型
实体:实体性用矩形表示。
属性:属性用椭圆形表示。
实体之间的联系:联系用菱形表示。
62.什么叫数据抽象?
数据抽象就是对客观事物进行人为处理,抽取所关心的共同特性,忽略非本质的细节,并将这些特性用各种概念精确地加以描述,这些概念就组成了某种模型。
63.试述数据库概念结构设计的重要性和设计步骤。
数据库概念设计是整个数据库设计的关键,将在需求分析阶段得到的用户需求先抽象为概念结构,以此作为各种数据模型的共同基础,从而能使DBMS更好的实现这一需求。
设计步骤:
概念结构设计方法有很多种,最常用的是自底向上方法
(1)先抽象数据并设计局部视图
(2)再集成局部视图形成全局概念结构。
64.ER方法的数据库概念设计包括以下步骤
设计局部ER模式;设计全局ER模式;全局ER模式的优化
65.为什么要视图集成?视图集成的方法是什么?
对数据库概念设计一般采用自底向上的方法,把大系统分解成子系统,先设计出子系统的局部视图,然后再把局部视图有机的融合形成一个系统的总视图。由于数据库系统是从整体的角度去看待和描述数据的,因此数据不再面向某一个应用而是面向整个系统,通过视图集成可以使数据库能被全系统的多个用户,多个应用所使用。
视图集成的两种方式:
(1)一次集成:将多个分E-R图一次集成;
(2)逐个集成:采用累加的方式一次集成两个E-R图。
无论采用哪种方式,每次集成局部E-R图都需要分两步走
(1)合并;解决各分E-R图之间的冲突,合并成为初步E-R图。
(2)修改和重构;消除不必要的冗余,生成基本的E-R图。
66.什么是数据库的逻辑结构设计?试述其设计步骤。
数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用的 DBMS产品所支持的数据模型相符合的逻辑结构。
设计步骤为 :
( l)将概念结构转换为一般的关系、网状、层次模型;
( 2)将转换来的关系、网状、层次模型向特定 DBMS支持下的数据模型转换;
( 3)对数据模型进行优化。
67.规范化理论对数据库设计有什么指导意义?
规范化理论为数据库设计人员判断关系模式的优劣提供了理论标准。可用以指导关系
数据模型的优化,使数据库设计工作有了严格的理论基础。
68.试述数据库物理设计的内容和步骤。
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的
DBMS。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构,就是数据库的
物理设计的主要内容。数据库的物理设计步骤通常分为两步:
( l)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间效率和空间效率。
69.数据输入在实施阶段的重要性是什么?如何保证输入数据的正确性?
数据库的实施阶段包括两个很重要的工作:数据的输入和应用程序的设计。
数据库是用来对数据进行存储,管理和应用的,因此在实施阶段必须将原系统中的数据输入到数据库中,数据量一般都很大,而且原系统中的数据的组织方式,结构和格式都与新创建的数据库系统有很大的差距,数据输入必须将原数据从各个局部应用中抽取出来,分类转换成符合新数据库系统格式的数据,输入数据库。
保证输入数据正确性的方法:为提高数据输入工作的效率和质量,应该针对具体的应用环境设计一个数据录入子系统,由计算机来完成数据入库的任务。在源数据入库之前要采用多种方法对它们进行检验,以防止不正确的数据入库。
数据库应用程序的设计应该与数据库的设计同步进行,在组织数据入库的同时还要调试应用程序。
70.什么是数据库的再组织和重构造?为什么要进行数据库的再组织和重构造?
数据库的再组织是指:按原设计要求重新安排存储位置、回收垃圾、减少指针链等,以
提高系统性能。
数据库的重构造则是指:部分修改数据库的模式和内模式,即修改原设计的逻辑和物理结构。数据库的再组织是不修改数据库的模式和内模式的。
进行数据库的再组织和重构造的原因:数据库运行一段时间后,由于记录不断增、删、改,会使数据库的物理存储情况变坏,降低了数据的存取效率,数据库性能下降,这时DBA就要对数据库进行重组织。数据库应用环境常常发生变化,如增加新的应用或新的实体,取消了某些应用,有的实体与实体间的联系也发生了变化等,使原有的数据库设计不能满足新的需求,需要调整数据库的模式和内模式。这就要进行数据库重构造。
71.嵌入式SQL
把SQL语言嵌入到某种高级语言中,SQL语句用来存取数据库中的数据,主语言用来控制程序流程以及对取出的数据做进一步处理。
72.SQL的执行方式
静态SQL:提交的SQL语句和查询条件是事先写好且固定的。
动态SQL:在执行时才能确定要提交的SQL语句和查询的条件。在运行过程中临时“组装”SQL语句。
本质区别:静态是固定的,针对的对象和问题是不变的,动态是可变的,是根据具体问题生成字符串解决问题的方法,具有灵活性。
73.如何将SQL检索的结果传给宿主语言进行处理?
单行处理:查询结果为单行记录,将结果直接传送到宿主程序的变量中。
多行处理:查询结果为多行记录,通过游标将多条记录一次一条的传送给主程序处理。
74.什么是游标?作用是什么?
游标:是系统为用户开设的数据缓冲区,用来存放SQL语句的执行结果。
作用:用户可以通过游标逐一获取记录并交付给主变量进行进一步处理,实现多行处理。
75.过程化SQL
定义:过程化SQL是对SQL的扩充,使其增加了过程化的语句。过程化SQL程序的基本结构是块,所有的过程化SQL程序都是由块组成的,这些块之间可以相互嵌套,每个块完成一个逻辑操作。
过程化SQL块的类型:命名块,匿名块
命名块:编译后保存在数据库中,可被反复调用。
匿名块:每次执行都要进行编译,不能保存在数据库中,也不能被调用。
76.什么是函数?
用户自己使用过程化SQL设计定义的函数,与存储过程类似,区别在于,函数必须制定返回的类型。
77.什么是存储过程?
存储过程是由过程化SQL语句书写的过程,这个过程经过编译和优化后存储在数据库服务器中,使用时调用即可。
优点:运行效率高;降低了客户与服务器之间的通信量。
78.查询处理以及查询处理的步骤
查询处理:是DBMS执行查询语句的过程,任务是把用户提交给DBMS的查询语句转换为高效的查询执行计划。
步骤:
(1)查询分析;对查询语句进行扫描,判断查询语句是否符合SQL语法规则。
(2)查询检查;对合法的查询语句进行语义检查。
(3)查询优化;选择一个高效执行的查询处理策略。
(4)查询执行;根据优化器得到的执行策略生成查询执行计划。
79.试述查询优化在关系数据库系统中的重要性和可能性。
重要性:它减轻了用户的负担。用户只要提出“干什么”,不必指出“怎么干”。查询优化的优点不仅在于用户不必考虑如何最好地表达查询以获得较好的效率,而且在于系统可以比用户程序的“优化’做得更好。
可能性:这是因为:
(l)优化器可以从数据字典中获取许多统计信息,优化器可以根据这些信息选择有效的执行计划,而用户程序则难以获得这些信息。
( 2)优化器可以考虑数十甚至数百种不同的执行计划,从中选出较优的一个,而程序员一般只能考虑有限的几种可能性。
( 4)优化器中包括了很多复杂的优化技术,这些优化技术往往只有最好的程序员才能掌握。系统的自动优化相当于使得所有人都拥有这些优化技术。
80.查询优化的步骤
太长建议看课本理解
81.查询优化的方法
代数优化:是指关系代数表达式的优化。
物理优化:对存取路径和底层操作算法的优化。
82.试述事务的概念及事务的ACID4个特性。
事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割
的工作单位。
事务具有4个特性:
原子性(Atomicity)、一致性(consistency)、隔离性( Isolation)和永久性( Durability)。这 4个特性也简称为 ACID特性。
原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他
并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
永久性:指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接
下来的其他操作或故障不应该对其执行结果有任何影响。
83.事务故障恢复的步骤
1.从头到尾扫描日志文件,找出故障发生前已经提交的事务,将其事务标识放入重做队列;找出故障发生时没有完成的事务,将事务标识放入撤销队列。
2.对撤销队列的事务进行撤销操作
3.对重做队列的事务进行重做操作
84.数据库中为什么要有恢复子系统?它的功能是什么?
因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,
这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,
使数据库中全部或部分数据丢失,因此必须要有恢复子系统。
恢复子系统的功能是:把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态
或完整状态)。
85.数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据?
数据库系统中可能发生各种各样的故障,大致可以分以下几类:
( 1)事务内部的故障;
( 2)系统故障;
( 3)介质故障;
( 4)计算机病毒。
事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据库数
据。
86.数据库恢复的基本技术有哪些?
数据转储:数据库管理员定期的将数据库复制到磁盘等存储介质保存起来的过程。
登录日志文件:用来记录用户对数据库更新操作的文件。
当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库恢复
到故障前的某个一致性状态。
87.什么是日志文件?为什么要设立日志文件?
日志文件:是用来记录用户对数据库更新操作的文件。
作用:可以将数据库恢复到故障前的某一个一致性状态。
登记日志文件必须遵循的原则:
(1)登记的次序严格按照并发事务执行的次序。
(2)必须先写日志文件再写数据库。
88.什么是检查点记录?检查点记录包括哪些内容?
在日志文件中增加一种新的记录,增加一个重新开始文件,并让恢复子系统在登陆日志文件期间动态的维护日志。
它的内容包括:
①建立检查点时刻所有正在执行的事务清单
②这些事务的最近一个日志记录的地址。
89.具有检查点的恢复技术有什么优点?
利用日志技术进行数据库恢复时,一般来说,需要检查所有日志记录。这样做有两个问题:一是搜索整个日志将耗费大量的时间;二是很多需要重做处理的事务实际上已经将它们的更新操作结果写到数据库中了,恢复子系统又重新执行了这些操作,浪费了大量时间。检查点技术就是为了解决这些问题。提高恢复效率。
90.什么是数据库镜像?它有什么用途?
数据库镜像即根据DBA的要求,自动把整个数据库或者其中的部分关键数据复制到另一个
磁盘上。每当主数据库更新时,DBMS自动把更新后的数据复制过去,即
DBMS自动保证镜像数据与主数据的一致性。
数据库镜像的用途有:
一是用于数据库恢复。当出现介质故障时,可由镜像磁盘继续提供使用,同时
DBMS自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本。
二是提高数据库的可用性。在没有出现故障时,当一个用户对某个数据加排它锁进行修改时,
其他用户可以读镜像数据库上的数据,而不必等待该用户释放锁。
91.什么是封锁?基本的封锁类型有几种?试述它们的含义
封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他的事务不能更新此数据对象。封锁是实现并发控制的一个非常重要的技术。
基本的封锁类型有两种:排它锁( Exclusive Locks,简称 x锁)和共享锁( ShareLocks,简称 S锁)。
排它锁又称为写锁。若事务T对数据对象 A加上 X锁,则只允许T读取和修改A,其他任何事务都不能再对 A加任何类型的锁,直到T释放A上的锁。这就保证了其他事务在 T释放A上的锁之前不能再读取和修改A。
共享锁又称为读锁。若事务T对数据对象 A加上 S锁,则事务T可以读 A但不能修改A其他事务只能再对A加 S锁,而不能加 X锁,直到T释放A上的 S锁。这就保证了其他事务可以读 A,但在 T释放A上的 S锁之前不能对 A做任何修改。
92.意向锁
意向锁:如果对一个结点加意向锁,则说明该结点的下层节点正在被加锁;对任意一个结点加锁时,必须对它的上层结点加意向锁。
93.并发控制
并发操作会带来数据的不一致性:
丢失修改:两个事务对同一数据进行修改,一个事务可能会对另一个事务的修改覆盖。
不可重复读:一个事务读取数据之后,另一个事务对数据进行更新,那个事务无法重现原来的数据。
读“脏”数据:事务读到的数据与数据库中的数据不一致。
产生的原因:事务的操作破坏了事务之间的隔离性。
并发控制的主要技术:
封锁,时间戳,乐观控制法等等
94.死锁的诊断和解除
死锁的诊断与解除
超时法:如果一个事务等待时间超过了规定的时限,就认为该事务发生了死锁。解除死锁的办法: 将其撤销
等待图法:用事务等待图动态反映所有事务的等待情况。 解除死锁:选择一个处理代价最小的事务,将其撤销,并释放该事务所持有的所有锁,使其它事务能继续运行下去
95.两段锁协议是:
两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁:
- 在对任何数据进行读、写操作之前,要申请并获得对该数据的封锁。
- 每个事务中,所有的封锁请求先于所有的解锁请求。
作用: 若并发执行的所有事务均遵循两段锁协议,则对这些事务的任何并发调度策略都是可串行化的。可串行化是事务正确调度的准则。
96.什么是可串行化?作用是啥?
多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行执行这些事务的结果相同,称这种调度策略为可串行化调度。可串行化是事务正确调度的准则。
97.三级封锁协议
简述三级封锁协议的内容以及不同级别的封锁协议能解决哪些数据不一致性问题
一级封锁协议是: 事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放/一级封锁协议能够解决“丢失修改”问题
二级封锁协议是:在一级封锁协议的基础上增加上事务T在读取数据R之前必须先对其加S锁,读完即可释放S锁。二级封锁协议不仅可以解决“丢失修改”问题,而且可以解决读“脏”数据问题
三级封锁协议是: 在一级封锁协议的基础上增加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。三级封锁协议不仅解决了“丢失修改”、读“脏”数据问题,而且进一步解决了“不可重复读”问题
98.什么是死锁?请给出预防死锁的若干方法
如果事务T1封锁了数据R1,事务T2封锁了数据R2。T1又申请封锁数据R2,因为数据R2已被事务T2封锁,所以事务T1需要等待。T2又申请封锁数据数据R1,因为数据R1已被数据T1封锁,所以事务T2需要等待。事务T1和T2相互等待而永不能结束,形成死锁
预防死锁发生通常可以有两种方法
一次封锁法:要求每个事务必须一次将所用到的所有数据全部加锁,否则就不能执行
顺序封锁法: 预先对数据对象规定一个封锁顺序,所有事务都按照这个顺序实行封锁
99.相关子查询
如果子查询的查询条件依赖于父查询,这类子查询称为相关子查询。
数据库系统概论可能是我大学学过的最难的一门课,建议大家去看大学生MOOC战德臣教授讲的数据库,通俗易懂非常有用!
同样数据库和思维导图一起食用口味更佳
整理不易拜托大家多点点关注和收藏吧谢谢啦!
思维导图链接在这
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/193171.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...