admin 管理员组

文章数量: 887021


2024年1月15日发(作者:multiple factories declaration)

在今天的辅辅助教程里,你将会学到怎你怎样用一个可可视化数据库库建模实用工工具设计一个个数据库图图表和自动生生成SQL语句。 特别说一一下, 我们将将会回顾一下下怎样用 MyySQLWorkbench,

一个个交叉平台,可视化数据据库设计工具。

什么是 MySQL Worrkbench?

MySQL Worrkbench是由由MySQL开发发的强大的工工具, 它有以以下三个基本本功能区域。

SQLL Developmeent: 代替了 MySQL querry browser(MySQL查询询浏览器). 允许用户连连接到现有有得的数据库库,编辑和执执行SQL查询询。

Datta Modelingg: 完整的可视化数据库设设计和建模Dattabase Adminnistration: 代替了 My:ySQL adminisstrator. 图图形界面启动动和关闭服务, 创建用用户账户,编编辑配置文件件,等等。

在这个教程程中,我们将将会在

DataaModeling上从头开始始创建一个数数据库,然后快速的看看一下在SQL编辑器上执执行SQL脚本并且在MySQQL中创建一个个数据库。

MySQL Workkbench可适用用于Windows,Linux 和和 Mac OSX。 有两个不同同的版本:

