零基础科普 | 我们为什么需要数据库?(一)


上篇回顾:零基础科普 | 数据库是什么?

先讲一个故事

很久以前,用得起手机的都是大佬,大佬们的手机和充电器都是自己特别设计的接口自己的手机只能用自己的充电器。他们觉得这样很方便,因为自己想要什么样的就可以有什么样的,反正设计个接口嘛,小菜一碟。
在这里插入图片描述后来,有人降低了生产手机的成本,让手机走入了千家万户,大家一开始很高兴,但发现手机和充电器是一一绑定的,一个手机一种充电器,自己不会修改接口,这样很不方便,大佬们也意识到充电器是有共享需求的,一种手机只能适配一种充电器,不是很优雅的举动。

这时,一个聪明的商人,发明了一个东西,叫做转接头,然后他发布了一个规范,充电器按他的接口来做,手机也按他的接口来设计,一个手机就可以使用各种各样的充电器了。
最终,这个人获得了成功,大家都可以很简单地让自己的手机连接各种充电器了,所有人都很开心。
在这里插入图片描述

数据库的诞生背景

上面的故事是根据数据库的出现背景,用现代人好理解的方式改编的,但基本情节和数据库出现的原因类似。上文的手机即程序(代码),充电器即为数据,所谓的转接头出现,就是数据库的产生。 数据库让人们可以做到,只要把数据按一定模式去组织,程序就可以很方便地按一定规则去使用。

早期的时候,编程主要是科学家用于科学计算,他们对编程很熟练,数据直接存在文件系统中,自己随心所欲定义数据的格式,然后自己写程序读入数据,再写下一些对输入输出的说明给别人看。大概就是这种感觉(事实上可能复杂得多,现在这种文件的数据管理和编程方式依然广泛应用于物理、化学等理科,以及部分计算机的场景中):
在这里插入图片描述
后来,很多商业公司也想用数据库来做数据管理和分析,这种类似文件的管理方式,不适合大规模数据的管理和共享,能够统一管理和共享数据的 数据库管理系统(DBMS) 应运而生。数据库设计的核心是数据模型的定义,也即我们如何去组织管理数据,更有利于数据的开发和利用。

再后来,数据的作用越来越大,数据分析逐渐成为了一项专门的服务,数据库也在与时俱进,在数据存储以外,集成了越来越多的数据管理与分析的功能,让数据分析与数据科学变成了一般人员可以低成本学习与操作的事务(SQL的出现)。不然,面对海量的数据直接存放在磁盘上,而没有数据库的话,对于一个分析师来说仅仅搞明白这些数据的读取方式就够呛了,如果数据要进行增删查改,还得自己去思考数据的管理方式编程实现数据的搜索、筛选、去重等很常见的基础功能如果数据发生一些变化,编程上可能也得相应进行很多修改,实在是不够便捷。
在这里插入图片描述

数据管理发展简史(部分)

  • 1951:Univac系统使用磁带和穿孔卡片作为数据存储,一秒钟可以输入数百条记录,只能顺序访问。

  • 1956:IBM生产出第一个磁盘驱动器—— the Model 305 RAMAC。此驱动器有50 个盘片,每个盘片直径是2 英尺,可以储存5MB的数据,实现了数据的随机访问。

  • 1961年通用电气公司的Charles Bachman 成功地开发出世界上第一个网状数据库,也是第一个数据库管理系统——集成数据存储(Integrated DataStore IDS),奠定了网状数据库的基础。网状数据库采用网状结构来表达数据之间的关系,数据存储在一个个“节点”中,“节点”之间通过“指针”来表达逻辑关系,用数据结构的名词来说,就是一个有向图。

  • 1968年,IBM 公司开发了IMS(Information Management System),一种适合其主机的层次数据库,这是最著名最典型的一个层次数据库系统。层次数据库的“节点”是分层次的,一个节点最多只有一个父母(parent),但可以有多个孩子(child),类似于数据结构中的树。

    上面这两种数据模型都有一定缺点,用户在使用的时候,需要明确数据的存储结构和路径,才能去使用这部分数据,数据的独立性和抽象级别有很大的欠缺。但很快,数据库界的“王炸”就要来了。

  • 1970年,IBM的研究员E.F.Codd博士在刊物《Communication of the ACM》上发表了一篇名为“A Relational Model of Data for Large Shared Data Banks”的论文,提出了关系模型的概念,奠定了关系模型的理论基础。这种模型非常简单,又具有坚实的数学基础,引起了学术界和产业界的重视,一大批关系型数据库迅速开发出来并占领市场,让之前的层次数据库和网状数据库迅速走向衰亡,交替速度之快是软件史上罕见的。由于他的杰出贡献,E.F.Codd于1981年获得ACM图灵奖。

  • 1976年,E.F.Codd还是上面那位)发表了一篇里程碑的论文《R系统:数据库关系理论》(注意,此R非彼R),介绍了关系数据库理论和查询语言SQL。甲骨文公司(Oracle)的创始人Ellison非常仔细地阅读了这篇文章,被其内容震惊,几个月后,他们就开发了Oracle 1.0 。

    而IBM却沉浸在IMS的成功中,并没有重视自家研究员E.F.Codd的成果,直到1985年才发布了关系数据库DB2,但这已经无法阻挡Oracle的成功。

