MySQL WorkBench中文教程
在今天的辅助教程里,你将会学到怎样用一个可视化数据库建模实用工具设计
一个数据库图表和自动生成SQL语句。特别说一下, 我们将会回顾一下怎样用MySQLWorkbench, 一个交叉平台,可视化数据库设计工具。
什么是 MySQL Workbench?
MySQL Workbench是由MySQL开发的强大的工具,它有以下三个基本功能区
域。
, SQL Development: 代替了 MySQL query browser(MySQL查询
浏览器). 允许用户连接到现有得的数据库,编辑和执行SQL查
询。
, Data Modeling: 完整的可视化数据库设计和建模
, Database Administration: 代替了 MySQL administrator. 图
形界面启动和关闭服务,创建用户账户,编辑配置文件,等等。
在这个教程中,我们将会在 Data Modeling 上从头开始创建一个数据库,然
后快速的看一下在SQL编辑器上执行SQL脚本并且在MySQL
中创建一个数据库。
MySQL Workbench可适用于Windows,Linux 和 Mac OSX。有两个不同的版本: (社区OSS版本)和 Commercial Community OSS EditionStandard Edition(商业标准版本)。社区版本是开源和GPL授权的,正如你所期望的。它功能齐全并且是我们在这篇文章里用到的。商业版本增加了一些其他的功能,像视图和模型验证或者文件生成。
备注: 这个辅助教程是基于Community OSS Edition 5.2 版本的
(5.2.16), 在测试版本发行时写的(2010.4)。
开始创建数据库
为了学会怎样使用 MySQL Workbench, 我们将会使用一个非常简单的数据库:在线课程作为案例。假
如一组老师想给几门学科提供在线课程,使用Skype或者其他视频会议软件。对于我们这个小的项目,我们应该存储以下信息: 当设计我们的图表时, 我们需要知道以下几组数据之间的关系,所以我们现在就应该想一下。
, 一个老师可以教很多学科
, 一个学科可以被很多老师教
, 每一个课程只能有一个老师
, 一个老师可以教很多班
, 一个同学可以参加几个班
, 一个班可以有很多学生
, 一个班可能有几个小时的课(一周内)
, 在某一特殊的天或小时中, 可能同时有几个在线的班
, 一个班只关于一个学科
, 一个学科可能会在几个课程中被教基于这一点,在下面的展示中我们就有了所有的信息。
把数据传到MySQL Workbench中
现在到了开始说Workbench的时候了。在主(Home)屏幕的数据模型部分,我们点击‘Create new EER Model’, 下面的屏幕将会出现:
当我们新建一个数据库模型时,它包括了默认的mydb模式,我们可以重命名它并且作为我们的数据库模式。一个数据库模型可以有几个不同的模式。右边的目录将会展示我们的模式的每一个元素,并且允许我们在需要的情况下拖拽这些元
素。对于物理模式和EER图表有几个独立的部分,我们可能会混淆包含在一个数据库中的几个模式。接
下来的部分将会解释这些概念和它们之间是怎样关联的。
区分概念
物理模式包含了所有需要定义数据库的部分:表、列、类型、索引、约束,
等等。这是我们真正要定义的。每一个被添加在图表模型的对象都会在物理模式中显示。也就是每一个图形化方式都会被定义在模式中。
在同一个数据库模型中我们可有几个模式,同样的,在一个MySQL服务器中也可以由几个数据库。每一个模式将会是一个MySQL数据库。例如,在下面的屏幕里我们有两个模式选项卡
如果我们要生成SQL脚本,我们将有两个独立的创建数据库声明—实际上创建视图和创建数据库是两个同义词: view plaincopy to clipboard print? 1. CREATE SCHEMA IF NOT EXISTS `schema1`; 2. CREATE SCHEMA IF NOT EXISTS `schema2`; “EER代表了扩展的实体关系,EER图表只是做模型数据和数据关系用的标准符号。
当用到SHOW DATABASES时,它们将会在MySQl服务器上作为数据库被列出来。
现在看一下什么是EER图表,EER代表了扩展的实体关系,EER图表只是做模型数据和数据关系用的标准符号。EER模型可以很复杂,但是 MySQL Workbench只用了所有可能图形化元素的一个子集,因为这个图表(在这个工具里)的目的是拥有每一个被映射到物理模式的元素。
linux mysql教程视频我们可以用EER图表定义整个数据库,或者是其中的一小部分。例如,我们可以在一个模式中定义五个数据表然后新建一个图表(drigram)用可视化编辑工具去
定义另外两个数据表。这个图表仅仅包含两个数据表,但是这两个数据表和其他的五个表都会被包含在模式中。
创建表
回到初始的实例,我们通过双击数据表的名字重命名它。在这一点上,有两个途径:我们可以用添加数据表图标向物理模式中添加数据表或者使用EER图表添加所有的数据表。
我一般选择开始的时候添加EER图表并且创建可视化视图,但是为了展示怎样用两种方法创建数据表,我们将会用视图标签第一次创建两个数据库表然后接着用EER图表创建。当你点击Add Table 图标,
下面的数据表编辑界面会打开:
使用数据表编辑界面,我们改变数据表的名字,并切换到列标签(在下面的编辑器选项卡)进入我们的列。我们可以选择数据类型 (这儿有一个下拉列表框关于所有的MySQL数据类型), 分配默认的值,如果需要,我们有七个复选框去标记下面的任意一个内容。
, PK – Primary key(主键)
, NN – Not null(非空)
, UQ – Unique(唯一)
, BIN – Binary(二进制数)
, UN – Unsigned(无符号)
, ZF – Zero fill(补零)
, AI – Autoincrement(自动增量)
转到视图
这是一种添加数据表的方式,当然我们也可以用EER图表创建它们。如果我们现在点击 Add Diagram标记, 我们将新建一个空的图表,这不是我们想要的,我们需要的是刚才在图表中建的两个数据表。
如果我们转到菜单处,选择Model/Create Diagram from Catalog
Objects,现在我们有了图表并且准备继续创建。. 选择左边的数据表图标,指针指向一个小的数据表。下一步,单击容器的任何地方创建一个新的数据表。
现在你只需要双击数据表,编辑器选项卡显示编辑的名称、列、类型等,像我们之前做的方式一样。
向表中输入行的详细信息后,我们准备开始设计它们之间的关系。
Drawing Relationships
在左边的数值工具栏上,我们在创建表关系上有六个工具可供选择
不用担心最后一个,我们最后将会解释它。对于1:1和1:n关系,我们有两种类型的标记符号:定义和未定义。这是什么意思呢,
一种关系被认为是定义一个表完全依赖与另一个存在的表时,一个数
据表的一行依赖于另一个数据表的一行。一个普遍的例子就是用一个分开的表存储用户的手机号。这可能在另一个表中是必须的,因为一个用户可能有几个手机号,但是手机号表的每一组是完全依赖用户表的,它是属于用户的。
你可能意识到关系有一些蕴含式。如果我们想在MySQL中建立一个物理表,关系必须被某种方式映射。在表的关系映射中有几种规则。
1:1 关系:一个表的主键是另一个表的外键 1:n关系:关系对应的表的主键是n 关系对应的表的外键
n:m关系:一个新表(关联表)被创建。主键是这两个原始表的主键的组成。
从n:m关系说明创建关联表时定义关系是比较典型的。这些数据表完全依赖于两个原始的表。而且,在1:1和1:n的关系定义上,外键的引入将会成为那个表
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论