【数据库】通过一个实例来认识数据流图DFD

news2024/9/19 16:49:52

 导读:通过一个实例(数据中台)说明数据流图DFD的作用、介绍了常见的数据流图元素及其标准符号以及如何画数据流图。数据流图主要被分析师、系统设计师、流程优化专家、系统管理员以及与系统开发和维护相关的人员查看和使用。对于刚考完2024年5月的软考考生来说并不陌生,架构师、提供分析师、软件设计师考察内容有涉及这部分内容。

目录

 1、实例数据中台数据流图(DFD)

1.1 数据中台概述

1.2 数据中台核心功能

1.3 数据中台示例-数据流图

2、认识数据流图(DFD)

2.1 数据流图作用

2.2 常见的数据流图元素及其标准符号

2.3 画好数据流图的步骤


1、实例数据中台数据流图(DFD

1.1 数据中台概述

数据中台是一个综合的数据管理和分析平台,其核心目的是帮助企业更好地管理和利用数据。

1.2 数据中台核心功能

  • 数据采集与集成:将来自不同系统和平台的数据源整合到中央数据平台中,包括结构化数据、半结构化数据和非结构化数据等。
  • 数据加工:对数据进行清洗、转换、计算、分析等处理,使数据更加规范化、精细化、可视化,提高数据的价值和应用效果。
  • 数据存储:提供可靠的数据存储和管理能力,确保数据的安全性、可靠性和可用性,同时提供数据备份和恢复功能。
  • 数据应用:为企业的业务和决策提供数据支持,包括数据分析、数据挖掘、数据可视化等应用。

1.3 数据中台示例-数据流图

以上是从数据中台的整体数据流向来画的数据流图,其中主要的模块包含

  • 数据源中的各种数据库
  • 同步功能模块
  • 实时计算模块
  • 批量计算模块
  • 数据服务
  • 离线同步数据模块

1、数据同步中的实时同步是同步开发人员配置好实时同步作业,其中实时同步作业采用flinkCDC来处理数据,而数据源则采用监听oracle数据库的re dolog和mysql的binlog作为数据源。

2、数据同步中的实时同步是同步人员配置好离线同步作业,其中离线同步作业采用Data X来处理数据,而数据源则轮询查询数据库和API的方式获取数据。

3、实时作业是实时开发人员通过写flink流处理作业之后,实时读取kafka数据计算完成之后,如果是中间数据则存储回kafka,如果是最终结果则写回到WinQflow实时数据仓库。在流处理作业有时会读取WinQflow实时数据仓库放入内存作为流式计算使用。同时有些实时数据会实时存储到数据湖中,持久化存储到文件系统或者S3中。

4、离线作业是离线开发人员通过写SPL离线开发作业之后,经过powerjob调度之后之后,批量从WinQSPL数据仓库中读取数据,经过作业计算之后之后,写回到WinQSPL数据仓库中。同时有些离线数据会实时存储到数据湖中,持久化存储到文件系统或者S3中。

5、服务开发人员开发数据服务API之后,报表使用API访问数据,当报表和其它应用需要展示数据则会请求 服务API,服务API则调用各数据仓库的OLAP分析引擎,完成分析后将计算结果返回给报表展示。


2、认识数据流图

数据流图(Data Flow Diagram,简称DFD)是一种用于描述信息系统过程的图形工具。它通过图形化的方式展示了数据在信息系统中的流动和处理过程,帮助我们理解和描述系统中的数据流向和交互方式。

2.1 数据流图作用

1、数据流图的主要目的是说明数据的流动路径和转换过程,以及参与数据流动的实体、进程和存储点,从而提供对系统运作和数据处理过程的视觉化概览。

2、通过数据流图,这些人员可以更好地理解和分析系统中的数据流程,从而能够更好地进行设计、优化、故障排查和系统集成等工作。

  • 需求分析和系统设计:数据流向图可以帮助分析人员理解需求,识别数据的来源、流向和处理过程,从而进行系统的设计和规划。
  • 流程优化和改进:通过绘制数据流向图,可以查看和分析数据在系统中的流动路径,找到可能存在的瓶颈、冗余和低效的环节,以便优化和改进业务流程。
  • 故障排查和问题定位:当系统出现故障或问题时,数据流向图可以帮助定位问题所在,追踪数据在系统中的流动和处理过程,从而更快地找到问题的根源。
  • 系统集成和接口设计:对于需要与其他系统进行集成或交互的系统,数据流向图可以清晰地呈现数据的输入和输出,有助于设计和定义系统间的接口和数据传递方式。
  • 系统文档和沟通工具:数据流向图可以作为系统的文档和视觉工具,以便于沟通和交流系统的数据处理过程,帮助各方理解系统的工作原理和数据流动情况。

  • 作为系统文档:数据流图可以作为系统的一部分文档,记录和描述系统中的关键数据流程和组件。
  • 作为沟通工具:数据流图可以用来与不同角色的团队成员、利益相关者或客户交流和共享信息,帮助大家理解系统的运作和设计。
  • 作为培训工具:数据流图可以用于培训新成员或用户,帮助他们了解系统的基本流程和数据传递。
  • 作为审计工具:数据流图可以用于审计系统的安全性和合规性,识别潜在的数据泄漏或违规行为。

2.2 常见的数据流图元素及其标准符号

  • 实体/角色(Entity/Agent):代表系统的外部实体,如用户、部门等。标志为一个简单的方框,可在内部加上实体的名称。
  • 数据流(Data Flow):代表数据在不同实体和进程之间流动的路径。标志为一根带箭头的线,箭头指向数据的流向。
  • 进程/转换(Process/Transformation):代表对数据的处理或转换过程。标志为一个圆角矩形,内部可以注明进程的名称。
  • 数据库(Data Store):代表数据在系统中的持久存储,如数据库、文件等。标志为一个长方形,两条竖线表示存储的位置。

2.3 画好数据流图的步骤

  • 确定系统范围:明确数据流图所描述的系统或过程的边界。确定主要的实体/角色、数据流、进程/转换、数据存储、外部实体等。
  • 识别实体/角色:确定系统中的实体或角色,它们是与系统进行交互的外部对象。这些实体可以是人员、组织或其他系统。
  • 识别数据流:确定系统中的数据流,它们代表在实体、过程和存储之间流动的信息。标识每个数据流的名称和描述。
  • 确定进程/转换:定义系统中的进程或转换,表示数据流的处理过程。标识每个进程的名称和描述,确定进程之间的关系。
  • 识别数据存储:确定系统中的数据存储,表示数据流被存储或提供给处理过程的位置。标识每个数据存储的名称和描述。
  • 确定外部实体和数据库:识别与系统交互的外部实体和系统的数据库。在数据流图中标识它们,以显示数据流的起点和终点。
  • 画图:使用适当的符号和图形来表示实体、数据流、进程、数据存储和外部实体。连接它们以显示数据流的流向和处理过程。
  • 评审和改进:与相关人员一起评审数据流图,确保其准确反映了系统或过程的需求和流程。根据反馈进行修改和改进。

注:相关核心内容整理来源网上资料整合

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1704265.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎样在网上赚点零花钱?推荐十个正规的赚钱兼职平台

今天要和大家探讨一个激动人心的话题——网络赚钱。在这个互联网日新月异的时代,网络赚钱已经变成了触手可及的现实。如果你正打算在网上赚取一些额外收入,那么这篇文章绝对值得一读! 在这个信息泛滥的时代,网络赚钱的机遇随处可…

redis数据操作相关命令

1.list操作 1.1 rpush rpush:新的元素添加到list最右边 #从右边依次往List添加1,2,3 RPUSH name 1 RPUSH name 2 RPUSH name 3#查看列表:返回 1,2,3 LRANGE name 0 -1结果如下: 1.2 lpush lpush:新加的元素在list最左边 #从…

U8G2移植到STM32,SSD13XXXOLED(硬件SPI DMA通讯)

文章目录 一、前言1.1 U8g2的特点1.2 U8G2的优势1.3 U8G2的下载地址1.4 U8g2支持的显示控制器 二、STM32Cubexm SPI DMA配置2.1 SPI设置为半双工模式2.2 SPI DMA设置2.3 oled其他引脚配置 三、移植U8G2框架3.1 精简U8G2库文件3.2 去掉csrc文件夹中无用的驱动文件3.3 文件移动到…

【Java reentrantlock源码解读】

今天学习一下Java中lock的实现方式aqs 直接上图这是lock方法的实现类、分为公平锁和非公平锁两种。 先看非公平的实现方法、很暴力有木有,上来直接CAS(抢占锁的方法,是一个原子操作,没有学过的同学自行百度哦)&#…

香橙派 Kunpeng Pro使用教程:从零开始打造个人私密博客

一、引言 在这个日益互联的世界中,单板计算机已经成为创新和个性化解决方案的重要载体。而在单板计算机领域,香橙派 Kunpeng Pro凭借其强大的性能和灵活的应用潜力,正逐渐吸引着全球开发者和技术爱好者的目光。 作为一款集成了华为的鲲鹏处…

蓝牙模块、WiFi模块等无线通信模块使用规范

在当今的科技时代,无线通信模块已经广泛应用于各类电子设备中。特别是蓝牙模块、WiFi模块等无线模块,它们为设备间的通信提供了便利,使得我们的生活更加便捷和高效。然而,为了确保这些无线模块正常工作并避免可能的安全隐患&#…

I.MX6ULL的蜂鸣器实验-GPIO输出实验

系列文章目录 I.MX6ULL的蜂鸣器实验 I.MX6ULL的蜂鸣器实验 系列文章目录一、前言二、有源蜂鸣器简介三、硬件原理分析四、程序编写4.1程序编写前提工作4.2程序编写 五、编译下载验证5.1编写 Makefile 和链接脚本5.2编译下载 一、前言 在 I.MX6U-ALPHA 开发板上有一个有源蜂鸣器…

MYSQL框架结构

MYSQL框架结构 通过解析器和预处理生成解析树,预处理判断是否合法,如果合法则调用优化器去进行优化。

PYQT5点击Button执行多次问题解决方案(亲测)

PYQT5点击Button却执行多次问题 使用pyqt5时遇到问题,UI上按钮点击一次,对应的槽函数却执行了3遍 首先,确认函数名无冲突,UI button名无命名冲突,下图是简单的示例程序: 运行后,点击按钮&#…

探秘萤瓴优选短视频带货软件,开启新时代的电商创业方式

探秘萤瓴优选短视频带货软件,开启新时代的电商创业方式 随着移动互联网的飞速发展,电商行业迎来了前所未有的变革。短视频带货作为一种新兴的电商模式,以其直观、生动、互动性强的特点,迅速成为市场的新宠。在这个背景下&#xf…

银行软件测试有哪些测试点?一般银行的软件测试工作流程有哪些?

银行测试行业前景广阔,随着金融科技的快速发展和银行业务的不断创新,银行对软件测试的需求也在持续增长。软件测试在确保银行系统软件的稳定性、安全性和可靠性方面起着至关重要的作用,因此,银行测试岗位一直受到广泛的关注和重视…

TIM(Timer)简介

TIM(Timer)定时器介绍 定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时不仅具备基本的定时中断功能,而且…

基于香橙派 Ai Pro的ROS Qt人机交互软件部署指南

一,前言 最近收到了CSDN的邀请,对香橙派新出的Ai Pro进行测评: 说来也巧,其实香橙派本人对其映像挺深刻的,在2017年左右,本人刚上大学,当时是在淘宝购买树莓派,发现有个叫香橙派的国产板子,性能跟树莓派差不多吧,但是…

不是从APP store下载的APP在mac上一直提示有损坏,打不开怎么办?

1.点击设置 2.安全与隐私 3.通用看看允许从以下位置下载的APP是否有任何来源 4.如果没有,mac桌面点击🔍输入终端或Terminal 命令行输入下述代码: sudo spctl --master-disable 5.回车,输入mac开机密码。注意:此时密…

探索循环逻辑:for逻辑分支与容器遍历的深度剖析

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:for逻辑与循环体的奥秘 二、for逻辑与循环体的结合使用 1. 函数与循环…

Spring-Cloud-OpenFeign源码解析-04-调用流程分析

在Spring-Cloud-OpenFeign源码解析-03-FeignClientFactoryBean分析到,通过Autowired或者Resource注入FeignClient实例的时候,实际上返回的是JDK动态代理对象,具体的实现逻辑在InvocationHandler的invoke方法中 回看ReflectiveFeign.newInsta…

Tower for Mac——高效版本控制的得力助手

在编程的世界里,版本控制是每一个开发者都离不开的工具。Tower for Mac,就是这样一款高效、易用的版本控制软件。 Tower for Mac拥有直观易用的界面,无论是提交代码、创建分支还是解决冲突,都能让开发者轻松应对。它支持多仓库管…

postman教程-5-发送put请求

领取资料,咨询答疑,请➕wei: June__Go 上一小节我们学习了postman发送post请求的方法,本小节我们讲解一下postman发送put请求的方法。 HTTP PUT 请求是一种用于传输数据的网络协议方法,它在客户端和服务器之间的通信中扮演着重…

EMQX 的初始IP改为自己的实际IP

分类 EMQX Dashboard(控制台): Dashboard提供了一个Web界面,用于管理和监控EMQX的运行状态。您可以通过配置dashboard.listeners.http.bind来设置Dashboard的监听地址和端口。例如,如果您想要Dashboard在所有网络接口上监听&#…

软件技术架构全面详解

软件架构全面详解 软件架构 这个与建筑设计架构类似,建筑设计架构师负责设计建筑物的整体结构、布局和功能分配。 而软件架构师,负责设计软件系统的整体组织结构、模块划分、和功能分配。 两者都需要考虑到业务功能、性能、可扩展性、安全性、以及用户体验等方面。 软件架…