数据血缘分析工具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

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三