暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库全解析:概念、作用及应用场景

浙江宏仑数字科技有限公司 2024-12-06
83

提到数据库,许多人可能感到陌生,但实际上,数据库早已深入到我们日常生活的每一个角落。从网上购物到扫码点餐,再到抢红包等常见应用,这些背后都离不开数据库的强大支撑。

数据库是各类应用软件运行的重要支柱,被誉为基础软件领域的“皇冠上的明珠”,其地位可与操作系统相媲美。

什么是数据库?


让我们来看一下数据库的官方定义:数据库是“按照特定数据结构组织、存储和管理数据的系统”,它是一个在计算机中长期存储、结构化、有序、可共享的大量数据集合。看似复杂的定义,其实可以简单理解为,数据库就是存放数据的“仓库”。它能容纳海量数据,甚至达到上亿条。然而,数据库并不是随意存放数据的,它有着严格的规则和结构,确保数据能高效地存取。举个例子,我们家里通常都会有衣柜,用来存放衣物;同理,数据库就像是存放数据的“衣柜”。

数据库就像一个衣柜,不过它存储的不是衣物,而是各种数据。通过数据库,我们可以方便地查找和提取存储在其中的信息。比如,当你查看余额宝账户的收益时,实际上就是从数据库中读取相关数据并显示给你。

在理解了数据库的基本概念后,我们可以进一步探讨数据在其中扮演的关键角色。

为什么我们需要数据库?


很多人可能会疑问:“为什么不直接把数据存储在自己电脑上的Excel表格里就行了?为什么还需要使用数据库?” 其实,数据库相比Excel有许多明显的优势。首先,数据库能够处理更大规模的数据,并支持多人同时访问和操作这些数据。

接下来,我们来看数据库的三个关键价值:


1. 高效的数据存储与访问:

数据库能容纳海量数据,并提供便捷的访问方式。它还支持对数据进行分类存储,并能够实现快速查询。比如我们平时使用谷歌搜索时,背后就是通过数据库和数据分类技术来加速信息的检索过程。



2.数据安全管理:

数据库不仅满足应用共享的需求,还能确保数据的安全性。将数据存储在数据库中,通常也是为了保护其安全。例如,如果一个公司把员工的所有资料存放在个人电脑上,资料的保密性就难以保证。相比之下,将资料存入数据库后,可以通过设置权限和访问控制来有效确保数据的安全。


3.数据分析与价值提升:

数据库还支持数据分析,帮助挖掘数据的潜在价值。例如,超市会将销售数据存储在数据库中,根据每月的销售排名来调整进货量。通过数据库的查询和分析,产生的结果能够为决策提供有力支持,进一步提升数据的商业价值。

理解了数据库的价值后,接下来我们来了解一下数据库的发展历程。

数据库的发展史


1946年,冯·诺依曼发明了计算机,最初计算机的主要功能是将程序指令存储器与数据存储器结合,并进行相应的计算。在那个时期,数据管理相对简单,主要依靠机器通过分类、比较以及使用穿孔卡片来处理数百万条数据。

然而,随着计算机技术的不断发展,数据管理的需求也逐步增多。传统的文件系统已经无法应对日益增长的数据量,也难以满足多用户共享和快速检索的需求。

正是在这种背景下,20世纪60年代,数据库技术应运而生,标志着数据管理进入了一个崭新的阶段。


网状数据库和层次数据库时代

1964年,世界上第一个数据库系统——IDS(集成数据存储)由通用电气公司推出。IDS采用了网状数据库模型,为数据库技术的发展奠定了基础,并在当时得到了广泛应用。

网状数据库是数据库历史上的第一代产品,它成功地将数据从应用程序中独立出来,实现了集中管理。网状数据模型通过建立数据之间的联系,能够更好地反映现实世界中的信息关联,成为许多空间对象的自然表达方式。

五年后,美国数据库系统语言协会(CODASYL)下属的数据库任务组(DBTG)发布了一份报告,详细阐述了网状数据库系统的许多概念和技术,成为网状数据库的代表性文件。

在20世纪70至80年代初,网状数据库系统非常流行,并在市场上占据了主导地位。例如,富士通公司M系列计算机上的AIM(高级信息管理)系统和UNIVAC计算机上的DMS1100系统,都是典型的网状数据库系统。

