Visio正向工程创建数据库

玛丽莲梦兔
794次浏览
2020年08月03日 22:16
最佳经验
本文由作者推荐

春秋战国的纷争-法制教育手抄报


VS2008 和 Visio for Enterprise
Architects 2005 下载及安装方法
看了几篇关于VS2008和Visi o的帖子自己综合了一下,希望对大家有用。废话不说,直接上菜。

1、VS2008的下载、序列号和正版破解方法,这里引用小小菜鸟的帖子:

http:

2、Microsoft Office Visio for Enterprise Architects 2005的下载,我找的是电驴的种子,
有时种子很不好,能否下得下来看你RP了- -!,我是下载下来了。下载地址:

ed2k:|file|%5B%E5%BE%AE%E 8%BD%AFVisio.2005.%E4%BC%81%E4%B8%9A%E6%9E%B6%E6%9 E%84%E
7%89%88%_visio_ent_arh_2005_|376285184|5 49ff77a7de55f96a0a1c4e4681c5a4f
|h=tuqa6snc6cel ch23hh53dnjq7w2umari|

3、这个Visio是企业版的,支持双向工 程,可以从数据库模型生成数据库。软件无需注册码,
但和VS2008安装时会报错:报VS软件版本 不对。解决方法:

http:

我比较笨,照着该贴试了几次没成功- -!,但从文中得到启发,换了个方法,比较容易,也成
功安装了,方法如下:

a.运行>regedit,打开注册表;

b.把注册表下的HKEY_LOCAL _MACHINESOFTWAREMicrosoftVisualStudio8.0和9.0都导出做个备份,其实这一步只是为了保险,不备份也可以安装成功;

c.把该注册表下文件夹8.0重命名,例如改为8.1只要不与其他文件夹名重名就可以了;

d.再在把该注册表下的文件夹9.0重命名为8.0;

e.安装Visio成功;

f.再把重命名过的文件夹名改回去,把8.0改回为9.0,把8.1改回为8.0;
g.最后把b步骤备份的注册表文件导入注册表即可,个人感觉b、g两步可以省掉,但为了安全
还 是加上了- -!。


一、概念数据模型概述


概念数据模型也称信息模型,它以实体-联系(Entity-Relatio nShip,简称E-R)理论为基础,并对
这一理论进行了扩充。它从用户的观点出发对信息进行建模 ,主要用于数据库的概念级设计。

通常人们先将现实世界抽象为概念世界,然后再 将概念世界转为机器世界。换句话说,就是
先将现实世界中的客观对象抽象为实体(Entity)和联 系 (Relationship),它并不依赖于具体的计算
机系统或某个DBMS系统,这种模型就 是我们所说的CDM;然后再将CDM转换为计算机上某个
DBMS所支持的数据模型,这样的模型就是物理数据模型,即PDM。

CDM是一组严格定义的模型元素的集合,这些模型元素精确地描述了系统的静态特性、动态
特性以及完 整性约束条件等,其中包括了数据结构、数据操作和完整性约束三部分。
1)数据结构表达为实体和属性;
2)数据操作表达为实体中的记录的插入、删除、修改、查询等操作;
3)完整性约束表达为 数据的自身完整性约束(如数据类型、检查、规则等)和数据间的参照完
整性约束(如联系、继承联系等 );

二、实体、属性及标识符的定义

实体(Entity) ,也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”。例如,学
校中的每个学生,医 院中的每个手术。每个实体都有用来描述实体特征的一组性质,称之为属性,
一个实体由若干个属性来描 述。如学生实体可由学号、姓名、性别、出生年月、所在系别、入学
年份等属性组成。

实体集(Entity Set)是具体相同类型及相同性质实体的集合。例如学校所有学生的 集合可定
义为“学生”实体集,“学生”实体集中的每个实体均具有学号、姓名、性别、出生年月、所在 系别、
入学年份等性质。

实体类型(Entity Type)是实体集 中每个实体所具有的共同性质的集合,例如“患者”实体类型
为:患者{门诊号,姓名,性别,年龄,身 份证号.............}。实体是实体类型的一个实例,在含
义明确的情况下,实体、实体 类型通常互换使用。实体类型中的每个实体包含唯一标识它的一个
或一组属性,这些属性称为实体类型的 标识符(Identifier),如“学号”是学生实体类型的标识符,
“姓名”、“出生日期”、“ 信址”共同组成“公民”实体类型的标识符。有些实体类型可以有几组属性
充当标识符,选定其中一组属 性作为实体类型的主标识符,其他的作为次标识符。

