数据库期末复习(含思维导图)

0 考试要求

1绪论,所有,基本概念,选择题,数据库管理系统的区别,三级两级,数据库组成
2关系数据库,不考*
3关系数据库标准语言,重点,大题,30分,建表索引示图,嵌套查询,分组,聚集
4.强制存取控制方法4.2.6 4.2.5 4.6不用考
5.数据库完整性 5.1 5.2 5.3 5.4要考。触发器老师讲的是sql server。
6.考到bc范式,在函数依赖范围之内6.2.6及其之前要考
7.*不考。20分er图,转换成关系图,分析满足什么范式
8.*⃣️不考
第三章 系统篇*⃣️不考
10.恢复技术 全考,特性,可串行化,不冲突

考试题型
1. 选择题35题目,50分,20题✖️1`+ 15题✖️2`
2. sqkl语句6题×5`
3. 描述场景20`

1)画er图(多对多的联系(多对多等类型)、属性、实图标识符(画横杠))
2)er图转换成关系模式,主键 外键〰️表示出来,每个实体是一张表 + m:n联系
3)规范化(是不是第三范式、为什么?第三范式的定义等,不是的话转换成3NF)

01 数据库系统概述

一、重要概念

DB:数据库(Database),DB是统⼀管理的相数据的集合DB能为各种⽤户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。

DBMS:数据库管理系统(Database Management System)DBMS是位于⽤户与操作系统之间的⼀层数据管理软件,为⽤户或应⽤程序提供访问DB的⽅法,包括DB的建⽴、查询、 更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次型、⽹状型、关系型、⾯向对象型DBMS。

DBS数据库系统(Database System),DBS是实现有组织地、动态地存储⼤ 量关联数据,⽅便多⽤户访问的计算机软件、 硬件和数据资源组成的系统,即采用了数据库技术的计算机系统

1:1联系:如果实体集E1中的每个实体最多只能和实体集E2中的⼀个实体有联系,反之亦然,那么实体集E1E2的联系称为⼀对⼀联系,记为“1:1” 。

1:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,⽽E2中每个实体⾄多和E1中的⼀个实体有联系,那么E1E2的联系是对多联系,记为“1:N” 。

M:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么E1E2的联系是多对多联系,记为“M:N” 。

数据模型:表示实体类型及实体类型间联系的模型称为数据模型。它可分为两种类型:概念数据模型和结构数据模型。

概念数据模型:(ER图)它是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是⽤来描述某个特定组织所关⼼的信息结构。

结构数据模型:它是直接⾯向数据库的逻辑结构,是现实世界的第⼆层抽象。这类模型涉及到计算机系统和数据库管理系统,所以称为“结构数据模型。结构数据模型应包含:数据结构、数据操作、数据完整性约束三部分。它主要有:层次、⽹状、关系、⾯向对象四种模型。

层次模型:⽤树型结构表示实体间联系的数据模型

⽹状模型:⽤有向图结构表示实体类型及实体间联系的数据模型。

关系模型:是由若⼲个关系模式组成的集合,其主要特征是⽤⼆维表格结构表达实体集,⽤表示实体间联系。

模式:是数据库中全部数据的整体逻辑结构的描述。它由若⼲个概念记录类型组成。模式不仅要描述概念记录类型,还要描述录间的联系操作、数据的完整性安全性等要求。

外模式:是⽤户与数据库系统的接⼝,是⽤户⽤到的那部分数据描述

内模式:是数据库在物理存储⽅⾯的描述,定义所有的内部记录类型、索引和⽂件的组成⽅式,以及数据控制⽅⾯的细节。

模式/内模式映象:这个映象存在于概念级和内部级之间,⽤于定义模式和内模式间的对应性,即概念记录内部记录间的对应。此映象⼀般在模式中描述。 ⼀个数据库只有⼀个模式/内模式映象。

外模式/模式映象:这个映象存在于外部级和概念级之间,⽤于定义外模式和模式间的对应性,即外部记录概念记录间的对应。此映象都是在外模式中描述。每⼀个外模式有⼀个外模式/模式映象。

数据独立性:在数据库技术中,数据独立性是指应⽤程序和数据之间相互独立,不受影响。数据独立分成物理数据独立性和逻辑数据独立性两级

物理数据独立性:如果数据库的内模式要进⾏修改,即数据库的存储设备和存储⽅法有所变化,那么模式/内模式映象也要进⾏相应的修改,使概念模式尽可能保持不变。也就是对内模式的修改尽量不影响模式。

逻辑数据独立性:如果数据库的模式要进⾏修改 (如增加记录类型或增加数据项),那么外模式/式映象也要进⾏相应的修改,使外模式尽可能保持不变。也就是对模式的修改尽量不影响外模式和应⽤程序。

宿主语⾔:编写应⽤程序的语⾔(即⾼级程序设计语⾔)在数据库技术中称为宿主语⾔(host language), 简称主语⾔。

DDL:数据定义语⾔(Data Definition Language), ⽤于定义数据库的三级结构,包括外模式、模式、内模 式及其相互之间的映象,定义数据的完整性约束等。