继网状数据库之后,层次数据库系统应运而生。层次数据库采用树状结构来描述实体及其关系,每个记录类型由树的节点表示,记录类型之间的关系通过有向线段连接。层次数据库的结构决定了它只能处理一对多的实体关系,因为每个子节点只能有一个父节点,而每个父节点则可以有多个子节点。

1968年,IBM公司推出了世界上第一个层次数据库系统——IMS(信息管理系统),这也是第一个大型商用数据库系统。

如前所述,网状数据库系统和层次数据库系统在数据库发展的初期较为流行。网状数据库模型能够自然地模拟层次结构和非层次结构的数据,具有较广泛的应用,因此在当时占据了主导地位。

1973年,Charles W. Bachman因其在数据库领域,尤其是网状数据库管理系统方面的卓越贡献,荣获图灵奖。然而,网状数据库也存在一些局限性:首先,在复杂的网状结构中,用户进行查询和定位操作相对困难;其次,网状数据库的操作命令具有过程式特点,使用起来不够直观;最后,虽然网状数据库能够处理多种结构,但它对层次结构的表达并不十分直接。

Charles W.Bachman


关系数据库时代

尽管网状数据库和层次数据库在解决数据集中存储、管理和共享方面取得了一定的进展,但在数据独立性和抽象层次方面仍存在较大不足。为了克服这些问题,关系数据库应运而生。

1970年,IBM研究员Edgar F. Codd发表了论文《A Relational Model of Data for Large Shared Data Banks》,首次提出了关系数据模型的概念,并为其奠定了理论基础。这一理论标志着数据库发展史上的一次重大变革,是关系数据库技术诞生的关键时刻。


Edgar F.Codd

随后,Edgar F. Codd继续发表多篇文章,深入探讨了范式理论,并通过数学理论为关系数据库奠定了基础,最终形成了关系数据模型这一概念。关系数据模型的思想非常简洁,结构灵活,能够满足布尔逻辑运算和集合运算等查询需求;它支持搜索、比较和组合不同类型的数据;同时,数据的增删操作也变得更加简便。此外,关系数据模型具备较高的数据独立性和更强的安全性。然而,当数据库规模变大时,查找特定关系的数据会变得比较耗时,而且对于空间数据的表示也存在一定的局限。

基于关系数据模型,IBM从1970年开始了关系数据库系统——System R的研发工作。然而,由于当时IBM已经有了层次数据库IMS,System R的开发进程相对缓慢,直到1980年才完成产品化,并正式推向市场。之后,IBM在System R的基础上推出了DB2数据库系统。虽然IBM在技术研发上领先,但未能迅速将产品化抢占市场。

与此同时,加州大学伯克利分校的Michael Stonebraker和Eugene Wong,借助IBM的公开信息和关系模型理论,于1973年开始开发自己的关系数据库系统——Ingres。而在1976年,霍尼韦尔公司(Honeywell)推出了世界上第一个商用关系数据库系统——Multics Relational Data Store。

1974年,IBM的Ray Boyce和Don Chamberlin将Edgar F. Codd提出的关系数据库12条准则的数学定义,通过简洁的关键字语法进行了表达,标志性地提出了SQL(结构化查询语言)。SQL作为一种操作关系数据库的标准语言,涵盖了数据定义、操作、查询和控制等多种功能。用户只需在高层次的数据结构上进行操作,无需指定数据存取方式,也不需要了解底层的数据存储细节,就可以通过SQL对关系数据库进行操作。SQL具有一体化、灵活性、非过程化和易用性等特点,因此几乎所有的关系数据库管理系统(RDBMS)都支持SQL,如Oracle、DB2、Sybase、SQL Server、MS Access、MySQL、PostgreSQL等。

1978年,Larry Ellison在为美国中央情报局开发一个数据项目时,敏锐地捕捉到了关系数据库的商业潜力。几个月后,Oracle 1.0诞生了,虽然它只能完成简单的关系查询,但随着时间的推移,Oracle公司不断优化和扩展其数据库产品,最终成为数据库行业的巨头。由此,关系数据模型的理论通过SQL语言在商业数据库Oracle中得到了广泛应用。

