数据库概论

  • 一.绪论
    • 1.1 数据库系统概述
    • 1.2 数据模型
    • 1.3 数据库系统的结构
  • 二.关系数据库
    • 2.1 关系数据结构及形式化定义
    • 2.2 关系操作
    • 2.3 关系的完整性
    • 2.4 关系代数
  • 三.关系数据库标准语言SQL
    • 3.1 视图
    • 3.2 索引
  • 四.数据库安全性
  • 五.数据库完整性
    • 5.1 实体完整性
    • 5.2 参照完整性
    • 5.3 用户定义的完整性
  • 六.关系数据理论
  • 七.数据库设计
  • 八.数据库编程
  • 九.关系查询处理和查询优化
  • 十.数据恢复
    • 10.1 事务的基本概念
    • 10.3 故障的种类
    • 10.4 恢复的实现技术
  • 十一.并发控制
    • 11.1 并发控制概述
    • 11.2 封锁
    • 11.4 活锁和死锁
    • 11.5 并发调度的可串行行
    • 11.6 两段锁协议
    • 11.7 封锁的粒度

一.绪论

1.1 数据库系统概述

 数据是描述事物的符号记录,是数据库中存储的基本对象。数据的解释是指对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分割的。数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库具有永久存储,有组织和可共享三个基本特点。数据库管理系统:数据库管理系统是位于用户与操作系统之间的一层数据管理软件。DBMS主要功能:数据定义,数据组织、存储和管理,数据操纵。数据库系统DBS(Data Base System,简称DBS)通常由软件、数据库和数据管理员组成。其软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。数据库管理技术经历:人工管理,文件系统,数据库系统三个方面。数据库类型是根据( 数据模型 )划分的。数据库系统的特点:数据结构化,数据的共享性高、冗余度低易于扩充,数据独立性高,数据由数据库管理系统统一管理和控制。※数据库系统的核心是数据库管理系统,数据库系统的核心和基础才应该是数据模型。

1.2 数据模型

 数据模型是对现实世界数据特征的抽象,是数据库系统的核心与基础。分为两大类,属于不同层次,一类概念模型(信息模型),二类逻辑模型(有层次、网状等)和物理模型(数据最底层的抽象)。层次模型以树结构表示数据间的关系,网状模型以图结构来表示数据间的关系,它们都是通过指针链接实现的。现实世界→概念世界:DBA;概念世界→逻辑模型:DBA;逻辑世界→物理模型:DBMS;E-R图:方形(实体),菱形(关系)。数据模型由数据结构,数据操作,数据的完整性约束三个部分组成。

1.3 数据库系统的结构

 在数据模型中有型和值的概念,型是对某一类数据的结构和属性的说明,值是型的一个具体赋值。一个具体值也是一个实例。模式是相对稳定的,实例是相对变动的。三级模式:模式,内模式,外模式。模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据试图。外模式也称子模式,用户可以看到使用的局部数据的逻辑结和特征的描述,是数据库用户的数据视图。外模式是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式,且一个数据库只有一个内模式。数据的独立性是指逻辑独立性和物理独立性。外模式/模式映像提供了数据的逻辑独立性,数据的逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不变。模式/内模式影响提供了数据的物理独立性,数据的物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的,也就是说,数据在磁盘上的数据库中怎样存储是有DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。数据与程序之间的独立性使得数据的定义和描述可以从应用程序中分离出来。外模式、模式在逻辑设计阶段得到,内模式在物理设计阶段得到。

二.关系数据库

2.1 关系数据结构及形式化定义

 关系模型包括单一的数据结构——关系,逻辑结构是一张扁平的二维表。域是一组具有相同数据类型的集合。一个域允许的不同取值个数称为这个域的基数。若关系中的某一属性组的值能够唯一标识一个元组,而且子集不能,则称该属性组为候选码。关系可以有三种类型:基本关系,查询表,视图表。关系数据库中,关系模式是型,关系是值。关系模式是对关系模式的描述,关系是元组的集合。关系数据库的型称为关系关系数据库的模式,是对关系数据库的描述。关系数据库模式包括若干域的定义,以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。在关系模式R分解成数据库模式 ρ 时,谈论无损联接的先决条件是数据库模式ρ中的关系模式之间有公共属性,存在泛关系。

