速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

数据建模 NoSQL 数据库的概念和对象建模符号

  • 2018-10-28
  • 本文字数:2652 字

    阅读完需:约 9 分钟

在最近的 2018 数据架构峰会上,Ted Hills主持了一个研讨会,该研讨会的主题是关系数据库和 NoSQL 数据库的数据建模。

他表示,NoSQL 运动帮助了数据库社区明白了两件事。首先,并非每个应用程序都需要 ACID,并且,放宽 ACID 以能扩展到互联网规模。其次,表格数据组织很适合大量的数据,但未必适合所有的数据集。但是,随着时间的流逝,SQL/NoSQL 的显著区别将会消失,DBMS 用户则会因为有了更多选择而获得收益。

实体关系(entity-relationship,简称 ER)建模技术已经在 SQL 数据库上应用很长时间了,但是,对于 NoSQL 数据库来说,它们的工作方式是不一样的。在研讨会上,Hills 讨论了概念和对象建模符号(the Concept and Object Modeling Notation,简称 COMN ,发“common”的音)。COMN 用于表示新的数据库结构,不同的 NoSQL 数据库均支持该数据库结构。

他谈到了对以 COMN 符号表示新的多模型 NoSQL 数据库的承诺。无论是数据建模人员,还是程序开发人员都可以使用它,开发人员能够在 COMN 中用数据对软件建模。Hills 也讨论了建模无模式(schema-less)数据库的方法。

InfoQ 与 Hills 进行了对话,讨论了与 NoSQL 中的数据建模和 COMN 符号有关的话题。

InfoQ:您能否对概念和对象建模符号(COMN)下个定义?

Ted Hills:概念和对象建模符号(COMN)是一种数据建模符号,其能用一种熟悉的图形符号(框和线)来表示需求、图形和本体性谓词、逻辑数据、软件类结构和 NoSQL 及 SQL 的物理实现,该图形符号能对这些非传统实现中层之间的重要映射进行建模。

InfoQ:您能否谈谈 NoSQL 数据库背景中的概念和对象建模符号(COMN)?以及数据建模和关系数据库建模之间的不同之处在哪里?

Hills:实体关系(Entity-relationship,简称 E-R)和其他符号假设数据将最终存储于表格中。随着 NoSQL 数据库的出现,现在我们可以把数据存于图形和文档中,也可以存储于其他表格结构中,如宽列表(wide-column table)、面向列的表格和键 / 值对。我们不再假设从逻辑数据设计到物理实现的映射接近 1:1。此外,物理实现建模,包括非表结构(non-tabular structure)建模,甚至查询建模,都变得比以往更为重要。COMN 使各种各样的物理结构和所代表的数据的重要映射得以表达。

InfoQ:对于每种 NoSQL 数据库,数据建模方法是不同的吗?比如,像 Cassandra 这样的宽列数据库(wide-column database)?以及像 Neo4j 这样的图形数据库?

Hills:是的, 对大多数 NoSQL 数据库类型来说,数据建模的重点是不同的。属性图形数据模型关注于关系,而后用数据属性来注释节点和关系。知识图形数据模型也关注关系,但添加子 / 超类型关系。文档(XML 和 JSON)数据模型把层次关系放在首位。因此,尽管物理数据模型的焦点随每个 NoSQL 数据库的类型而改变,但 COMN 可以用于每种数据库。此外,它可以代表所有这些非传统数据结构和表(还没消失),并把物理模型和逻辑数据模型相关联,理想情况下,逻辑数据模型不会受物理表示选择的影响。

InfoQ:您能谈谈多模型 NoSQL 数据库吗?还有,它们如何能有助于不同数据结构的数据管理?

Hills:在 NoSQL 的世界里,必须为你的数据选择一个物理表示,而且这些数据必须是最适合你的应用程序的。是否需要随机写入或只在日志的末尾写入?是否需要围绕分层文档结构来组织数据?或是围绕关系来组织数据?很多 NoSQL DBMS 只提供一种方法来组织数据。如果需要改变数据组织,或需要更多的方式来组织数据,那么就不得不改变整个 DBMS。这涉及到处理不同的供应商、不同的支持需求、不同的编程语言和 API 等等。它可不是个平凡的数据库。如果相反,使用支持多个数据组织的混合 DBMS,那么使用多种方法来组织你的数据就变得更容易了,并且如果要改变主意也不是件难事。

InofQ:一般而言,微服务如何有助于数据建模?

Hills:我不会说微服务本身有助于数据建模任务,但是,对数据架构,它们的确有显著的积极影响。微服务必须设计成自给自足的:它始终必须持有本地所需的所有数据。这涉及两种类型的数据:微服务创建和维护的数据,以及微服务必须从外部源获取的数据。对微服务来讲,数据如何存储在微服务外部的物理模型不重要,但是,数据如何到达微服务的模型却很重要。那可以是 XML 或 JSON 文档。数据模型需要表示文档结构及微服务将如何存储数据,并需要表达它们之间的映射关系,这种关系可能具有重要意义。COMN 能够同时表达模型和它们的映射关系。

InofQ:您在会议演示中谈到了状态和陈述。您能否讨论一下如何在数据库中建模这些概念?

Hills:每个 DBMS,无论是 NoSQL 还是 SQL,最终,都是把无意义的物理状态(高电压和低电压,或者开和关)和有意义的事物建立映射关系,从而表示数据。我们把这个映射称为物理表示。在更高的层次上,我们使用表、图形和文档等结构来表示关系。理解的关键是逻辑数据模型应该完全忽略这些物理映射问题。逻辑数据模型应该把重点完全放在数据的含义上以及数据如何按照逻辑表示问题域内的数据。但是,在从逻辑模型转移到物理模型时,保留从物理模型到逻辑模型的映射关系以及物理表示设计都变得至关重要了。