虽然加州大学伯克利分校的Ingres项目在20世纪80年代初结束,但其影响远未消失。Ingres为许多商业数据库软件的诞生奠定了基础,包括Sybase、Microsoft SQL Server和Informix等,这些系统都借鉴了Ingres的核心思想。随后,伯克利分校启动了Ingres的继任项目——Postgres,最终诞生了具有深远影响的PostgreSQL数据库系统。作为较早期的关系数据库系统,Ingres对关系数据库的发展产生了重要影响,堪称数据库历史上最具影响力的项目之一。

关系数据库系统基于关系代数理论,经过几十年的不断发展和实际应用,技术日渐成熟。直到今天,关系数据库仍然在数据库领域占据主导地位,广泛应用于各个行业。正因Edgar F. Codd在关系数据库理论和实践中的卓越贡献,他于1981年获得了图灵奖。为了表彰Michael Stonebraker在数据库系统原型和初步商业化方面的杰出成就,他于2014年也获得了图灵奖。

然而,尽管关系数据库技术已经非常成熟,但随着市场需求和信息技术的不断发展,其局限性逐渐显现。关系数据库在处理结构化的“表格型数据”时表现优秀,但面对当前越来越复杂的数据类型(如文本、图像、视频等)时,其处理能力和灵活性显得不足。


分布式数据库时代

在数据库发展的早期阶段,单机数据库能够满足数据存储和管理的需求。然而,随着互联网的普及,尤其是移动互联网的兴起,数据的规模呈现爆炸式增长,单机数据库逐渐显现出无法满足大规模数据处理需求的局限性。为了解决这一问题,一个直观的方案就是通过增加服务器数量,将数据库部署在多台机器上,从而形成分布式数据库。

分布式数据库的研究始于20世纪70年代中期,并在此期间涌现出一些早期的分布式数据库系统。例如,1979年,美国计算机公司(CCA)在DEC计算机上实现了世界上第一个分布式数据库系统——SDD-1。随后,分布式数据库的发展迅速推进,在不到十年的时间里,许多新系统相继问世。比如,IBM基于System R开发了分布式数据库R*,而加州大学伯克利分校则推出了分布式版本的Ingres数据库。这些早期的探索为分布式数据库技术的成熟和普及奠定了基础。

1987年,C.J. Date提出了真正的分布式数据库系统应遵循的基本原则,这些原则成为分布式数据库的理想目标。进入20世纪90年代,分布式数据库系统开始进入商业化应用阶段,传统的关系数据库产品逐步发展成以计算机网络和多任务操作系统为核心的分布式版本。

到了2005年左右,研究人员的持续探索推动了NoSQL数据库的诞生。NoSQL数据库解决了单机无法承载海量数据的问题,代表性的系统包括HBase、Cassandra和MongoDB等。随后,在2012到2013年间,谷歌发布的Spanner和F1系统论文为业界带来了新启发,表明关系模型与NoSQL的扩展性可以在大规模生产系统中实现融合。这些创新为NewSQL数据库的发展提供了动力,并推动了这一新兴技术的快速发展。

进入大数据和移动互联网时代后,随着数据特性和应用场景的不断变化,无论是传统的关系数据库,还是新兴的NoSQL和NewSQL数据库,都朝着分布式架构发展,分布式数据库逐渐成为数据库领域的主流方向。然而,分布式数据库也面临一些挑战。例如,节点间的通信可能导致较大的延迟;在多节点环境中,数据的安全性和保密性面临更高风险;某些在集中式系统中有效的存取技术,在分布式系统中可能不再适用;此外,分布式数据划分、负载均衡、分布式事务处理和执行等方面的技术仍缺乏重大突破。


云数据库时代

随着云计算的迅速发展,数据库的部署和虚拟化逐渐转向云端,形成了云数据库。云数据库是在云计算环境下,通过计算机网络提供数据管理服务的一种数据库形式。由于云数据库能够共享底层基础设施,它显著提升了数据库的存储能力,并有效避免了硬件、软件和人员配置的重复,从而大大提高了资源的利用效率。

