据架构是一系列决定收集哪些数据,如何在数据库系统中使用、处理和存储数据的规则、策略以及模型。例如,数据集成是依赖于数据架构用于集成过程中的指令。如果没有从编程范式转换到数据架构范式,现代计算机将会变得更加笨拙迟钝。

对于早期的计算机,创建过分简单化的程序是为了处理特定类型的计算机问题,甚至没有考虑过数据集成的概念,每个程序之间都是单独分开的。二十世纪四十年代至七十年代,程序处理是最主要的问题,有关建立数据架构的问题根本考虑得少之又少,甚至不在考虑的范围之内。程序员致力于让计算机通过执行特定的操作,以支持组织的短期目标。只有定义为“程序需要”的数据被使用,计算机才不会被用于长期的数据存储,恢复数据需要能够编写、检索特定信息的程序,而这相当耗费时间和金钱。

编程范式转换为数据库架构范式

1970年,Edgar F. Codd公开发表题为“大型共享数据库数据的关系模型”的论文,文中提到了组织起数据的相关步骤,Codd的理论基于运用于集合论里面的数学运算,结合了一列规则,以确保数据被存储在最小冗余里。他的方法成功的创建了数据库架构,简化了计算机的效能。在Codd的理论之前,COBOL程序和大多数其他的程序都是按等级排列的,这样的排列使得搜索有必要从总类别开始,然后再逐渐缩小搜索类别。而Codd提供的相关途径则允许用户更加有序、有效地利用二维表储存数据。(Codd 称之为“关系法”)

1976年,在麻省理工学院工作的Peter Chen发表题为“实体-关系模型对数据的统一视图”的论文,文中介绍了实体/关系建模,也就是今天被广泛熟知的“数据建模”。他以图表的形式生动形象地呈现了数据架构,两年后,Oracle宣布推出首款涉及业务的关系数据库管理系统(RDBMS)。

以计算机为工具工作的人们开始意识到数据架构比程序架构更加靠谱。它的稳定性源自重新设计系统的中间部分,并将进程彼此隔离(类似于程序员将程序隔离的方式),重新设计的关键在于添加了数据缓冲区。

缓冲区最初是一个临时记忆储存系统,旨在从原始计算机的内存中快速移除数据,这样计算机就不会陷入运阻,并能继续解决问题。 然后,数据从缓冲区传输到打印机,“慢慢”打印出最新的计算结果。今天的数据缓冲区的版本是一个由设备共享的区域,或者一个程序的进程,它们以不同的速度运行,或者有不同的优先级。现代缓冲区允许每个进程(或设备)在没有冲突的情况下运行,与缓存类似,缓冲区充当“中间存储空间”,但也有助于协调不同的活动,而不是简单地简化内存访问。

商业界很快就意识到Edgar F. Codd和Peter Chen的见解的优势,新的数据架构设计显而易见的比程序结构更快更灵活更稳定。此外,他们的见解促使计算机编程社区发生了文化上的转变,数据结构现在被认为是远比程序重要得多。

假设:数据在范式转换中丢失

数据架构的进化需要消除三个基本的假设(假设的定义:一些被认为是理所当然的事情;一种缺乏有力证据的猜测,却被当作事实来看待。)

假设1:每个程序必须和其他程序隔离开来。这种隔离论导致了程序代码、数据定义和数据条目的重复。Codd的关系法解决了不必要的副本麻烦,他的模型将数据库的模架或布局从物理信息存储中分离出来(成为数据库系统的标准)。他的关系模型指出,数据不需要存储在单独的、孤立的程序中,数据条目和程序编码不需要不必要地复制。一个单独的关系数据库足以用于存储所有的数据,所以,一致性可能(几乎可以)得到保证,并且也更易于查找错误。

假设2:输入和输出是对等的,设计上应该让他们相匹配。目前,输出和输入设备的数据处理速率有很大差异,这与预想着两者以相同速度运行的期望是完全不同的。缓冲区的使用开启了实现输出、输入的区别对待,Peter Chen的革新揭示了数据创造者和数据用户之间的差异。数据用户通常希望从潜藏在数据库下的不同部分看到大量的信息以作比较,并从中提取最有用的信息。数据创造者,从另外一方面来说,则专注于处理数据,一次一个进程。数据创造者(输入)和数据用户(输出)两者的目的是截然不同的。

