logo资料库

MySQLWorkBench中文教程.pdf

第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
资料共11页,剩余部分请下载后查看
www.xunbiz.com 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。 有两个不 同的版本: Community OSS Edition (社区 OSS版本)和 Commercial
www.xunbiz.com Standard Edition (商业标准版本)。 社区版本是开源和 GPL授权的, 正如你所期望的。 它功能齐全并且是我们在这篇文章里用到的。 商业 版本增加了一些其他的功能,像视图和模型验证或者文件生成。 备注 : 这个辅助教程是基于 Community OSS Edition 5.2 版本的 (5.2.16), 在测试版本发行时写的 (2010.4) 。 开始创建数据库 为了学会怎样使用 MySQL Workbench, 我们将会使用一个非常简单 的数据库:在线课程作为案例。 假如一组老师想给几门学科提供在 线课程,使用 Skype 或者其他视频会议软件。 对于我们这个小的项目, 我们应该存储以下信息: 当设计我们的图表时 , 我们需要知道以下几组数据之间的关系, 所以 我们现在就应该想一下。 一个老师可以教很多学科 一个学科可以被很多老师教 每一个课程只能有一个老师 一个老师可以教很多班 一个同学可以参加几个班 一个班可以有很多学生
www.xunbiz.com 一个班可能有几个小时的课 ( 一周内 ) 在某一特殊的天或小时中 , 可能同时有几个在线的班 一个班只关于一个学科 一个学科可能会在几个课程中被教 基于这一点,在下面的展示中我们就有了所有的信息。 把数据传到 MySQL Workbench中 现在到了开始说 Workbench的时候了。在主( Home)屏幕的数据模型 部分,我们点击 ‘Create new EER Model’, 下面的屏幕将会出现: 当我们新建一个数据库模型时, 它包括了默认的 mydb模式, 我们可 以重命名它并且作为我们的数据库模式。 一个数据库模型可以有几个 不同的模式。 右边的目录将会展示我们的模式的每一个元素, 并且允 许我们在需要的情况下拖拽这些元素。 对于物理模式和 EER图表有几 个独立的部分, 我们可能会混淆包含在一个数据库中的几个模式。 接 下来的部分将会解释这些概念和它们之间是怎样关联的。 区分概念 物理模式包含了所有需要定义数据库的部分:表、列、类型、索引、 约束, 等等。这是我们真正要定义的。每一个被添加在图表模型的 对象都会在物理模式中显示 。也就是每一个图形化方式都会被定义
www.xunbiz.com 在模式中。 在同一个数据库模型中我们可有几个模式, 同样的,在一个 MySQL服 务器中也可以由几个数据库。每一个模式将会是一个 MySQL数据库。 例如,在下面的屏幕里我们有两个模式选项卡 如果我们要生成 SQL脚本,我们将有两个独立的创建数据库声明—实 际上创建视图和创建数据库是两个同义词: view plaincopy to clipboard print? 1. CREATESCHEMA IF NOT EXISTS `schema1`; 2. CREATESCHEMA IF NOT EXISTS `schema2`; “EER代表了扩展的实体关系, EER图表只是做模型数据和数据关系 用的标准符号。 当用到 SHOW DATABASES时,它们将会在 MySQl服务器上作为数据库 被列出来。 现在看一下什么是 EER图表? EER代表了扩展的实体关系, EER图表 只是做模型数据和数据关系用的标准符号。 EER模型可以很复杂,但 是 MySQL Workbench 只用了所有可能图形化元素的一个子集,因为 这个图表(在这个工具里) 的目的是拥有每一个被映射到物理模式的
www.xunbiz.com 元素。 我们可以用 EER图表定义整个数据库, 或者是其中的一小部分。 例如, 我们可以在一个模式中定义五个数据表然后新建一个图表 (drigram ) 用可视化编辑工具去定义另外两个数据表。 这个图表仅仅包含两个数 据表,但是这两个数据表和其他的五个表都会被包含在模式中。 创建表 回到初始的实例, 我们通过双击数据表的名字重命名它。 在这一点上, 有两个途径:我们可以用添加数据表图标向物理模式中添加数据表或 者使用 EER图表添加所有的数据表。 我一般选择开始的时候添加 EER图表并且创建可视化视图, 但是为了 展示怎样用两种方法创建数据表, 我们将会用视图标签第一次创建两 个数据库表然后接着用 EER图表创建。当你点击 Add Table 图标, 下面的数据表编辑界面会打开 : 使用数据表编辑界面,我们改变数据表的名字,并切换到列标签(在 下面的编辑器选项卡) 进入我们的列。 我们可以选择数据类型 ( 这儿 有一个下拉列表框关于所有的 MySQL数据类型 ), 分配默认的值,如 果需要,我们有七个复选框去标记下面的任意一个内容。 PK – Primary key (主键)
www.xunbiz.com NN – Not null (非空) UQ – Unique (唯一) BIN – Binary (二进制数) UN – Unsigned (无符号) ZF – Zero fill (补零) AI – Autoincrement (自动增量) 转到视图 这是一种添加数据表的方式,当然我们也可以用 EER图表创建它们。 如果我们现在点击 Add Diagram 标记 , 我们将新建一个空的图表, 这不是我们想要的,我们需要的是刚才在图表中建的两个数据表。 如果我们转到菜单处,选择 Model/Create Diagram from Catalog Objects, 现在我们有了图表并且准备继续创建。 . 选择左边的数据表图标,指针指向一个小的数据表。下一步,单击容 器的任何地方创建一个新的数据表。 现在你只需要双击数据表,编辑器选项卡显示编辑的名称、列、类型 等,像我们之前做的方式一样。向表中输入行的详细信息后,我们准 备开始设计它们之间的关系。
www.xunbiz.com Drawing Relationships 在左边的数值工具栏上,我们在创建表关系上有六个工具可供选择 不用担心最后一个,我们最后将会解释它。对于 1:1 和1:n 关系,我 们有两种类型的标记符号:定义和未定义。这是什么意思呢? 一种关系被认为是定义一个表完全依赖与另一个存在的表时 ,一个数 据表的一行依赖于另一个数据表的一行。 一个普遍的例子就是用一个 分开的表存储用户的手机号。 这可能在另一个表中是必须的, 因为一 个用户可能有几个手机号, 但是手机号表的每一组是完全依赖用户表 的,它是属于用户的。 你可能意识到关系有一些蕴含式。 如果我们想在 MySQL中建立一个物 理表,关系必须被某种方式映射。在表的关系映射中有几种规则。 1:1 关系 : 一个表的主键是另一个表的外键 1:n 关系 : 关系对应的表的主键是 n 关系对应的表的外键 n:m 关系 : 一个新表 ( 关联表 ) 被创建。主键是这两个原始表的主键的 组成。
www.xunbiz.com 从 n:m 关系说明创建关联表时定义关系是比较典型的。 这些数据表完 全依赖于两个原始的表。而且 ,在1:1 和1:n 的关系定义上,外键的 引入将会成为那个表的主键一部分形成一个复合的主键。 一个好的消 息就是 MySQL Workbench比我们更好的知道这些约束。我们只需要画 线,外键和关联表将会被自动创建。我们也可以选择手动,一会将讲 到。为了建立关系,单击图标,然后点击这两个表的关联。对于一对 多关系,先点击多关系对应的表, 然后点击 1关系对应的表。让我们 看一下该怎样做对于 n:m 的 teachers-subjects 关系和 1:n 的 teachers-classes 的关系。 默认指定的外键名字和关联表可能会在 Edit/Preferences/Model Tab上被全局改变或者只是在当前的项目 Model/Model Options 上。 如果我们不想让表和外键被这种方式生成, 我们可以用难以理解的第 六个符号。 第六个符号用存在的列创建关系, 意味着在你的表中已经包括了需要 的外键并且建立了需要的关联表( n:m 映射表)。既然我们建立了这 些关联表,就不需要 n:m 的关系了, 1:n 就可以了。 如果我们把所有的关系都定义好了, 我们的图表应该看起来像下面这 样:
分享到:
收藏