三、实体、属性及标识符的表达


四、新建概念数据模型

1)选择File-->New,弹出如图所示对话框,选择CDM模型(即概念数据模型)建立模型。


2)完成概念数据模型的创建。以下图示,对当前的工作空间进行简单介绍。(以 后再更详细


说明)


3)选择新增的CDM模型,右击, 在弹出的菜单中选择“Properties”属性项,弹出如图所示对
话框。在“General”标 签里可以输入所建模型的名称、代码、描述、创建者、版本以及默认的
图表等等信息。在“Notes” 标签里可以输入相关描述及说明信息。当然再有更多的标签,可
以点击 按钮,这里就不再进行详细解释。


五、定义实体

1、创建实体
1)在CDM的图形窗口中,单击工具选项版上的Entity工具,再单击图 形窗口的空白处,在
单击的位置就出现一个实体符号。点击Pointer工具或右击鼠标,释放Ent itiy工具。如图所


2)双击刚创建的实体符号,打开下列图标窗口,在此窗 口“General”标签中可以输入实体的
名称、代码、描述等信息。

Name :是用来在模型中标识一个实体,一般用于模型在界面中的显示(这个可以
通过更改选项设置进行改变) 。在一个模型当中,实体的名字不能重复。


Code:在模型转化时一般作为对象的物 理名称,比如把实体属性的Code转化为
数据库中的列名,当然我们现在不必为了这个实体将来叫什么 而费神,一般采取
与Name一致即可。
Generate:默认是选择状态,如果取消,则在转化为其他模型时,会忽略这个实
体。
2、添加实体属性
1)在上述窗口的“Attribute”选项标签上可以添加属性,如下图所示。


注意:
数据项中的“添加属性”和“重用已有数据项”这两项功能与模型中Data Item的Unique code
和Allow reuse选项有关。
P列表示该属性是否为主标识符;D列表示 该属性是否在图形窗口中显示;M列表示该属性是
否为强制的,即该列是否为空值。

如果一个实体属性为强制的,那么, 这个属性在每条记录中都必须被赋值,不能为空。
按“ Crtl+U”呼出“定制列过滤器”的窗口,可以根据自己的喜好和实际需要选
择那些列出现在窗口中 ,那些隐藏。使用快捷键 “Crtl+E”可以允许或者禁止
当前过滤器。
2)在上图所示窗口中,点击插入属性按钮,弹出属性对话框,如下图所示。

3、定义属性的检查约束

1)定义属性的标准检查
标准检查约束是一组 确保属性有效的表达式。在实体属性的特性窗口,打开如图所示的检查选项
卡。


在这个选项卡可以定义属性的标准检查约束,窗口中每项的参数的含义,如下
参数
Minimum
Maximum
Default
Unit
Format
说明
属性可接受的最小数
属性可接受的最大数
属性不赋值时,系统提供的默认值
单位,如公里、吨、元
属性的数据显示格式


Lowercase
Uppercase
Cannot modify
List Of Values
Label

属性的赋值全部变为小写字母
属性的赋值全部变为大写字母
该属性一旦赋值不能再修改
属性赋值列表,除列表中的值,不能有其他的值
属性列表值的标签
2)定义属性的附加检查
当Standard checks 或Rules 不能满足检查的要求时,可以在Additional Checks选项卡的Server子页上,通过SQL语句中使用%MINMAX%、%LISTVAL%、%RULES%、%UPPER% 、%LOWER% 几个
变量来定义Standard和Rule,如图所示


%MINMAX%、%LISTVAL%、%UPPER%、%LOWER%
在Standard Check中定义的Minimum 和Maximum、List values 、uppervalues、lowervalues

%RULES%
在Rules特性窗口Expression选项卡中定义的有效性规则表达式

六、标识符

