13数据流图技术
Posted 猿 白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了13数据流图技术相关的知识,希望对你有一定的参考价值。
第十三章 数据流图技术
在考试大纲中,对数据流图技术的要求是比较含糊的,并没有明确要求掌握哪些具体的知识点,仅有“数据流图的基本构成、数据字典、加工逻辑”的要求。但在考试中,这是一个非常重要的知识点,近年来已经固定作为下午考试的试题一,占15分,属于必答题
。
从历年的考试情况来看,本章的考点主要集中于以下几个方面。
补充数据流图的缺失部分,包括补充数据流、补充外部实体、补充数据存储。
数据流图的改错,包括修正数据流名称、数据流的起点与终点、删除多余数据流。
附加与数据流图相关的概念简答题。
数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具。
1. 数据流图的基本元素
数据流图包括四大基本元素:加工、数据流、数据存储、外部实体,如表11-1所示。
虽然涉及的元素少,但数据流图本身却并不简单。图11-1便是一张数据流图,该图中包括:数据流(例如:非法用户信息、用户信息等)、外部实体(例如:前端应用、数据管理员等)、数据存储(例如:用户表、操作表、权限表)、加工(例如:用户验证、用户管理等)。
2. 分层数据流图(DFD)
从图11-1可以看出,越庞大的系统,数据流图越复杂。以至于一张图根本无法清楚的表达系统内容,所以需要对图进行分层,逐层精化。目前使用的数据流图都是分层次的,这也就是为什么平时也把数据流图称为“分层数据流图”的原因。
分层数据流图很好的传承了结构化思想——“自顶至下,逐步精化”。将图分成了若干个层次,首先绘制针对系统整体的顶层图,以说明系统与外界的交互,再将图层层细化。具体过程为:
(1)画系统的输入和输出:
把整个软件系统看做一个大加工,确定与外部实体之间的输入和输出数据流,这个结果也称为顶层图。如图11-2所示,数据管理中间件是我们要开发的系统,但顶层图将该系统看成了一个大加工,这种图能很好的体现出系统与外部实体之间的交互关系。
(2)画系统的内部:
将顶层图中的加工分解成若干个加工,并用数据流连接这些加工。这张图称为0层图。而从一个加工画出一张数据流图的过程就是对该加工的分解过程。如图11-1所示,它便是图11-2的0层图,在该图中,展示出数据管理中间件拥有一系列的加工:用户验证、用户管理、操作管理、权限管理、格式检查、权限验证、连接管理,以及这些加工之间的关系。从这张图,可以大致看出原始数据是经历了哪些步骤,产生了目标数据。但这还不够详细,例如我们需要了解“格式检查”是如何进行格式检查的,从该图仍无法得到答案。此时,可以进一步细化“格式检查”的内部结构,这便是下一步“画加工的内部”需要做的事情。
(3)画加工的内部:
把每个加工看做一个小系统,以画0层图的方式画出每个加工的DFD子图(对于较细的加工,可以不进行分解)。
3. 数据字典
DFD描述了系统的分解,即系统由哪几部分组成,各部分之间的联系等,但是,对于数据的详细内容却无法在DFD中得到反映。例如,图11-2中的数据流“用户信息”包括哪些内容,在DFD中就无法具体、准确地描述。数据字典是在DFD的基础上,对DFD中出现的所有命名元素都加以定义,使得每个图形元素的名字都有一个确切的解释。DFD和数据字典等工具相配合,就可以从图形和文字两个方面对系统的逻辑模型进行完整的描述。表11-1给出了数据字典定义数据时可能出现的符号。
4. 数据平衡原则
数据平衡原则有两个层面的意思,一方面是分层数据流图之间需要平衡,另一方面是每张数据流图的数据需要平衡。
(1)分层数据流图的数据平衡原则
分层的流程图是由粗至精、逐步细化地描述系统信息的。上层图中描述的是粗略涉及全体的信息,而下层图中则详细描述上层图中具体某一个部分的内容。因此,上层图不需要描述下层图中所描述的详细信息,而下层图的输入与输出应与上层图保持一致,也就是父图和子图之间的数据流必须保持一致。比如说在父图中某加工有两个输入数据流和一个输出数据流,那么在该加工的子图中的输入/输出数据流必须在数目上和内容上与父图保持一致。此外值得注意的是:保持一致并非指输入输出流的数量与名称完全一样。而是下层数据流图的所有输出数据流必须是上层数据流图中相应加工产生的输出数据流。如果上层数据流底部某加工的一个输入(输出)数据流对应于下层数据流图中若干个输入(输出)数据流,而且下层数据流图中这些数据流的成分之和正好等于上层数据流底部的这个数据流,那么它仍算是平衡的。
(2)每张数据流图的数据平衡原则
加工的输入数据流和输出数据流要平衡,即保证加工的输出数据流都有其对应的输入数据流与输出数据流。以下属于打破了数据平衡原则,会产生错误的情况。
若一个加工只有输入数据流而无输出数据流,则称为黑洞。如图11-3(a)所示。
若一个加工只有输出数据流而无输入数据流,则称为奇迹。如图11-3(b)所示。
若一个加工的输入数据流无法通过加工产生输出流,则称为灰洞。
此外需要注意的是:一个数据流图中,不允许数据流同名。
5. 答题技巧
通过对前面内容的学习,我们可以发现,数据流图涉及的相关内容并不多。只有一些简单的概念与原则,但该知识点的重要度却非常高。每次考试都有该类试题,考查15分以上(如果上午题考到数据流图知识,则考查分值超过15分),而且考查的形式也非常固定,所以这个种题是拿分的题,要掌握其解答技巧,避免在此类问题上丢分。技巧主要有两点:详细分析试题说明以及充分利用数据平衡原则。
(1)详细分析试题说明
在考试中,要看清楚试题再作答,这其实是大家都清楚的规则,但真正做得很好的并不多。有很多考生觉得考试时间有限,是采取的“粗略看题,凭空作答”的方式,这样做很危险,费时且没有成效。这种情况要避免。
试题说明在解答数据流图题中,表现得尤为重要。这是有依据的,因为数据流图本身是需求分析阶段用来建模的工具。用数据流图建模,不能凭空想像。绘制数据流图需要依据用户需求以及用户操作的一些流程说明,而在试题中,试题说明恰好就是这些素材。这些素材是解题的关键。我们在此需要逐字逐句的进行分析与推敲。
例如,有一个关于中间件系统的数据流图题。试题说明中有“数据管理员可通过中间件进行用户管理、操作管理和权限管理。用户管理维护用户信息,用户信息(用户名、密码)存储在用户表中;操作管理维护数据实体的标准操作及其所属的后端数据库信息,标准操作和后端数据库信息存放在操作表中;权限管理维护权限表,该表存储用户可执行的操作信息。”,从这段话,我们可以得到的信息有:
数据管理员是一个外部实体;
中间件中有“用户管理”、“操作管理”、“权限管理”这些加工;
中间件中有“用户表”这个数据存储,且该存储与“用户管理”相关;
后端数据库是一个外部实体;
中间件中有“操作表”这个数据存储,且该存储与“操作管理”相关;
中间件中有“权限表”这个数据存储,且该存储与“权限管理”相关。
如果进一步结合试题已给出的图,能得到更多的信息,所以在解题时,要反复分析试题说明中的文字,这是解题的关键。
(2)利用数据平衡原则
数据平衡原则在前面已有说明。在此主要强调它在解题中的使用。在解答“补充数据流”或是“数据流查错”这些类型的题时。数据平衡原则起到了重要作用,我们通常可以用外部实体为主线,在不同层次的图上分析与该外部实体相关的输入输出流,如果存在不匹配的情况,则说明图中该处有误。
例如,在某系统中,对于实体E,在顶层图中相关数据流情况如图11-4(a)所示,而在0层图中相关数据流如图11-4(b)所示。则我们可以清楚的看到0层图存在数据流缺失的情况。
练习
试题1
数据流图(DFD)对系统的功能和功能之间的数据流进行建模,其中顶层数据流图描述了系统的__(1)__。
(1)A.处理过程 B.输入与输出
C.数据存储 D.数据实体
试题2
利用结构化分析模型进行接口设计时,应以__(2)__为依据。
(2)A.数据流图 B.实体–关系图 C.数据字典 D.状态–迁移图
试题3
阅读下列说明和图,回答问题1至问题4。
【说明】
某学校开发图书管理系统,以记录图书馆藏图书及其借出和归还情况,提供给借阅者借阅图书功能,提供给图书馆管理员管理和定期更新图书表功能。主要功能的具体描述如下:
(1)处理借阅。借阅者要借阅图书时,系统必须对其身份(借阅者ID)进行检查。通过与教务处维护的学生数据库、人事处维护的职工数据库中的数据进行比对,以验证借阅者ID是否合法,若合法,则检查借阅者在逾期未还图书表中是否有逾期未还图书,以及罚金表中的罚金是否超过限额。如果没有逾期未还图书并且罚金未超过限额,则允许借阅图书,更新图书表,并将借阅的图书存入借出图书表,借阅者归还所借图书时,先由图书馆管理员检查图书是否缺失或损坏,若是,则对借阅者处以相应罚金并存入罚金表;然后,检查所还图书是否逾期,若是,执行“处理逾期”操作;最后,更新图书表,删除借出图书表中的相应记录。
(2)维护图书。图书馆管理员查询图书信息;在新进图书时录入图书信息,存入图书表;在图书丢失或损坏严重时,从图书表中删除该图书记录。
(3)处理逾期。系统在每周一统计逾期未还图书,逾期未还的图书按规则计算罚金,并记入罚金表,并给有逾期未还图书的借阅者发送提醒消息。借阅者在借阅和归还图书时,若罚金超过限额,管理员收取罚金,并更新罚金表中的罚金额度。现采用结构化方法对该图书管理系统进行分析与设计,获得如图11-5所示的顶层数据流图和图11-6所示的0层数据流图。
【问题1】
使用说明中的词语,给出图11-5中的实体E1-E4的名称。
【问题2】
使用说明中的词语,给出图11-6中的数据存储D1~D4的名称。
【问题3】
在DFD建模时,需要对有些复杂加工(处理)进行进一步精化,绘制下层数据流图。针对图11-
6中的加工“处理借阅”,在1层数据流图中应分解为哪些加工?(使用说明中的术语)
【问题4】
说明【问题3】中绘制1层数据流图时要注意的问题。
答案
试题1分析
数据流图主要由实体、数据存储、处理过程和数据流四部分组成。在顶层数据流图中,将系统
描述成一个处理过程,而其它的是与该处理过程相关的输入输出流,因此顶层数据流图描述了系统
的输入与输出。
试题1答案
(1)B
试题2分析
数据流图是结构化分析模型需求分析阶段得到的结果,描述了系统的功能,在进行接口设计
时,应以它为依据。
试题2答案
(2)A
试题3分析
本题考查数据流图(DFD)的应用,是一种比较传统的题目,要求考生细心分析题目中所描述的
内容。DFD是一种便于用户理解、分析系统数据流程的图形工具。是系统逻辑模型的重要组成部
分。
解答这类问题,有以下两个原则:
(1)紧扣试题的系统说明部分,数据流图与系统说明有着严格的对应关系,系统说明部分的每
一句话都能对应到图中,解题时可以一句一句地对照着图来分析。
(2)数据的平衡原则,这一点在解题过程中也是至关重要的。数据平衡原则有两方面的意思:
一方面是分层数据流图中父子图之间的数据流平衡原则;另一方面是每张数据流图中输入与输出数
据流的平衡原则。
【问题1】
本问题要求我们给出图11-5中的实体E1~E4的名称。这个需要我们从题目中的描述和该图来获
得。题目中有信息描述:“借阅者要借阅图书时,系统必须对其身份(借阅者ID)进行检查”,我
们结合顶层数据流图可知,E1为借阅者;另外,根据题目描述“图书馆管理员查询图书信息;在新
进图书时录入图书信息,存入图书表;在图书丢失或损坏严重时,从图书表中删除该图书记录”,
结合图,我们可以知道E2是图书馆管理员,再结合描述“借阅者要借阅图书时,系统必须对其身份
(借阅者ID)进行检查。通过与教务处维护的学生数据库、人事处维护的职工数据库中的数据进行
比对,以验证借阅者ID是否合法”和顶层数据流图可知,E3和E4应该是学生数据库和职工数据库,
这两者的位置可以互换。
【问题2】
本问题考查数据存储的确定。根据题目的描述“图书馆管理员查询图书信息;在新进图书时录
入图书信息,存入图书表;在图书丢失或损坏严重时,从图书表中删除该图书记录”,结合0层数据
流图我们可知D1为图书表;根据题目描述“如果没有逾期未还图书并且罚金未超过限额,则允许借
阅图书,更新图书表,并将借阅的图书存入借出图书表,”,再结合0层数据流图我们可知D2为借出
图书表,并且确失生成病历至病历文件的数据流和日志文件至生成病历的数据流;根据题目描
述“系统在每周一统计逾期未还图书,逾期未还的图书按规则计算罚金,并记入罚金表”,再结合0
层数据流图我们可知D4为罚金表。在确定了上面三个存储后,题目中还剩下逾期未还图书表,很显
然,D3就是逾期未还图书表。
【问题3】
本题主要考查加工的分解。对于求解这类问题,主要根据题目的描述来进行,0层图中加工“处
理借阅”在题目的描述中,其处理过程为:先检查借阅者的身份,如果身份合法,则检查借阅者是
否有逾期未还图书及罚金表中的罚金是否超过限额,如果没有,则允许借阅读书,然后是归还图
书。因此0层图中的加工“处理借阅”可以细分为1层图中的若干个加工,其分别是:检查借阅者的
身份,检查逾期未还图书,检查罚金是否超过限额,借阅读书及归还图书等加工。
【问题4】
本题主要考查根据上层数据流图绘制下层数据流图时的注意事项。其主要就是要保持父图与子
图间的平衡,具体有:父图中某加工的输入输出数据流必须与它的子图的输入输出数据流在数量和
名字上相同;如果父图的一个输入(或输出)数据流对应于子图中几个输入(或输出)数据流,而
子图中组成这些数据流的数据项全体正好是父图中的这一个数据流,那么它们仍然算是平衡的。
试题3答案
【问题1】
E1:借阅者 E2:图书管理员E3/E4:学生数据库/职工数据库
【问题2】
D1:图书表 D2:借出图书表D3:逾期未还图书表D4:罚金表
【问题3】
检查借阅者身份或检查借阅者ID;检查逾期未还图书;检查罚金是否超过限额;借阅图书;归
还图书。
【问题4】
保持父图与子图平衡。父图中某加工的输入输出数据流必须与它的子图的输入输出数据流在数
量和名字上相同。如果父图的一个输入(或输出)数据流对应于子图中几个输入(或输出)数据
流,而子图中组成这些数据流的数据项全体正好是父图中的这一个数据流,那么它们仍然算是平衡
的。
Nebula Graph 技术总监陈恒:图数据库怎么和深度学习框架进行结合?
引子
Nebula Graph 的技术总监在 09.24 - 09.30 期间同开源中国·高手问答的小伙伴们以「图数据库的设计和实践」为切入点展开讨论,包括:「图数据库的存储设计」、「图数据库的计算设计」、「图数据库的架构设计」等方面内容,本文整理于他和开源中国小伙伴对图数据库的讨论内容~
嘉宾·陈恒介绍
陈恒,开源的分布式图数据库 Nebula Graph 技术总监,图数据库领域专家 & HBase Committer。北京邮电大学硕士,曾就职于蚂蚁金服、猿题库、网易等公司,一直从事基础设施相关研发工作。
本文目录
- 图数据库怎么和深度学习框架进行结合?
- 图数据库它可以被认为是 MySQL 中的一种数据库引擎,具备特殊的查询功能,以及特殊的数据结构?
- Nebula 和 Neo4j 的图数据库的优势和劣势?为何要新开发使用 Nebula ?
- 图数据库目前主要用于哪些应用场景?
- 图数据库和一般数据库结构相比,优势在哪里?
- Nebula 的实践问题
- 存储计算分离
- Nebula 高度可扩展具体指的是什么?存储层是否还支持其他类型的数据库?
- 「图数据库」是基于已有数据库衍生出来的产品吗?如何设计图数据库?
- 图数据库为何没有通用的图查询语言?
- 图数据库适合存储什么类型数据,比如树形目录?
- Nebula 的部署安装配置要求是什么?
图数据库怎么和深度学习框架进行结合?
Stiofan:
图数据库打破了关系数据库的这种古老数据存储模式,将图形化特性属性数据存入,但是关于这些特性化属性的数据使用图数据库和将其转换为类型数据放入深度学习框架,两个之间的关系或者说使用场景应如何来规划。
我们见过一些机器学习使用图数据库的 case,最主要的是 feature extraction 阶段,使用图数据库来拿到当前点相关联的点的一些属性作为 feature,或者产生一些随机游走的路径,使用图数据库可以大大加速整个过程。
图数据库它可以被认为是 MySQL 中的一种数据库引擎,具备特殊的查询功能,以及特殊的数据结构?
钛元素:
恒大你好,我对图数据库不是很明白,是否可以这样理解:它可以被认为是 MySQL 中的一种数据库引擎,具备特殊的查询功能,以及特殊的数据结构?谢谢。
不是特别准确, 图数据库是为了网络结构的数据(比如社交网络,资金网络等)而专门设计的一类数据库。 这类的数据库有着自己独特的数据组织形式, 以及自己独特的查询语句。 它并不是 MySQL 中的一种存储引擎, 而是一个独立的产品,就像 HBase 与 MySQL 的关系一样。
开源中国·sixliu 小伙伴补充:你可以这样理解,原先这些数据都是用关系数据库存的,分别为主体表和关系表,但是在应用使用时查询性能,比如查 n 度关系。所以为了提升查询使用图数据库天然符合,节点(主体)和边(关系),比如说要查 A 的 2 度关系,那么通过 id 直接 key 匹配到 A,然后再获取到路径 <=2 的节点就可以获得结果。
Nebula 和 Neo4j 的图数据库的优势和劣势?为何要新开发使用 Nebula ?
5G加ios:
Nebula 和 Neo4j 的图数据库的优势和劣势? 为何要新开发使用 Nebula ??
Neo4j 是目前市面上知名度最高的图数据库, 是一款非常优秀的产品。 但是开源的 Neo4j 最大的问题在于它是一款单机数据库, 扩展能力存在比较大的问题。 Nebula 是在互联网公司的长期实践中诞生的一款产品, 相比于Neo4j, Nebula 最大的特色便是分布式的架构,扩展性要好很多。
图数据库目前主要用于哪些应用场景?
crf1111:
你好,最近在开发分布式任务处理系统,使用到了有向无环图(DAG)的概念。请问,图数据库目前主要用于哪些应用场景。
对于Nebula
,目前提供了几种 client 库,是否能兼容 python-networkx 中的 Graph 对象?
图数据库主要应用于网络结构数据的存储与查询, 比如在社交关系中, 查找一个人的 N 度好友(可以带一些过滤条件),用传统的关系数据库来搞,不仅性能不能满足要求, 还会使用很复杂的 SQL 描述, 对于用户十分不友好。 而在图数据库中,这样的查询就是一条语句而已。
当前 Nebula 提供了 Go / Java / C++ / Python 的 client,对于其他语言可以直接使用 thrift 生成相应的接口。而我们的 Python client 能链接 Nebula Graph,执行相应的 nGQL 语句,暂时不支持 python-networkx 中的 Graph 对象。
图数据库和一般数据库结构相比,优势在哪里?
KelvinQ :
请问图数据库和一般数据库结构相比,优势在哪里?
Everything is connected. 图数据库天生适合表达 connection,或者说多对多的关系。 图数据库可以很高效的查询几度关系,而传统关系型数据库不擅长,一般都需要做表连接,表连接是一个很昂贵的操作,涉及到大量的 IO 操作及内存消耗。当然,文档、关系型数据库和图数据库相互可借鉴点还是非常多的。
Nebula 的实践问题
Li_Peng :
您好,最近刚开始注意到 Nebula,有 3 个问题想请教一下:
1、Neo4j 社区版的单节点限制问题,目前看 Nebula 应该不存在类似问题,不知道这样理解是否正确?
2、Nebula 支持类 SQL 查询,是否有相关 JDBC 驱动可以使用?目前看 GitHub上貌似没有,后期是否会支持?
3、官方文档 https://docs.nebula-graph.io/manual-index/ 地址打开有点慢,目前是否有微信或者钉钉群可以交流?
- 是的, Nebula 相比于 Neo4j 最大的优势便在于分布式的设计。
- 目前我们使用的是 thrift rpc 进行 client 与 server 的通信。对于JDBC 的支持,如果客户的需求比较强烈,会考虑提供支持。
- 可以关注我们的微信公众号 NebulaGraphCommunity, 里面有微信交流群,可以添加我们的小助手进群:NebulaGraphbot
存储计算分离
长眉欧巴:
想问个跨界的问题,貌似目前的数据库走存算分离的路线,而硬件方面却走存算一体的路线,比如类脑芯片,参考人类大脑神经系统的功能。神经元是存算一体的(虽然还没定论,但这更可能)。而图数据库的结构天生跟神经系统有异曲同工之妙,到最后是不是更应该也存算一体?
所谓的存储计算分离,也没有说完全分割,比如说在 Nebula 里面,很多的计算其实是在存储层完成的,也就是所谓的计算下推。
之所以采用存储计算分离的架构,主要是为了扩展性和上云的考虑。
开源中国·sixliu 小伙伴补充:可以把它理解成之前 存储过程完成复杂逻辑->应用层完成逻辑。主要就是为了满足高容错和可扩展。存储层只要提供高度抽象的谓词下推即可。
Nebula 高度可扩展具体指的是什么?存储层是否还支持其他类型的数据库?
myw31415926:
陈大,您好。Nebula 的高度可扩展包含哪些,能说明一下吗?存储层是否还支持其他类型的数据库,如 Oracle 和 PostgreSQL?多谢
Nebula 采用了存储计算分离的架构,对于计算层,因为是无状态服务,可以随意扩容。对于存储层, 我们提供了扩容相关的运维语句,可以比较简单的扩容。存储层支持 storage plugin, 目前已经有 HBase 的 plugin,其他的 plugin 也可以根据需求来支持。但是我们并不推荐在关系型数据库上使用图数据库,因为这样的效率会非常低,扩展起来也会很麻烦。
「图数据库」是基于已有数据库衍生出来的产品吗?如何设计图数据库?
海参拉面:
老师,图数据库是基于现在已有的数据库产品衍生出来的吗?怎么设计呢?
图这种关联关系和相应的需求其实很早很早就有了,只是各种技术上的原因。
以前大家只能用关系型数据库来存储,但是这样需要使用者把关联关系适配成表结构,并不直观,所以图数据库也是这样发展出来的。
关于怎么设计,其实参考了很多 SQL,NoSQL 和各种分布式系统的工程实现,欢迎阅读 Nebula 的系列技术文章。
图数据库为何没有通用的图查询语言?
JIANGGuo:
你好,请问图数据库作为 NoSQL 中的一类,底层都是图数据结构来存储的,为什么没有通用的图查询语言呢,Nebula Graph 用 nGQL,Neo4j 用 Cypher??谢谢。
很好的问题。
我觉得最大的原因是图数据库比较新,各家的产品应对的场景也不尽相同,所以到现在也没有产生统一的图查询语言。
图数据库适合存储什么类型数据,比如树形目录?
荒野刀客:
图数据库是否适合存储树形的数据,比如树形目录?? Nebula 和 Neo4j 相比,语法是否兼容,是否容易切换?
数据结构上来说,树是图的子集。只是单纯树的业务场景不多,我碰到过的树的场景主要是数据仓库里面的数据血缘。
Nebula 语法上和 Neo4j 接近,但并不兼容。我们设计时语法更接近 SQL,你可以下个Docker 试试,我觉得花个 15 分钟,应该能熟悉语法了。
Nebula 的部署安装配置要求是什么?
图数据库猫:
数据库 Nebula Graph 可以安装在 Win7 64 上吗?CentOS 的版本有要求吗?
建议安装在 Linux 服务器上。如果是 Windows 环境,可以下载一个 Docker 试用,https://hub.docker.com/r/vesoft/nebula-graph. CentOS 建议版本是 7.5+
附录
最后是 Nebula 的 GitHub 地址,欢迎大家试用,有什么问题可以向我们提 issue。
GitHub 地址:https://github.com/vesoft-inc/nebula?,加入 Nebula Graph 交流群,请联系 Nebula Graph 官方小助手微信号:NebulaGraphbot
Nebula Graph:一个开源的分布式图数据库。
以上是关于13数据流图技术的主要内容,如果未能解决你的问题,请参考以下文章
前端技术之:Vue.js应用回退或刷新界面时提示用户保存修改