[图解]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.rhkb.cn/news/327060.html

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

相关文章

Docker 的 Ubuntu 操作系统镜像

Debian 和 Ubuntu 都是目前较为流行的 Debian 系列 的服务器操作系统,十分适合研发场景。 Debian 和 Ubuntu 属于同一系列的发行版。Debian 是由 Ian Murdock 在 1993 年创建的最初的发行版。Ubuntu 是 Mark Shuttleworth 在 2004 年基于 Debian 创建的发行版。 Li…

Android 按键消息流程源码分析

在Android系统中,键盘按键事件是由SystemServer服务来管理的;然后在以消息的形式分发给应用程序处理。产生键盘按键事件则是有Linux kernel的相关驱动来实现。键盘消息有别于其他类型的消息;需要从Linux kernel drivers产生由上层APP来处理。…

MWM触摸屏工控机维修TEM-EV0 EN00-Z312yy-xx

触摸屏维修是一个比较复杂的过程,并且其中会涉及到各个部件的问题,这对于操作人员来说,关键在于是否可以找到问题所在。维修过程中建议先检查各接线接口是否出现松动,然后检查串口及中断号是否有冲突,若有冲突&#xf…

Ubuntu20.04 设置路由器

1. 网络拓扑图 双网卡单Lan口拓扑图 多网卡多Lan口带网桥拓扑图 2. 查看网卡信息 ip a得出如下网卡信息列表,共四个网络信息,忽略第一个本地环回地址 一共存在三个网卡分别为enp1s0、enp2s0、wlo,以及其他详细信息,当前我们只需…

【Linux系统编程】第十八弹---进程状态(上)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、操作系统进程 1.1、进程背景 1.2、进程如何在CPU上运行的? 1.2、进程状态 2、Linux的进程状态 2.1、如何描…

U盘打不开提示格式化怎么办?(含数据恢复及U盘修复教程)

引言: 随着数字化时代的发展,U盘已成为我们日常生活和工作中不可或缺的数据存储工具。然而,有时我们可能会遇到U盘突然无法打开,并提示需要格式化的问题。这不仅会打乱我们的工作节奏,还可能会导致重要数据丢失。本文…

【SpringSecurity源码】过滤器链加载流程

theme: smartblue highlight: a11y-dark 一、前言及准备 1.1 SpringSecurity过滤器链简单介绍 在Spring Security中,过滤器链(Filter Chain)是由多个过滤器(Filter)组成的,这些过滤器按照一定的顺序对进…

基于SpringBoot+Vue的法律咨询系统

课题背景 二十一世纪互联网的出现,改变了几千年以来人们的生活,不仅仅是生活物资的丰富,还有精神层次的丰富。在互联网诞生之前,地域位置往往是人们思想上不可跨域的鸿沟,信息的传播速度极慢,信息处理的速…

Kafka应用Demo:按主题订阅消费消息

安装环境 Kafka安装可参考官方网站的指导(https://kafka.apache.org/quickstart), 按步骤解压压缩包,修改配置。然后再启动zookeeper和kafka-server即可。 需要注意的一点:如果是在VMware虚拟机上启动的kafka, 需要修改一下server.properties配置文件&am…

AI浪潮再起,2024年中国大模型产业深度解析

国内 AI大模型产业发展深度分析 2024 人工智能技术的迅猛发展,使AI大模型成为科技竞争的核心、产业变革的先锋、经济增长的新动力。我国已将人工智能列为国家战略,出台系列政策扶持其发展,为AI大模型产业创造优越环境,展现巨大潜力…

CentOS 7安装配置docker

CentOS 7、8安装、配置docker 这里宿主机的型号选择是centos7.9.2009的版本 1.宿主机关闭防火墙和selinux,配置ipv4 #设置SELinuxdisabled vim /etc/selinux/config SELinuxdisabled 查看防火墙状态:firewall-cmd --state 关闭防火墙:syst…

FloodFill算法---BFS

目录 一、前言 二、算法模板套路 2.1 创建所需的全局变量: 2.2 BFS模板: 2.3 细节处理: 三、例题练习 3.1 例题1:图像渲染 3.2 例题2:岛屿数量 3.3 例题3:岛屿的最大面积 3.4 例题4:被…

在做题中学习(54):点名

LCR 173. 点名 - 力扣(LeetCode) 此题有不同的几种解法: 解法一:暴力枚举 O(n); 解法二:哈希表 把原数组丢入哈希表,遍历哈希表,看看哪个数值为0即可。 O(n)空间O(n)时间 解法三&…

OpenAI推出新模型GPT-4o:可实时交互,检测人的情绪,支持多模态输出

GPT-4o作为OpenAI新发布的人工智能模型,据官方及媒体报道,是面向全球用户发布的,包括中国在内的用户理论上应该能够通过相应平台和应用访问。不过,实际可用性还需考虑地区政策、网络访问限制以及具体平台是否在中国有本地化服务等…

1694jsp宿舍管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 宿舍管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统采用web模式,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库…

网络安全快速入门(十一)vi/vim

11.1 了解vi 前面我i们已经在基础命令中大致了解了vi,本章我们针对vi来细讲一下,vi和vim 11.1.1 什么是vi/vim? vi和vim,都是一个模块化的文本编辑工具,换句话讲,通过vi下的一系列的命令,可以实…

Redis 源码安装和入门介绍

Linux下的redis源码安装 redis介绍 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如 字符串(strings),…

专访安克创新CEO阳萌:仿生算法与存算一体芯片的兴起

在这篇博客中,我们将探讨人工智能的未来发展方向,特别是围绕大模型、存算一体芯片以及仿生算法的讨论。通过对安克创新CEO阳萌的专访内容进行分析,我们将尝试解答一些关于AI发展的关键问题,并对未来的技术趋势进行预测。 引言 …

AD原理图设置:如何在编译工程时,报未连接线或引脚错误

如下图,AD默认在编译原理图时,如果出现未连接的引脚或线时,并不会报相关的错误,这样做其实很危险 所以,我们应该让它提示错误 具体配置方法: 1、找到工程选项 2、切换到第二个选项“Connection Matrix”&a…

OBS插件--源录制

源录制 将应用这个滤镜的源录制成视频保存下来,可以选择音轨,也可以针对应用此滤镜的源单独的推流等。 如果在直播或录制视频的过程中场景里面布置了多个源,而只想保存其中一个源的视频或音频这个插件非常使用。 下面截图演示下操作步骤&a…