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
选哪一个,就是服务器的名字了