Commmunity OSS EditionE (社区(OSS版版本)和 Commmercial

Standard SEdiition(商业业标准

版本本)。 社区版版本是开源和和GPL授权的的,正如你所所期望的。它它功能齐全并并且是我们在这篇文章章里用到的。商业版本增加了一些其他他的功能,像像视图和模型型验证或者文文件生成。

备注: 这个个辅助教程是是基于Communnity OSS Eddition 5.2 版本的(5.2.2.16), 在测试试版本发发行时写的(22010.4)。

开始创建数据库

为了学会怎怎样使用 MySSQL Workbencch, 我们将会会使用一个非非常简单的数数据库:在线课程作为为案例。 假如如一组老师想想给几门学科提供在线课程程,使用Skype或者其他他视频会议软软件。对于于我们这个小小的项目,我我们应该存储以下信息:

当设设计我们的图图表时, 我们需要知道以下几组数据之之间的关系,所以我们现现在就应该想一下。

一个个老师可以教教很多学科

一个学科可以被很多老师教

每一个课程只能有一个老师

一个老师可以教很多班

一个同学可以参加几个班

一个班可以有很多学生

一个班可能有几个小时的课(一周内)

在某一特殊的天或小时中, 可能同时有几个在线的班

一个班只关于一个学科

一个学科可能会在几个课程中被教

基于这一点,在下面的展示中我们就有了所有的信息。

把数据传到MySQL Workbench中

现在到了开始说Workbench的时候了。在主(Home)屏幕的数据模型部分,我们点击‘Create new EER Model’, 下面的屏幕将会出现:

当我们新建建一个数据库库模型时,它包包括了默认的的mydb模式, 我们可以以重命名它并并且作为我我们的数据库库模式。一个数数据库模型可可以有几个不不同的模式。右边的目录录将会展示我我们的模式式的每一个元元素,并且允许许我们在需要要的情况下拖拖拽这些元素素。对于物理理模式和EER图表有几几个独立的部部分,我们可能能会混淆包含含在一个数据据库中的几个个模式。接下下来的部分将将会解释这这些概念和它它们之间是怎怎样关联的。

区分概念

物理模式包包含了所有需需要定义数据库库的部分:表表、列、类型型、索引、 约约束, 等等等。这是我我们真正要定定义的。每一一个被添加在图表模型的对对象都会在物物理模式中显显示 。也就是每一个个图形化方式式都会被定义义在模式中。在同一个数数据库模型中我们可有几个个模式,同样样的,在一个个MySQL服务务器中也可以由几个数数据库。每一一个模式将会是一个MySQQL数据库。例如,例在下面面的屏幕里我我们有两个模模式选项卡卡

如果我们要要生成SQL脚本,脚我们将有有两个独立的的创建数据库库声明—实际际上创建视图和创建数数据库是两个个同义词:

vieww plaincopyy to clipbooard print??

1. CREATE SCCHEMA IF NOT EXISTTS `schemaa1`;

2. CREATE SCCHEMA IF NOT EXISTTS `schemaa2`;

“EER代表了了扩展的实体体关系,EER图表只是做模做模型数据和数数据关系用的的标准符号。

当用用到SHOW DATTABASES时,它们将会在在MySQl服务务器上作为数数据库被列出出来。

现在在看一下什么么是EER图表表?EER代表了了扩展的实体体关系,EER图表只是做做模型数据和数据关系系用的标准符符号。EER模型型可以很复杂杂,但是 MySSQL Workbench只用了所所有可能图形形化元素的的一个子集,因为这个图表表(在这个工工具里)的目目的是拥有每每一个被映射射到物理模式式的元素。

我们可以用用EER图表定定义整个数据库库,或者是其其中的一小部部分。例如,我们可以在在一个模式式中定义五个个数据表然后新建一个图表表(drigramm)用可视化化编辑工具去去定义另外两个数据表表。这个图表仅仅包含两个个数据表,但但是这两个数数据表和其他他的五个表都都会被包含在在模式中。

创建表

回到初始的的实例,我们通过双击数据据表的名字重重命名它。在在这一点上,有两个途径径:我们可可以用添加数数据表图标向物理模式中添加数据表或或者使用EER图表添加所所有的数据表表。

我一一般选择开始始的时候添加EER图表并且且创建可视化化视图,但是是为了展示怎怎样用两种方方法创建数数据表,我们将会用视图标标签第一次创创建两个数据据库表然后接接着用EER图图表创建。当你点击AAdd Table 图标,下面的的数据表编辑辑界面会打开开:

使使用数据表编编辑界面,我我们改变数据据表的名字,并切换到列列标签(在下下面的编辑器选项卡)进入我们的列。我们可以以选择数据类类型 (这儿有有一个下拉列列表框关于所所有的MySQL数据类型型), 分配默认认的值,如果果需要,我们们有七个复选选框去标记下下面的任意一一个内容。

PK – Primaryy key(主键)

NN – Not null(非空)

UQ – Unique(唯一)

BINN – Binaryy(二进制数)

UN – Unsigneed(无符号)

ZF – Zero fill(补零)

AI – Autoinccrement(自动动增量)

转到视图

这是一种添添加数据表的方式,当然我我们也可以用用EER图表创创建它们。如如果我们现在在点击

Add Diagram标记记, 我们将新新建一个空的的图表,这不不是我们想要要的,我们需需要的是刚才才在图表中中建的两个数数据表。

如如果我们转到到菜单处,选选择Model/Crreate Diagrram from Catalog Objeccts,现在我们们有了图图表并且准备备继续创建。.

选择左边的的数据表图标标,指针指向一一个小的数据据表。下一步步,单击容器器的任何地方方创建一个个新的数据表表。

现在你只需需要双击数据据表,编辑器选选项卡显示编编辑的名称、列、类型等等,像我们之之前做的方方式一样。向向表中输入行行的详细信息后,我们准备备开始设计它它们之间的关关系。

Drawwing Relationnships

在左左边的数值工工具栏上,我我们在创建表关系上有六个个工具可供选选择

不用用担心最后一一个,我们最后后将会解释它它。对于1:11和1:n关系系,我们有两两种类型的标标记符号:定义和未定定义。这是什什么意思呢?一种关系被被认为是定义义一个表完全依赖与另一个个存在的表时时,一个数据据表的一行依赖于另一一个数据表的的一行。一个普普遍的例子就就是用一个分分开的表存储储用户的手机机号。这可能能在另一个个表中是必须须的,因为一个个用户可能有有几个手机号号,但是手机机号表的每一一组是完全依赖用户表表的,它是属属于用户的。

你你可能意识到到关系有一些些蕴含式。如如果我们想在在MySQL中建建立一个物理理表,关系必须被某种种方式映射。在表的关系映射中有几种种规则。

1:11 关系:一个个表的主键是另一个表的外外键

1:nn关系:关系对对应的表的主主键是n关系系对应的表的的外键

n:mm关系:一个新新表(关联表表)被创建。主主键是这两个个原始表的主主键的组成。

从n:m关系系说明创建关关联表时定义关系是比较典典型的。这些些数据表完全全依赖于两个个原始的表表。而且 ,在在1:1和1:nn的关系定义义上,外键的的引入将会成成为那个表的的主键一部分形成一个个复合的主键键。一个好的消息就是MyySQL Workbennch比我们更更好的知道这这些约束。我我们只需要要画线,外键键和关联表将会被自动创建建。我们也可可以选择手动动,一会将讲讲到。为了建建立关系,单击图标,然后点击这这两个表的关联联。对于一对对多关系,先先点击多关系系对应的表, 然后点点击1关系对对应的表。让我我们看一下该该怎样做对于于n:m的teaachers-subjjects关系和和1:n的tteachers-classes的关系系。

默认指定的的外键名字和关联表可能会会在Edit/PPreferencess/Model Tabb上被全局改变或者只只是在当前的的项目Model//Model Optiions上。如果果我们不想让让表和外键被被这种方式生生成,我们们可以用难以以理解的第六六个符号。

第六个符号号用存在的列创建关系,意意味着在你的的表中已经包包括了需要的的外键并且建建立了需要要的关联表((n:m映射表))。既然我们们建立了这些些关联表,就就不需要n:mm的关系了,1:n就可可以了。

如果我们把把所有的关系都定义好了,我们的图表表应该看起来来像下面这样样:

意识到到我们一直在在MySQL Workkbench中使用用默认的图表表符号,但是是你也可以在在Modedel/Object NNotation 和 Model/Relationship Notation改变它。这是改是我们在Classic

notaation模型中中的案例:

在这一点上上,我们的模模型是准备好的,我们可以生成SQl创建创MySQl数数据库。

生成成SQL

选择File//Export/Forwward Engineeer SQL CREEATE Script. 在我们生成成的文件的旁旁边

只有有三个向导屏屏幕:

我们还可以以在保存它之之前选择复查和和编辑生成的的SQL语句。。

这样就可以以了。点击Fiinish,SQL脚脚本将会被生生成和保存。。 现在我们们可以用它做我们希望望做的事情了了。我们可以用基于命令行的mysql client载入入它:mysql>> SOURCE

,或者,我们们可以用MySSQL Workbencch来完成这个个工作,连接接到我们的MySQL M服务务器然后执行行脚本。

连到到MySQL服务器

从菜单中选选择

Databaase/Manage CConnectionss ,点击NEWN.

如果你不想想在这儿设置置密码, 当需需要的时候你会被提示。点击“Test 点CConnection”” 测试一一下你的参数数是否正确,然后点击cllose。现在载载入的脚本,我们可以用用SQL编辑器器进行编辑辑。在主菜单里里选择Dataabase/QueryyDatabase; 会有窗体提示示你选择一个个连接,然后后SQL编辑辑标签将会出出现。

现在在点击闪烁的的图标执行SQQL脚本,然后你的数据库库将会被生成成。

我们也可以以直接从模型型里选择生成成MySQl数据库,不用数用涉及当前的的文件在菜单单中用

Database/FForward Enggineer;然而而,我发现生生成脚本并且且在希望用到到它的时候很很用。

总结

MySQL Workkbench 是一一个给人印象很很深的工具,, 我们仅仅仅在数据模型型部分看到一些基本的的功能,并且只是在这个教教程的第二个个部分一瞥SQLS编辑器。我们学会了了怎样可视化化的创建一一个数据库,设计被作为文文档保存的图图表。你可以以输出PNG、SVg、 PDF 或或者 PostSccript文件件。谢谢阅读读,让我知道道你是怎样想的!


本文标签: 数据库 关系 创建 图表 数据