(大二上)数据库系统原理知识点

数据库理论

第一章 概述

概念

  • 数据(Data)
    • 数据是数据库中存储的基本对象。
    • 数据的含义称为语义,数据与其语义是不可分的
  • 数据库(DB)
    • 特性:永久存储、有组织、可共享、易扩展、冗余度小
  • 数据库管理系统(DBMS)
    • 位于用户和操作系统之间
    • 提供三种语言
      • 数据定义语言(DDL):定义、删除、修改数据库中的对象
      • 数据操纵语言(DML):增删改查
      • 数据控制语言(DCL):用于控制用户对数据库操纵的权限
  • 数据库系统(DataBase System,DBS)
    • 由数据库(DB),数据库管理系统(DBMS),应用程序和数据库管理员(DBA)组成的存储、管理、处理和维护数据的系统。

技术发展的三个阶段

  • 人工管理阶段
    • 计算机系统不提供对用户数据的管理功能
    • 数据不能共享
    • 不保存数据
  • 文件系统阶段
    • 数据以“文件”形式可长期保存在外部存储器的磁盘上
    • 数据冗余、不一致性、数据独立性差
  • 数据库系统阶段
    • 数据结构化
    • 数据共享性高
    • 冗余少
    • 易扩充
    • 独立性高
    • 数据由DBMS统一管理控制

数据模型

  • 组成

    • 由数据结构、数据操作和完整性约束三个部分组成
  • 分类

    • 逻辑模型和物理模型

      • 层次模型(树形结构)

        • 只有一个结点没有双亲结点(根节点)
        • 其他结点只有一个双亲结点

        在这里插入图片描述

      • 网状模型

        • 允许一个以上的结点无双亲
        • 一个结点可以有多于一个的双亲
        在这里插入图片描述
      • 关系模型

    • 概念模型(E-R图)

      • 实体用矩形,属性用椭圆,关系用菱形
      image-20220102142832226

三级结构模式

  • 模式

    • 只有一个
    • 模式结构的中间层
    • 与数据存储模式、硬件、应用程序、开发工具、设计语言无关
  • 外模式

    • 多个
    • 数据库用户使用的局部数据的逻辑结构和特征
    • 保证数据库安全性
  • 内模式

    • 一个
    • 是数据物理结构和存储方式的描述
    • 是数据在数据库内部的表示方式
    image-20220102144532881

第二章 关系代数

关系

  • 单一的数据结构----关系
    • 现实世界的实体以及实体间的各种联系均用关系来表示
  • 逻辑结构----二维表
    • 从用户角度,关系模型中数据的逻辑结构是一张二维表
  • 建立在集合代数的基础上

    • 域是一组具有相同数据类型的值的集合,例如整数、自然数都是域
  • 笛卡尔积

    • 笛卡尔积是域上面的一种集合运算。
    • 笛卡尔积可表示为一个二维表,表中每行对应一个元组,表中每一列的值来自一个域
    • 元组
      • 笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组,简称元组
    • 分量
      • 笛卡尔积元素(d1,d2,…,dn)中的每一个值di叫作一个分量
  • 关系

    • 是笛卡尔积的一个子集,也是一个二维表
    • 特殊名词
      • 候选码:某一属性唯一标识一个元组
      • 主码:候选码中的一个
      • 全码:全部属性都是候选码
      • 主属性:候选码的主属性
      • 泛式:关系满足一定的规范

三类关系

  • 基本关系(基本表)

    • 实际存在的表,是实际存储数据的逻辑表示
  • 查询表

    • 查询结果对应的表
  • 是图标

    • 虚表
  • 三类完整性约束

    • 实体完整性
      • 主属性非空
    • 参照完整性
      • 外键属性要么为空要么为关联表的值
    • 用户定义完整性
      • 用户自定义约束规则

关系代数

image-20220102152117799

第三章 数据完整性

定义

  • 数据的正确性和相容性
  • 完整性和安全性是两个不同概念

DBMS需要做到

  • 提供定义完整性约束条件的机制
  • 提供完整性检查的方法
  • 违约处理

三种完整性

  • 实体完整性

  • 参照完整性

  • 用户定义完整性

建立约束

image-20220102165619570

触发器Trigger

  • 定义触发器


image-20220102170009697
  • 触发器的删除

    image-20220102170138004

第四章 SQL

SQL特点

  • 集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体
  • 可以独立完成数据库生命周期中的全部活动
  • 用户数据库投入运行后,可根据需要随时逐步修改模式,不影响数据的运行。
  • 数据操作符统一

索引

  • 建立索引是为了加快查询速度
  • 属于内模式范畴
  • 常见的索引
    • 顺序索引
      • 记录顺序与逻辑顺序一致
    • B+树索引
      • 非叶子结点只包含导航信息,不包含实际值
      • 所有的叶子节点和相连的节点使用链表相连
    • HASH索引