标识符是实体中一个或多个属性的集合,可用来唯一标识实体 中的一个实例。要强调的是,
CDM中的标识符等价于PDM中的主键或候选键。每个实体都必须至少有 一个标识符。如果实体
只有一个标识符,则它为实体的主标识符。如果实体有多个标识符,则其中一个被 指定为主标识
符,其余的标识符就是次标识符了。

1、定义主、次标识符
1)选择某个实体双击弹出实体的属性对话框。在Identifiers选项卡上可以进行实体标识符的定< br>义。如下图所示



2)选择第一行“主标识符”,点击属性按钮 或双击第一行“主标识符”,弹出属性对话框,如图所


3)选择选项卡,再点击“Add Attributes”工具,弹出如图所示窗口,选择某个
属性作为标识符就行了。



七、数据项

数据项(Data Item)是信息存储的最小单位,它可以附加在实体上作为实体的属性。
注意:模型中允许存在没有附加至任何实体上的数据项。

1、新建数据项
1)使用“Model”---> Data Items 菜单,在打开的窗口中显示已有的数据项的列表,点击 “Add a Row”
按钮,创建一个新数据项,如图所示


2)当然您可以继续设置 具体数据项的Code、DataType、Length等等信息。这里就不再详细说明
了。

2、数据项的唯一性代码选项和重用选项
使用Tools--->Model Options->Model Settings。在Data Item组框中定义数据项的唯一性代码选项
(Unique Code)与重用选项(Allow Reuse)。
注意:
如果选择Unique Code复选框 ,每个数据项在同一个命名空间有唯一的代码,而选择Allow reuse ,
一个数据项可以充当多个实体的属性。


3、在实体中添加数据项
1)双击一个实体符号,打开该实体的属性窗口。
2)单击Attributes选项卡,打开如下图所示窗口


注意:
Add a DataItem 与 Reuse a DataItem的区别在于
Add a DataItem 情况下,选择一个已经存在的数据项,系统会自动复制所选择的数据项。如果您
设置了UniqueCode选项,那系统在复制过程中,新数据项的Code会自动生成一个唯一的号码,否则与所选择的数据项完全一致。


Reuse a DataItem情况下,只引用不新增,就是引用那些已经存在的数据项,作为新实体的数据
项。

八、 联系

联系(Relationship)是指实体集这间或实体集内部实例之间的连接。



实体之间可以通过联系来相互关联。与实体和实体集对应,联系也可以分为联系和联系
集,联系集是实体集之间的联系,联系是实体之间的联系,联系是具有方向性的。联系和联
系集在含义明 确的情况之下均可称为联系。

按照实体类型中实例之间的数量对应关系,通常可将联系分为4类,即一对一(ONE TO
ONE)联系、一对多(ONE TO MANY)联系、多对一(MANY TO ONE)联系和多对多联系(MANY
TO MANY)。
1、 建立联系
在CDM工具选项板中除了公共的工具外,还包括如下图所示的其它对象产生工具。

在图形窗口中创建两个实体后,单击“实体间建立联系”工具,单击一个实体,在按下鼠标左
键的同时把光标拖至别一个实体上并释放鼠标左键,这样就在两个实体间创建了联系,右键单击
图形窗口 ,释放Relationship工具。如下图所示




在两个实体间建立了联系后,双击联系线,打开联系特性窗口,如图所示。

2、 四种基本的联系
即一对一(ONE TO ONE)联系、一对多(ONE TO MANY)联系、多对一(MANY TO ONE)联系和多
对多联系(MANY TO MANY)。如图所示

3、 其他几类特殊联系

除了4种基本的联系之外,实体集与实体集之间还存在标定联系(Identify Relationship)、
非标定联系(Non-Identify RelationShip)和递归联系(Recursive Relationship)。

标定联系:
每个实体类型都有自己的标识符,如果两个实体集之间发生联系,其中一个实体类 型的标识符进
入另一个实体类型并与该实体类型中的标识符共同组成其标识符时,这种联系则称为标定联 系,
也叫依赖联系。反之称为非标定联系,也叫非依赖联系。
注意:
在非标定联 系中,一个实体集中的部分实例依赖于另一个实例集中的实例,在这种依赖联系中,
每个实体必须至少有 一个标识符。而在标定联系中,一个实体集中的全部实例完全依赖于另个实
体集中的实例,在这种依赖联 系中一个实体必须至少有一个标识符,而另一个实体却可以没有自


