热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数据模型:数字化转型的核心能力

前言业界数字化转型已经进入深水区,数据越来越受到大家重视,由于数据中台等等概念的兴起,大

前言

业界数字化转型已经进入深水区,数据越来越受到大家重视,由于数据中台等等概念的兴起,大家越来越回到数据的根本问题“数据模型”。今天不谈论高大上的数据中台,我想回到数据的本源,谈谈接地气的数据模型。

1
什么是数据模型

我们可以先看一下生活中的模型的例子,房屋平面图、地图等都是很好的模型的示例。

对于下图的房屋平面图来说,我们基本看一眼就能知道这是一个三室两厅两卫的房子,有一个玄关和一个阳台,哪里是门,哪里是墙,哪里是窗户,每个房间的平米数是多少,全部都用各种符号表示得一清二楚。

对于地图来说,我们也知道绿色的部分一般都表示公园,蓝色的部分表示湖,黄色的粗线表示高速公路…

图 1生活中的“模型”(图片来源与网络)

数据模型是用于描绘、沟通数据需求的一组简单易懂、标准的,并且便于计算机实现标准符号的集合

我们都知道数据库很强大,但数据在其中的关系却错综复杂,成千上万个表通过各种关系或约 束互连以形成复杂的结构。没有数据模型,利益相关者很难看到现有数据库的结构、理解关键概念,当需要描述数据需求的时候,也很难准确地表达出来,这也是数据模型很重要的一个最主要的原因。

下图是一个简单数据模型的示例:

图 2一个关于学生-出勤-课程的数据模型

(图片来源:数据建模经典教程,Steve Hoberman)

2
数据模型的几个关键形容词
2.1
数据模型是一组符号集合

与实物模型不同,数据模型不是等比例模拟出来的真实事物,而是一组能表示数据需求、数据结构的符号集合

在房屋平面图中,中间有条线的矩形表示窗户,用直角扇形表示门。在数据模型中,用矩形框或圆角矩形表示实体,用线以及线上的符号表示实体之间的关系、基数或约束,用写在线上的词或词组表示标签,所有的这些符号组成了各种各样的数据模型

2.2
数据模型是用来描绘、沟通数据需求的

建筑设计师在盖房之前通过房屋平面图描绘建筑需求,建筑工人就可以看着这些平面图来盖房子。房子盖完之后还可以把房屋平面图展示给客户,这样即使客户不去现场看实体房就可以大概了解房屋结构。数据模型也是专门设计出来描绘数据需求,给技术实现人员来建造数据库,并且实现数据需求无障碍沟通的“图纸”。

2.3
数据模型是简单易懂、标准的

模型之所以可以让人们实现快速沟通,是因为足够标准并且简单易懂。自古以来,无论是盖房子还是造火箭,都不可能事先把庞大复杂的实物拿过来给大家介绍,相反只需要通过一些简单标准的符号,就可以表示清楚具体的意思。一旦读者看到标准的模型语言,他们能马上能开始讨论这个模型是否准确,而不需要浪费任何额外的时间去探讨建模用的符号是什么意思

2.4
数据模型是便于计算机实现的

数据模型从一个抽象层次描述了数据的静态特征、动态行为和约束条件,最终是要通过技术实现人员转化成能被计算机理解的程序语言,并且在数据库中实现出来的。所以在设计数据模型的时候,必须将便于计算机实现作为模型设计的原则之一。

3
为什么需要数据模型

企业中经常会出现以下问题:

1. 不同技术背景和业务经验的各类人员在讨论数据需求时缺少一种有效的沟通工具,在讨论中经常因为对各种符号理解不一致,导致沟通效率低下,不同观点之间很难协调,达成共识。

2. 当系统出现故障或发现数据问题时,没有可以观察系统的整体视角,技术人员对当前数据库内的状况全然不知,导致系统问题排查困难,数据问题无从下手。

3. 不同部门对业务规则的理解不一致,关于“客户”、“产品”等关键概念含义多种多样,数据库中同名不同义,同义不同名现象随处可见,极大地影响了数据的识别和应用。

数据模型作为不同技术背景和业务经验的各类人员有效沟通数据需求的重要媒介,可以帮助描述与沟通数据需求、增加数据的精确性与易用性、降低系统的维护成本并增加数据可重用性,极大地减少了以上问题出现的频率。

3.1
标数据模型可以帮助不同人员描述与沟通数据需求

在企业中,来自不同部门、具有不同技术背景的业务人员、业务分析师、数据分析师、建模人员、架构师、数据库设计人员、开发人员等各类人员经常需要共同讨论数据问题与数据需求。数据模型作为一种理想的沟通工具,可以快速使相关人员达成共识,跳过对符号的理解而直接讨论深层需求。

3.2
数据模型可以增加数据的精确性与易用性

数据模型中的精确定义为数据提供了一个规范的结构,数据建模过程本身是发现、分析、界定数据需求的过程,可以帮助解释数据上下文的边界,减少数据访问和数据存储时发生数据异常的可能性。通过说明数据中的结构和关系,数据模型使数据更易于使用。