InfoQ:NoSQL 数据库领域的新兴趋势是什么?

Hills:主流趋势是,NoSQL 和 SQL 之间的差别变得越来越少。对于初学者来说,术语“NoSQL”开始意味着“no SQL(没有 SQL)”,也即不支持表数格据库的标准结构化查询语言。然而现在,它意味着“not only SQL(不只是 SQL)”,这意味着越来越多的“NoSQL”DBMS 开始支持 SQL。在早期,NoSQL 不提供 ACID 强度交易,而这对金融应用程序是至关重要的。现在,很多 NoSQL DBMS 实现了 ACID。同时,一些 SQL DBMS 正允许放宽 ACID,使它们能够扩展到和一些 NoSQL DBMS 几乎相同的水平。有些混合 DBMS 支持表格和非表格数据组织。最终可能会出现,每个 DBMS 都支持各种物理数据组织,以及 ACID 和非 ACID(“BASE”),所有这些都由用户选择。SQL 诞生于表格时代,目前还没有替代者,而这个事实将会阻碍这一完整的转型。但是,COMN 可以适用于所有这些数据组织。

Ted 还表示,传统建模工具供应商对基于每次三层和一个应用的数据模型的观点很有局限,NoSQL 建模工具专注于物理建模以排除逻辑数据模型和真实世界模型。像 COMN 这样的工具能有助于数据建模,COMN 的承诺是代表数据管理的新多模型世界。

关于 COMN 的更多信息,包括完整规范、白皮书和 Visio 模板,可以从 DATAVERITY 网站免费获取。

查看英文原文:数据建模 NoSQL 数据库的概念和对象建模符号

感谢冬雨对本文的审校。

2018-10-28 04:401664
用户头像

发布了 199 篇内容, 共 85.8 次阅读, 收获喜欢 295 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

双非本硕四面百度竟意外成功?看完我的面试经历 网友都称:过于优秀

比伯

Java 编程 架构 面试 计算机

漫画:什么是 “智能供应链” ?

京东科技开发者

云计算 供应链 智能供应链

了不起的 Deno:带你极速获取各大平台今日热榜

华为云开发者联盟

Java 安全 deno

语音识别端到端模型解读:FSMN及其变体模型

华为云开发者联盟

大数据 模型 语音识别

「linux」Socket缓存是如何影响TCP性能的?

linux大本营

Linux 后台开发 socket 架构师 TCP/IP

深度剖析github star数15.1k的开源项目redux-thunk

徐小夕

Java GitHub 大前端 React

解锁高速 IT 团队利器:Jira Service Management

Atlassian

DevOps Atlassian Jira ITSM ITIL

专访阿里云 Serverless 负责人:无服务器不会让后端失业

阿里巴巴云原生

Serverless 微服务 云原生 CloudNative 无服务器

为什么short、byte会被提升为int?及基本类型的真实大小

烫烫烫个喵啊

Java JVM

年轻人,快来看看分布式与集群的区别是什么?

程序员小灰

redis 分布式 后台开发 集群 Linux服务器开发

LiteOS基于Sensorhub的超声波模组移植

华为云开发者联盟

物联网 LiteOS 超声波

华为云&跟谁学|华为云API入门学习赛·AI人脸识别 未来工程师梦想的起点

DT极客

高速公路二维码定位报警系统搭建解决方案

t13823115967

高速公路二维码定位报警 智慧公安

🤳你要悄悄变优秀,然后惊艳所有人

蚂蚁集团移动开发平台 mPaaS

mPaaS 智能投放 界面改版 产品资讯

Gradle doesn't run because it can't find tools.jar in JRE

mengxn

kotlin Gradle

开发技巧 | mPaaS 小程序自定义事件,如何取消注册?

蚂蚁集团移动开发平台 mPaaS

小程序 API mPaaS

深入解读:KubeVela 与 PaaS 有何不同?

阿里巴巴云原生

阿里云 开源 容器 云原生 CloudNative

Linux常用命令速查

jiangling500

linux命令

Forsage智能合约系统APP开发|Forsage智能合约软件开发(现成)

系统开发 现成系统

淦!终于有人把Java 8和Spring 5完美合体了,业界堪称“神迹”

Java架构追梦

Java spring 架构 面试 springboot

记一次GC频繁且间隔较长解决实战总结

AI乔治

Java 架构 JVM GC

从零开始搭建Kafka+SpringBoot分布式消息系统

小Q

kafka zookeeper 学习 面试 springboot

AWS IoT Core设计解析

soolaugust

边缘计算 AWS 工业4.0 工业物联网 iiot

接口测试之post常见数据提交方式

测试人生路

post 接口测试

360OS张焰:AI视觉在教育中的应用

ZEGO即构

整天都在讨论使用SpringBoot,可你居然连缓存都不清楚

小Q

Java 缓存 学习 面试 springboot

区块链落地开发,区块链版权应用搭建

t13823115967

区块链+ 区块链落地开发 区块链版权应用搭建

小心踩雷,一次Java内存泄漏排查实战

AI乔治

Java 架构 JVM 内存

高并发的核心 - AQS【哪些琐是基于AQS来实现的】

Java架构师迁哥

有奖讨论|作为程序员,女朋友是怎么吐槽你的?

Simon郎

女朋友 话题讨论

数据结构与算法系列之跳表(GO)

书旅

数据结构 算法 Go 语言

数据建模NoSQL数据库的概念和对象建模符号_语言 & 开发_Srini Penchikala_InfoQ精选文章