数据库系统原理有什么,数据库系统原理图解

首页 > 经验 > 作者:YD1662022-11-06 10:01:32

作者:南慕伦

链接:https://www.zhihu.com/question/273489729/answer/382181550

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

刚刚接触数据库的时候,我也有和你一样的困惑。现在想起来,主要还是因为教学模式存在一定的问题,没有把来龙去脉讲清楚,没头没脑的灌输知识,最后不知为何而学,没动力,学着也痛苦。

很多老师也没有想清楚这一点,照本宣科罢了。毕业几年之后,现在我也算是个数据库领域的工程师,来分享我个人的一点见解,结合我个人学习的经验和现在的理解谈谈为什么要学习数据库。

简而言之,因为你学的是《数据库系统原理》,而不是《数据库系统应用》,更不是《SQL从入门到精通》,只有掌握了原理,才能了解当前的数据库是如何实现的,存在哪些问题,进而不断优化,突破当前数据库系统的局限性,做出更优秀的数据库。

下面的内容会比较长,我会利用一些比较基础地例子和常见事物的类比,给你一个从感性到理性的认识,了解引入这些概念带来的优势以及这些概念的局限性。其中也包含很多我个人的理解,不一定对,权当抛砖引玉,是希望能够对你有所帮助。

什么叫数据库?

常说,要“知其然还要知其所以然”。从你的提问来看,你已经初步做到了“知其然”,对数据库的功能有了一个初步的了解,知道数据库的基本功能就是“增删改查”。但是你要知道,关系型数据库只是数据库中的一种。广义上,任何能够满足对数据进行“增删改查”功能的程序,都叫数据库。这世界上就有很多数据库不是关系型数据库,你一定听说过『NoSQL』这个概念. 搜索引擎文档的存储、多媒体和地理信息的数据库,往往都不是使用关系型数据库。另外,最近正逐渐流行的图数据库,也是另一个门类。

这里插播几个趣闻吧,远在计算机庞大而夸张,数据库理论尚未普及的年代,就有了一些充满智慧的数据库技术的应用。下面举两个令我惊叹的例子。

在刘慈欣的小说《三体》中,有一段非常经典的人列计算机描写:

下面,贯穿人列计算机的系统总线上的轻转兵快速运动起来,总线立刻变成了一条湍急的河流.这河流沿途又分成无数条细小的支流,渗入到各个模块阵列之中。很快,黑白旗的涟漪演化成汹涌的浪潮,激荡在整块主板上。中央的CPU区激荡最为剧烈,像一片燃烧的火药。突然,仿佛火药燃尽,CPU区的扰动渐渐平静下来,最后竟完全静止了,以它为圆心,这静止向各个方向飞快扩散开来,像快速封冻的海面,最后整块主板大部分静止了,其间只有一些零星的死循环在以不变的节奏没有生气地闪动着,显示阵列中出现了闪动的红色。
——《三体》·刘慈欣

书中的描写通过形象地对计算机系统微观世界的类比,展示了一个宏大的场面。但是实际上,小说中用三千万人打造的人列计算机实在太浪费资源了,总共三千万士兵,一个人只表示一个比特位。实际上,以人的智商完全可以执行更复杂的指令,让这套系统的运转更加高效。

数据库系统原理有什么,数据库系统原理图解(1)

先来看一张图吧,估计第一眼大家一定不知道这个图是干什么的——这是1920年代的美国指纹数据库:美国“指纹工厂”:2万人管理着全国7000万指纹(组图)。

没错,现在我们去美国领事馆签证,或者入境美国的时候摁的指纹信息,早在100年前美国就开始收集了。这是现实版的人列计算机啊!

数据库系统原理有什么,数据库系统原理图解(2)

数据库系统原理有什么,数据库系统原理图解(3)

严格来说, 这个数据库不叫关系型数据库——至少,你不能简单地用MySQL去替代人力的查询。至于什么是关系型数据库,我们稍后再说。

下面来讲另一个,一个叫Calvin Mooers的计算机科学家,这个Mooers跟那个提出摩尔定律的 Moore不是一个摩尔。早在二战期间,电子计算机还有两层楼那么大的时候,他就发明了一套编码系统叫做Zatocoding,用来索引海量的文档——而且是纸质文档。

怎么做的呢?它先把相关文档的边缘统一打上洞:

数据库系统原理有什么,数据库系统原理图解(4)

首页 123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.