推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 御数坊 > 【御数·译文】数据库管理简史

【御数·译文】数据库管理简史

御数坊 2018-10-26
点击上方“公众号”可以订阅哦


出处:http://www.dataversity.net/brief-history-database-management/

译者:朱瑞




数据库管理系统允许人们从计算机组织,存储和检索数据。 这是一种与计算机的“存储内存”通信的方式。在计算机的早期阶段,“穿孔卡”用于输入,输出和数据存储。Punch卡提供了一种快速输入数据和检索数据的方法。 Herman Hollerith(赫尔曼·霍勒瑞斯)【1】因其在1890年用于编织机的打孔卡作为机械制表机的记忆而得到赞誉。 

进入数据库管理系统(DBMS)。可以组织数据库作为信息的集合,以便数据库管理系统可以访问和提取特定信息。1960年,Charles W.Bachman(查理士·巴赫曼)【2】设计了第一个“DBMS集成数据库系统”。IBM不想被排除在外,创建了自己的数据库系统,称为IMS。两个数据库系统都被描述为导航数据库的先驱。

到20世纪60年代中期,随着计算机发展速度越来越快和灵活性越来越高,计算机开始变得流行,许多通用数据库系统也变得可用。因此,客户要求制定标准,从而导致巴赫曼组建数据库任务组。该小组负责设计和标准化一种称为通用业务导向语言(COBOL)的语言。数据库任务组于1971年提出了这一标准,后来也被称为“CODASYL方法”。

CODASYL方法是一个非常复杂的系统,需要大量培训。它依赖于使用链接数据集的“手动”导航技术,该数据集形成了一个大型网络。 搜索记录可以通过以下三种技术之一完成:

(1)使用主键(也称为CALC键)

(2)将关系(也称为集合)移动到另一个记录

(3)按顺序扫描所有记录

最终,CODASYL方法失去了它的普及,因为市场上出现了更简单,更易于使用的系统。

Edgar F.Codd(埃德加·科德)【3】在IBM开发硬盘系统方面工作,他对CODASYL方法和IMS模型缺乏搜索引擎感到不满。他在1970年撰写了一系列论文,概述了构建数据库的新方法。他的想法最终演变成一篇题为“大型共享数据库的数据关系模型”的论文,该论文描述了存储数据和处理大型数据库的新方法。记录不会存储在自由格式的链接记录列表中,如CODASYL导航模型,而是使用“具有固定长度记录的表”。

IBM在IMS模型上投入了大量资金,并且对Codd的想法并不十分感兴趣。幸运的是,一些不为IBM工作的人感兴趣。1973年,Michael Stonebraker(迈克尔·斯通布雷克)【4】和Eugene Wong(当时加州大学伯克利分校)决定研究关系数据库系统。 该项目被称为INGRES(交互式图形和检索系统),并成功地证明了关系模型可以是高效和实用的INGRES使用一种称为QUEL的查询语言,反过来迫使IBM在1974年开发SQL这种方法更先进(SQL于1986年1月1987年成为ANSI和OSI标准)。SQL很快将QUEL替换为功能更强大的查询语言。 

【御数·译文】数据库管理简史

关系型数据库是存储和处理结构化数据的有效方式。“非结构化”数据(艺术,照片,音乐等)变得更加普遍,数据处理的速度要求变得更快。非结构化数据既不是非关系数据也不是模式数据,而关系数据库管理系统根本就不是为处理这种数据而设计的。

NoSQL

NoSQL(“不仅仅是”结构化查询语言)是作为对Internet的响应以及对更快速度和非结构化数据处理的需求而出现的。一般来说,NoSQL数据库在某些用例中更适用于关系数据库,因为它们具有速度和灵活性。NoSQL模型是非关系型的,并使用“分布式”数据库系统。这种非关系系统使用组织数据的特殊方法,能很快处理大量不同类型的数据。

它不仅能处理结构化和非结构化数据,还可以非常快速地处理非结构化大数据。 NoSQL的广泛使用可以与Twitter,LinkedIn,Facebook和Google提供的服务相关联。这些组织中的每一个都存储和处理大量非结构化数据。这些是NoSQL优于SQL和RDBM系统的优点:

(1)更高的可扩展性

(2)分布式计算系统

(3)降低成本

(4)灵活的架构

(5)可以处理非结构化和半结构化数据

(6)没有复杂的关系

不幸的是,NoSQL确实遇到了一些问题。一些NoSQL数据库可能非常耗费资源,需要高RAM和CPU分配。如果您的开源NoSQL系统出现故障,也很难找到技术支持。

