数据库系列(2):数据库系统的发展

数据库系统的发展经历了人工管理、文件系统管理和数据库管理系统三个阶段。早期的人工管理依赖于实物记录,文件系统管理借助计算机提高了效率但存在冗余和访问难题。数据库管理系统解决了这些问题,通过分层设计、规范化存储和复杂的数据操作,实现了高效的数据管理。如今,数据库类型多样,包括关系型、面向对象、分布式、NoSQL和图形数据库等,满足不同场景需求。未来,自治数据库将成为发展趋势。
摘要由CSDN通过智能技术生成

数据库系统的应用

数据库系统已经应用到我们生活的方方面面,我们都直接或者间接的和数据库系统打交道,当我们浏览一本书或者听一首音乐时,其实我们正在访问某个数据库里的内容;我们用外卖软件点餐,打车软件打车,我们的订单信息也都是被保存在了某个数据库中。你看,我们每天都会和数据库系统打交道,这种交互已经成为我们生活的一部分,可以看得出数据库系统的重要地位。既然如此重要,我们就一起来看看数据库系统是怎么发展起来的。

数据库系统的发展

数据库系统不是一下子就出现的,是随着时代的进步、数据的累积、应用场景的需要一步一步演化过来的,大概经历了3个阶段。

第一阶段:人工管理

人工管理阶段可以说时间跨度很长,甚至在远古时期我们也能看到人工记录数据的情况,比如今天打猎了3个羊,我们的祖先就会在石壁上画上3个图案,在石壁上用图案记录着猎物收获信息;时代在进步,人们的管理方式也会发生变化,从甲骨上记录,青铜上刻字、竹简上作文、帛书上画画,人工记录的媒介也在不停的变化;直到纸的发明,人们可以也说找到了一种高效、便携、经济的数据管理工具,随后人们便大规模地利用纸张来记录数据,如用账本记录了买卖数据,族谱记录族人的信息。这一阶段明显的特点是全程需要人工参与,从数据储存媒介的保存,到数据的分类,再到数据的修改查询,很显然人工管理费时又费力,同时数据也很难共享。比如我要找很久之前的一宗犯罪档案,我需要先到存放区,然后一个一个的翻阅,如果你也想看这个档案,要么需要我给你送过去,要么你自己来。现在这用方式仍然被使用着,比如我们的档案管理室。

第二阶段:文件系统管理

随着计算机的出现,特别是磁盘的出现,人们可以把数据存储在计算机上,这些数据以文件的形式存储,然后通过文件系统来管理。可以把所有老师、学生、班级和课程信息保存在计算机操作系统文件中,同类的文件可以放在同一个文件夹下,相比人工管理阶段可以说进步了很多,以前需要人工参与的现在完全可以用计算机代替,效率提高了很多。但是利用文件系统存储也有弊端:数据冗余和不一致,如在文件A和B中都有老师的信息,如果要修改老师的信息,就需要修改2次,如果漏掉一个就会导致数据不一致;数据访问太难,如果你要统计学校的女性老师或者按某个条件筛选,这可是一件头疼的事情;数据没有关联,数据都是分散在不同的文件中,如果你想统计某个老师带的学生信息也很困难;还有数据安全性,原子性,并发性问题都很难解决。现在个人用户仍然用这样方式存储着信息,比如把我们的文档、照片分类,然后放到文件系统的某个文件夹中。

第三阶段:数据库管理

我们已经知道,第二阶段有很多的问题需要解决,于是聪明的人们就可以提出众多解决方案,如各种概念和算法,然后把这些解决方案整合在一起就有了数据库系统。数据库系统是一些数据集合和一组可以让用户访问和编辑这些数据的程序组成,它的目的就是让用户更加容易的操作数据,忽略有关存储和维护等细节问题。它是一套独立的系统,如果你就用电脑看电影你完全可以不用安装它,但是如果你想使用它,你更多的是关心自己的业务逻辑,因为底层细节问题伟大的设计者们已经帮我们完成了。那这是怎么做到的呢?这就要看数据库的分层设计模式。

