数据血缘分析工具SQLFLow自动画出数据库的 ER 模型

2023-10-21 04:40

本文主要是介绍数据血缘分析工具SQLFLow自动画出数据库的 ER 模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

马哈鱼数据血缘分析器通过分析你所提供的 SQL 脚本,或者连接到数据库,可以自动画出数据库的 ER 模型,可视化表和字段的关系,帮助你迅速了解数据库的设计模型,进行高效的团队沟通。

马哈鱼通过两种途径来为你自动可视化 ER 模型。

一、SQL 脚本

你只需要提供创建数据库的 SQL 脚本,马哈鱼数据血缘分析工具可以自动分析这些 SQL,然后把 SQL 脚本转化为可视化的 ER 模型。为了创建 ER Diagram,用户提供的 create table, alter table 等语句 SQL 脚本中需包含 foreign key。

二、连接数据库

你可以让马哈鱼数据血缘分析器连接到你的数据库,获取数据库中的元数据,然后自动可视化整个数据库的 ER 模型。

可视化 ER 模型的三种途径

下面我们介绍如何利用马哈鱼数据血缘分析工具来实现自动可视化数据库 ER 模型。

1. 直接把 SQL 语句 paste到编辑器中进行分析

Paste SQL 到马哈鱼数据血缘分析工具的编辑器中,
在这里插入图片描述
点击 ER 模型的图标,可以马上看到 ER 模型。
在这里插入图片描述

2. 上传 SQL 文件进行分析

点击 upload sql 图标
在这里插入图片描述

在 job source 下拉栏中选择 upload file, 在 dbvendor 中选择 SQL 所属的 数据库类型,上传 SQL 文件,

然后点击 OK 按钮创建该任务。
在这里插入图片描述

完成分析后,在 Job List 面板中,点击刚才创建的 Job,
在这里插入图片描述

可以在 Schema explorer中选择 show ER diagram 查看结果。
在这里插入图片描述

3. 连接数据库进行分析

通过输入数据库连接信息,连接需要获取 ER 模型的数据库,
在这里插入图片描述

完成分析后,在 Job List 面板中,点击刚才创建的 Job,
在这里插入图片描述
可以在 Schema explorer中选择 show ER diagram 查看结果。
在这里插入图片描述

可视化 ER 模型的结果

下图是马哈鱼数据血缘分析工具自动绘制的 Northwind database 的 ER 模型。可以看到 ER 模型中包含表、字段、字段的数据类型,以及用不同图标表示的不同类型的键(key)。

northwind database ER diagram

这是马哈鱼数据血缘分析工具分析了 SQL 文件后自动画出的 github 上一个简单票务系统的数据库 ER 模型图。
在这里插入图片描述

创建 ER Diagram 所需的 SQL

为了创建 ER Diagram,用户提供的 SQL 脚本需包含 foreign key ,其他的例如 primary key, index key, unique key 不是必须的。

A) Foreign key

Foreign key用来在各个表之间建立 ER 关联。通常在 create table 和 alter table 中包含这个信息。

1. foreign key in create table
CREATE TABLE SCOTT.EMP (	EMPNO NUMBER(4,0), ENAME VARCHAR2(10), DEPTNO NUMBER(2,0), CONSTRAINT PK_EMP PRIMARY KEY (EMPNO),FOREIGN KEY(DEPTNO) REFERENCES SCOTT.DEPT(DEPTNO))  ;
2. foreign key in alter table
ALTER TABLE SCOTT.EMP ADD CONSTRAINT FK_DEPTNO FOREIGN KEY ("DEPTNO")REFERENCES SCOTT.DEPT ("DEPTNO") ENABLE;

B) primary key, index key, unique key

1. 主键(primary key)

Primary key can be speicified in create table and alter table statement.

CREATE TABLE SCOTT.EMP (	EMPNO NUMBER(4,0), ENAME VARCHAR2(10), DEPTNO NUMBER(2,0), CONSTRAINT PK_EMP PRIMARY KEY (EMPNO),FOREIGN KEY(DEPTNO) REFERENCES SCOTT.DEPT(DEPTNO));
ALTER TABLE SCOTT.DEPT
ADD CONSTRAINT dept_pk PRIMARY KEY (DEPTNO);

Icon of primary key in ER diagram

2. 唯一键(unique key)

Unique key can be specified in create table and alter table statement.

CREATE TABLE SCOTT.DEPT (DEPTNO NUMBER(2,0), DNAME VARCHAR2(14), LOC VARCHAR2(13),CONSTRAINT constraint_name UNIQUE (DEPTNO)) ;
ALTER TABLE SCOTT.DEPT 
ADD CONSTRAINT constraint_name UNIQUE (DEPTNO);   

Icon of unique key in ER diagram

3. 索引键(index key)

Index key can be specified using create index statement.

-- Oracle
CREATE INDEX SCOTT.DEPT_INDEX 
ON SCOTT.DEPT (LOC);
Or alter table add index-- MySQL
ALTER TABLE`ticketit` ADD INDEX `ticketit_subject_index`(`subject`);

Icon of index key in ER diagram

参考

马哈鱼数据血缘关系分析工具中文网站: https://www.sqlflow.cn

马哈鱼数据血缘关系分析工具英文网站: https://docs.gudusoft.com

马哈鱼数据血缘关系分析工具在线使用: https://sqlflow.gudusoft.com

这篇关于数据血缘分析工具SQLFLow自动画出数据库的 ER 模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/252012

相关文章

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

mysql数据库重置表主键id的实现

《mysql数据库重置表主键id的实现》在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,本文主要介绍了mysql数据库重置表主键id的实现,具有一定的参考价值,感兴趣的可以了... 目录关键语法演示案例在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,当我们

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1