假设3:企业组织应该反应在他们的计算机程序里面。随着缓冲区和关系数据库的运用,“程序”这个概念应该会逐渐模仿公司的结构,更加灵活的数据库取代了企业在提供有用结构方面的角色,同时收集和处理信息。现代数据模型既反映了企业的组织结构,也反映了用于实现目标的工具。

SQL和数据架构

Codd的关系法导致结构化的查询语言(SQL),在上世纪八十年代成为了标准的查询语言。关系数据库变得非常受欢迎,促进了数据库市场的发展,这反过来又导致了等级数据库模型的没落。

二十世纪九十年代早期,许多主要的计算机公司仍然专注于程序,试图销售昂贵而复杂的数据库产品。回以他们的则是新的、更具竞争力的企业开始发布工具和软件(如:Oracle开发人员、PowerBuilder)用来增强系统数据架构。二十世纪九十年代中期,互联网的使用推进了数据库行业的显著增长以及计算机的总体销售情况。

数据库架构性的设计,引领了数据管理的蓬勃发展。企业已经发现了信息本身对公司的价值,二十世纪九十年代以后,诸如“数据管理员”、“数据库管理员”的标题开始出现。数据管理员的职责在于保证数据使用中的高质量和完整性。

关系数据库管理系统使创建一个呈现概念模式(某种类型的映射)的数据库成为可能,然后提供数据库的不同透视图,这是为数据创建者和数据使用者设计的。另外,每个数据库管理系统都可以将其物理存储参数与列结构和表分开。

NoSQL和数据架构

NoSQL不是一个程序,它是一个数据库管理系统,使用的是相当简单的架构。在处理大数据和不需要关系模型时,它是很有用的。NoSQL数据库系统在管理和存储数据的方法和过程中是非常多样化的。SQL系统在功能方面通常比NoSQL系统具有更大的灵活性,但是缺乏NoSQL系统的可伸缩性。但是,现在有许多商业软件包可以结合“两个世界的最佳方式”,而且更多的软件包将会一直进入市场。

最近,一些机构组织在DATAVERSITY的文章和访谈中(还有许多其他的可能性)提供了一种数据架构解决方案,利用关系数据库中常见的工具来处理大数据。Kyvos Insights公司销售与hadoop存储系统兼容的软件,它们的“Hadoop/OLAP ”组合在不同程度上促进了非结构化和结构化数据的处理,使得人们可以相对轻松地对大数据进行分析。

Hackolade公司也销售一款软件包,采用一种用户友好数据模型提供了“高功能”的工具来处理NoSQL。该软件将NoSQL融合了可视化图形的简明性,结合Hackolade其他工具一起使用,既减少开发时间,又提高了应用程序的质量。他们的软件目前和Couchbase、DynamoDB、MongoDB 模式兼容(他们计划未来能囊括更多NoSQL数据库)。

RedisLabs将他们的云计算与他们的软件包Redis Pack结合在一起,提供另一个架构解决方案。Redis Pack和它的云计算提供了三种优势:速度、持久性(保存您的信息),以及他们提供的数据类型的多样性。从本质上来说,Redis是一个“非常快”的NoSQL、键值数据存储,同时可以充当数据库、缓存和消息代理。

Reltio提供服务。他们已经创建了一个云管理平台,并提供完成处理大数据所需的工具和服务。他们提供研究人员,将来自多个来源的大数据与主数据管理(MDM)合并在一起,并开发统一的目标。Reltio的系统支持多种行业领域,包括零售、生命科学、娱乐、医疗保健和政府。

数据架构从早期就完全改变了,并且很可能是由于一些新的趋势,例如物联网、云计算、微服务、高级分析、机器学习和人工智能,以及像Blockchain这样的新兴技术,将会继续改变未来的发展方向。

本文作者:佚名

来源:51CTO

