[图解]EA从数据库逆向得到分析类模型-01

1
00:00:00,840 --> 00:00:02,400
今天,我们来说一下

2
00:00:02,670 --> 00:00:06,320
一个最近几天不止一个同学问的问题

3
00:00:06,490 --> 00:00:11,410
就是说,怎样把一个数据库

4
00:00:13,740 --> 00:00:16,720
转到分析类图

5
00:00:18,570 --> 00:00:20,260
要注意,这是分析类模型

6
00:00:21,550 --> 00:00:22,980
不是设计类

7
00:00:25,800 --> 00:00:26,910
什么叫分析类

8
00:00:28,720 --> 00:00:32,890
左边,就是分析模型,你看,类、关系

9
00:00:34,450 --> 00:00:36,050
它是非常简洁的

10
00:00:36,060 --> 00:00:38,130
没有冗余的概念在上面

11
00:00:41,000 --> 00:00:42,630
只有领域的知识

12
00:00:44,670 --> 00:00:46,060
右边就是设计模型

13
00:00:46,350 --> 00:00:47,980
比如说,这是用C#

14
00:00:48,880 --> 00:00:51,540
实现左边这个的这三个类

15
00:00:51,550 --> 00:00:53,140
你看这个订单

16
00:00:53,790 --> 00:00:55,810
你看多了一个id

17
00:00:56,690 --> 00:00:59,960
每个类都有id

18
00:01:00,670 --> 00:01:02,850
然后,它这里订单项关联过来

19
00:01:02,860 --> 00:01:06,400
它这里就有个订单项的实现

20
00:01:06,410 --> 00:01:11,830
我们用一个列表来实现

21
00:01:11,960 --> 00:01:14,250
它有个订单项的集合

22
00:01:16,110 --> 00:01:18,270
然后它有个配送地址,类型是地址

23
00:01:20,530 --> 00:01:24,370
同样,下面有订单项的类,地址类,这样的

24
00:01:25,290 --> 00:01:27,680
而这几个里面

25
00:01:27,970 --> 00:01:30,540
就不需要再有什么关联

26
00:01:30,630 --> 00:01:33,820
因为这里已经表达了订单有这些

27
00:01:37,630 --> 00:01:40,670
你看右边,看不出左边那个

28
00:01:41,390 --> 00:01:43,280
不能很明显看出左边那个关系

29
00:01:43,610 --> 00:01:44,320
你得观察这个这个

30
00:01:45,860 --> 00:01:48,150
第二个,有很多冗余的内容

31
00:01:48,360 --> 00:01:50,830
因为要在代码里面来表现

32
00:01:54,160 --> 00:01:59,160
得到这个,是有很多途径的

33
00:01:59,840 --> 00:02:02,510
比如说,我们数据库模型

34
00:02:02,720 --> 00:02:05,670
我们可以用,现在很多持久化的框架

35
00:02:07,010 --> 00:02:09,260
比如说,像.net

36
00:02:09,270 --> 00:02:12,570
我们可以用Entity Framework

37
00:02:13,590 --> 00:02:15,180
然后用它的逆向工程

38
00:02:16,170 --> 00:02:17,760
得到C#的代码

39
00:02:19,330 --> 00:02:21,270
然后代码再用EA的逆向工程

40
00:02:23,120 --> 00:02:24,800
可以得到设计类图

41
00:02:25,130 --> 00:02:29,890
就像这个一样,这个很容易得到

42
00:02:30,440 --> 00:02:31,750
但要得到这个

43
00:02:34,740 --> 00:02:36,060
光靠EA本身不够的

44
00:02:36,270 --> 00:02:38,300
实际上现在很多工具都没有这个能力

45
00:02:38,310 --> 00:02:41,280
就是说把这些拉拉杂杂去掉

46
00:02:42,190 --> 00:02:43,590
返回来得到这些东西

47
00:02:46,610 --> 00:02:50,830
最简洁的形态,没有

48
00:02:51,980 --> 00:02:53,540
EA里面有一个插件

49
00:02:53,830 --> 00:02:54,940
第三方的插件

50
00:02:55,680 --> 00:02:57,370
官方的功能是没有的

51
00:02:57,380 --> 00:02:59,700
但EA有一个好处

52
00:02:59,710 --> 00:03:03,290
就是有很多第三方提供的插件可以用

53
00:03:03,780 --> 00:03:05,420
这里有一个插件

54
00:03:07,510 --> 00:03:10,810
先用EA本身的逆向工程

