卓越的软件:从关系型数据库到NoSQL

卓越的软件:从关系型数据库到NoSQL第四部分 数据与智能时代互联网和万维网的创建释放了前所未有的数字信息洪流 这一新现实催生了对能够组织 管理 以及最重要的是 从这些数据中获取智能的复杂软件的需求 本最后一部分探讨了定义现代信息时代的两个关键软件领域的演变

欢迎大家来到IT世界,在知识的湖畔探索吧!

第四部分:数据与智能时代

互联网和万维网的创建释放了前所未有的数字信息洪流。这一新现实催生了对能够组织、管理,以及最重要的是,从这些数据中获取智能的复杂软件的需求。本最后一部分探讨了定义现代信息时代的两个关键软件领域的演变。首先,它追溯了数据库技术的历程,从为企业提供动力的结构化、可靠的关系型数据库,到为网络规模应用提供支持的灵活、可扩展的NoSQL数据库。其次,它描绘了人工智能领域的革命性进步,从早期的基于规则的专家系统,到如今正在改变各行各业的数据驱动的深度学习模型。

第8章:组织世界信息:从关系型数据库到NoSQL

几乎每一个重要应用的核心都有一个数据库,这是一个负责数据的持久存储和检索的系统。数据库技术的历史是一个不断演变的架构故事,每种架构都是为了满足其时代特定需求而设计的。第一次革命是关系模型,它为企业计算带来了结构、可靠性和强大的查询语言。第二次是NoSQL运动,它牺牲了部分结构以换取现代网络规模应用所需的大规模可扩展性和灵活性。这种演变不是一个替代的故事,而是一个专业化的故事,表明架构的卓越性总是取决于所解决问题的背景。

关系型革命:IBM的System R与Oracle

在20世纪70年代之前,数据库由僵化且复杂的层次模型和网络模型主导。1970年,IBM的一位研究员埃德加·F·“特德”·科德(Edgar F. “Ted” Codd)发表了一篇革命性的论文《大型共享数据库的数据关系模型》(A Relational Model of Data for Large Shared Data Banks),提出了一种新的、更简单的数据组织方式。在

关系模型中,数据存储在简单的表(称为“关系”)中,表由行和列组成,表之间的关系通过共享值建立。

为了证明该模型的可行性,IBM于1974年启动了一个名为System R的开创性研究项目。System R是一个关系型数据库管理系统(RDBMS)的原型,做出了几项开创性的贡献。最重要的是,它是SQL(结构化查询语言)的第一个实现,这是一种用于查询和操作数据的声明性语言,最终成为全球标准。System R项目还开创了许多至今仍在RDBMS中使用的核心技术,包括动态查询优化、事务管理和并发控制。

虽然System R仍然是一个研究项目,但其思想很快被商业化。1977年,拉里·埃里森(Larry Ellison)、鲍勃·迈纳(Bob Miner)和埃德·奥茨(Ed Oates)成立了一家名为关系软件公司(RSI)的公司,该公司后来成为甲骨文公司(Oracle Corporation)。1979年,RSI发布了Oracle第二版,这是世界上第一个商业上可用的基于SQL的RDBMS。Oracle的成功得益于其对关系模型和SQL的实现,以及其决定用C语言编写数据库,这使其能够在企业IT部门中普遍存在的大型机、小型机和个人电脑上移植。

像Oracle、IBM的DB2和微软的SQL Server这样的关系型数据库,在接下来的三十年里成为了企业计算无可争议的支柱。

它们的关键特性是严格遵守ACID属性(原子性、一致性、隔离性、持久性),这保证了数据库事务的可靠处理。这种可靠性对于金融、医疗、物流和电子商务等关键业务系统至关重要。

网络的兴起与新模型的需求

关系模型是为结构化数据和一致性而优化的。然而,20世纪90年代末和21世纪初互联网的爆炸性增长带来了一系列新的挑战,而传统的关系型数据库管理系统(RDBMS)并非为此设计。像谷歌、亚马逊和Facebook这样的网络规模公司正在处理:

  • 海量数据量: 用户生成的数据量比传统企业系统处理的数据量大几个数量级。
  • 非结构化和半结构化数据: 数据以文本、图像、日志和JSON文档的形式出现,这些数据不适合关系型表格的僵化、预定义模式。
  • 极高的可扩展性和可用性要求: 这些应用程序需要以极低的延迟为数百万并发用户提供服务,并且即使在服务器故障的情况下也要保持高可用性。

RDBMS的垂直扩展模型(使单个服务器更强大)成本太高且有其局限性。严格的模式使得快速迭代应用程序变得困难。需要一种新的架构方法。

NoSQL范式转变

为了应对这些挑战,新一代数据库应运而生,统称为NoSQL。这个术语通常被解释为“不仅仅是SQL”,它描述了一类多样化的数据库,这些数据库摆脱了关系模型,以优先考虑灵活性、可扩展性和性能。

NoSQL数据库建立在一套不同的原则之上。与关系系统的严格ACID保证不同,许多NoSQL数据库遵循BASE模型:Basically Available(基本可用)、Soft state(软状态)、Eventual consistency(最终一致性)。这意味着它们优先考虑可用性而非即时一致性,允许数据在不同副本之间出现短暂的不一致,但它们最终会“收敛”。这种权衡对于许多Web应用程序(例如社交媒体信息流)是可以接受的,因为在这些应用中,高可用性和低延迟比完美的即时一致性更为关键。

NoSQL范式的关键创新包括:

  • 灵活的模式: 大多数NoSQL数据库是无模式或具有动态模式的。这允许开发人员在没有预定义结构的情况下存储数据,使其成为现代应用程序中常见的非结构化和快速演变数据的理想选择。
  • 水平扩展(横向扩展): NoSQL数据库从一开始就设计为水平扩展。这意味着它们可以通过在许多商用服务器集群中分布数据和流量来处理增加的负载,这对于网络规模的工作负载来说是一种更具成本效益和可扩展性的方法。

这种范式催生了几种不同类型的NoSQL数据库,每种都针对特定的用例进行了优化:

  • 文档存储(例如,MongoDB, CouchDB)以灵活的、类似JSON的文档形式存储数据,使其成为Web应用程序后端和内容管理的天然选择。
  • 键值存储(例如,Redis, Amazon DynamoDB)是最简单的模型,以键值对的形式存储数据。它们提供极高的性能,是缓存、会话管理和实时竞价的理想选择。
  • 宽列存储(例如,Apache Cassandra, Google Bigtable)按列而不是行组织数据,使其在处理大型数据集(如时间序列数据、日志和大规模分析)的查询时非常高效。
  • 图数据库(例如,Neo4j)专门设计用于存储和遍历复杂的关系。它们是社交网络、推荐引擎和欺诈检测系统的理想选择。

NoSQL数据库的出现并没有使关系型数据库过时。相反,它创造了一个更加多样化和专业化的数据库格局。对于需要强事务一致性和结构化数据的应用,关系型数据库仍然是最佳选择。然而,NoSQL数据库已成为定义当今网络的现代大数据、实时和云原生应用的促成技术。

系列文章

(未完待续……)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/136825.html

(0)
上一篇 27分钟前
下一篇 14分钟前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信