【御数·译文】数据库管理简史  

硬件可能会出现故障,但NoSQL数据库的设计采用的分布式架构包括数据和功能的冗余备份存储。它通过使用多个节点(数据库服务器)来实现。如果一个或多个节点发生故障,其他节点可以继续正常操作并且不会丢失数据。如果使用得当,NoSQL数据库可以提供极高规模的高性能,而且永远不会关闭。一般来说,有四种NoSQL数据库,每种都有特定的品质和特征。

1.文档存储

文档存储(通常称为面向文档的数据库)管理,存储和检索半结构化数据(也称为面向文档的信息)。文档可以描述为独立的单元,可以提高性能并使数据更容易在多个服务器之间传播。文档存储通常带有强大的查询引擎和索引控件,使查询变得快速而简单。文档存储的示例有:Mongo DB和Amazon Dynamo DB

面向文档的数据库存储数据库中给定“对象”的所有信息,并且存储中的每个对象可能与其他对象完全不同。这使得将对象映射到数据库更容易,并使Web编程应用程序的文档存储非常有吸引力。(“对象”是一组关系。文章对象可以与标签[对象],类别[另一个对象]或注释[另一个对象]相关。)

2.列式存储

使用列的DBMS与传统的关系数据库系统完全不同。它将数据存储为列的一部分,而不是行。焦点从行到列的更改使列数据库在大量数据存储在单个列中时可以最大化其性能。这种优势可以扩展到数据仓库和CRM应用程序。列式数据库的示例包括Cloudera,Cassandra和HBase(基于Hadoop)

 

3.键值对存储

键值对数据库对购物车数据或存储用户配置文件很有用。 使用主键完成对数据库的所有访问。通常,没有固定的架构或数据模型。可以通过使用随机数据块来识别密钥。当数据元素之间存在复杂关系或者需要通过主键以外的方式查询数据时,键值存储“不”非常有用。 键值存储的示例有:Riak,Berkeley DB和Aerospike。

元素可以是存储数据的任何单个“命名”单元,其可能包含或可能不包含其他数据组件。

4.图数据库

位置感知系统,路由和调度系统以及社交网络是图数据库(也称为图数据存储)的主要用户。这些数据库基于图论,可以很好地处理可以显示为图形的数据。它们提供了大数据的功能性,连贯性。

它通过将数据关系存储为实际关系,与关系数据库和其他NoSQL数据库不同。 这种类型的关系数据存储可以减少不断发展的模式与实际数据库之间的连接。 它具有互连的元素,使用它们之间的不确定数量的关系。 示例图数据库是:Neo4j,GraphBase和Titan。

 

Polyglot Persistence

Polyglot Persistence是“多语言编程”的衍生产品,这是Neal Ford于2006年开发的概念。原始想法促进应用程序使用混合语言编写,理解特定语言可以轻松解决某种问题,而另一种语言会有困难。 不同的语言适合解决不同的问题。

许多NoSQL系统在节点和大型集群上运行。这样可以在每个节点上实现显着的可扩展性和冗余数据备份。在每个节点使用不同的技术支持Polyglot Persistence的理念。 这意味着“存储”多种技术的数据,了解某些技术可以轻松解决一种问题,而其他技术则不然。与不同数据库管理技术通信的应用程序使用每种技术最适合实现最终目标。


了解更多:

【1】Herman Hollerith(赫尔曼·霍勒瑞斯):

【2】Charles W.Bachman(查理士·巴赫曼):1973年图灵奖得主,网状数据库之父,DBTG之父...

【3】Edgar F.Codd(埃德加·科德):1981年图灵奖得主,“关系数据库之父”,密执安大学哲学博士,IBM公司研究员...

【4】Stonebraker(迈克尔·斯通布雷克):2014年图灵奖得主,美国工程院院士、IEEE软件系统奖、冯诺依曼奖和第一届SIGMOD Edgar F. Codd创新奖...


作者简介:

朱瑞,资深软件架构师,超过11年IT从业经验,数据治理相关经验7年,曾从事过软件开发、产品架构设计、系统集成、数据治理等工作。参与过银行、通信、电力、航空、证券、物流等行业数据治理项目,在数据治理领域,拥有丰富的理论与实践工作,注重实施落地,关注成果价值。


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《【御数·译文】数据库管理简史》的版权归原作者「御数坊」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注御数坊微信公众号

御数坊微信公众号:DGWorkshop_CN

御数坊

手机扫描上方二维码即可关注御数坊微信公众号

御数坊最新文章

精品公众号随机推荐