分层模式

物理层

最底层的抽象,描述数据是如何存储的,这里有很多复杂的底层数据结构

逻辑层

物理层之上的抽象,描述的是存储什么和数据之间的关系,这里你需要知道数据库中要保存哪些信息。

视图层

最高层的抽象,只描述了数据库的部分,并不是每个用户都关系数据库的全部信息,这里也可以提供某些安全机制。

为什么会这么设计呢?我们想下,不管是你用还是我用,不同的是我们的上层业务逻辑,但是数据最终都是要存储在磁盘上的,把这部分抽象出来就有了物理层。

设计规范化

数据库系统是用来管理大量信息的,这些信息并不是孤立存在的,所以我们我们精心的设计,力求高效。既然是设计就要追求精进,比如一个模型中包含哪些属性,是不是可以把某个属性去掉,各个模型之间的关系是什么,这些都需要我们考虑清楚,于是有了一套规范化的构成,目标是生成一个关系集合,让我们存储的信息更加精简,同时又能轻易的被检索出来,于是有了范式模式。

数据操作

下一步就是向数据库中插入和查询数据,由于数据库屏蔽了底层的细节,我们没法直接和底层交互,所以需要提供一套机制让我们和底层互动,于是有了提供了各种接口来完成对数据的操作,如DDL,DML,DQL,DCL,TCL。

存储和查询

数据库系统的功能大致可分为存储管理器和查询处理部件。

存储管理器负责和文件系统交互,比如把各种DML语句翻译成底层文件系统的指令,它负责数据的存储、检索、和更新。既然是存储就要考虑权限和数据是否完整,于是有了权限管理器和数据完整性校验;还要考虑发生了故障,数据能否保持一致的状态,于是有了事物管理;和磁盘打交道就要考虑空间的分配问题,于是有了文件管理器;从磁盘获取数据载入到内存中,就要考虑下缓存加速,于是有了缓冲区管理器。当然少不了种数据结构,如数据文件结构,索引结构。

查询处理组件包括各种解释器和查询执行引擎,如DML解释器把DML语句翻译成一个执行方案,包括一系列查询执行引擎能理解的低级指令。查询执行引擎即使执行地级指令的地方。

上面这些只是众多改进的一部分,现实的情况可比这困难的多。基于这些改进发展处理不同的数据库类型。

数据库的类型

数据库有很多种,至于各种数据库孰优孰劣,主要取决于企业希望如何使用数据。

关系数据库:关系数据库中的项被组织为一系列具有列和行的表。关系数据库技术为访问结构化信息提供了最有效和灵活的方法。

面向对象数据库:面向对象数据库中的信息以对象的形式表示,这与面向对象的编程相类似。

分布式数据库:分布式数据库由位于不同站点的两个或多个文件组成。数据库可以存储在多台计算机上,位于同一个物理位置,或分散在不同的网络上。

NoSQL 数据库:NoSQL 或非关系数据库,支持存储和操作非结构化及半结构化数据(与关系数据库相反,关系数据库定义了应如何组合插入数据库的数据)。

图形数据库:图形数据库根据实体和实体之间的关系来存储数据。

云数据库:云数据库指位于私有云、公有云或混合云计算平台上的结构化或非结构化数据集合。

多模型数据库:多模型数据库将不同类型的数据库模型结合到一个集成的后端中。这意味着它们可以支持各种不同的数据类型。

文档/JSON 数据库:文档数据库专为存储、检索和管理面向文档的信息而设计,是一种以 JSON 格式存储数据的现代方法,而不是采用行和列的形式。

自治数据库:基于云的自治数据库是一种全新的极具革新性的数据库,它利用机器学习技术自动执行数据库调优、保护、备份、更新,以及传统上由数据库管理员 (DBA) 执行的其他常规管理任务。这也是数据库的发展方向,如阿里、Oracle都已经有了解决方案,但是离真正的自治还有一定的距离。就如数据库开始的初级阶段,我们遇到了很多问题,但是把这些问题都解决后我们就会前进一步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值