2.2 关系操作

 关系运算包括选择、投影、连接以及除法。 集合运算是二目运算,包括并、差、交、广义笛卡尔积四种运算。关系操作,操作的对象和结果都是集合。关系数据语言:关系代数语言,关系演算语言(元组关系演算语言,域关系演算语言),具有两者双重特点(SQL)。SQL语言是一种高度**非过程化**的语言。投影是选取相应列组成新元组,连接在多个关系的笛卡尔积中进行筛选出的新关系,交运算是多个关系之间交集所产生的新的关系。 从关系中挑选出指定的元组组成新关系的运算称为选取!

2.3 关系的完整性

 关系模型中有三类完整性约束:实体完整性,参照完整性,用户自定义完整性。其中前两者为关系的两个不可变形。空值是“不知道”,“不存在”,“无意义”的值。

2.4 关系代数

 自然连接是构成新关系的有效方法。一般情况下,当关系R和S进行连接操作的时候,要求R和S含有一个或多个共有的属性。而等值连接是从关系R和S的广义笛卡尔积中选取A和B“属性值”相等的元组,所以只要两个关系里面的有元祖属性值相等就可以进行。等值连接与自然连接的区别和联系:自然连接是除去重复属性的等值连接。自然连接一定是等值连接,反之不一定。等值连接要求相等的属性分量,但不一定是相同的属性,而自然连接必需是相同的属性。等值连接不把相同的属性去掉,而自然连接去掉。

三.关系数据库标准语言SQL

 sql特点:综合统一,高度非过程化(只需要提出“做什么”,不需要指明“怎么做”,因而无须了解存储路径。),面向集合的操作方式,以同一种语法结构提供多种使用方式,语言简洁易学易用。%代表任意长度,_代表任意的单个字符。当聚集函数遇到空值时候,除count外其他的都要跳过控制。※在 SELECT 语句中使用 MAX(列名)时,列名应该不限制数据类型。聚集函数只能用于select子句和group by中的having子句。子查询的查询条件不依赖父查询,称为不相关查询(由内向外执行)。如果子查询的查询条件依赖于父查询,这类子查询称为 相关子查询。sql中没有全称量词,但是可以把带有全称量词的谓词转换为等价的带有存在量词的谓词。参加集合操作的各查询结果的列数必须相同,对应项的数据类型也必须相同(UNION自动去掉重复组)。

DQL(Data Query Language):数据查询语言
关键字:select
查询数据
DML(Data Manipulation Language):数据操作语言
关键字:insert、delete、update
插入、删除、更改数据
DDL(Data Denifition Language):数据定义语言
关键字:create、drop、alter
创建、删除、更改表结构
TCL(Trasactional Conrtol Language):事务控制语言
关键字:commit、rollback
用来提交和回滚事务
DCL(Data Conrtol Language):数据控制语言
关键字:grant、revoke
用来设置或更改数据库用户或角色权限

3.1 视图

 1.视图是从一个或者几个基本表(**或视图**)导出的表。是一个虚表,数据库中只存放视图的定义,而不存放视图对应的数据。一旦基本表中的数据发生变化,从视图中查询出的数据也随之改变。2.视图的作用:简化用户的操作,以多种角度看待同一数据,提供了一定的逻辑独立性,提供安全保护,可以更清晰的表达查询。3.视图包含下列结构是不可以更新的1:集合运算符 union,union all, intersect,minus2:distinct关键字3:group by,order by,connect by,或者start with4:子查询5:分组函数6:需要更新的列不是视图定义的7:具有连接查询(可以更新键值保存表的数据)8:违反基表的约束条件;连接视图是指基于多表连接查询创建的视图(一般不容易修改,但通用instead of触发器可以实现修改的功能) 4.视图和基本表对比:定义能力强于表,因为可以在多张表上定义视图,操作能力弱于表,控制能力相当 。5.视图具有一组命名的属性和相应的属性值,除非是索引视图,否则视图不占用任何物理存储空间。