数据架构简史:转换中的范式相关推荐

  1. 以智能数据架构,挖掘增长金矿

    对很多技术团队来说,在搭建智能数据架构的过程中,或多或少会遇到一些疑惑和挑战,经过多次实践后,有些团队已经破除疑惑,成功探索出一条搭建智能数据架构之路,那么他们是如何实现这一技术的呢?在近日的个推技术 ...

  2. 以智能数据架构,挖掘增长金矿 1

    对很多技术团队来说,在搭建智能数据架构的过程中,或多或少会遇到一些疑惑和挑战,经过多次实践后,有些团队已经破除疑惑,成功探索出一条搭建智能数据架构之路,那么他们是如何实现这一技术的呢?在近日的个推技术 ...

  3. 2020数据架构师面试题库

    数据架构师面试问题不仅涉及特定于角色的主题,例如数据仓库解决方案,ETL和数据建模.实际上,面试官还会用脑筋急转弯,行为和情境问题来挑战您.那么,您如何为成功的数据架构师面试做准备? 在2020数据架 ...

  4. 微服务开发中的数据架构设计

    前言 微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性,可以实现业务之间的松耦合.业务的灵活调整组合以及系统的高可用性.为业务创新和业务持续提供了一个良好的基 ...

  5. Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲

    Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲 Java生鲜电商平台:   微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性, ...

  6. 云原生大数据架构中实时计算维表和结果表的选型实践

    简介: 随着互联网技术的日渐发展.数据规模的扩大与复杂的需求场景的产生,传统的大数据架构无法承载. 作者 | 志羽 来源 | 阿里技术公众号 一 前言 传统的大数据技术起源于 Google 三架马车 ...

  7. 微服务开发中的数据架构设计 1

    GitChat 作者:陈伟荣 原文:微服务开发中的数据架构设计 关注微信公众号:「GitChat 技术杂谈」 一本正经的讲技术 [不要错过文末彩蛋] 前言 微服务是当前非常流行的技术框架,通过服务的小 ...

  8. 大数据架构和模式(五):利用大数据识别保险行业中的欺诈业务案例

    大数据架构和模式(五):利用大数据识别保险行业中的欺诈业务案例 [复制链接]     pig2 1232 主题 2069 帖子 1万 积分 超级版主 积分 11358 收听TA 发消息 电梯直达 楼主 ...

  9. 数据架构师是什么?来看这本书中的介绍

    以下内容摘自<财务数据治理实战> 架构师(architect)是企业中对架构进行设计和管理的专家,架构师的主要职责是将业务语言转换成技术语言来表达技术或系统未来蓝图和落地实现的过程,确保企 ...

最新文章

  1. android网页打开摄像头,在android上,用WEB页面打开手机摄像头
  2. Mongodb源码分析--Replication之主从模式--Master
  3. pythin怎么根据月份获取月初和月末_数据统计丨7月份塑料市场明显回暖,8月份是否延续乐观行情?...
  4. 关于DataFormWebPart中CreatedModifiedInfo信息的分开使用
  5. LeetCode 357. 计算各个位数不同的数字个数(DP)
  6. CVPR 2020|打脸SOTA!不能忍,谷歌发起图像匹配挑战赛
  7. 实现公告板和本周热卖功能
  8. java用流实现复制功能_【java】IO流 实现简单的复制功能
  9. ajax post 数组
  10. 网页授权前端 java_在开发网页授权获取用户基本信息时code是null
  11. ios睡眠分析 卧床 睡眠_iOS 10 的「就寝」功能如何让我的睡眠变得更有规律
  12. opengl光照效果之点光源
  13. ElementUI 加载Loding组件
  14. Guys, what is better than sex?
  15. 谷歌浏览器自定义标签页 newtab
  16. 前端——js关闭页面方法
  17. 一文解析linux spinlock/rwlock/seqlock原理(基于ARM64)
  18. mqtt 变为乱码 接受16进制字节流_转战物联网#183;基础篇07-深入理解MQTT协议之控制报文(数据包)格式...
  19. java.lang.IllegalArgumentException: not found @HttpResponse from class java.lang.Object解决方法
  20. ubuntu安装迅雷

热门文章

  1. 大数据分布式集群搭建(5)
  2. struts2中使用json遇到的问题总结及示例程序
  3. java超级简单到爆的Excel导入导出(easypoi)
  4. C++_泛型编程与标准库(十)——set与map
  5. 补码还原为原码c语言,C语言知识汇总 | 12-整数(有、无符号数)在内存中的存储——原码、反码与补码...
  6. 一文快速入门分库分表中间件 Sharding-JDBC
  7. 工艺路线和工序有差别吗_ERP-工序与工艺路线
  8. typescript 叹号_TypeScript系列(五)最佳实践
  9. java 鸡兔统统_Java内存泄露介绍
  10. java locationuitool_Java JavaUI.getLibraryJavadocLocation方法代码示例