55
00:03:11,060 --> 00:03:13,470
把数据库模型转成DDL

56
00:03:14,370 --> 00:03:20,310
DDL再通过这个插件转成分析类图

57
00:03:23,510 --> 00:03:26,510
这个插件的下载地址在这里

58
00:03:27,520 --> 00:03:28,690
下面我们就演示一下

59
00:03:29,290 --> 00:03:30,680
怎样从数据库

60
00:03:31,410 --> 00:03:33,880
转到分析类图的过程

1
00:00:01,300 --> 00:00:06,900
我们来看导入XML的菜单在哪里

2
00:00:08,590 --> 00:00:09,140
在这里

3
00:00:10,270 --> 00:00:10,550


4
00:00:10,910 --> 00:00:12,020
配置模型

5
00:00:12,030 --> 00:00:15,190
然后转换,导入引用数据

6
00:00:17,250 --> 00:00:20,710
选择D盘,EA 

7
00:00:20,720 --> 00:00:22,030
选中这个

8
00:00:23,050 --> 00:00:30,480
然后导入,另外两个我们也导进来

9
00:00:35,500 --> 00:00:44,140


10
00:00:50,140 --> 00:00:50,710


11
00:01:05,320 --> 00:01:06,180
好,导入之后

12
00:01:06,780 --> 00:01:13,930
你看,这里面,设计,转换,这里,应用转换

13
00:01:16,280 --> 00:01:19,720
就有DDL to Logical

14
00:01:19,730 --> 00:01:20,960
什么之类的

15
00:01:22,640 --> 00:01:24,870
就是刚才那些内容

16
00:01:25,580 --> 00:01:30,760
现在我们就来导入一个数据库

17
00:01:30,770 --> 00:01:32,730
把它变成类图看看了

 

1
00:00:01,430 --> 00:00:03,140
我们导哪个数据库

2
00:00:03,910 --> 00:00:08,730
我们就导SQL Server里面的案例的数据库

3
00:00:09,260 --> 00:00:15,660
pubs,数据库的表在这里

4
00:00:16,440 --> 00:00:16,680


5
00:00:18,520 --> 00:00:20,670
有出版商

6
00:00:20,760 --> 00:00:28,360
有标题、作者等等,出版信息、折扣

7
00:00:29,290 --> 00:00:31,040
销售、商店等等

8
00:00:33,640 --> 00:00:38,940
表里面现在有一些数据了

9
00:00:38,950 --> 00:00:40,100
当然这数据本身

10
00:00:40,110 --> 00:00:41,550
一会导的时候

11
00:00:41,850 --> 00:00:43,510
肯定不会体现在模型里了

12
00:00:44,840 --> 00:00:48,740
首先我们就要把这个导成

13
00:00:48,750 --> 00:00:50,090
就跟刚才讲的路线一样

14
00:00:50,260 --> 00:00:51,570
先导成DDL

15
00:00:51,580 --> 00:00:53,850
再把DDL导成分析类图

16
00:00:54,260 --> 00:00:55,890
我们看,怎样把这个导成DDL

17
00:00:56,140 --> 00:00:58,000
EA本身就有这个功能了

18
00:00:58,980 --> 00:01:00,130
怎么导,我们来看一下

 

1
00:00:00,550 --> 00:00:03,030
导在哪里,放这里,随便搞一个

2
00:00:03,040 --> 00:00:05,750
哪个包,我们就拿这个来就行了

3
00:00:06,250 --> 00:00:06,620
这个包

4
00:00:07,770 --> 00:00:08,610
先把这个删掉

5
00:00:11,770 --> 00:00:12,720
放这里就行了

6
00:00:14,250 --> 00:00:17,740
在哪里导,这里,开发

7
00:00:18,750 --> 00:00:22,030
这里,import,导入

8
00:00:22,850 --> 00:00:25,470
然后选择一个数据库

9
00:00:27,120 --> 00:00:28,710
数据源

10
00:00:29,040 --> 00:00:32,530
它用的是ODBC这个来导入的

11
00:00:32,920 --> 00:00:35,770
这还没有,新建一个

12
00:00:37,080 --> 00:00:39,110
无法使用,用户也行

13
00:00:39,700 --> 00:00:47,700
下一页,SQL Server,名称,我们

14
00:00:47,710 --> 00:00:51,500
就随便搞一个方式,描述

15
00:00:54,730 --> 00:00:57,600
选哪一个,就是服务器的名字了

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目管理-案例重点知识(整合管理)