后来,随着数据形式的发展和数据规模的扩大,出现了面向对象的数据模型、图数据模型、流式数据模型、键值对、map-reduce等各种各样的数据模型,也诞生了各种各样的数据库,但至今应用最广泛的依旧是关系数据模型和关系数据库

我们为什么需要数据库?

现在可以回答一下:我们为什么需要数据库?(感谢王元桢同学对此观点的补充)

  1. 数据库将零散的数据管理起来,让数据变得结构化,易于后续的数据分析,数据不再是平铺的,而是有结构的了。对于这一点,可以拿关系型数据库来举个简单的例子(打个预告,见下一篇 零基础科普 | 我们为什么需要数据库?(二))。
  2. 数据库隐藏了数据底层存储方式的细节,用一种统一的方式向上层应用供给数据,让数据的简单存取变成现实。
    对于存储方式的细节可以举一个例子,比如分布式数据库,对应着上一篇文章中提到的“如果不同房间可以连通,那么不同房间的柜子可以一起存东西,就像只有一个柜子一样”。数据实际上是分块存储在不同的机器中,但通过网络可以连成一个集群,对外提供统一的数据库服务,使用起来依然就像数据在一台机器上,这样就大大方便了数据的管理。
  3. 由于标准的统一,数据的共享和交流变得方便,大家遵循同样的方式去使用和管理数据,对数据的抽象和描述变得简单。
  4. 数据库一般都提供了并发和网络的功能,可以同时支撑多个用户使用数据,可以支持数据的远程访问,从此数据不需要存放在本地,比如在北京可以通过数据库来访问远在伦敦和纽约的数据,推动了数据的共享和可用。
  5. 数据库是支撑大数据的基石,提供了较为完善的数据分析功能,极大地降低了数据科学的门槛,让数据分析不再是几百条几千条数据的规模,直接上升到TB、PB级别的规模
  6. 数据库还是数据安全的保护伞,提供了数据的备份与恢复功能。可以试想一下,当你在写你的论文时,电脑忽然断电了,你最为担心的是什么?是office软件的安全吗?当然不是,你担心的是你的论文数据还在不在
    数据库提供了这样的功能,保障了数据的持久性(Durability),如果程序突然挂掉,数据库有数据恢复机制来保障数据的安全。即便极端一点,这台计算机被外力摧毁(例如战争、地震),数据库一般也有容灾备份的机制,数据存储在多个地方,可以迅速恢复。

在如今这个数字时代,如此频繁的数据交流、如此丰富的数据形式、如此庞大的数据量,让数据在经济社会中发挥出前所未有的作用,专门的数据库软件在实际应用中早就必不可少。
无论是双十一购物,还是过年买火车票,亦或是健康码的查询,背后都离不开数据库的支持。无论是做一个简单的前后端网站,还是海量数据的查询分析,没有数据库都是无法想象的。
在这里插入图片描述

图片来自于网络,侵删

猜你喜欢

转载自blog.csdn.net/weixin_43997331/article/details/123347113