数据查询

  • 一般查询
image-20220102153300404
  • 消除重复值 DISTINCT

    image-20220102153501364
  • 使用列别名

    image-20220102153546836
  • 确定范围 BETWEEN AND

    image-20220102153743235
  • 确定集合 IN / NOT IN

    image-20220102153840305
  • 字符匹配 LIKE

    • _ 等价于?
    • % 等价于*
    image-20220102154042624
  • 转义字符

    image-20220102154235795
  • 空值

    image-20220102154341698
  • 查询结果排序 ORDER BY

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JFOCfriX-1641125881598)(C:/Users/25383/AppData/Roaming/Typora/typora-user-images/image-20220102154656325.png)]

    image-20220102154509409

    • NULL值算最大,即升序在最后,逆序在最前
  • 聚集函数

    image-20220102154912702
    image-20220102154944653
  • GROUP BY

    image-20220102155407670
  • EXISTS

    image-20220102160227367
  • ANY / ALL

    image-20220102160108885
  • 集合查询

    • UNION 并集
    • INTERSECT 交集
    • EXCEPT 差集
    image-20220102160552780
  • 数据更新

    • 插入INSERT

      image-20220102160751266
    • 修改UPDATE

      image-20220102161003702
    • 删除DELETE

      image-20220102161035349

视图

  • 虚表,是从一个或几个基本表(或视图)导出的表

  • 只存放视图的定义,不存放视图对应的数据

  • 基表中的数据发生变化,从视图中查询出的数据也随之改变

  • 视图的定义、查询、更新

    • 建立

      image-20220102161535975
    • 删除

      image-20220102161749522
    • 其他操作和数据表一样

  • 作用

    • 简化用户操作
    • 保护机密数据
    • 更加清晰表达重要信息
    • 使用户多角度看待统一数据

第五章概念逻辑模型

E-R图

  • 组成要素
    • 实体(方框表示)
    • 属性(椭圆表示)
      • 主属性下加下划线
    • 联系(菱形表示)
      • 一对一、一对多、多对多
      • 链接实体端写1,n,m

第六章 关系规范化

函数依赖

  • 定义

    设R(U)是属性集U上的关系模式,X和Y是U的子集。

    对于R(U)的任意关系的任意元组t1, t2,如果t1[Y]≠t2[Y],成立t1[X]≠t2[X](即:不存在t1, t2,使得t1[X]=t2[X],而t1[Y]≠t2[Y])。

    则称 X函数确定Y(即:X→Y)或Y函数依赖于X。

    • 平凡函数依赖
      • 如果X→Y,且Y image-20220102182758138 X,则称X→Y是平凡函数依赖
    • 非平凡函数依赖
      • 如果X→Y,但Y image-20220102182824562X,则称X→Y是非平凡函数依赖
    • 完全函数依赖image-20220102183628034
      • Y不函数依赖于X的任意真子集,只依赖于X本身
    • 部分函数依赖image-20220102183658974
      • 非完全函数依赖
  • 表示法

    image-20220102183335576

范式NF

  • 1NF

    • R(U,F)的所有属性都是不可再分的最小数据项,则称R满足1NF

    • 关系数据库系统必须满足1NF

      image-20220102184230784
  • 2NF

    • R(U,F)∈1NF,并且R的每一个非主属性都完全函数依赖于R的候选键

    • 分解为每个候选键一个块

      image-20220102184251308
  • 3NF

    • R(U,F)∈2NF,且R的每个非主属性都不传递函数依赖于R的候选键

      image-20220102184614117
    • 3NF分解

      • 分解结果

        image-20220102184820029
  • 函数依赖集闭包

  • 属性集闭包

  • 最小函数依赖集

  • 关系模式分解

    • 保连接分解
    • 保依赖分解
    • 分解算法

第七章 数据库安全性

名词解析

  • 数据库管理员:拥有所有对象的所有权限,可授予权限给用户
  • 用户:拥有自己建立的对象的所有权限,可授予权限给其他用户
  • 角色:数据库角色是权限的集合
  • 审计:记录用户对数据库的操作记录

存取控制

  • 包含两部分
    • 定义用户权限
    • 合法权限检查
  • 两种模式
    • 自主存取控制(DAC)
      • 对象和权限间关系十分灵活
      • 使用GRANT和REVOKE来实现
    • 强制存取控制(MAC)
      • 对于权限的管理很严格
      • 安全性高

权限赋予回收

  • 权限赋予GRANT,权限收回REVOKE
image-20220102163329554
image-20220102163559884

第八章 数据并发