己的标识符。没有标识 符的实体用它所依赖的实体的标识符作为自己的标识符。

换句话来理解,在标定联系中,一个实体(选课)依赖 一个实体(学生),那么(学生)实体
必须至少有一个标识符,而(选课)实体可以没有自己的标识符,没有标标识符的实体可以用实
体(学生 )的标识符作为自己的标识符。

递归联系:
递归联系是实体集内部实例之间的 一种联系,通常形象地称为自反联系。同一实
体类型中不同实体集之间的联系也称为递归联系。

例如:在“职工”实体集中存在很多的职工,这些职工之间必须存在一种领导与
被领 导的关系。又如“学生”实体信中的实体包含“班长”子实体集与“普通学
生”子实体集,这两个子实体 集之间的联系就是一种递归联系。创建递归联系时,
只需要单击“实体间建立联系”工具从实体的一部分 拖至该实体的别一个部分
即可。如图


3、 定义联系的特性

双击关系(Relationship)的符号,进入关系的属性页,在Detail项目中,我
们可以对两个实体的关系进行详细的定义,如下图:

1. General 项目 < br>一般最好为关系取一个贴切的名字,本例的业务关系描述如下:一个部门
有多个员工,我们使用“ Has”作为这个关系的名字。
同样的我们也可以描述为:多个员工属于一个部门,可不可以使用
“Belong to”作为 关系名字呢?一般不推荐这样做,在概念图中有一个
约定,关系的名字采用从“1,n”中“1”所在的 方向向“n”所在一方进
行读取的语义。本例即 “1”在部门一方,从部门一方向雇员一方读取语
义,即:部门有(Has)多个员工。
2. Detail 项目
假定对于实体部门(Department)和雇员(Employee),具有如下关系:


一个部门可以有多个雇员,新成立的部门也可以暂时没有任何雇员;
一个雇员必须属于一个部门,并且同时只能属于一个部门;


根据以上关系, 我们修改属性页,部门-雇员的方向采用默认的0,n,雇员-部
门的方向修改为强制约束(Manda tory),或者从下拉框中选择“1,1”,如下图:

最后定义完成的关系(Relationship)在概念图中表示如下:

注:在Power Designer中,关系符号靠近实体端的一个“横线”代表强制性约
束 ,“空心圆圈”代表无强制约束,即这一方可以无对象关联;“非分岔”线代
表为“1” 的关系,“分 岔”线代表“多”的关系。以上四个符号共可以组合出
16种关系(包含反向)。其中“多对多”的关系 一般通过给出一个中间实体来
进行分解,所以在许多概念图中,是看不到实际的“多对多”的关系存在的 。
另外在关系的属性中还有两项:Dominant role 和Dependent,可以表示更复杂
的关系,会在后面讲到。
使用依赖关系(Dependent)

还是使用上面的例子,我们假定这样的业务描 述:雇员享有假期,雇员每次休假,
需要记录雇员休假的起始日与结束日,假期以天为单位,一个雇员和 一个开始日
唯一确定一个假期。根据这个业务描述,我们知道,对于假期而言,其必须依存
于实 体“Employee”而存在,即一个休假,必定有一个主体雇员。我们在上一个
模型的基础之上,添 加一个实体,名称是“Holiday”,定义假期的属性开始日
与结束日,这里并不需要重复定义一个 雇员编号,而是替代的,使用依赖关系,
来表示实体“Holiday”依赖于实体“Employee ”,关系定义如下图:


在实体“Holiday”中,我们需要设置开始日为 主键标识符,开始日与其依赖实体中的雇员编号
一起作为实体“Holiday”的标识符,用来唯一确 定一个假期。这种依赖关系在概念图中表现如
下:


从途中可以看出, 在实体“Holiday”一端多了一个朝外的三角▲箭头,这个含义就是这个实体
“的依赖于三角箭头 所指的另外一个实体,在转化出来的物理模型当中,实体“Employee”的
empNo,在Hol iday实体中不仅会作为一个外键,还同时会作为主键出现(与startData一起
作为复合主键 )。


