目标: 找到一个免费的ER 设计软件, 适合数据仓库项目开发.

结果: 经初步调研, Oracle的 SQL Developer Data Modeler基本满足需求. 但在功能和操作性等方面, 较PowerDesigner 和 ERWin 差距很大.

候选软件清单: Oracle SQL Developer Data Modeler/ MySQL Workbench/ Eclipse ERMaster/ 插件/ Eclipse AmaterasERD插件.  因为需要是免费软件, 我熟悉的PowerDesigner 和 ERWin 自然不在此列.

需求点

刚需吗

SQL Developer

Data Modeler

MySQL

Workbench

Eclipse

ERMaster

插件

Eclipse

AmaterasERD

插件

总结评价

比较适合数仓项目, 操作体验不是很好

功能较弱

和AmaterasERD插件相比的优点有: ER图可以分Category, 可以按table name搜索.  缺点也很明显: 表名前不能加schema前缀, 不支持domain,  放弃了.

不能ER图的分解, 不支持table的search功能,  该插件功能不多, 但优秀. 适合小型项目使用.

需要能将数仓完整的ER, 分解在一些小的ER图上展现.

必须

支持

不支持

支持

不支持

要能按照Table名做全局搜索, 即子ER图上的Table也能被找到.

必须

支持

??

支持

不支持

能表达出Table和Table之间的关系

必须

支持

??

支持

支持

能导出Table的DDL语句

必须

支持

??

支持

支持

Table名能包含schema, 数仓项目基本上需要多个schema的

必须

支持

??

不支持

支持

支持domain定义

最好有

??

??

不支持

支持

一个Table能以快捷方式的形式出现在子ER图上

最好有

不支持

??

不支持

不支持

反向工程

最好有

支持

??

支持

支持

支持逻辑模型和物理模型

最好有

支持

??

支持

支持

支持Teradata

最好有

不支持

不支持

不支持

??

Oracle SQL Developer Data Modeler

巨无霸软件包, 和ERWin比较像. 和Oracle出品的其他客户端工具一样, 我用着总是感觉挺别扭的. 不过这应该是适合大型数仓项目最好的免费ER设计工具了.

MySQL Workbench

没有分组的功能, 不太适合数据仓库项目用, 直接放弃

Eclipse ERMaster 插件

http://ermaster.sourceforge.net/update-site/

和AmaterasERD插件相比的优点有: ER图可以分Category, 可以按table name搜索.  缺点也很明显: 表名前不能加schema前缀, 不支持domain,  放弃了.

Eclipse AmaterasERD

http://amateras.osdn.jp/cgi-bin/fswiki_en/wiki.cgi?page=AmaterasERD

不能ER图的分解, 不支持table的search功能,  总体觉得该插件功能不多, 但优秀. 适合小型项目使用.

