数据库整理

AVL树/B-树/B+树/红黑树

红黑树

  • 1.结点是红色或黑色。

  • 2.根结点是黑色。

  • 3.每个叶子结点都是黑色的空结点(NIL结点)。

  • 4 每个红色结点的两个子结点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色结点)

  • 5.从任一结点到其每个叶子的所有路径都包含相同数目的黑色结点。

    插入

    新结点(A)位于树根,没有父结点。

  • A直接变成黑色

新结点(B)的父结点是黑色。

  • A不变

新结点(D)的父结点和叔叔结点都是红色。

  • 爸爸叔叔变黑,爷爷变红,然后递归检查

新结点(D)的父结点是红色,叔叔结点是黑色或者没有叔叔,且新结点是父结点的右孩子,父结点(B)是祖父结点的左孩子。

新结点(D)的父结点是红色,叔叔结点是黑色或者没有叔叔,且新结点是父结点的左孩子,父结点(B)是祖父结点的左孩子。

4,5的镜像

删除

如果待删除结点有两个非空的孩子结点,转化成待删除结点只有一个孩子(或没有孩子)的情况。

  • 类似二叉树,把右孩子的最大值放过来,并删除这个结点

根据待删除结点和其唯一子结点的颜色,分情况处理。

  • 自身是红色,子结点是黑色:
    • 直接删
  • 自身是黑色,子结点是红色:
    • 直接删,子孩子变黑
  • 自身是黑色,子结点也是黑色
    • 子情况1,结点红黑树的根结点:
      • 直接删
    • 结点的父亲、兄弟、侄子结点都是黑色:
      • 把结点2的兄弟结点B改为红色,递归判断
    • 结点2的兄弟结点是红色:

B-数

乐观锁和悲观锁

  • 乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段

  • 悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作

  • 乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性。

模式(schema):

  • 模式也称逻辑模式,是数据库全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。

  • 外模式(external schema):外模式也称子模式(subschema)或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

  • 内模式(internal schema):内模式也称为存储模式(storage schema),一个数据库只有一个内模式。他是数据物理结构和存储方式的描述,是数据库在数据库内部的组织方式。

常用数据模型

层次模型(hierarchical model)
网状模型(network model)
关系模型(relational model)

数据库索引

  • 用于提升数据库的查找速度

  • 顺序索引

  • B+ 树索引

    比哈希多个排序

  • hash 索引

范式

  • 第一范式

    属性(字段)是最小单位不可再分

  • 第二范式

    满足 1NF,每个非主属性完全依赖于主键

  • 第三范式

    满足 2NF,任何非主属性不依赖于其他非主属性

事务

  • 是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。

事物的 ACID 特性

  • 原子性、一致性、隔离性、持续性

  • 事务是并发控制的基本单位。