数据库原理的概述

连接

实现方式:

  1. 嵌套连接,将小的表放在外面的for。
  2. 哈希连接,将两个表连接映射到一个共同的哈希表中。(两个小表的连接)
  3. 排序之后的合并连接

优化

投影下移
选择下移

聚集索引

当在表上建立了聚集索引,这个索引决定了表中数据的物理排序顺序,叶子节点就是数据行本身。数据行的顺序和聚集索引的顺序一致,一张表只有一个聚集索引。
非聚集索引的叶子节点包含索引列的值,和一个指向实际数据行的指针。

如果使用非聚集索引查找:

  1. 如果存在非聚集索引,使用索引。
  2. 不存在则遍历查找。

事务

事务是数据库操作的基本单位。
事务在未提交前是不会写入磁盘的,只放在内存中。

恢复技术

核心是建立冗余数据,并且使用冗余数据实现数据库恢复。

数据转储
  1. 静态转储:停止所有事务,然后进行转储。
  2. 动态转储:数据存取时候进行转储。
    还分为海量转储和增量转储。
日志文件

日志文件是记录事务对数据库更新操作的文件。
记录事务为单位的日志文件。
日志文件的作用:

  1. 事务故障恢复,系统故障恢复
  2. 在动态转储过程中记录操作。

必须先写日志文件,再写数据库。

事务故障的恢复

通过反向扫描日志文件,找到该事务的操作,undo操作逆向执行操作,直到将该事务的操作执行完毕。

系统故障恢复

系统故障恢复是在系统重启后自动执行的,用户只需要重启设备就行了。
系统故障导致的两种错误:

  1. 未commit的数据已经写入磁盘。
  2. 已经commit的数据没有写入磁盘。
    解决方式:
  3. 扫描日志文件,找出没有commit的事务添加到撤销队列(UNDO),已经commit的事务添加到重做队列(REDO)。
  4. 执行UNDO和REDO。

你可能感兴趣的:(数据库,数据库)