免费的ER 设计软件调研的更多相关文章

  1. sweet home 3d 免费的家居设计软件

    Sweet home 3d是一个室内设计软件,可以帮助你快速的画出你家的平面图,家具的摆放位置,并且支持3D方式查看. 下载地址: http://sourceforge.net/projects/sw ...

  2. FontForge:免费字库设计软件 附使用教程

    引用:http://www.sucaijishi.com/2018/articles_0817/259.html 如何设计一套自己的字库?今天分享一个开源的字库设计软件FontForge, 官方下载: ...

  3. Visor 应用之一 通过ER 设计生成数据库脚本和实体对象

    前言 Visor(http://www.visor.com.cn)   是一个基于HTML5 Canvas 开发的IDE 框架和设计开发平台,有关Visor的设计架构和技术应用,在以后的文章里会逐渐跟 ...

  4. 中国澳门sinox很多平台CAD制图、PCB电路板、IC我知道了、HDL硬件描述语言叙述、电路仿真和设计软件,元素分析表

    中国澳门sinox很多平台CAD制图.PCB电路板.IC我知道了.HDL硬件描述语言叙述.电路仿真和设计软件,元素分析表,可打开眼世界. 最近的研究sinox执行windows版protel,powe ...

  5. 8个设计师必看的免费UI图标设计资源站

    图标是我们日常APP及网页设计过程中必不可少的元素之一,通过小小的图标,可以快速方便的实现视觉引导和功能划分.在创作时,我们需要寻找各种各样的图标来满足自己的设计需求,非常浪费时间和精力.今天,小编给 ...

  6. MyHome3D在线装修设计软件测评

    人人都是设计师 ——MyHome3D在线装修设计软件 关键词:云技术,3D呈现效果,自主设计,简单易用,家具装修设计 上海爱福窝云技术有限公司借助于前沿的3D渲染技术,降低了装修设计的门槛,真正实现了 ...

  7. 免费开源3D模型设计软件汇总

    免费开源3D模型设计软件汇总 3D 打印需要先通过计算机辅助设计(CAD)进行建模,再将建好的3D模型“分割”成逐层的截面,从而指导3D打印机进行逐层打印.因此用于3D打印的3D模 型大都储存或输出成 ...

  8. 谈谈最近玩的设计软件:Figma 与 Sketch

    谈谈最近玩的设计软件:Figma 与 Sketch 本文写于 2020 年 5 月 9 日 作为一个优秀的开发者,不懂设计是绝对不行的! 毕竟不懂设计的程序员不是好老板. 而做设计,早已不是尺规作图的 ...

  9. 读<<领域驱动设计-软件核心复杂性应对之道>>有感

    道可道,非常道. 名可名,非常名. 无名天地之始,有名万物之母. ---老子 关于标题 好久没写东西了,动笔的动机是看完了一本书,想写点总结性的东西,一是为了回顾一下梳理知识点,二是为了日后遗忘时能有 ...

随机推荐

  1. DataTable是否存在某个列的判断

    使用 DataTable.Columns.Contains方法可以判断某个列名是否存在于某个DataTable中 //添加模拟数据 DataTable t = new DataTable(); Dat ...

  2. dedecms /member/flink_main.php SQL Injection Vul

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 会员模块中存在的SQL注入 Relevant Link http://w ...

  3. Refresh和Invalidate的比较

    Refresh: 强制控件使其工作区无效并立即重绘自己和任何子控件.==Invalidate + Update Invalidate: 使控件的特定区域(可以自己设置区域,从而提高性能)无效并向控件发 ...

  4. Objective-C 谈谈深浅拷贝,copy和mutable copy都不是完全拷贝

    (一)字符串中的指针赋值,copy和mutablecopy NSString和NSString (1)指针赋值 肯定指向同一个字符串地址. (2)copy(和直接指向一样) NSString *str ...

  5. 判断请求是不是ajax

    public static bool IsAjaxRequest(HttpRequest request) { if (request == null) { throw new ArgumentNul ...

  6. 加州大学伯克利分校Stat2.2x Probability 概率初步学习笔记: Section 3 The law of averages, and expected values

    Stat2.2x Probability(概率)课程由加州大学伯克利分校(University of California, Berkeley)于2014年在edX平台讲授. PDF笔记下载(Acad ...

  7. 【Beta版本】冲刺-Day6

    队伍:606notconnected 会议时间:12月14日 目录 一.行与思 二.站立式会议图片 三.燃尽图 四.代码Check-in 一.行与思 张斯巍(433) 今日进展:修改界面规范,应用图标 ...

  8. JQuery 技巧积累与总结

    1.获得select 元素选中的值 $('#WishlistSelect option:selected').val(); 2.设置按钮的disabled属性的实现代码 $('#button').at ...

  9. 爬虫4 html输出器 html_outputer.py

    #coding:utf8 __author__ = 'wang' class HtmlOutputer(object): def __init__(self): self.datas = []; de ...

  10. 为什么可以用while(cin)?

    为什么可以用while(cin)?   /** * @brief The quick-and-easy status check. * * This allows you to write const ...