DML:数据操纵语⾔(Data Manipulation Language),⽤于让⽤户或程序员使⽤,实现对数据库中 数据的操作。基本的数据操作分成两类四种:检索(查 询)和更新(插⼊、删除、修改)。DML分成交互型 DML和嵌⼊型DML两类。依据语⾔的级别,DML⼜可分成过程性DML和⾮过程性DML两种。

交互型DML这类DML⾃成系统,可在终端上直接对数据库进⾏操作。

嵌⼊型DML这类DML是嵌⼊在主语⾔中使⽤。此时主语⾔是经过扩充能处理DML 语句的语⾔。

过程性DML⽤户编程时,不仅需要指出做什么”(需要什么样的数据),还需要指出 “怎么做(怎么获得数据)。层状、⽹状的DML属于过程性语⾔。

⾮过程性DML⽤户编程时,只需要指出做什么,不需要指出怎么做。关系型 DML属于⾮过程性语⾔。

DD:数据字典(Data Dictionary),数据库系统中存放三级结构定义的数据库称为数据字典。(通常DD还存放数据库运⾏时的统计信息)

DD系统:管理DD的实⽤程序称为“DD系统” 。

二、思维导图

1. 数据库系统概述

02 关系数据库

一、关系模型的基本概念

1. 键(码):

  1. 候选键(码):若关系中的某一属性组的值能够唯一的标识一个元组,而其子集不能,则称该属性组为候选键(码)
  2. 主键(码):多个候选键中的一个
  3. 外键(码):如果一个关系R的某一个或一组属性不是本身的码,而是另一关系S的主码,则称该属性或属性组是R的外码(键)

2.关系模式的三类完整性规则

关系的完整性规则是对数据的约束。

实体完整性/参照完整性:是关系模型必须满足的完整性约束条件,由关系系统自动支持

用户定义的完整性:是应用领域需要遵循的约束条件

  1. 实体完整性:基本关系R的主属性不能为空值
  2. 参照完整性:定义主码-外码之间的引用规则。不引用不存在的实体。若属性集K是关系模式R1的主键,K也是关系模式R2的外键,K的取值或为空,或等于R1关系中的某个主键值。R1为被参照关系(目标关系),R2为参照关系。

二、关系代数

练习题:02关系数据库PPT-P94

1.传统的集合运算:    合并∪ 、相交∩ 、求差-(相减)、笛卡尔积×  

2.扩充的关系运算:    选择σ 、投影π 、联接    、求商÷

五个基本操作: ∪ - × σ π  

3.关系代数表达式

关系代数运算经有限次复合后形成的式子

写关系代数表达式的步骤和注意事项

(1)首先分析查询涉及几张表;

(2)找出查询条件;

(3)确定感兴趣的数据项;

(4)如果涉及“全部”查询要用除法运算,如果涉及“否定”查询要用减法运算;

(5)最后将上述全部信息组合成代数表达式;

(6)注意正确的关系运算顺序;

(7)同一查询可用不同表达式实现,应尽量采用简单和效率高的写法。

三、思维导图

03 关系数据库标准语言SQL

04数据库的安全性

1. 实现数据库系统安全性的技术和方法

  • 存取控制技术
  • 视图技术
  • 审计技术

2. 自主存取控制功能

  • 通过SQL 的GRANT语句和REVOKE语句实现

3. 角色

  • 使用角色来管理数据库权限可以简化授权过程
  • CREATE  ROLE语句创建角色
  • GRANT 语句给角色授权

05数据库完整性

06关系的规范化

  1. 第一范式(1NF):关系模式的所有域为简单域,其元素不可再分,即属性不能再分。
  2. 第二范式(2NF):给定关系模式R及其上的函数依赖集F,如果R的任何一个非主属性都完全函数依赖于候选键,则称R满足第二范式,简记为R∈2NF。
  3. 第三范式(3NF):给定关系模式R及其上的函数依赖集F,如果R的任何一个非主属性都不传递函数依赖于它的任何一个侯选码,则称R满足第三范式,简记为R∈ 3NF。
  4. BCNF(改进的3NF):给定关系模式R及其上的函数依赖集F,如果F中每个非平凡函数依赖X→Y的左部(决定因素)X中必含有侯选键(码),则称R满足Boyce/Codd 范式,简记为R∈ BCNF

07数据库设计

一、数据库系统生存期的七个阶段

(1)规划阶段:输出可行性分析报告

(2)需求分析阶段:输出数据流程图和数据字典

(3)概念设计阶段:输出ER图

(4)逻辑设计阶段:输出关系模式

(5)物理设计阶段:选取最适合应用环境的物理结构,输出物理设计说明书

(6)数据库实施阶段:建立数据库,编制与调试应用程序,组织数据入库,进行试运行。输出程序代码。

(7)运行维护阶段:输出维护报告。

二、参与设计的人员

(1)系统分析人员与数据库设计人员:是数据库的核心人员,自始至终参与数据库设计,他们的水平决定数据库质量