3.3
数据模型可以降低系统维护成本、提升资产可重用性

数据模型有助于我们从整体视角了解业务与数据现状,并有助于人们分析目前可能存在的业务与数据问题、分析修改现有数据结构是否可行和每次修改可能会带来的影响,降低维护成本。另外,数据模型以相对标准精确的形式保留了关于企业系统或项目的记忆,这些记忆可以作为可重用性资产供未来项目使用,从而降低构建新应用程序的成本。

结束语

作为不同技术背景与业务经验的各类人员有效沟通数据需求的重要媒介,数据模型越来越成为数字化转型的核心能力。数据模型有助于人们描述与沟通数据需求、增加数据的精确性与易用性、降低系统的维护成本并增加可重用性。

参考

[1]DAMA International.DAMA-DMBOK: Data Management Body of Knowledge (2nd Edition)[M].Technics Publications:BASKING RIDGE, NEW JERSEY,2017:123.

[2]Steve Hoberman.Data Modeling Made Simple: A Practical Guide for Business and IT Professionals[M].Technics Publications:BASKING RIDGE, NEW JERSEY,2009

(加入数据工匠俱乐部知识星球获取更多资讯)


联系我们

扫描二维码关注我们


微信:DaasCai

邮箱:ccjiu@163.com

QQ:2286075659

热门文章


少有人走过的路:分析->策略->产品


重要:Kafka第3篇之一条消息如何被存储到Broker上


数据分析报告,就该这么写


多维度数据分析是什么?该怎么做?


如何提升数据洞察力

数据分析、数据挖掘、数据运营有啥区别?【通俗版】

我们的使命:普及数据管理知识、发展数据管理工程师行业、改变中国企业数据管理现状、提高企业数据资产管理能力、推动企业走进大数据时代。

我们的愿景:凝聚行业力量、打造数据工程师全链条平台,培养不同层级数据工程师人才、构建数据工程师生态圈。

我们的价值观:分享数据管理知识,持续提升数据管理和运营能力。

了解更多精彩内容


长按,识别二维码,关注我们吧!

数据工程师

微信号:sjgcs

构建数据工程师生态圈





推荐阅读
  • 2018年数字化转型调查
    PointSource发布了2018年数字化转型调查,主要发现包括:1、由于缺乏战略,企业迫切需要进行数字化转型。2、企业急于开始数字化转型过程,但他们缺乏进行智能投资的战 ... [详细]
  • 企业数据应用挑战及元数据管理的重要性
    本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 14亿人的大项目,腾讯云数据库拿下!
    全国人 ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • 微信小程序中如何获取当前位置经纬度以及地图显示
    小编给大家分享一下微信小程序中如何获取当前位置经纬度以及地图显示,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅 ... [详细]
  • 本文内容为asp.net微信公众平台开发的目录汇总,包括数据库设计、多层架构框架搭建和入口实现、微信消息封装及反射赋值、关注事件、用户记录、回复文本消息、图文消息、服务搭建(接入)、自定义菜单等。同时提供了示例代码和相关的后台管理功能。内容涵盖了多个方面,适合综合运用。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • 项目运行环境配置及可行性分析
    本文介绍了项目运行环境配置的要求,包括Jdk1.8、Tomcat7.0、Mysql、HBuilderX等工具的使用。同时对项目的技术可行性、操作可行性、经济可行性、时间可行性和法律可行性进行了分析。通过对数据库的设计和功能模块的设计,确保系统的完整性和安全性。在系统登录、系统功能模块、管理员功能模块等方面进行了详细的介绍和展示。最后提供了JAVA毕设帮助、指导、源码分享和调试部署的服务。 ... [详细]
  • AI行业的下一个风口是医疗?创业者们这样说
    ▼点击上方蓝字关注网易智能为你解读AI领域大公司大事件,新观点新应用编者按:4月10日,鲸准AI产业价值峰会在北京举行。本次大会除了邀请A ... [详细]
  • 工作经验谈之-让百度地图API调用数据库内容 及详解
    这段时间,所在项目中要用到的一个模块,就是让数据库中的内容在百度地图上展现出来,如经纬度。主要实现以下几点功能:1.读取数据库中的经纬度值在百度上标注出来。2.点击标注弹出对应信息。3 ... [详细]
  • 4554:[Tjoi2016&Heoi2016]游戏 ... [详细]
  • Python 可视化 | Seaborn5 分钟入门 (六)——heatmap 热力图
    微信公众号:「Python读财」如有问题或建议,请公众号留言Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seabo ... [详细]
  • 简单了解markdown语法
    Markdown语法标题三个“#”表示三级标题四个“#”表示四级标题字体粗体左右加俩“*”斜体左右加一’‘*“粗斜体左右加三个”*“表示删掉用俩波浪线引用加空格分割线图片![ ... [详细]
author-avatar
llllllw_wlllllll
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有