【连载】关系型数据库是如何工作的?(1) - 前言

译者说明

这一系列博文翻译自一篇国外博主Christophe的博文。该博文详细介绍了关系型数据库是如何工作的,其详实程度堪比专业数据库教材,但又更加精炼扼要,让读者能在短时间内理解数据库的底层原理。在此,对写出这篇长篇大作的原文作者Christophe表示由衷的敬意。由于该博文篇幅很长,因此会以连载的形式分为多篇来翻译。为了便于大家理解,对于部分场景我会加入自己的说明或者伪代码实现。好了,下面让我们领略Christophe这篇大作的风采吧…

前言

关系型数据库应用非常广泛,但当我们谈起关系型数据库,我总感觉有些东西被丢失了。从精致小巧的SQLite到功能强大的Teradata,业界有很多种不同的数据库,但是关于数据库是如何工作的却鲜有介绍。你可以亲自去Google搜索”how does a relational database work“,搜索结果很少,并且每个文章都非常简短。相对而言,如果你去搜索一些最流行的技术(Big Data, NoSQL or JavaScript),你会看到很多解释其工作原理的深度好文。

难道是因为在大学课堂、研究论文以及专业书籍之外,关系型数据库都被介绍为过时和无聊的技术吗?

作为一个开发者我讨厌不明不白的使用一些技术,如果一个数据库被用了40年,那一定存在某种理由!多年以来,我花了几百小时来研究这些我每天都在使用的关系型数据库。实际上,关系型数据库是非常有趣的,它们基于有用且可重用理论。如果你对理解数据库工作原理很感兴趣,但又没有时间来钻研这个广泛的课题,那么你应该读一读这篇文章。

文章的标题已经很清晰,这篇文章的目的不是介绍怎么使用一个数据库,而是理解其工作原理。因此,你必须首先具备写出简单的join query和CRUD基本查询的能力,否则你恐怕很难读懂这篇文章。这也是你唯一需要掌握的知识,至于其他的知识我来解释。

因为这是一篇包含了很多数据结构和算法的长篇大论,因此你需要花点时间来耐心阅读。其中一些理论确实很有难度,但你跳过它们也照样可以理解这篇文章的中心思想。

如果你学士渊博,那么这篇文章或许可以划分为以下三部分:
1. 数据库组件低层和高层视图
2. 查询优化过程概览
3. 事务和缓存池管理概览

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
关系型数据库和非关系型数据库是两种不同的数据库管理系统,它们在数据存储和查询方式上存在一些区别。 关系型数据库(RDBMS)是基于关系模型的数据库,使用表格(二维表)来组织和存储数据。它具有以下特点: 1. 结构化数据:数据以表格的形式存储,每个表格包含多个行和列,每列代表一个属性。 2. 数据一致性:通过定义表之间的关系(主键、外键等)来保持数据的一致性。 3. SQL查询语言:使用结构化查询语言(SQL)进行数据的增删改查操作。 4. 数据完整性:支持事务处理和数据约束,确保数据的完整性和一致性。 5. 扩展性较差:在处理大规模数据和高并发访问时,性能可能受到限制。 非关系型数据库(NoSQL)则是一种非传统的数据库类型,它不使用表格来存储数据,而是使用其他数据模型(如键值对、文档、列族、图形等)。它具有以下特点: 1. 非结构化数据:数据以灵活的方式存储,可以是键值对、文档、图形等形式。 2. 高可扩展性:能够处理大规模数据和高并发访问,支持水平扩展。 3. 无需预定义模式:不需要提前定义表结构,可以根据需要动态添加字段。 4. 低一致性:为了提高性能,可能会牺牲一定的数据一致性。 5. 不支持SQL查询语言:通常使用特定的查询语言或API进行数据操作。 总结起来,关系型数据库适用于需要保持数据一致性和事务处理的场景,而非关系型数据库适用于大规模数据和高并发访问的场景,并且对数据结构的灵活性有更高的要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值