3.2 索引

 建立索引的目的是加快查询速度的有效手段。索引是为了提高查询效率的,通过建立索引查询效率会得到提高(X)合适的索引才可以,并不是所有的索引都行。索引对数据插入的效率有一定的影响。对于数据重复度高,值范围有限的列如果建索引建议使用位图索引。可以在多个列上建立联合索引。索引是一个指向表中数据的指针,索引是在列上建立的一种数据库对象,表被撤消时将同时撤消在其上建立的索引。※索引是表中数据在内存中的指针,如果指针被撤销,表中的数据无法存储即不存在。主索引是对每一个存储块都有一个索引项; 稠密索引是对于Table中的每一个记录,都有一个索引项;稀疏索引是对于Table中的部分记录有索引项,是对于Table中的索引字段的部分取值有索引项。复合索引可以只使用复合索引中的一部分,但必须是由最左部分开始,且可以存在常量。为了提高数据的查询效率,需要在数据库中建立索引,在频繁进行排序或分组(即进行group by 或order by操作)的列上建立索引;考虑列中值的分布,列的基数越大,索引的效果越好;在select关键字后选择列表的列上,建立索引。

索引类型分类:
①主索引:主索引是一种只能在数据库表中建立不能在自由表中建立的索引。在指定的字段或表达式中,主索引的关键字绝对不允许有重复值。
②候选索引:和主索引类似,它的值也不允许在指定的字段或表达式中重复。一个表中可以有多个候选索引。
③唯一索引:唯一索引允许关键字取重复的值。当有重复值出现时,索引文件只保存重复值的第1次出现。提供唯一索引主要是为了兼容早期的版本。
④普通索引:普通索引允许关键字段有相同值。在一对多关系的多方,可以使用普通索引。

索引的特点:
创建索引的好处
(1)通过创建索引,可以在查询的过程中,提高系统的性能
(2)通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性
(3)在使用分组和排序子句进行数据检索时,可以减少查询中分组和排序的时间
创建索引的坏处
(1)创建索引和维护索引要耗费时间,而且时间随着数据量的增加而增大
(2)索引需要占用物理空间,如果要建立聚簇索引,所需要的空间会更大
(3)在对表中的数据进行增加删除和修改时需要耗费较多的时间,因为索引也要动态地维护

四.数据库安全性

 数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露。非法使用数据库:编写合法程序绕过DBMS,编写应用程序执行非授权,通过合法查询推导。用户身份鉴别是数据库管理系统提供的最外层安全保护措施。常用存取控制方法有自主存取控制(灵活)和强制存取控制(严格)。用户权限是由两个要素组成的。定义存取权限称为授权。GRANT .....**TO** ....,REVOKE.....**FROM**...;在数据库的安全性控制中,为了保护用户只能存取他有权存取的数据。在授权的定义中,数据对象的(范围越小 ),授权子系统就越灵活。 数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。视图机制间接地实现支持存取谓词的用户权限定义。审计功能把用户对数据库的所有操作自动记录下来放入审计日志。审计员可以利用审计日志监控数据库的各种行为,重现导致数据库现有状况的一系列事件,找出非法存取数据的人,时间和时间。审计设置以及审计日志一般都存储再数据字典中。数据库安全审计系统提供了一种事后检检查的安全机制。数据加密是防止数据库数据在存储和传输中失密的有效手段。数据加密的基本思想是根据一定的算法将原始数据——铭文变换为不可直接识别的格式——密文,从而使得不知道解密算法的人无法获知数据的内容。数据加密主要包括存储加密和传输加密。

五.数据库完整性

 数据库的完整性是指数据的正确性和相容性(一致性 )。数据的完整性事为了防止数据库存在不符合语义的数据 ,也就是防止数据库中存在不正确的数据。而安全性事保护数据库防止恶意破坏和非法存取。维护数据库完整性,DBMS必须实现:提供定义完整性约束条件的机制,提供完整性检查的方法,进行违约处理。

5.1 实体完整性

 两种说明:列级约束条件,标记约束条件。实体完整性自动检测:检查主码值是否唯一,检查主码的各个值是否为空。

