数据库设计及工具实战
前言:
计算机软件开发过程中一个重要的环节就是进行数据库的设计,过去,数据库工程师可以在白板上绘制数据库关系图。如今,我们需要强大的工具来正确绘制数据库。而以下我们介绍的Freedgo Design 在线ER模型设计工具无疑是目前功能最强大的数据库设计工具. 其访问地址如下:
图例模板页面:
https://www.freedgo.com/new/search/18/0/d_0_18_0_0_1_0_0_%E5%85%A8%E9%83%A8.html
工具页: https://www.freedgo.com/erd-index.html
ER模型
使用 ER图以图形方式表示数据库不同部分之间的关系。这使得团队成员能够轻松地向所有涉众解释数据库结构。 那么,什么是ER图呢?我们通过以下图例来说明:
ER图分为实体、属性、关系三个核心部分。实体是长方形体现,而属性则是椭圆形,关系为菱形。
ER图的实体(entity)即数据模型中的数据对象,例如人、学生、音乐都可以作为一个数据对象,用长方体来表示,每个实体都有自己的实体成员(entity member)或者说实体对象(entity instance),例如学生实体里包括张三、李四等,实体成员(entity member)/实体实例(entity instance) 不需要出现在ER图中。
ER图的属性(attribute)即数据对象所具有的属性,例如学生具有姓名、学号、年级等属性,用椭圆形表示,属性分为唯一属性( unique attribute)和非唯一属性,唯一属性指的是唯一可用来标识该实体实例或者成员的属性,用下划线表示,一般来讲实体都至少有一个唯一属性。
ER图的关系(relationship)用来表现数据对象与数据对象之间的联系,例如学生的实体和成绩表的实体之间有一定的联系,每个学生都有自己的成绩表,这就是一种关系,关系用菱形来表示。
ER图中关联关系有三种:
1对1(1:1) :1对1关系是指对于实体集A与实体集B,A中的每一个实体至多与B中一个实体有关系;反之,在实体集B中的每个实体至多与实体集A中一个实体有关系。
1对多(1:N) :1对多关系是指实体集A与实体集B中至少有N(N>0)个实体有关系;并且实体集B中每一个实体至多与实体集A中一个实体有关系。
多对多(M:N) :多对多关系是指实体集A中的每一个实体与实体集B中至少有M(M>0)个实体有关系,并且实体集B中的每一个实体与实体集A中的至少N(N>0)个实体有关系。
通用的实体关系(entity relation) 设计我们采用以上方式,是对数据实体进行分类和归纳总结,那么针对不同的数据库表设计我们该怎么做,以下内容您将体验使用工具制作具体的数据库的表结构,您将获取以下高级的功能:
可以从已建数据库导入DDL 生成表结构图,支持视图,存储过程
支持主流的数据库包括MySQL,SqlServer,Oracle,Postgresql 等数据库
支持物理视图,逻辑视图不同查看.
支持字段属性自定义显示
支持一键生成数据库文档doc.
丰富的不同模板可用
支持表、视图、存储过程、函数在线绘制,支持多种样式可供选择
在线导出ER模型对应的SQL脚本
数据库设计工具使用
基本使用:
如果要使用MySQL表建立ER模型,请选择实体类型为实体关系/MySQL
,选择对应的表、视图、存储过程、触发器、函数等组件后拖动到编辑区域。
1、如何导入SQL?
已经建立好的数据库如何生成ER模型有一种比较简单的方式就是导出数据库的建表脚本后再导入,具体操作如下:
首先访问 /draw-index.html ,点击菜单 数据库
-> MySQL
-> 导入DDL
复制SQL语言到对应的框中,或者拖动MySQL DDL文件到对应的输入框、点击insert MySQL
或拖动SQL文件到对应的输入框
最后生成对应的模型图
2、在线ER模型表操作
新增修改表结构
在线对表字段进行新增,可以在需要添加字段的位置点击箭头进行添加,
添加字段后点击右键->修改列
可以修改字段的属性值,支持字段名、类型、长度、是否主键、是否外键、备注 、是否为空等等
3、在线视图操作
新增或修改视图:通过拖动MySQL视图模型到编辑区,对视图的编辑通过点击右键->视图SQL
,在弹出框中进行视图的SQL修改。
4、在线触发器操作
操作同视图操作
5、在线存储过程或者函数操作
操作同视图操作
6、导出SQL
查询整个ER模型的SQL:
点击数据库
-> MySQL
-> 导出SQL
查询多表或单表SQl:
如下图:选择3个表右键: