关系型数据库是怎么工作的1:引言

作者:51ak

本文翻译自一篇法国作者的博客,觉得写得不错, 原文地址:http://coding-geek.com/how-databases-work/

说起关系型数据库,我总是认为少了点什么。 关系型DB几乎无处不在,有不同类型,从迷你但实用的SQLite到功能强大的Teradata。 但只有少数几个文章谈论这些关系型数据库的工作方式。

不信,你可以看看Google搜索“关系数据库如何工作”,只有很少的几条结果,且非常简短。 如果你搜索新的流行技术(Big Data, NoSQL or JavaScript),你会发现很多深入解释工作原理的文章

是不是关系型数据库太老了,以至于在大学课程、研究论文、书本以外的地方解释原理显得无聊。

作为一个开发者,我不能容忍我不明白的事情发生,而且 ,如果数据库技术已经被用了40年,这里一定有原因。这些年,我花了几百个小时去真正理解这些奇怪的我每天都用的黑盒子, 关系型数据库是非常有趣的因为他们基于有用的可复用的理念上,如果你有兴趣搞懂数据库,但是你没有时间或意愿去深入了解这个很宽泛的主题,那么你会喜欢这篇文章的。

标题已经说得很清楚了,这篇文章的上的不是为了让大家学会怎么用数据库。所以你应该已经知道怎么写一个简单的JOIN查询和基本的增删改查SQL,否则你可能无法理解这篇文章,这是你唯一需要了解的知识,其他的我来给你们讲解吧。

这是一篇很长的包括了很多算法和数据结果技术文章,将会花费你很长的时间去阅读,有些概念很难懂,你可以跳过它理解整体的思路。

为了你更容易理解,本文大约分成三个部分

  1. 一些低阶或高阶的数据库理论(1-3节,包含在本篇文章中)
  2. 查询优化器进程(第4节)
  3. 事务和缓冲池管理(第5节)

以下是目录:

  1. 基础知识
    • 1.1 O(1) vs O(n^2)
    • 1.2 合并排序
    • 1.3 数组,树,哈希表
  2. 通用概念
  3. 客户端管理
  4. SQL查询
    • 4.1 SQL解析
    • 4.2 查询重写
    • 4.3 统计信息
    • 4.4 SQL优化
    • 4.5 SQL执行
  5. 数据管理
    • 5.1 缓存管理
    • 5.2 事务管理
  6. 总结

在很远很远的远古时期,码农们需要准确知道他们编写的代码是怎么运行的。他们心里知道他们的算法和数据结构,因为他们不能浪费一点点他们那些破电脑的一点点CPU和内存。

在这个章节,我将带大家回顾这些概念,因为这对弄懂数据库很关键,顺便我还会介绍索引的概念

本节完成,下一章节我们将讨论:时间复杂度

本篇文章完整分为7节,当前第1节。以下完整章节:

  1. 引言
  2. 时间复杂度
  3. 合并排序
  4. 数组.树.哈希表
  5. 客户端管理
  6. SQL查询
  7. 数据管理

发布日期:2017/09/09

Categories: 数据库理论 翻译 关系型数据库 mysql Tags: 转译 精品