5.2 参照完整性

 参照完整性将两个表中的相应元组联系起来。一个联系转化为一个关系模式,与该联系相连的各实体的码以及联系的属性转化为关系的属性,该关系的码则有三种情况:若联系为1:1,则每个实体的码均是该关系的后选码;若联系为1:n,则关系的码为n端实体的码;若联系为m:n,则关系的码为诸实体码的组合。

5.3 用户定义的完整性

 是针对某一具体应哟ing的数据必须满足的语义要求。属性值限制包括:列值非空,列值唯一,检查列值是否满足一个条件表达式(CHECK语句)。通过对完整性约束条件命名,可以更灵活的增加和删除一个完整性约束性条件。通过生命断言来指定更具一般性的约束,可以定义设计多个表或者聚集操作的比较复杂的完整性约束。触发器是用户定义在关系表上的一类由事件驱动(某一事件符合时才会执行)的特殊过程。由服务起自动激活,触发器类似于约束,但比约束更灵活,可以实现更加复杂的操作。MySQL的触发器只支持行级出发,不支持语句级触发。

六.关系数据理论

 作为一个二维表,关系要符合一个最基本的条件:每一个分量必须是不可分的数据项,满足了这个条件的关系模式就属于第一范式。数据依赖是一个关系内部属性与属性之间的一种约束关系。这种约束关系是通过属性间的相等与否体现出来的数据间相关联系。是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。若对于**R(U)的任意一个可能关系r**,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不相等,则称X函数确定Y,或者Y函数依赖于X,记作X→Y。X→Y,Y不是X的子集,则称X→Y是非平凡的函数依赖。相反如果Y是X的子集,则X→Y是平凡的函数依赖。若X→Y,Y→X,则X⬅→Y。在R(U)中,如果X→Y,并且对于X的任何一个真子集X1,都有X1→Y,则Y对X完全函数依赖。否则,Y对X部分函数依赖。在R(U)中,如果X→Y(Y不是X的真子集),Y决定不了X,Y→Z(Z是Y的真子集),则称Z对X传递函数依赖。主码和外码提供了一个表示关系间联系的手段。一个低一级范式的关系模式通过分模式分解可以转换为若干个高一级范式的关系模式的集合,这个过程叫规范化。各种范式之间的关系:范式判断:第一范式→如果每一个非主属性完全函数依赖于任何一个候选码→第二范式→消除非主属性传递依赖于候选码→第三范式→存在函数依赖项的左边都为候选码→BCNF范式。在关系模式DB中,任何二元关系模式的最高范式必定是BCNF。对于各种范式之间的关系如下: 5NF⊂ 4NF⊂ BCNF ⊂3NF ⊂ 2NF⊂ 1NF 。设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,并且仅当对R(U)的任一关系r,给定的一个(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。若X→→Y,而Z是空集,则称X→→Y为平凡的多值依赖。4NF就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。规范化的基本思想是逐步消除数据依赖中不合适的部分,采用“一事一地”的模式设计原则,实质上是概念的单一化。关系规范化中的 删除 异常是指不该删除的数据被删除。[最小函数依赖集](https://blog.csdn.net/prdslf001001/article/details/80336835)来自大佬!膜拜!

七.数据库设计

 数据库设计6个阶段:需求分析,概念结构设计,逻辑结构设计,物理结构设计,物理结构设计,数据库实施,数据库运行和维护。需求分析阶段:是整个设计过程的**基础**,分析用户的需求,包括数据、功能和性能需求,完成数据字典设计。概念结构设计:是整个数据库设计的**关键**,形成一个独立于具体数据库管理系统的概念模式,主要采用E-R模型进行设计,包括画E-R图。逻辑结构设计:将概念结构转换为某个数据库管理系统所支持的数据模型,通过将E-R图转换成表,实现从E-R模型到关系模型的转换。物理结构设计:为逻辑数据模型选取一个最适合应用环境的物理结构,主要是为所设计的数据库选择合适的存储结构和存取路径。数据库实施:根据逻辑结构和物理结构的结果建立数据库,编写与调试应用程序,组织数据入库,并进行调试。数据库运行和维护:不断的进行维护,调整和修改。数据字典是进行详细的数据收集和数据分析所获得的主要成果,是关于数据库中数据的描述,既元数据,而不是数据本身。数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善。数据项是数据的最小组成单位,若干数据项可以组成一个数据结构,不可再分的数据单位。数据结构反应了数据之间的组合关系。E-R图是用来描述现实世界的概念模型。设计方法有:自顶向下,自底向上,逐步扩张,混合策略。包括实体(方形),属性(椭圆),实体之间的联系(菱形)。概念数据模型是现实世界到信息世界的第一层抽象,数据结构模型是对现实世界进行的第二层抽象。设计数据库概念结构时,常用的数据抽象方法是概括和分类,聚集。存储过程是存储在数据库中的代码,具有很多优点。可通过预编译机制提高数据操作的性能,可减少客户端和服务器端的网络流量,可实现一定的安全控制。

E-R图向关系模型的转换一般遵循如下原则:
一个实体型转换为一个关系模式;
一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并;
一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并;
一个m:n联系转换为一个关系模式。

八.数据库编程

 SQL的特点之一就是交互式和嵌入式两种不同的使用方式下SQL语法基本上是一致的。嵌入式SQL是将SQL语句嵌入到程序设计语言中,被嵌入的程序设计语言简称宿主语言,简称主语言。当将 SQL 语句嵌入到主语言程序时,为协调两者而引入游标。 通过游标通信,一条SQL语句原则上可以产生或处理多条记录,而一组主变量一次只能存放一条记录。因此,仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要 求。为了解决这个问题,嵌入式SQL引入了游标的概念来协调这两种不同的处理方式。游标是系统开设的一个数据缓冲区,存放SQL语句的执行结果集。每个游 标区都有一个名字,用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。

九.关系查询处理和查询优化

 关系数据库关系系统查询处理可以分为:查询分析,查询检查,查询优化,查询执行。关系数据库管理系统一般都用查询树,也称为语法分析树来表示扩展的关系代数表达式。查询优化就是选择一个搞笑执行的查询处理策略,按照优化层次分为代数优化和物理优化。选择操作只涉及一个关系,一般采用全表扫描或者基于索引扫描。索引扫描,如果选择条件中的属性有索引,则先通过索引找出满足条件的元组指针 ,然后通过元组指针在查询的基本表中找到元组。连接操作时查询处理中**最常用**也是最耗时的操作之一。因为是广义笛卡儿积。查询树的启发式优化:选择运算应尽早的完成,把投影运算和选择运算同时进行,把头应同其前或者后的双目运算结合起来,把某些选择同在它之前要执行的笛卡儿积结合起来称为一个连接运算,找出公共子表达式。其中最常见优化为第一和第二条!

十.数据恢复

10.1 事务的基本概念

 所谓失误是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。是恢复和并发控制的基本单位。一个程序包含多个事物。提交:执行完SQL,数据库在一个最近状态。回滚:回滚到某一个正常的状态。事物的4个特性:A(原子性)C(一致性)I(隔离性)D(持续性)。原子性:事物是数据库的逻辑工作单位,事物中包括的诸操作要么都做,要么都不做。一致性:事物的执行结果必须是数据库从一个一致性状态变到另一个一致性状态。隔离性:一个事物的执行不能被其他事物干扰。持续性:指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。保证事物ACID特性是事物管理的重要任务。事物ACID特性可能遭到破坏,其原因有:多个事物并行运行,不同事物的操作交叉执行。其次是事务在运行过程中被强行停止。

10.3 故障的种类

 1.事务内部的故障:事务内部故障有的是可以通过事务程序本身发现的,非预期,不能由事务程序处理。(事务内部故障大部分为非预期),因为事务故障不能达到预期的终点,所以数据库可能处于不正确状态,需要进行事务取消。2.系统故障:是指造成系统停止运转的任何事物,使得系统要重新启动。3.系统故障称为硬故障,介质故障称为硬故障。4.计算机病毒:是一种认为的故障或破坏,是一些恶作剧者研发的一种计算机程序。各类故障对数据库的影响有两种可能性:数据库本身被破坏,数据可能不正确。恢复的基本原理十分简单,就是冗余:数据库中任何一部分被破坏或者不正确的数据可以根据存储在系统别处的冗余数据来重建。

10.4 恢复的实现技术

 建立冗余数据最常用的技术是数据转储和登记日志文件。恢复的基本原理就是利用存储在后备副本、日志文件和数组库镜像中的冗余数据来重建数据库。日志文件是用于记录对数据的所有更新操作。

十一.并发控制

 允许多个用户同时使用同一数据库的数据库系统称为多用户数据库。事务可以一个一个串行执行,既每个时刻只有一个事务执行!在单处理机系统中,事务的并行执行实际上是这些并行事务的并行操作轮流交叉运行。并发控制机制是衡量一个数据库管理系统性能的重要标志之一。※并发不加以控制会带来数据的不一致性问题,而对并发加以控制了,也就是加锁了,但是锁的控制没有弄好,才会带来死锁问题

11.1 并发控制概述

 事务时并发的基本单位。为了保证事务的隔离性和一致性,数据库管理系统需要对并发操作系统进行正确调度。并发操作带来的数据不一致包括丢失修改、不可重复读、读“脏”数据。当数据数目增多或者减少的不可重复读称为幻影现象。幻影的两种情况:事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中部分记录,当T1再次按照相同条件读取数据时,发现某些记录神秘的消失了.;事务T1按一定条件从数据库中读取了某些数据记录后,事务T2插入了一些记录,当T1再次按照相同条件读取数据时,发现多了一些记录.并发控制机制就是要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性。并发控制的主要技术有封锁,时间戳,乐观控制法和多版本并发控制。在DB技术,未提交的随后被撤消了的数据,称为脏数据。

11.2 封锁

 封锁使实现并发控制的一个非常重要技术。排他锁:也称写锁,允许读和写,其他事务不能再对其加任何的锁。共享锁:也称读锁,允许读,其他事务可以对其进行加共享锁。

11.4 活锁和死锁

 活锁:某一个事务永远处于等待状态。可以采用先来先服务的策略。死锁:当T1在等待T2,而T2又在等待T1的局面,T1和T2两个事务永远不能结束,形成死锁。产生原因:两个或多个事务都封锁了一个数据对象,然后请求对已被其他事务封锁的数据对象加锁,从而出现死锁。可以采取一次封锁法和顺序封锁法来预防。诊断死锁的方法和操作系统类似:一般使用超时法和事务等待法。解除死锁的通用方法是选择一个处理死锁代价最小的事务,将其撤销,释放此事务持有的所有锁,使其他事务得以继续运行下去。

11.5 并发调度的可串行行

 多个事务的并发执行是正确,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同,称这种调度策略为可串行化调度。可串行化是并发事务正确调度的准则。冲突操作是指不同的事物对同一数据的读写操作和写写操作。若一个调度是冲突可串行化,则一定是可串行化的调度。冲突可串行化调度是可串行化调度的充分条件,不是必要条件。

11.6 两段锁协议

 目前数据库管理系统普遍采用两段锁的方法实现并发调度的可串行化,从而保证调度的正确性。所谓“两段”锁的含义是:事务分为两个阶段,第一阶段是获得封锁,称为扩展阶段。第二阶段是释放封锁,称为收缩阶段。事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件。

11.7 封锁的粒度

 封锁对象的大小称为封锁粒度。封锁对象可以是逻辑单元(属性值,属性值的集合等),也可以是物理单元(页,物理记录)。封锁粒度与系统的并发度和并发控制的开销密切相关。多粒度封锁协议允许多粒度树中的每个结点被独立地加锁。对一个结点加锁意味着这个结点的所有后裔结点也被加以同样类型的锁。显式封锁是应事务的要求直接加到数据对象上的锁;隐式封锁式该数据对象没有被独立加锁,是由于其上级结点加锁而使该数据对象加上锁。意向锁的含义是如果对一个结点加意向锁,则说明该结点的下层结点正在被加锁,对任一结点加锁时,必须对它的上层结点加意向锁。在具有意向锁的多粒度封锁方法中,任意事务T要对一个数据对象加锁,必须先对它的上层结点加意向锁。申请封锁时应该按自上而下的次序进行,释放封锁时则应该按自下而上的次序进行。

数据库原理概论理论知识点总结相关推荐

  1. 数据库原理概论第一章思维导图

    这里是小编自己第二次学习数据库原理概论的时候简单的做一下思维导图,希望可以帮助到你

  2. 数据库原理概论Ⅱ-SQL

    数据库原理概论Ⅱ-SQL 结构化查询语言(Structured Query Language)是关系数据库的一种通用语言. SQL是在关系代数更高级的抽象,可以用比较类似英文的语法实现我们要查询的数据 ...

  3. 二、数据库原理-设计理论

    第一章 关系数据库设计理论   第一节  完整性 关系完整性是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则.完整性通常包括实体完整性,参照完整性和用户定义完整性. 一.实体完 ...

  4. 数据库原理复习与知识点总结

    2022.5.29 更新:大学最后一门考试考完啦,开始下一阶段的学习 2022.5.26 更新:成功更完,开始刷题! 2022.5.25 更新:争取明天更完 以下为原内容 第一章 绪论 1.1 数据库 ...

  5. 数据库原理-关系数据库理论(数据依赖)

    关系数据库逻辑设计 针对一个具体问题,应如何构造一个适合于它的数据模式,即应该构造几个关系,每个关系由哪些属性组成等 数据库逻辑设计的工具--关系数据库的规范化理论 关系数据库设计理论 -数据依赖 - ...

  6. 南京工程学院 数据库复习(数据库系统概论复习 及 数据库原理与应用样题)

    一.数据库系统概论 1.1 百度文库 复习文档(需下载券) <数据库系统概论>(王珊.第五版) ★第一章   绪论 v 本章内容:数据库系统概述.数据模型.数据库系统结构 v 本章主要考点 ...

  7. 数据库原理与应用课程知识点

    数据库原理与应用课程知识点 文章目录 数据库原理与应用课程知识点 **第一章 绪论** 数据.数据库.数据库管理系统.数据库系统的概念 数据管理技术发展的三个阶段及各阶段的优缺点 概念模型中的基本术语 ...

  8. 【数据库原理及应用】经典题库附答案(14章全)——第五章:关系数据理论

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

  9. 考研复试数据库原理面试题(四)—关系数据库设计与设计理论

    写作目的:为了应对考研复试中的面试,我整理了导师可能提问的地方,力求用口语化的语言描述出来. 这只是一部分,陆续还有数据库原理的其它章节,还会推出数据结构.计算机网络复试题整理. 数据库原理我的参考书 ...

最新文章

  1. 孙正义看科技未来:今后30年要把钱和精力投向哪里
  2. Alphabet股价周五跌5.32%:三年最大单日跌幅
  3. Redis 分布式缓存 Java 框架
  4. oracle usenl,深入理解Oracle表(1):ORDERED和USE_NL | 学步园
  5. 通信 / HTTP 详解
  6. Linux——查看硬件配置命令
  7. hog与fhog(转载)
  8. 剑指offer之字符流中第一个不重复的字符
  9. 如何用简单易懂的例子解释隐马尔可夫模型?(进阶篇)
  10. 跟我一起学Vim补全神级插件--YouCompleteMe
  11. 计算机组装与维护要点,《计算机组装与维护》要点.ppt
  12. 力扣5.8每日一题——状压dp
  13. 苹果的airplayer推荐
  14. java面试题——项目常见面试题(单点登录、购物车)
  15. Win8 无法连接打网络打印机(HP LaserJ1010)
  16. simulink——产生阶梯波
  17. 怎么把两个PDF合并成一个?建议收藏这些合并的方法
  18. 捣鼓nsq - 安装和运行
  19. Android 触摸OnTouchListener没有响应问题解决
  20. Tobii pro lab学习笔记3_Metrics统计指标

热门文章

  1. 分享一个简单、便宜配置https安全证书的方法(10元/年)
  2. 通过JAVA代码,将文字生成图片
  3. qlv是什么格式?要怎么把qlv格式转换成mp4视频
  4. 读吴军老师的《浪潮之巅》总结
  5. 共模电感的原理以及使用情况
  6. Web前端开发:HTML、CSS
  7. 一级计算机快捷键大全,计算机快捷键大全(最全篇)
  8. hexo+yilia添加隐藏左边栏目按钮
  9. Android上隐藏应用程序浅析
  10. ZYNQ产品生产拷机问题思考