数据管理简史:数据库系统的诞生

网友投稿 1302 2022-11-08

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

数据管理简史:数据库系统的诞生

通过上几篇文章,我们对数据的计算、存储、网路传输等有了一定的认识。当今我们用计算机或云资源觉得这么方便使用应该是理所当然的,但是回顾20世界50年代前,那么在计算机世界里数据管理这个事情还是处在手工阶段。

数据管理技术的发展经历3个阶段,按时间顺序分别为人工管理阶段、文件系统阶段、数据库系统阶段等。实际上现在我们已经进入了第四个阶段,即大数据管理阶段。这里需要明确一点是因数据管理场景的多样性,这几阶段出现的数据管理技术还在共存,融合应用中。这个好比飞机都有了,那么牛车还需不需要道理一样,少了不等于没了,就看具体的应用场景。

1  人工管理阶段

20世界50年代中期之前,计算机的软硬件均不完善。硬件存储设备只有磁带、卡片和纸带,软件方面还没有操作系统,当时的计算机主要用于科学计算。人工管理阶段也称为单项处理阶段,除了科学计算,计算机在会计领域初步得以应用,主要用于会计业务的单项处理。如工资计算、固定资产核算等。

这个阶段由于还没有软件系统对数据进行管理,程序员在程序中不仅要规定数据的逻辑结构,还要设计其物理结构,包括存储结构、存取方法、输入输出方式等,如下图1所示:

图1 计算机数据手工管理阶段

该阶段数据管理的特点可归结为:不能长期保存数据;数据不能共享;数据不具有独立性,数据并不是由专门的应用软件来管理,而是由使用数据的应用程序自己来管理。

当前,这类技术还没“过时”,在高精密设备或航空航天领域中发挥着其存在价值,为什么呢?因为这些领域因控制整体设备重量和体积原因,对内存容量和体量控制得非常严格。所以,精打细算地使用内存。

如果你还记得大学时期卡脖子(非常伟大,但常挂科)的C语言,那么学到最后可能还需完成一个实践作业。即,写一个基于数组或文件的学生资料管理系统。

实际上内存好比日常生活中的地产土地,我们买房后地产商给我们分配一个几十平米空间。类似,在计算机世界中,进程(程序在内存运行的样子)也需要操作系统(手工阶段还没有操作系统)给他分配内存(土地)。这个场景用C语言的实现如下图2所示:

图2 用C语言分配内存空间

2  文件系统阶段

上世纪50年代中期到60年代中期,由于计算机大容量存储设备(如硬盘)的出现,推动了软件技术的发展。这一阶段的主要标志是计算机中有了专门管理数据的软件——操作系统(尤其是文件管理子模块儿,也叫文件系统)。

在文件系统阶段,数据以文件为单位存储在外存(磁盘),且由操作系统统一管理。操作系统为用户使用文件提供了友好界面。文件的逻辑结构与物理结构脱钩,程序和数据分离,使数据与程序有了一定的独立性。用户的程序与数据可分别存放在外存储器上,各个应用程序可以共享一组数据,实现了以文件为单位的数据共享,如图3所示:

图3 文件系统阶段

文件系统给我们所带来的方便,也不是没有什么代价的。文件系统将数据和元数据(inode)独立存放,这样多占一点儿空间,以空间为代价带来的方便。这种“浪费”,相对所带来的的便利性可忽略不计。

文件储存在磁盘上,磁盘的最小存储单位叫做“扇区”(Sector)。每个扇区储存 512 字节(注意Oracle在线日志文件块大小也是这个数字)。操作系统读取磁盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个“块”(block)。这种由多个扇区组成的“块”,是文件存取的最小单位。“块”的大小,最常见的是 4KB,即连续八个 sector 组成一个 block。在创建文件系统时,该“块”大小非常关键。需要结合具体用途,如果你用来存储视频、图片等大文件,那么该值可以配置大一点儿好,具体原理和细节在此不再赘述。玉工认为,从这样细节中抓住,提前合理规划配置存储设备,不仅发挥存储设备“潜能”,也算是一个工程师存在价值所在。

文件数据都储存在“块”中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做 inode,中文译名为“索引节点”。每一个文件都有对应的 inode,里面包含了与该文件有关的一些信息。既然分开存储,那么也有可能会出现数据空间多余,但索引空间(inode)不足的奇葩情况,比如,Oracle ORA-09925: Unable to create audit trail file错误和Linux Error: 28: No space left on device错误。因此,系统管理员或DBA们有必要经常清理系统中警告日志、trace、dump等文件。

通过文件系统管理文件,由于文件之间互相独立,因而它们不能反映现实世界中事物之间的联系,操作系统不负责维护文件之间的联系信息。如果文件之间有内容上的联系,那也只能由应用程序去处理。

3  数据库系统阶段

20世纪60年代后期以来 ,计算机性能得到进一步提高,为满足和解决实际应用中多个用户、多个应用程序共享数据的要求,从而使数据能为尽可能多的应用程序服务,出现了数据库管理系统,如图4所示:

图4 数据库系统与文件系统数据管理方式

“数据库系统”在大多数时候都是指DBMS。但是严格地来说,数据库系统--DBS是指在计算机系统中引入数据库之后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(DBA--Database Administrator)和用户构成。即:

DBS = DB + DBMS + APPLICATION + DBA + USER

4  结束语

数据库库管理系统引入事务概念,强调强一致性和减少冗余的数据管理思想。从当初角度看,数据库系统阶段到现在真理般存在的事务四大特性(ACID特性),面对大数据阶段时开始遇到数据工程师们的质疑。就像相对论出现后牛顿三大定律受到科学家们的质疑一样。实际上数据管理领域也有CAP定理(或原则),后续文章中进一步开展。

从数据管理的历史可以看出,各阶段虽然时间上存在先后顺序,但世界多样性及各种技术应用场景不一原因不一定很快会“过时”,也许长期共存。技术发展越来越解放了程序员和工程师们“双手和大脑”,让他们变得更加“高效”,但这些技术背后原理及实现思想才是技术的本质,也就是背后“自动化”也让程序员和工程师远离了技术的本质。理解底层原理,才能在规划阶段合理配置,才能在运维阶段对症下药,让系统变得更加高效。

参考资料

https://zhidao.baidu.com/question/516828666.html

https://mp.weixin.qq.com/s/IurqUxwAf4TJFlOz9_9hiQ

上一篇:软件测试培训之测试用例设计工作的关键是什么
下一篇:软件测试培训之各种测试类型的含义
相关文章

 发表评论

暂时没有评论,来抢沙发吧~