项目管理:每天进步一点点~ 活到老,学到老 ヾ(◍∇◍)ノ゙ 何时学习都不晚,加油 一、整合管理 案例重点 重点内容: (1)项目章程内容和作用 (2)项目管理计划…

前端 performance api使用 —— mark、measure计算vue3页面echarts渲染时间

文章目录 ⭐前言💖vue3系列文章 ⭐Performance api计算持续时间💖 mark用法💖 measure用法 ⭐计算echarts渲染的持续时间⭐结束 ⭐前言 大家好,我是yma16,本文分享关于 前端 performance api使用 —— mark、measure计…

vs2019 c++中模板 enable_if_t 的使用

&#xff08;1&#xff09; 该模板的定义如下&#xff1a; template <bool _Test, class _Ty void> struct enable_if {}; // no member "type" when !_Testtemplate <class _Ty> struct enable_if<true, _Ty> { // type is _Ty for _Testusing …

C++——动态规划

公共子序列问题 ~待补充 最长公共子序列 对于两个字符串A和B&#xff0c;A的前i位和B的前j位的最大公共子序列必然是所求解的一部分&#xff0c;设dp[i][j]为串A前i位和B串前j位的最长公共子序列的长度&#xff0c;则所求答案为dp[n][m]&#xff0c;其中n&#xff0c;m分别为…

C++ | Leetcode C++题解之第90题子集II

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> t;vector<vector<int>> ans;vector<vector<int>> subsetsWithDup(vector<int> &nums) {sort(nums.begin(), nums.end());int n nums.size();for (int mask …

楼宇智慧公厕建设新方案-集成更简单!成本价更低!

在当今的大厦和写字楼中&#xff0c;公厕面临着诸多痛点。 办公楼公厕常常存在厕位难找的问题&#xff0c;使用者不得不花费时间逐一查看&#xff0c;导致效率低下&#xff1b;环境质量也令人担忧&#xff0c;异味、脏污等情况时有发生&#xff0c;影响使用者的心情和健康&…

特征模态分解(FMD):一种小众而又新颖的分解方法

​ 声明&#xff1a;文章是从本人公众号中复制而来&#xff0c;因此&#xff0c;想最新最快了解各类智能优化算法及其改进的朋友&#xff0c;可关注我的公众号&#xff1a;强盛机器学习&#xff0c;不定期会有很多免费代码分享~ 今天为大家介绍一个小众而又新颖的信号分…

Java面试八股之为什么要使用克隆

Java中为什么要使用克隆&#xff1f;怎么实现对象的克隆&#xff1f;深拷贝和浅拷贝的区别是什么 在Java中使用克隆主要有以下几个原因&#xff1a; 创建对象副本&#xff1a;克隆可以快速创建一个与原对象状态完全相同的副本&#xff0c;无需手动逐一复制每个属性。这种情况…

期权(1):基本概念,权利金,定金,买方,卖方,零和游戏,对赌协议

期权是合约&#xff0c;权利金就是定金&#xff01; 合约到期时 买方可以选择行权&#xff0c;也可以选择不行权。代价就是定金损失。因此亏损封顶&#xff0c;但盈利无限。卖方赚的就是买方的定金&#xff0c;盈利封顶&#xff0c;但亏损无限。 从这里&#xff0c;我们看出…

【go项目01_学习记录12】

代码组织 1 代码结构2 重构与测试2.1 安装测试功能2.2 testify 的常用断言函数 3 表组测试 1 代码结构 所有的代码写在一个main.go文件里面&#xff0c;GO编译器也是可以正常执行的。但是当代码量很庞大时&#xff0c;很难进行维护。 Go Web 程序的代码组织 单文件——反模式…

风电功率预测 | 基于BP神经网络的风电功率预测(附matlab完整源码)

风电功率预测 风电功率预测 | 基于BP神经网络的风电功率预测(附matlab完整源码)完整代码风电功率预测 | 基于BP神经网络的风电功率预测(附matlab完整源码) 基于BP神经网络的风电功率预测是一种常见的方法,它利用BP神经网络模型来预测风电场的发电功率。下面是一个基于BP神经…

2.3 应用集成技术

第2章 信息技术知识 2.3 应用集成技术 2.3.1 数据库与数据仓库技术 数据库 以单一的数据源即数据库为中心进行事务处理、批处理、决策分析等各种数据处理工作操作型处理也称事务处理&#xff0c;指的是对联机数据库的日常操作&#xff0c;通常是对数据库中记录的查询和修改…