数据库原理吉林大学随笔第16-26课时

------------恢复内容开始------------

嵌入式SQL的实现。
一般的高级语言对SQL的语句进行预处理。

第四章 数据库管理系统引论

1.数据库管理系统结构。

2.事务
定义:是由有限的数据库操作系列组成。这些操作要么都做,要么都不做。是一个不可分割的工作单位
目的:因为并不是每一个对数据库的完整操作都可以用一条命令完成,往往是一组命令。如果出现意外就会会出现未知数据,这些未知数据是不可用,事务就是为了解决这类问题而引入的。
性质:1.原子性。2.功能上保持一致。3.彼此的隔离性。4.作用的持久性。
3.DBMS的进程结构。了解线程。

4.DBMS的系统结构:4种及其特点
5.数据目录
特点:数据目录是一组关于数据的数据,也称之为元数据。
区别:形式上是表,可用SQL查询;数据目录主要为DBMS服务;由系统定义的,初始化的时候系统自动生成的。不能进行更新操作,只允许对它进行有控制的查询

第五章 数据库的存储结构

1.数据库存储介质的特点
2.记录的存储结构
3.文件的结构和存储结构。

第六章查询处理和优化

  • 了解基本概念
  • 了解查询处理优化的意义
    一元操作都会让关系变小,连接操作是并操作,总是会让关系变大。

第七章 事务管理

1.掌握基本概念
2.掌握系统故障的恢复方法
事务正确执行的基本措施是:恢复和并发控制。恢复分为3类;1,后备复本
3.掌握并发控制的概念和加锁协议
4.掌握死锁的检测,处理和防止方法。
如果一个事务完全结束以后,另一个事务菜开始,则这种执行方式为:串行访问。
如果DBMS可以同时接纳多个事务,事务可在时间上重叠执行,则称这种方式为:并发访问。
从并发访问的问题上看,主要是由于写数据引起的冲突,所以引入了一个概念 “加锁”!
锁分为:S锁(读访问锁)、X锁(写访问锁) S锁一直占用的话,X锁迟迟不能获准,这个现象称之为活锁。对系统产生不良影响。加锁服务原则是:先申请先服务的原则。
还有一种锁叫:U锁,除了最后阶段写入外,被更新的对象仍然可以被访问。
死锁的检测及处理和防止。
死锁:一个事务如果申请锁而未被批准,则必须等待其他事务来释放锁,一直等待的现象叫死锁。
对付死锁有两个办法:检测死锁,发现死锁后处理死锁-----1,超时法。2、等待图法、防止死锁。对死锁如何处理掉呢?DBMS对死锁处理是对循环等待的事务中,取一个事务作为牺牲者,让他给其他的事务进行让路,让牺牲的事务进行卷回。
选取事务牺牲的原则是:

  • 选择最迟交付事务作为牺牲者
  • 选择获得锁最少的事务作为牺牲者
  • 选择卷回代价最小的事务作为牺牲者。
    如何防止死锁呢?
    当事务申请锁而未获批准时,不是一律等待,而让一些事务卷回执行(retry),以避免循环等待。等待的策略是1.等待死亡策略总是年老的事务在等待年轻的事务。2.击伤等待(总是年轻的事务等待年老的事务)

7.10 多粒度封锁

封锁可以粗到整个数据库,也可以细到一个数据对象。封锁粒度越粗,方法简单但是为将降低并发度。太细的话,就会锁太多,锁起来很麻烦。比较合理的办法是:提供多级封锁单位——多粒度封锁。
关系为封锁单位是——单力度封锁。
显式加锁:直接对其加锁。
隐式加锁:对其上级进行加锁。
意向锁:

第八章 数据库的安全和完整性约束

数据库的破坏
数据库是建立在OS的基础上的,OS应该保证数据库中的数据必须由DBMS访问,不允许越过DBMS,直接通过OS去访问。DBMS的安全手段有:

  • 8.1.1 视图定义和查询修改。
  • 访问控制
  • 数据加密-----替换法,置换方法
  • 跟踪审查
    完整性约束是指数据库中的数据始终保持正确的状态,防止不符合语义的错误数据的输入和输出。按类型可以分为1、静态约束---固有约束,隐含约束,显示约束。2、动态约束--数据库从一种状态到另一种状态的约束。
posted @ 2020-06-08 10:52  沂水蓝海  阅读(237)  评论(0)    收藏  举报