云数据库将传统数据库系统迁移到“云端”,由专业的云服务提供商负责管理和部署。用户只需按需付费即可获得数据库服务,免去了传统数据库中硬件和运维的复杂性。与传统数据库不同,云数据库通过计算与存储的分离、存储的在线扩展和计算资源的弹性伸缩,显著提升了数据库的可用性和可靠性。一个典型的云数据库例子是亚马逊的Aurora,它提出了“日志即数据库”的理念,减少了网络开销并提高了系统的可用性。

云数据库可以分为关系型和非关系型两种。典型的关系型云数据库包括亚马逊的Aurora和微软的SQL Azure,它们基于关系数据模型。非关系型云数据库的代表有亚马逊的DynamoDB,它采用了键值存储模型,适用于处理大规模、分布式的数据。

2019年6月,Gartner发布了《The Future of the Database Management System (DBMS) Market Is Cloud》报告,明确指出传统的数据库部署方式已不再适应时代需求,云计算是未来的发展方向,所有组织,无论大小,都将在越来越多的场景中采用云数据库。然而,尽管云数据库具有显著优势,但也存在一些亟需解决的问题,其中最为突出的是数据安全。云计算环境下,数据面临着较高的泄露风险和丢失风险,这使得安全性成为云数据库应用中的一个重要关注点。

常见的数据库管理系统排名(DBMS)


目前互联网上常见的数据库管理软件包括Oracle、MySQL、MS SQL Server、DB2、PostgreSQL、Access、Sybase和Informix等。根据2024年1月7日DB-Engines对各大数据库受欢迎程度的调查统计,以下是各数据库在市场中的排名情况:

为什么要发展国产数据库?


数据库作为企业的核心资产,存储着大量的敏感信息和关键数据。然而,国外数据库产品存在被外部政府或商业机构窃取或篡改的潜在风险,因此国产数据库应运而生,以保障数据的安全性和完整性。

回顾上世纪90年代,Oracle在中国市场的影响力巨大,几乎占据了数据库市场的主导地位。提到Oracle的历史,不得不提到一个有趣的小插曲:

1997年1月27日,Oracle创始人拉里·埃里森乘专机抵达北京。为了迎接这位大老板,冯星君安排了国宾车队,车队甚至开到了飞机跑道旁,气势颇为威风。然而,当飞机门打开后,接机的人等了20分钟,直到一位穿着防弹衣的黑人保镖从飞机上跳下来,他要求车队的所有车门都打开,并对车队进行炸弹检查。此时,面对着来自美国的大老板和同样不容小觑的国宾车队,这位保镖显得有些尴尬,但最终忍了下来。

第二天,埃里森计划在长城拍摄一则关于网络计算机的宣传片。冯星君事先为此安排了20名小学生参与拍摄。拍摄约定在早上8点开始,但埃里森一直没有起床,直到9点才动身。当天气温低至零下20多度,而大巴车没有暖气,冯星君焦急地请求埃里森尽快启程,甚至因担心小孩受冻而快要落泪。最终,埃里森勉强同意出发。

然而,不久后,埃里森突然改变计划,他通过副手通知冯星君,说自己在长城玩得很开心,不打算按原计划中午回去,于是取消了下午与某位领导的会面。冯星君震惊之余,几乎无法承受这个变故。他毫不犹豫地回复:“如果2点钟之前看不到埃里森,我就辞职,无法承担这个责任。”最终,埃里森急忙赶回人民大会堂,保镖依然紧随其后,场面一度闹得非常尴尬。

这虽然是一个广为流传的小故事,但也能看出当时Oracle在中国的强势地位。随着国产数据库的崛起,甲骨文的境况发生了巨大变化。2019年,甲骨文宣布裁撤了北京研发中心的500名员工,这一举动也没有让人感到太多意外。甲骨文在中国的业绩逐渐下滑,而其创始人埃里森的傲慢态度也在一定程度上加速了这一进程。曾经,他直言不讳地表示:“中国工程师永远不能超越美国工程师,因为中国是美国最大的竞争对手。”

这番话,显示了他对于中国的狭隘视角,也揭示了格局上的局限。毕竟,一个大公司的未来不能仅仅依靠这种偏见和闭塞的心态。

无论是芯片、操作系统,还是数据库的国产化历程,都向我们传递了一个重要的教训:核心技术的突破没有捷径,依赖市场换技术往往只是空想。真正能够依靠的,永远只有自己。

