数据库原理

本文整理自《数据库原理》和期末复习提纲


1. DBMS

数据库管理系统(Database Management System),简称DBMS,是位于用户与操作系统之间的一层数据管理软件。


DBMS.png

数据库系统的特点

  • 数据结构化
  • 数据的高共享性
  • 数据独立性
  • DBMS对数据统一管理和控制

2. 数据库管理技术的发展过程

人工管理阶段 —— 20 世纪 40 年代中期 - 20 世纪 50 年代中期
文件系统阶段 —— 20 世纪 50 年代末期 - 20 世纪 60 年代中期
数据库系统阶段 —— 20 世纪 60 年代后期以来


3. 数据模型

通俗地讲数据模型就是现实世界的模拟,在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。

数据模型分成两个不同的层次

概念模型(用户),也称信息模型,它是按用户的观点来对数据和信息建模。
数据模型(计算机),主要包括网状模型、层次模型、关系模型、面向对象模型等,它是按计算机系统的观点对数据建模。


4. 数据库系统的模式

模式.png

4.1 三级模式结构

(1) 外模式(又名子模式、用户模式),是数据库用户可见可用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示

(2) 模式(又名逻辑模式),是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图

(3) 内模式(又名存储模式),是数据物理结构和存储方式的描述,是数据在数据库内部的存储方式

(4) 一个数据库只有一个模式和一个内模式,但是可以有多个外模式。

(5) 模式与外模式的关系:一对多

  • 外模式通常是模式的子集
    • 一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求
      • 对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同

(6) 外模式与应用的关系:一对多

  • 同一外模式可以为某一用户的多个应用系统所使用
  • 一个应用程序只能使用一个外模式

4.2 二级映像模式

(1) 外模式 - 模式映象(逻辑独立性)

  • 定义外模式与模式之间的对应关系
  • 每一个外模式都对应一个外模式/模式映象
  • 外模式/模式映象的用途:保证数据的逻辑独立性
    • 当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变
    • 应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

(2) 模式 - 内模式映像(物理独立性)

  • 模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在内部是如何表示的
  • 数据库中模式/内模式映象是唯一的
  • 模式/内模式映象的用途:保证数据的物理独立性
    • 当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变
    • 应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。

5. 事务

(1) 事务是恢复和并发控制的基本单位

(2) 事务的特性(ACID)

  • 原子性(Atomicity)

    事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。

  • 一致性(Consistency)

    事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态

    一致性状态:数据库中只包含成功事务提交的结果
    不一致状态:数据库中包含失败事务的结果

  • 隔离性(Isolation)

    对并发执行而言

    • 一个事务的执行不能被其他事务干扰。
    • 一个事务内部的操作及使用的数据对其他并发事务是隔离的。
    • 并发执行的各个事务之间不能互相干扰
  • 持续性(Durability)

    持续性也称永久性(Permanence)

    • 一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
    • 接下来的其他操作或故障不应该对其执行结果有任何影响。
  • 破坏事务ACID特性的因素

    • 多个事务并行运行时,不同事务的操作交叉执行
    • 事务在运行过程中被强行停止

6. 故障的种类

6.1 事务故障

(1) 事务故障的恢复 (先UNDO再REDO)

  • 撤消事务(UNDO)
  • 强行回滚(ROLLBACK)该事务

清除该事务对数据库的所有修改,使得这个事务像根本没有启动过一样。

(2) 事务故障的常见原因
输入数据有误、运算溢出、违反了某些完整性限制、某些应用程序出错、并行事务发生死锁

6.2 系统故障

(1) 什么是系统故障

  • 整个系统的正常运行突然被破坏
  • 所有正在运行的事务都非正常终止
  • 内存中数据库缓冲区的信息全部丢失
  • 外部存储设备上的数据未受影响

(2) 系统故障的恢复 (先UNDO再REDO)

  • 正向扫描日志文件(即从头扫描日志文件)
  • 对Undo队列事务进行UNDO处理
  • 对Redo队列事务进行REDO处理

(3) 系统故障的常见原因
操作系统或DBMS代码错误、操作员操作失误、特定类型的硬件错误(如CPU故障)、突然停电

6.3 介质故障

(1) 什么是介质故障
硬件故障使存储在外存中的数据部分丢失或全部丢失。

介质故障比前两类故障的可能性小得多,但破坏性大得多

(2) 介质故障的恢复

先找备份点再重新执行备份点之后的成功事务

  • 装入数据库发生介质故障前某个时刻的数据副本

  • (REDO)重做自此时始的所有成功事务,将这些事务已提交的结果重新记入数据库

恢复操作的基本原理:冗余

  • 利用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正确的那部分数据

(3) 介质故障的常见原因
硬件故障:磁盘损坏、磁头碰撞、操作系统的某种潜在错误、瞬时强磁场干扰


7. 并发控制

数据库管理系统中并发控制的责任是保证事务的 ACID (原子性、一致性、隔离性、持久性;在此主要针对一致性和隔离性)特性。

(1) 不加控制的并发操作会导致数据的不一致性,包括:

  • 丢失修改
    两个事务 T1、T2 读入同一数据进行修改,T2 提交的结果破坏了 T1 提交的结果,导致 T1 的修改被丢失

  • 不可重复读
    事务 T1 读入数据后,事务 T2 对该数据执行了更新操作,使得事务 T1 再次读取数据时得到跟之前不一样的结果

    • 之前读到 100,之后读到 200
    • 之前读到有/无,之后读到无/有
    • 之前读到很少,之后读到很多
  • 读脏数据
    事务 T1 写入某一数据,事务 T2 读到这一数据,但后来 T1 被取消了,导致 T2 读到了不正确的数据

(2) 并发控制的主要技术有封锁、时间戳、乐观控制法和多版本并发控制

  • 封锁:排他锁(X)和共享锁(S)组成的封锁协议
  • 时间戳:给每一个事务盖上一个时间戳标签,按照这个时间戳来解决事务的冲突操作
  • 乐观控制法:让事务自由执行,在事务提交前再进行正确性检查
  • 多版本并发控制:在数据库中通过维护数据对象的多个版本信息实现高效并发控制

(3) 基本封锁类型

  • 排他锁、写锁、X:若事务 T 对数据对象 A 加 X 锁,则 T 可以读写 A,在 T 释放 A 上的锁之前其他任何事务都不能再对 A 加任何类型的锁

  • 共享锁、读锁、S:若事务 T 对数据对象 A 加 S 锁,则 T 只可以读 A,在 T 释放 A 上的 S 锁之前其他任何事
    务都只能对 A 加 S 锁,而不能加 X 锁

(4) 封锁协议

  • 三级封锁协议


    三级封锁协议.png
  • 两段锁协议
    并发调度的可串行性的充分条件 - 多个事务的并发执行正确,当且仅当其结果与按某一次序串行
    地执行这些事务时的结果相同


8. 范式

范式是一种分层结构的规范,分为六层:每一次层都比上一层更加严格:若要满足下一层范式,前提是满足上一层范式。

六层范式:1NF,2NF,3NF,BCNF,4NF,5NF,1NF要求最低;5NF要求最严格。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,425评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,058评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,186评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,848评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,249评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,554评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,830评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,536评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,239评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,505评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,004评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,346评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,999评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,060评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,821评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,574评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,480评论 2 267