使用Dominant role
当两个实体之间的关系是1..1 时(尽管这种关系比较少见,常见于面向对象的
设计方法当中,依赖实体中的主键通常与外健重合),你 需要明确指定这两个实
体,哪一个是父实体,哪一个是依赖实体,否则,系统在由概念模型转化为物理< br>模型时,将不能确定需要在哪一端生成外键,这时就需要用到“Dominant role”
选项,这个选项只有在1..1 的关系中才允许进行设置。我们假定这样的业务描
述,企业中的部分雇员拥有一个系统帐号,并且是唯一的一个帐号,这些雇员需
要保存一些额外的信息, 比如帐号名称、密码等等。我们添加了一个新的实体
“User”,其与雇员之间为1..1 的关系, 由于一个用户帐号必定属于一个雇员,
而一个雇员则可能没有用户帐号,所以我们定义实体“Emplo yee”支配实体
“User”。同时,由于 “User”依赖于“Employee”而存在,所以再定义一个
由前者到后者的依赖关系,如下图:
Sybase PowerDesigner 15.1

Microsoft SQL Server 2005

第一步概要设计:

打开PowerDe signer软件,设计“
概念数据模型
”(
Conceptual Data Model
):
点击workspace 右键---》New—>
Conceptual Data Model,

弹出如下界面:



设计表、表结构:



在设计属性(字段)的时候,三个字母(M、P、D)分别表示:

M:是否为空;(√表示不允许为空)
P:是否为主键;
D:是否在该软件的视图中显示
第二步:物理设计

将“
概念数据 模型
”设计的表转换为“
物理数据模型
”(
Physical Data Model
),实际上是从“概
要设计”转换为“详细设计”,即对表的具体实现。
将概要设计模板转换为物理设计

选择“Tools”-->“Generate Physical Data Model…”即可。



然后选择你的DBMS.

点击“确定”按钮以后,就产生了对应“SQL Server 2005”数据库的表、属性、关系的具体实现。
这时就会有一个物理设计的模板出现,将你在概要设计时的实体都转换成具体的表。



第三步:在SQL Server 2005中手动创建数据库(也可以用 SQL创建库,pd
可以将我们的表设计都转换成SQL)

需手动在SQL SERVER 2005中创建您的数据!如:“Students“,此过程省略…

第四步:在数据源ODBC中配置用户数据源


第五步:在SQL Server 2005中自动创建表结构

首先:根据“物理数据模型”(Physical Data Model)自动建立相应的SQL语句:




其次:执行其创建的SQL语句文件,将数据表结构自动创建到SQL Server 2005数据库中:

完成以上步骤后,刷新SQL Server 2005数据,将会看到你所创建的相关表结构。


另外生成单张表SQL语句可以:


在物理设计模板中,选择表--》右键—》SQL Perview…


生成SQL创建库和表,我喜欢懒人式,或者说拿给客户时,客户用的爽。。。

建立表的主外键关系:
使用PowerDesigner物理模型为建的关系表添加外键,有个原则就是主表的主键名称
必须和副表的外键名称一致。
测试(仅测试,不含技术)
1.建主表user 2.建副表department
uid int primary key did int primary key
name varchar(32) uid int
2.对着模型右击New->Reference
parent表为user表,child表为department
这样就建立了关系,外建也自动建立了。

关于表关系的建立,本人也存疑,但有三种思路:


1、概要设计时设计好关系。(个人倾向于这种方式,有时间尝试)
2、物理 设计时设计好关系(笔者使用此方法,若表很多,关系复杂,此阶段设计关系会很痛苦。偶深受其
害!)
3、生产数据库后,DBMS中建立关系(这种方式是笔者突发奇想,仔细思考,不建议采用这种方式, 如
果使用T-SQL重构数据库,又得重建关系)

仔细思考过后,个人认为概要 设计时,设计实体、实体必要属性、实体与实体关系,然后在数据库物理设
计时详细设计表属性等内容。
总有这样那样的途径方便我们去做那些繁琐的工作,哎,还未找到之前,只能靠自己去摸索了。。。。

2013年中考-太阳和霓虹灯


魔蝎座男人的性格-表白信息


社会实践论文-山西专科学校排名


护士执业注册申请审核表-天津工业大学分数线


运动员-评选活动方案


四川高校排名-百家争鸣和儒家思想的形成


堪萨斯州-一年级评语


秋天的怀念教学设计-十一休假