国产数据库的分类


由于国产数据库起步较晚,初期大多数产品都是以国外主流数据库为参考进行开发的。经过一段时间的分析和整理,我们发现,尽管国产数据库种类繁多,但它们的设计和架构大多借鉴了Oracle、MySQL、PostgreSQL、Informix等国外知名数据库的特点。因此,我们将目前主流的国产数据库进行了归类总结,具体分类如下:

可以看出,国产数据库主要分为四大系列,分别基于Oracle、MySQL、PostgreSQL和Informix等经典数据库的设计理念。


Oracle系

K-DB是浪潮与韩国顶级企业级软件提供商Tmax公司共同研发的数据库系统。从外观和操作上来看,它与Oracle非常相似,甚至在使用时,很容易让人误以为是在操作Oracle。至于Tmax是如何开发出这样一款强大的数据库,这并不是我们今天要讨论的重点。关键是,它与Oracle的相似度很高,而且由浪潮参与研发,作为国产数据库的代表之一,还是无法避免的。

另外,达梦MD也一直强调自己与Oracle的相似之处,特别是在集群、数据复制(DG)以及开发的SQL和运维命令方面。与K-DB一样,达梦也在功能上力求与Oracle接轨,甚至宣称其发展战略就是要替代Oracle。虽然这两个数据库在外观和功能上有很多相似之处,但它们是否有更深层次的联系,我们无法得知。至于其稳定性,还需要进一步的验证。


MySQL系(均分布式)

SequoiaDB(巨杉数据库)是一款国产数据库,官网表示已在超过50家银行的核心生产系统中得到应用,并且实现了与MySQL语法的100%兼容。MySQL的事务处理核心依赖于存储引擎,通常使用的Innodb引擎归Oracle所有,而巨杉数据库通过自研存储引擎,替换了Innodb,因此能够完全兼容MySQL的语法。

GoldenDB是中兴通讯开发的数据库系统,基于MySQL架构。据了解,中信银行的核心系统就使用了GoldenDB。

TDSQL是腾讯自研的一款分布式数据库,基于MySQL开发,主要面向云计算场景,注重云上应用的性能和扩展性。

TIDB由PingCAP公司研发,使用Go语言开发,兼容MySQL协议和生态,具有分布式特性。目前,亿联银行已经在核心系统中应用了TIDB。

OceanBase是阿里巴巴开发的数据库系统,阿里内部已经完全用OceanBase替代了Oracle,特别是在“双十一”等大规模电商活动中表现出色。尽管如此,OceanBase是否能够广泛应用于传统金融行业,还需要更多实践验证。

PolarDB同样是阿里巴巴推出的数据库,主打云计算平台,并且定位与腾讯的TDSQL类似。尽管PolarDB和OceanBase在一些技术上有相似之处,但PolarDB更侧重于云原生架构。


PostGreSQL系

GaussDB是华为推出的一款数据库,已经在多个行业中得到广泛应用,特别是在工商银行的项目中成功替代了Teradata。这标志着华为在数据库领域的技术实力,也为其在大数据和云计算等领域的未来发展奠定了坚实基础。华为的高斯数据库展现出其强大的技术积累,未来有望像其手机业务一样,在数据库领域实现突破。

KingBaseES是由中国人民大学及国内数据库领域的专家团队开发的一款数据库系统。基于PostgreSQL(PG)的技术架构,KingBaseES主要面向国内市场,提供与PG兼容的功能和性能。

HighGo DB是一款由瀚高公司开发的国产数据库,瀚高公司是中国唯一一家专注于基础数据库系统软件研发的民营企业,致力于自主创新和技术突破。瀚高在数据库技术领域具有一定影响力,是国内优秀的高新技术企业之一。


Informix系

Informix是一个历史悠久的数据库系统,为什么它也被归类为国产数据库呢?主要是因为IBM将Informix的源代码授权给了中国的南大通用。值得注意的是,这并不是简单的购买,而是授权协议。这意味着,虽然南大通用拥有了源代码,但若IBM后续对Informix进行升级和改造,南大通用仍然需要支付相关费用。因此,虽然早期Informix已经在许多场景中被Oracle等其他系统替代,但如今要完全替换掉Informix系的数据库仍然具有一定难度。