(2)用户和数据库管理员:主要参与需求分析和数据库运行维护

(3)程序员:参与系统实施,负责编制程序和准备硬件环境

三、数据字典

数据项、数据结构、数据流、数据存储、处理过程

在需求分析阶段建立

10数据库恢复技术

一、事务的性质

事务的ACID性质:

原子性——事务管理子系统

一致性——完整性子系统

隔离性——并发控制子系统

永久性和持续性——恢复管理子系统

二、故障的种类

(1)事务内部的故障:可以预期的故障、不可预期的故障——UNDO

  • 运算溢出
  • 并发事务发生死锁而被选中撤销该事务
  • 违反了某些完整性限制

(2)系统故障:称为软故障,是指造成系统停止运转的任何事件,使得系统要重新启动。整个系统的正常运行突然被破坏、所有正在运行的事务都非正常终止、不破坏数据库、内存中缓冲区的信息全部丢失——UNDO+REDO

  • 特定类型的硬件错误(CPU故障)
  • 操作系统故障
  • DBMS代码错误
  • 系统断点

(3)介质故障:称为硬故障,指外存故障——重新备份并恢复到一致性状态+REDO

  • 磁盘损坏
  • 磁头故障
  • 操作系统的某种潜在错误
  • 瞬时强磁场干扰

(4)计算机病毒

三、系统的恢复策略

rollback没有REDO的说法,只需要考虑需不需要UNDO

没有采用检查点的时候,故障前的rollback要undo;

对于检查点前的rollback ,不需要undo;在检查点之后的rollback需要undo


 

四、提高恢复效率的技术

检查点技术:提高系统故障的恢复效率,可以在一定程度上提高利用动态转储备份进行介质故障恢复的效率。

镜像技术:改善介质故障的恢复效率。

11并发控制

一、并发操作带来的数据不一致性

记号 R(x):读数据x、W(x):写数据x

(1)丢失修改(Lost Update)

(2)不可重复读(Non-repeatable Read)

  • 事务T1读取某一数据后,事务T2对其做了修改,当事务T1再次读该数据时,得到与前一次不同的值 

  • 事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中部分记录,当T1再次按相同条件读取数据时,发现某些记录消失了
  • 事务T1按一定条件从数据库中读取某些数据记录后,事务T2插入了一些记录,当T1再次按相同条件读取数据时,发现多了一些记录。

后两种不可重复读有时也称为幻影现象(Phantom Row)

(3)读“脏”数据(Dirty Read)

事务T1修改某一数据,并将其写回磁盘 事务T2读取同一数据后,T1由于某种原因被撤销。这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致 T2读到的数据就为“脏”数据,即不正确的数据。

二、三级封锁协议

(1)一级封锁协议

事务T在修改数据R之前必须对其加X锁,直到事务结束才释放

一级封锁协议中,如果仅仅读数据而不对其修改,是不需要加锁的。

一级封锁协议可防止丢失修改,但不能保证可重复读和不读“脏”数据。

(2)二级封锁协议

在一级封锁协议的基础上增加事务T在读取数据R之前必须先对其加S锁读完就可释放S锁

二级封锁协议除可防止丢失修改,还可以防止读“脏”数据。

二级封锁协议因为读完数据就释放S锁,不能保证可重复读。

(3)三级封锁协议

在一级封锁协议的基础上增加事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放

三级封锁协议除可防止丢失修改和读“脏”数据外,进一步防止了不可重复读。

三、四级隔离级别

(1)读未提交(read uncommitted)      

对应一级封锁协议,提供最大的事务并发度,仅能避免丢失修改。

(2)读已提交(read committed)      

对应二级封锁协议,事务并发度减弱,能避免丢失修改和脏读。

(3)可重复读(repeatable read)        

对应增强的二级封锁协议,事务并发度进一步减弱,能避免丢失修改、脏读和不可重复读

(4)可串行化(serializable)      

对应三级封锁协议,提供最小的事务并发度,能避免所有并发控制问题(包括幻读)

四、可串行化调度

(1)可串行化(Serializable)调度

多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同

(2)可串行性(Serializability)

是并发事务正确调度的准则 一个给定的并发调度,当且仅当它是可串行化的,才认为是正确调度

(3)冲突可串行化调度

  • 突可串行化调度是可串行化调度的充分条件(一个调度是冲突可串行化,一定是可串行化的调度)
  • 一个调度Sc在保证冲突操作的次序不变的情况下,通过交换两个事务不冲突操作的次序得到另一个调度Sc’ ,如果Sc’是串行的,称调度Sc为冲突可串行化的调度
  • 冲突操作是指不同的事务对同一个数据的读写操作和写写操作。不同事务的冲突操作和同一事务的两个操作不能交换(Swap)。

(4)两端锁协议

指所有事务必须分两个阶段对数据项加锁和解锁。在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁 ;在释放一个封锁之后,事务不再申请和获得任何其他封锁

事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件

(5)两段锁协议与防止死锁的一次封锁法

一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行,因此一次封锁法遵守两段锁协议

但是两段锁协议并不要求事务必须一次将所有要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值