数据库基础知识总结

数据库模式

  1. 数据库的三层模式二级映像(如图)

    • 三层模式:
      • 外模式:用户与数据系统的接口
      • 逻辑模式:数据库中全部数据整体逻辑结构的描述
      • 内模式:数据库物理存储方面的描述
    • 两级映像(如图)
      • 外模式/逻辑模式映像
      • 逻辑模式/内模式映像
  2. 数据抽象级别的4种模型

    • 概念模型
    • 逻辑模型
    • 外部模型
    • 内部模型

这里写图片描述

事务

  1. 概念:构成单一逻辑工作单元的操作集合,要么完整的执行要么不执行。
  2. commit:事务执行成功地结束
    rollback:表示事务执行不成功的结束
  3. 事务的ACID属性:原子性、一致性、隔离性、持久性
  4. 检查点技术: 在检查点时刻才真正的把对DB的修改写到磁盘,并写日志文件
  5. 数据在磁盘上以的定长存储单位形式组织

并发操作带来的三个问题

丢失更新:
读脏数据: 未提交随后被撤销的数据称为脏数据
不可重复读:一个事务读两次数据结果不相同

封锁技术

  1. 排他型锁(x锁):即是写锁,写锁的解除在commit或者rollback操作中,可以解决丢失更新问题
  2. 共享型锁(s锁):即是读锁,提高了并发性,在s锁解除之前不许上x锁,其他事务可以上s锁
  3. 封锁 三级协议,每一级写数据都必须加写锁,一级(读脏数据,不可重复读都可能发生),二级读取数据必须加读锁,读完即可解除(可能会发生不可重复读),三级在事务结束释放s锁。

封锁带来的问题

  1. 活锁:某个事物永远处于等待状态,得不到封锁的机会
  2. 饿死问题:
  3. 死锁:

    • 死锁(Deadlock)
      所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。

    • 产生死锁的原因主要是:

      • 系统资源不足。
      • 进程运行推进的顺序不合适。
      • 资源分配不当等。
    • 产生死锁的四个必要条件:

      • 互斥条件:一个资源每次只能被一个进程使用。
      • 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
      • 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
      • 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
        这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。
    • 死锁的预防和解除:

      • 足够的资源
      • 银行家算法

sql的完整性约束

  1. 域约束、基本表约束、断言

数据库的优化

  1. 水平拆分和垂直拆分
    • 垂直拆分: 按照功能模块进行拆分,例如按照评论表、点赞表、文章内容表
    • 水平拆分: 将表的数据分块保存在不同的数据库中,例如按照时间拆分(可能不均匀),加一个库专门设置映射,新建的DB专门负责存放user_id到数据库的映射关系。

数据库的三级范式

关键码:唯一能决定整个关系集合的属性集合,例如: d -> a, ab - c,db是关键码

无损分解,保持依赖的分解

SQL语言

View 的新建与更新

这里写图片描述

desc SC; 展示SC表的结构

select .. from ..

新建SC表

这里写图片描述

插入数据和更新数据和删除数据

猜你喜欢

转载自blog.csdn.net/tingyugetc11/article/details/77913986