Gbase则是南大通用基于Informix开发的一款国产数据库,继承并优化了Informix的技术架构。由于获得了Informix的源代码,Gbase在功能上得到了进一步的增强。可以说,Gbase的推出为国产数据库行业注入了一剂强心针,但能否在市场中获得广泛的认可,还需要用户的实践和口碑来验证。

国内数据库迎来井喷发展?


数据库系统的雏形出现在20世纪60年代。当时,计算机逐渐普及,数据管理的需求也日益增加,特别是在数据共享和协同工作方面,传统的文件系统已经无法满足这些需求。于是,能够集中管理并支持数据共享的数据库管理系统(DBMS)应运而生,成为解决这一问题的重要工具。

随着关系模型理论的不断发展和完善,数据库系统逐步走向成熟。以Oracle、DB2和SQL Server等商业数据库为代表的关系型数据库,开始广泛应用于企业环境中,标志着数据库行业进入了第一个快速增长的阶段。

关系型数据库长期以来的一个主要问题是高成本,通常只有大企业才能负担得起。这使得许多中小型企业在业务扩展时,迫切需要一种更经济且功能强大的数据库解决方案。在这种需求推动下,MySQL、PostgreSQL等开源数据库应运而生,它们以免费的形式提供,同时简化了配置和使用,使得更多企业能够承担并且轻松使用数据库。这标志着数据库发展的第二波浪潮的到来,这一波浪潮对数据库的普及产生了深远影响。

进入2000年左右,由于基础架构尚未完全跟上,传统的集中式解决方案无法满足日益增长的需求。此时,以Cobar、MyCAT为代表的中间件技术开始出现,它们通过分布式架构弥补了集中式系统的不足。到了2010年,随着技术的成熟,以Google Spanner、OceanBase等为代表的原生分布式数据库系统逐步走向市场,并陪伴互联网行业度过了高速发展的十余年,这些产品在不断打磨和优化中逐渐商业化。

伴随着互联网应用的快速发展,现代业务处理的数据量不断增加,并且频繁面临瞬时性高峰业务压力。应用架构借助服务化架构和容器技术,具备了更强大的数据处理能力和弹性伸缩能力。因此,数据库也必须具备海量数据处理和动态扩展的能力。同时,业务的分布式和垂直拆分要求数据库能够支持分布式架构,但如何保证分布式系统中的状态数据一致性,如何管理大量的数据库实例,成为了对传统集中式数据库架构的一大挑战。

互联网时代带来了许多新的挑战,传统的数据架构已经无法有效应对这些问题。如果仍然依赖外挂、中间件或通过拼接各种外部工具来处理这些复杂的情况,结果只能是增加系统的复杂性和风险。因此,构建现代应用架构就如同在摩天大厦上打基础,必须从根本上重构数据架构,才能解决当前的挑战。

近年来,随着国际局势的变化,国外对中国高科技产业的制裁力度加大,数百家中国企业被列入出口管制名单。俄乌冲突爆发后,多个国际IT巨头停止对俄罗斯的产品供应。这些不可控的国际因素,再加上国内数字经济转型的需求,愈加突显了我国IT产业自主可控的重要性。为了解决核心技术的“卡脖子”问题,科技自立自强已经成为国家战略,通信、计算机、军工、医疗等领域正在成为国产替代的重点。

如今,国产数据库的发展迎来了蓬勃的局面。除了传统的数据库厂商(如人大金仓、达梦、神舟通用、南大通用等),还涌现了许多“云数据库”产品(如阿里云、腾讯云、华为云等)。此外,还有许多新兴数据库解决方案,如PingCAP的TiDB、涛思数据的时序数据库TDengine、欧若数网的Nebula Graph图数据库等。国产数据库的产品种类不断丰富,逐渐在国内外的流行度榜单上占据一席之地。

国产数据库正逐步迎来属于自己的时代,走向更广阔的市场空间。

联 系 我 们———————————————
邮箱号码:Contact@hoesltech.com           
电话:0571-86560555
售后服务热线:400-999-2369
商务合作:http://www.hoesltech.com/


文章转载自浙江宏仑数字科技有限公司,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论