事务

  • 不可拆分,最小的工作单位

    image-20220102193007265
  • 特性

    • 原子性:要么不做要么全做

    • 一致性:事务的执行结果使数据始终保持一致

    • 隔离性:在事务执行期间,并发事务之间互不影响

    • 持续新:事务一旦成功提交,则事务对数据库的更新永久生效

出现的不一致性的问题

  • 丢失修改:AB同时修改一个数据,有一个人修改失败
  • 读脏数据:A修改了数据,B读取了修改后的数据,A将修改撤销,B的数据就是脏数据
  • 不可读重复:A读完数据一次后B将其修改,A第二次读取的数据和之前不一样

封锁

  • 为解决数据不一致的问题,如互斥锁
  • 封锁粒度
    • 粒度越大,封锁对象越少
    • 粒度越小,封锁对象越多

封锁协议

  • 一级封锁协议

    • 加X锁

    • 解决丢失修改

      image-20220102194212891
  • 二级封锁协议

    • 加S锁,读取结束释放

    • 解决丢失修改和读脏数据

      image-20220102194441506
  • 三级封锁协议

    • 加S锁,事务结束释放

    • 解决丢失修改、读脏数据和不可重读

      image-20220102194709506
  • 两端封锁协议(2PL)

    • 区分加锁阶段和解锁阶段
    • 每个阶段只能干一种事情
    • 若遵守三级封锁协议,则一定遵守两段锁协议
    • 2PL为并发事务的可串行化,提供了理论保证

活锁和死锁

  • 活锁:事务可能永远等待(系统总是先批准其他事务的锁请求)
    • 采用FCFS等调度策略
  • 死锁:两个事务互相申请对方锁住的资源导致两个事务永远不能结束
    • 预防死锁
      • 一次性封锁法:一次锁住需要的所有事务
      • 顺序封锁法:预先对数据对象规定一个封锁顺序
    • 死锁诊断与解除
      • 超时法:如果一个事务的等待时间超过了规定的时限,就认为发生了死锁
      • 等待图法:并发控制子系统周期性地生成事务等待图,并进行检测,如果发现图中存在回路,则发生了死锁

第九章 数据恢复

故障管理

  • 事务故障
    • 事务还没运行完遭到强行终止
  • 系统故障
    • 系统停止运转
    • CPU故障,系统断电
  • 介质故障
    • 外存储设备故障
    • 磁盘损坏,强磁场干扰
  • 病毒故障
    • 计算机病毒

恢复的实现技术及策略

  • 数据转储
    • 静态转储:正在运行的事务全部停止才能进行
    • 动态转储:可以并发
    • 海量转储:储存全部数据
    • 增量转储:只储存更新的数据
  • 日志文件
    • 用于事务故障和系统故障的恢复
    • 动态转储要日志文件
    • 严格按照并发事务执行的时间次序依次登记。
    • 必须险些日志文件,后进数据库

恢复策略

  • REDO:重做
    • 正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作
  • UNDO:撤销
    • 反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作
  • COMMIT:提交
    • 正常结束
  • ROLLBACK:回滚
    • 撤销与完成的所有操作,回滚到最开始的状态

恢复技术

  • 事务故障恢复方法
    • 一直执行撤销UNDO
    • 通常由DBMS的恢复子系统自动完成
  • 系统故障恢复
    • 撤销未完成事务(UNDO)和重做已完成事务(REDO)
    • 通常由DBMS的恢复子系统自动完成
  • 介质故障的恢复
    • 重装数据库,重做已完成事务
  • 数据镜像
    • 备份数据库

第十章 数据库设计

数据库设计的六个阶段

  • 需求分析

    • 准确了解和分析用户需求(包括数据和处理)
  • 概念结构设计

    • 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型
  • 逻辑结构设计

    • 将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化
  • 物理结构设计

    • 为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)
  • 数据库实施

    • 根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库并试运行
  • 数据库运行和维护

    • 在数据库投入正式使用后不断地对其进行评价、调整与修改

    img

image-20220102184658191

技术

  • 事务故障恢复方法
    • 一直执行撤销UNDO
    • 通常由DBMS的恢复子系统自动完成
  • 系统故障恢复
    • 撤销未完成事务(UNDO)和重做已完成事务(REDO)
    • 通常由DBMS的恢复子系统自动完成
  • 介质故障的恢复
    • 重装数据库,重做已完成事务
  • 数据镜像
    • 备份数据库

第十章 数据库设计

数据库设计的六个阶段

  • 需求分析

    • 准确了解和分析用户需求(包括数据和处理)
  • 概念结构设计

    • 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型
  • 逻辑结构设计

    • 将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化
  • 物理结构设计

    • 为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)
  • 数据库实施

    • 根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库并试运行
  • 数据库运行和维护

    • 在数据库投入正式使用后不断地对其进行评价、调整与修改



image-20220102184658191

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值