<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/studyzy" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/studyzy" type="application/rss+xml"></fs:self_link><lastBuildDate>Wed, 13 Jan 2010 03:48:00 GMT</lastBuildDate><title>博客园-深蓝居</title><description>关注MS的VS2008和SQL Server 2008</description><link>http://www.cnblogs.com/studyzy/</link><language>zh-cn</language><pubDate>Tue, 09 Feb 2010 15:16:16 GMT</pubDate><item><title>PowerDesigner的样式设置</title><link>http://www.cnblogs.com/studyzy/archive/2010/01/13/1646372.html</link><description>&lt;p&gt;阅读: 125 评论: 0 作者: &lt;a href=&quot;http://www.cnblogs.com/studyzy/&quot; target=&quot;_blank&quot;&gt;深蓝&lt;/a&gt; 发表于 2010-01-13 11:48 &lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2010/01/13/1646372.html&quot; target=&quot;_blank&quot;&gt;原文链接&lt;/a&gt;&lt;/p&gt;&lt;p&gt;PD提供了强大的配置功能，可以对生成的数据库对象命名、数据模型的展现进行设置。这里首先讲下样式的设置。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;颜色和字体设置&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1.单独设置某个对象的颜色和字体&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;1.1修改实体填充色&lt;/p&gt;  &lt;p&gt;（1）单击选中某个需要修改填充色的实体。&lt;/p&gt;  &lt;p&gt;（2）右击，在弹出式菜单中选择&amp;#8220;Format&amp;#8221;选项，系统将弹出格式化窗口。&lt;/p&gt;  &lt;p&gt;（3）切换到&amp;#8220;Fill&amp;#8221;选项卡中，选择Fill color为白色，如图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_F965/image_2.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_F965/image_thumb.png&quot; width=&quot;431&quot; height=&quot;376&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;（4）单击确定或应用按钮，即可将选中的实体修改为白色填充色。&lt;/p&gt;  &lt;p&gt;1.2修改线条颜色&lt;/p&gt;  &lt;p&gt;（1）选中需要修改线条颜色的实体或者是关系。&lt;/p&gt;  &lt;p&gt;（2）右击，在弹出式菜单中选择&amp;#8220;Format&amp;#8221;选项，系统将弹出格式化窗口。&lt;/p&gt;  &lt;p&gt;（3）切换到&amp;#8220;Line Style&amp;#8221;选项卡，修改Color为黑色，如图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_F965/image_4.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_F965/image_thumb_1.png&quot; width=&quot;431&quot; height=&quot;376&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;（4）单击确定或应用按钮，即可将选中的实体线条修改为黑色。&lt;/p&gt;  &lt;p&gt;1.3修改字体&lt;/p&gt;  &lt;p&gt;（1）选中需要修改线条颜色的实体或者是关系。&lt;/p&gt;  &lt;p&gt;（2）右击，在弹出式菜单中选择&amp;#8220;Format&amp;#8221;选项，系统将弹出格式化窗口。&lt;/p&gt;  &lt;p&gt;（3）切换到&amp;#8220;Font&amp;#8221;选项卡，左边会列出多个Symbol，可以将实体的名字、实体中的属性、主键等分别设置不同的字体。统一要求所有Symbol都使用Times New Roman字体，Size为10，颜色为黑色，如图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_F965/image_8.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_F965/image_thumb_3.png&quot; width=&quot;431&quot; height=&quot;376&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;（4）单击确定或应用按钮，即可将选中的对象的文字进行修改。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2.设置所有模型的颜色和字体&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;设置一个模型中所有对象的颜色、字体等的方法有两种，一种是使用Ctrl+A全选所有实体和关系，然后右键单击&amp;#8220;Format&amp;#8221;选项或者单击工具栏的Line Style、Fill Style和Font按钮。&lt;/p&gt;  &lt;p&gt;另一个办法是不选择任何对象，在空白区域右击，在弹出式菜单中选择&amp;#8220;Display Preferences&amp;#8221;选项，在左边的Category列表中选择&amp;#8220;Format&amp;#8221;-&amp;gt;&amp;#8220;Entity&amp;#8221;选项，系统会在右侧显示当前的实体的样式。单击&amp;#8220;Modify&amp;#8221;按钮，即可弹出Symbol Format窗口，修改实体的样式，如图所示。&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_F965/image_10.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_F965/image_thumb_4.png&quot; width=&quot;595&quot; height=&quot;522&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;修改完毕后，单击&amp;#8220;确定&amp;#8221;按钮，回到Display Preferences窗口，单击&amp;#8220;Set As Default&amp;#8221;，然后单击&amp;#8220;OK&amp;#8221;按钮，系统会弹出修改样式对话框，选择All Symbols选项，然后单击&amp;#8220;OK&amp;#8221;按钮，则当前模型中的所有实体都会被统一修改。同时，以后添加的新实体也会使用修改后的样式。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_F965/image_12.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_F965/image_thumb_5.png&quot; width=&quot;240&quot; height=&quot;162&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://www.cnblogs.com/studyzy/aggbug/1646372.html?type=1&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;/&gt;&lt;p&gt;评论: 0　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2010/01/13/1646372.html#pagedcomment&quot; target=&quot;_blank&quot;&gt;查看评论&lt;/a&gt;　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2010/01/13/1646372.html#commentform&quot; target=&quot;_blank&quot;&gt;发表评论&lt;/a&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;最新新闻：&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56793/&quot; target=&quot;_blank&quot;&gt;知名扩展 Firebug 的简化版登陆 Chrome&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:59)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56792/&quot; target=&quot;_blank&quot;&gt;Google 悄悄地启用 1e100.net，打枪地不要&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:57)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56791/&quot; target=&quot;_blank&quot;&gt;从 Google 代码库找到的好东西&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:46)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56789/&quot; target=&quot;_blank&quot;&gt;苹果在线商店临时关闭 或将推新Macbook&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:39)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56788/&quot; target=&quot;_blank&quot;&gt;豆瓣网推出豆瓣电台iPhone客户端&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 21:51)&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;编辑推荐：&lt;a href=&quot;http://news.cnblogs.com/n/56782/&quot; target=&quot;_blank&quot;&gt;2010年2月编程语言排行榜&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;网站导航：&lt;a href=&quot;http://www.cnblogs.com&quot; target=&quot;_blank&quot;&gt;博客园首页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/&quot; target=&quot;_blank&quot;&gt;个人主页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://news.cnblogs.com&quot; target=&quot;_blank&quot;&gt;新闻&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/ing/&quot; target=&quot;_blank&quot;&gt;闪存&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/group/&quot; target=&quot;_blank&quot;&gt;小组&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com/q/&quot; target=&quot;_blank&quot;&gt;博问&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com&quot; target=&quot;_blank&quot;&gt;社区&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://kb.cnblogs.com&quot; target=&quot;_blank&quot;&gt;知识库&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/330732127/studyzy/feedsky/s.gif?r=http://www.cnblogs.com/studyzy/archive/2010/01/13/1646372.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/studyzy/330732127/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/studyzy/330732127/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 13 Jan 2010 11:48:00 +0800</pubDate><author>深蓝</author><guid isPermaLink="false">http://www.cnblogs.com/studyzy/archive/2010/01/13/1646372.html</guid><dc:creator>深蓝</dc:creator><fs:srclink>http://www.cnblogs.com/studyzy/archive/2010/01/13/1646372.html</fs:srclink><fs:srcfeed>http://www.cnblogs.com/studyzy/rss</fs:srcfeed><fs:itemid>feedsky/studyzy/~7646125/330732127/5755232</fs:itemid></item><item><title>分析与设计数据库模型的简单过程</title><link>http://www.cnblogs.com/studyzy/archive/2010/01/11/1643976.html</link><description>&lt;p&gt;阅读: 157 评论: 3 作者: &lt;a href=&quot;http://www.cnblogs.com/studyzy/&quot; target=&quot;_blank&quot;&gt;深蓝&lt;/a&gt; 发表于 2010-01-11 11:48 &lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2010/01/11/1643976.html&quot; target=&quot;_blank&quot;&gt;原文链接&lt;/a&gt;&lt;/p&gt;&lt;p&gt;近期在做一个业务系统的分析和数据模型设计，工作这几年也做过好几个项目的数据库模型的设计，期间也算是积累了一定的经验吧，这次有机会就写写我的数据库模型设计过程与方法。&lt;/p&gt;  &lt;p&gt;在数据库设计中，设计的目标就是要建立E-R图（实体-关系图），在PowerDesigner中就是要建立概念模型或者逻辑模型。既然是实体-关系图，所以整个建模的核心就是围绕建立&amp;#8220;实体&amp;#8221;对象和找到实体之间的&amp;#8220;关系&amp;#8221;。实体分为两部分：标识（主键）和属性。标识是实体的一个或多个属性的组合，用于唯一的表标识出实体中的每一个数据。在确认一个实体的过程中，首先就是要确认实体的主键，只要找到了实体的主键，那么剩下的就是实体的属性。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1.确认核心实体&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;在建模过程中，首先需要对业务进行分析，知道我们的模型要表示怎么样的一个事情，从而确定我们模型的核心实体，找到了核心实体和其主键，那么剩下的工作就是以核心实体为中心进行实体关联的扩展和实体属性的抽象。一个数据库模型中一般会有1~2个实体作为整个模型的核心实体，核心实体一般都是一个名词，在整个业务过程中作为主语和宾语。所以总的来说，我们用一个主谓宾的句子来描述我们这个模型，那么基本就可以肯定，这句话中的主语和宾语就是核心实体，而通常谓语也是一个很核心的对象，该对象可能会产生一个实体来表示，也可能只是一个关联（Association）。通常数据库中数据量最大的表就是谓语对应的表。&lt;/p&gt;  &lt;p&gt;以上说法可能比较抽象，用一两个简单的例子来说明。假设我们需要设计一个学生选课系统的数据库模型，那么首先就是要分析，我们这个系统是做什么的，记录什么的？&amp;#8220;学生选课&amp;#8221;！虽然只有4个字，但是已经完整的表达整个系统，从这样一个主谓宾的句子中，我们可以得出，整个模型的核心是&amp;#8220;学生&amp;#8221;（主语）和&amp;#8220;课程安排&amp;#8221;（宾语），谓词&amp;#8220;选&amp;#8221;表名了两个实体之间的核心关系。确定了核心的实体&amp;#8220;学生&amp;#8221;和&amp;#8220;课程安排&amp;#8221;，那么接下来就是要确定实体的主键和属性。&amp;#8220;学生&amp;#8221;实体的主键很容易确定，只要找到能够唯一标识每个学生的一个字段即可，所以我们可以使用&amp;#8220;学号&amp;#8221;来作为学生实体的主键，一个学校中每个学生的学号肯定是唯一的。&amp;#8220;课程安排&amp;#8221;这个实体的主键并没有那么明显的属性能够表示，对于无法找到明显的实体属性作为主键的情况下，我们需要创建一个专门的标识列（ID）用来标识实体中的每个实例。在数据库中最常见的ID就是自增列。这里我们可以设计&amp;#8220;课程安排ID&amp;#8221;作为课程实体的主键，每在数据库中增加一门课程，系统会自动为该课程分配一个自增的唯一整数来标识。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image_2.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image_thumb.png&quot; width=&quot;608&quot; height=&quot;78&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;再比如一个要设计一个电子商务系统的数据库模型，首先一句话总结该系统就是&amp;#8220;用户在网上购买商品&amp;#8221;，所以这个系统的核心实体就是&amp;#8220;用户&amp;#8221;和&amp;#8220;商品&amp;#8221;。用户实体的主键是什么？用户的登录名是唯一的、邮箱是唯一的，都可以作为该实体的主键。但是在真实的电子商务系统中很少使用登录名或邮箱来作为主键，因为其中一个很重要的原因是登录名和邮箱都太长，而且长度不确定，所以在数据库中一般会设计一个自增的&amp;#8220;用户ID&amp;#8221;来作为用户的主键。商品实体的主键可以用商品的条形码来作为主键，确实可以这么做，但是同样的原因，条形码太长了，所以一般会用一个Int型的自增列&amp;#8220;商品ID&amp;#8221;作为商品的主键。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image_6.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image_thumb_2.png&quot; width=&quot;611&quot; height=&quot;80&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2.确认相关实体&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;在找到了核心实体后，接下来就是以核心实体为中心，找到相关的实体。相关实体一般来说就是和核心实体存在直接联系的实体，当然也有些相关实体是要经过另一个相关实体与核心实体关联。相关实体一般情况下都是名词。&lt;/p&gt;  &lt;p&gt;以选课系统为例，与学生相关的实体是什么？班级、专业方向、院系等，与课程安排相关的实体是什么？课程、课程的详细安排、安排的教师等，所以我们可以将这些要关联到的实体都建立。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image20.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image20_thumb.png&quot; width=&quot;638&quot; height=&quot;367&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;再看看前面说到的电子商务平台，核心实体是用户和商品，围绕用户，我们需要建立用户的&amp;#8220;订单&amp;#8221;（包括订单的明细）、用户的&amp;#8220;代金券&amp;#8221;等实体，围绕商品，我们需要建立商品的分类，商品的供应商等相关实体。于是我们的电子商务数据库模型变为：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image_26.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image_thumb_11.png&quot; width=&quot;543&quot; height=&quot;313&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;这一步并没有完成，一个实体可以没有属性，但是却不能没有主键，所以需要给所有相关实体添加主键，我们可以以简短的可以唯一标识实体的属性来作为主键，也可以使用自增的ID作为主键，在数据库中出于性能、快捷等方面的考虑，大部分实体都是以ID作为主键。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3.确认关联和关系&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;关联（Association）也是一种实体间的连接，在Merise模型方法学理论中，Association是一种用于连接分别代表明确定义的对象的不同实体，这种连接仅仅通过另一个实体不能很明确地表达，而通过&amp;#8220;事件（Event）&amp;#8221;连接来表示。&lt;/p&gt;  &lt;p&gt;也就是说，实体和实体之间存在着关系（多对多），但是这种关系还存在其他的属性，这些属性如果如果作为一个明确的实体的实体来表示又不是很合适，所以就使用了Association来表达，这种关系之间一般是一个&amp;#8220;事件&amp;#8221;虚实体，也就是说是一个&lt;strong&gt;动词&lt;/strong&gt;对应的实体。&lt;/p&gt;  &lt;p&gt;以选课系统为例，&amp;#8220;选课&amp;#8221;这个动词就是需要用关联来表示，一个学生可以选择多个课程安排，一个课程安排会有多个学生来选，所以学生和课程安排之间是多对多的关系，但是学生选课时还需要记录学生的时间、选课是否成功等信息，所以需要使用关联来表示选课这个动作。&lt;/p&gt;  &lt;p&gt;前面说到的多对多是实体之间的一种关系，两个实体之间存在4种关系：一对一、一对多、多对一和多对多。根据核心实体和相关实体之间的关系建立实体之间的关系，于是我们的选课系统数据库模型如图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image46.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image46_thumb.png&quot; width=&quot;875&quot; height=&quot;370&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;对于一个电子商务系统，分析其中的实体之间的关系，也可以得到类似的关系图。要表示用户对商品的收藏，也就用户和商品两个实体直接的直接关系，一个用户可以收藏多件商品，一个商品可以被多个用户收藏，所以用户和商品之间是多对多的关系。另外，商品分类和自身是一个一对多的关系，因为分类存在大分类和小分类，是一种层级关系，一个父级分类下面有多个小分类，一个小分类只会有一个父级分类，所以分类自身一对多。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image_24.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image_thumb_10.png&quot; width=&quot;799&quot; height=&quot;439&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;4.确认属性&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;前面几步工作时最重要最核心的工作，接下来的工作就是要完善模型。首先需要的就是要将实体的属性补齐，实体的属性可以根据日常生活常识、用户提交的表单、用户需求调研等来确定。比如学生表，根据常识我们知道，学生会具有姓名、性别、生日等属性；课程会具有课程名、学分等属性；课程的详细安排会安排具体的时间、上课的地点等属性&amp;#8230;&amp;#8230;在实际的企业应用中，大部分实体的属性时不可能通过常识来得到的，必须进行需求的调研，结合业务上的需求和实际中的表单、数据流等找到实体的属性。比如对于供应商这个实体，我们只知道供应商有编号，有名字，还有其他什么属性就必须得调研了。调研时我们知道企业新增加一个供应商时会填写一个新增供应商表，那么我们就可以拿到该表，更加表单的内容来设计供应商实体的属性。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;5.范式化&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;在前面设计选课系统的数据模型时，对于选课的详细信息实体，会存在上课的时间、上课的地点等属性，但是仔细一考虑，这些属性如果直接放在该实体中，必然会形成数据重复，导致数据维护困难，不符合3范式的设计原则，所以应该将这些属性提出，作为单独的实体，于是，我们的选课系统的数据库模型就变为如图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image1.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image1_thumb.png&quot; width=&quot;889&quot; height=&quot;566&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;再说下电子商务系统的模型，里面最重要的一个实体&amp;#8220;商品&amp;#8221;会包含很多属性，比如大小、颜色、重量、卖价&amp;#8230;&amp;#8230;，这其中，大小、颜色本身也可以作为实体抽取出来，以便于进行维护，所以我们的电子商务系统的模型便为：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image_22.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image_thumb_7.png&quot; width=&quot;857&quot; height=&quot;553&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;6.细节调整&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;现在整个模型已经基本上完成了，但是仍然有几个地方需要进一步的确认和调整：属性的数据类型和实体之间的关系。现在数据库模型中，所有的属性的数据类型都是Undefined，需要根据系统要求、业务需求和调研来确定每个属性的数据类型。但一般来说还是具有一定的规则可循：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;自增ID用Integer型，如果数据量会特别特别大的话，可以使用长整型。 &lt;/li&gt;    &lt;li&gt;涉及到金额的用Money类型。 &lt;/li&gt;    &lt;li&gt;涉及字符串的确定该属性中是否有可能出现中文，如果有中文出现的，用variable multibyte，没有中文出现那就用Characters或者variable Characters。 &lt;/li&gt;    &lt;li&gt;如果是枚举类型的，用Byte。 &lt;/li&gt;    &lt;li&gt;日期和时间类型的，确定是要用日期还是用时间，或者两者都需要记录。 &lt;/li&gt;    &lt;li&gt;具有小数的用float类型。 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;按照实际情况将模型中的每个属性的数据类型进行修改。另外就是实体之间的关系，在默认情况下，添加的实体关系是一对多的关系，另外也可能存在一对一或者多对多的关系，除了这些关系外，另外还需要确定对应的关系实体是否是必须的。一对多中，一这部分就存在0,1 和1,1两种情况；多的部分存在0,n和1,n两种情况。最常见的情况是1,1:0,n，也就是说多的一端肯定会对应一个一的实体，而一的一端可以对应0到多个实体。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image_10.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image_thumb_3.png&quot; width=&quot;996&quot; height=&quot;562&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;再比如电子商务系统，确定该数据库模型中每个实体属性的数据类型，然后修改实体之间的关系，将必须存在值对应的地方修改为1,1或者1,n即可。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image_12.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8b52fb11571c_10DB3/image_thumb_4.png&quot; width=&quot;991&quot; height=&quot;522&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;通过以上几步操作，我们可以建立完整的数据库概念模型，主要应该关注在实体的建立（核心就是要找到实体的主键）和实体关系的建立（核心就是找到实体直接是一对多还是多对多或者一对一），只要把这两点做好，那么整个模型的框架就搭建好了。&lt;/p&gt;&lt;img src=&quot;http://www.cnblogs.com/studyzy/aggbug/1643976.html?type=1&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;/&gt;&lt;p&gt;评论: 3　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2010/01/11/1643976.html#pagedcomment&quot; target=&quot;_blank&quot;&gt;查看评论&lt;/a&gt;　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2010/01/11/1643976.html#commentform&quot; target=&quot;_blank&quot;&gt;发表评论&lt;/a&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;最新新闻：&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56793/&quot; target=&quot;_blank&quot;&gt;知名扩展 Firebug 的简化版登陆 Chrome&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:59)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56792/&quot; target=&quot;_blank&quot;&gt;Google 悄悄地启用 1e100.net，打枪地不要&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:57)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56791/&quot; target=&quot;_blank&quot;&gt;从 Google 代码库找到的好东西&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:46)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56789/&quot; target=&quot;_blank&quot;&gt;苹果在线商店临时关闭 或将推新Macbook&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:39)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56788/&quot; target=&quot;_blank&quot;&gt;豆瓣网推出豆瓣电台iPhone客户端&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 21:51)&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;编辑推荐：&lt;a href=&quot;http://news.cnblogs.com/n/56782/&quot; target=&quot;_blank&quot;&gt;2010年2月编程语言排行榜&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;网站导航：&lt;a href=&quot;http://www.cnblogs.com&quot; target=&quot;_blank&quot;&gt;博客园首页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/&quot; target=&quot;_blank&quot;&gt;个人主页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://news.cnblogs.com&quot; target=&quot;_blank&quot;&gt;新闻&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/ing/&quot; target=&quot;_blank&quot;&gt;闪存&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/group/&quot; target=&quot;_blank&quot;&gt;小组&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com/q/&quot; target=&quot;_blank&quot;&gt;博问&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com&quot; target=&quot;_blank&quot;&gt;社区&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://kb.cnblogs.com&quot; target=&quot;_blank&quot;&gt;知识库&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/330732298/studyzy/feedsky/s.gif?r=http://www.cnblogs.com/studyzy/archive/2010/01/11/1643976.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/studyzy/330732298/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/studyzy/330732298/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 11 Jan 2010 11:48:00 +0800</pubDate><author>深蓝</author><guid isPermaLink="false">http://www.cnblogs.com/studyzy/archive/2010/01/11/1643976.html</guid><dc:creator>深蓝</dc:creator><fs:srclink>http://www.cnblogs.com/studyzy/archive/2010/01/11/1643976.html</fs:srclink><fs:srcfeed>http://www.cnblogs.com/studyzy/rss</fs:srcfeed><fs:itemid>feedsky/studyzy/~7646125/330732298/5755232</fs:itemid></item><item><title>重新写了一个拼音输入法词库转换小程序</title><link>http://www.cnblogs.com/studyzy/archive/2009/12/31/1637030.html</link><description>&lt;p&gt;阅读: 196 评论: 0 作者: &lt;a href=&quot;http://www.cnblogs.com/studyzy/&quot; target=&quot;_blank&quot;&gt;深蓝&lt;/a&gt; 发表于 2009-12-31 17:32 &lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/31/1637030.html&quot; target=&quot;_blank&quot;&gt;原文链接&lt;/a&gt;&lt;/p&gt;&lt;p&gt;之前，由于我要从QQ拼音平台转换到搜狗拼音上，所以我写了一个小程序把QQ拼音词库转换为搜狗拼音词库。后来陆续收到来信，索要程序同时也希望把搜狗拼音词库转换为QQ拼音，所以我就在这个小程序上做了一点改进。这两天我给手机换了百度拼音输入法，之所以用这个输入法是因为这个输入法可以将词库保存到服务器上，那么我重装系统后重新安装输入法就可以把服务器上我的词库同步到我的手机上了。百度手机输入法支持本地文本文件的备份和还原，所以我就希望将我电脑中的输入法词库导入到手机中，这样我平时发短信就更快了。&lt;/p&gt;  &lt;p&gt;为了能够把电脑上的QQ拼音词库和搜狗拼音词库（文本导出）转换到百度手机输入法上，于是我就继续改进了这个输入法词库转换小程序。小程序运行的界面如图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/5092499e8ffa_EF09/image_2.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/5092499e8ffa_EF09/image_thumb.png&quot; width=&quot;759&quot; height=&quot;446&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;以QQ拼音转百度为例，选择QQ拼音词库的路径，长度过滤默认是5，也就是说只要大于等于5个字的词就不转换，词频过滤默认是3，也就是说小于3的词频的词都不会转换，只有大于等于3的词才会转换。然后点击&amp;#8220;QQ转百度&amp;#8221;按钮，系统将成功转换符合条件的词并提示完成。&lt;/p&gt;  &lt;p&gt;把转换后的词文件复制到手机上，然后运行百度手机输入法的用户词库管理-》用户词恢复-》从文本导入，即可。如果词库较大，会恢复很长很长时间，恢复后然后再做一下用户词备份，备份到百度即可。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;a href=&quot;http://files.cnblogs.com/studyzy/QQPY2SGPY1.2.zip&quot; target=&quot;_blank&quot;&gt;/Files/studyzy/QQPY2SGPY1.2.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;现将程序源代码放出来，希望对需要的人士有所帮助。可执行文件在bin目录的Debug目录中，需要.net 2.0才能运行。&lt;/p&gt;&lt;img src=&quot;http://www.cnblogs.com/studyzy/aggbug/1637030.html?type=1&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;/&gt;&lt;p&gt;评论: 0　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/31/1637030.html#pagedcomment&quot; target=&quot;_blank&quot;&gt;查看评论&lt;/a&gt;　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/31/1637030.html#commentform&quot; target=&quot;_blank&quot;&gt;发表评论&lt;/a&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;最新新闻：&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56793/&quot; target=&quot;_blank&quot;&gt;知名扩展 Firebug 的简化版登陆 Chrome&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:59)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56792/&quot; target=&quot;_blank&quot;&gt;Google 悄悄地启用 1e100.net，打枪地不要&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:57)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56791/&quot; target=&quot;_blank&quot;&gt;从 Google 代码库找到的好东西&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:46)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56789/&quot; target=&quot;_blank&quot;&gt;苹果在线商店临时关闭 或将推新Macbook&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:39)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56788/&quot; target=&quot;_blank&quot;&gt;豆瓣网推出豆瓣电台iPhone客户端&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 21:51)&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;编辑推荐：&lt;a href=&quot;http://news.cnblogs.com/n/56782/&quot; target=&quot;_blank&quot;&gt;2010年2月编程语言排行榜&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;网站导航：&lt;a href=&quot;http://www.cnblogs.com&quot; target=&quot;_blank&quot;&gt;博客园首页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/&quot; target=&quot;_blank&quot;&gt;个人主页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://news.cnblogs.com&quot; target=&quot;_blank&quot;&gt;新闻&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/ing/&quot; target=&quot;_blank&quot;&gt;闪存&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/group/&quot; target=&quot;_blank&quot;&gt;小组&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com/q/&quot; target=&quot;_blank&quot;&gt;博问&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com&quot; target=&quot;_blank&quot;&gt;社区&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://kb.cnblogs.com&quot; target=&quot;_blank&quot;&gt;知识库&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/330732322/studyzy/feedsky/s.gif?r=http://www.cnblogs.com/studyzy/archive/2009/12/31/1637030.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/studyzy/330732322/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/studyzy/330732322/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 31 Dec 2009 17:32:00 +0800</pubDate><author>深蓝</author><guid isPermaLink="false">http://www.cnblogs.com/studyzy/archive/2009/12/31/1637030.html</guid><dc:creator>深蓝</dc:creator><fs:srclink>http://www.cnblogs.com/studyzy/archive/2009/12/31/1637030.html</fs:srclink><fs:srcfeed>http://www.cnblogs.com/studyzy/rss</fs:srcfeed><fs:itemid>feedsky/studyzy/~7646125/330732322/5755232</fs:itemid></item><item><title>SQL Server 2008 R2主数据服务安装</title><link>http://www.cnblogs.com/studyzy/archive/2009/12/28/sqlserver2008r2-mds-setup.html</link><description>&lt;p&gt;阅读: 213 评论: 1 作者: &lt;a href=&quot;http://www.cnblogs.com/studyzy/&quot; target=&quot;_blank&quot;&gt;深蓝&lt;/a&gt; 发表于 2009-12-28 00:17 &lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/28/sqlserver2008r2-mds-setup.html&quot; target=&quot;_blank&quot;&gt;原文链接&lt;/a&gt;&lt;/p&gt;&lt;p&gt;SQL Server 2008 R2的主数据服务（Master Data Services，简称MDS）已经放出，目前是CTP版本，微软提供了下载地址：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;amp;FamilyID=fe0c6a31-5ad6-4eea-a865-73bbe2608bd1&quot; target=&quot;_blank&quot;&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;amp;FamilyID=fe0c6a31-5ad6-4eea-a865-73bbe2608bd1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;在下载页面中提供了SQL2008R2的安装试用，一个是DVD的文件，另外是自解压文件；第3个下载就是主数据服务的自解压文件：&lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkID=168578&amp;amp;clcid=0x804&quot; target=&quot;_blank&quot;&gt;Master Data Services X64 可执行文件&lt;/a&gt; ；第4个下载是StreamInsight，一个复杂事件处理的框架，这里暂不讲解。&lt;/p&gt;
&lt;p&gt;主数据服务只提供了64位版本，所以必须要在64位的操作系统或者虚拟机中安装。微软的产品已经开始全面跨入64位平台，最新的Windows2008R2、Exchange2010、MOSS2010等都只推出64位版本。公司虽然配置的是64位的硬件，可惜安装的是32位的XP，所以没办法在本机或者本机虚拟机中安装MDS，感谢经理提供了一个Hyper-v给我，让我能够有条件试用MDS。闲话休说，进入正题！&lt;/p&gt;
&lt;p&gt;主数据服务是什么？我在之前的一篇&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/06/23/1508782.html&quot; target=&quot;_blank&quot;&gt;介绍SQL Server 2008 R2的博客&lt;/a&gt;中推荐过一篇&lt;a href=&quot;http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0904loulj/index.html&quot; target=&quot;_blank&quot;&gt;主数据管理和实施的文章&lt;/a&gt;，这里再次推荐一下，对主数据是什么存在疑问的可以仔细研读。&lt;/p&gt;
&lt;p&gt;若要安装SQL2008R2的MDS，除了是64位操作系统外，还需要服务器上安装了ASP.NET的IIS，当然SQL2008R2数据库也是必须的。MDS主要包含：Asp.Net的应用程序用于进行主数据管理、Host在IIS中的WCF服务提供WebService、SQL2008R2数据库用于数据存储。在安装了IIS和SQL Server 2008 R2后，下载并安装MDS，安装完成后便可在开始菜单的&amp;#8220;Microsoft SQL Server 2008 R2 November CTP&amp;#8221;下的&amp;#8220;Master Data Services&amp;#8221;下找到&amp;#8220;配置管理器&amp;#8221;。打开配置管理器如图所示：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_2.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_thumb.png&quot; width=&quot;640&quot; height=&quot;447&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;单击左边面板的&amp;#8220;数据库&amp;#8221;选项，切换到数据库配置界面，如图所示：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_4.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_thumb_1.png&quot; width=&quot;640&quot; height=&quot;405&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;由于我们之前并没有创建过MDS的数据库，所以单击&amp;#8220;Create Database&amp;#8221;按钮，系统弹出创建MDS数据库向导窗口，以帮助创建MDS数据库。&lt;/p&gt;
&lt;p&gt;向导窗口第一页只是一个说明，没有任何需要选择或者填写的，直接单击&amp;#8220;下一步&amp;#8221;按钮，进入数据库服务器配置界面，默认选择本地的数据库实例，由于这里我们MDS服务、IIS和SQL2008R2都在同一台服务器上，所以不需要修改，如图所示：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_6.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_thumb_2.png&quot; width=&quot;640&quot; height=&quot;426&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;单击&amp;#8220;下一步&amp;#8221;按钮，进入数据库配置界面，输入要创建的MDS数据库的数据库名，然后使用默认的数据库配置即可，如图：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_8.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_thumb_3.png&quot; width=&quot;640&quot; height=&quot;426&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;单击&amp;#8220;下一步&amp;#8221;按钮，进入服务帐户配置界面，系统默认使用当前的帐户，由于是在虚拟机中做实验，所以服务帐户和接下来的的Administrator Account都使用管理员帐户即可，不用修改。一直&amp;#8220;下一步&amp;#8221;直到系统进行MDS数据库的创建，如图所示：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_10.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_thumb_4.png&quot; width=&quot;640&quot; height=&quot;426&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;创建MDS的数据库成功后，返回主数据服务配置管理器界面，可以看到当前的数据库配置，如图所示：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_12.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_thumb_5.png&quot; width=&quot;640&quot; height=&quot;405&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;数据库配置成功后接下来配置Web，单击左侧的&amp;#8220;Web配置&amp;#8221;选项，切换到Web配置界面，配置Web站点和Web应用的数据库，如图所示：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_14.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_thumb_6.png&quot; width=&quot;587&quot; height=&quot;480&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;这里我不使用已有的站点来创建Web应用，因为我的虚拟机中默认站点已经按照了MOSS2010虚拟机。单击&amp;#8220;Create Site&amp;#8221;按钮，弹出创建网站窗口，可以设置Web站点的名字、协议、IP、端口、应用程序池等，如图所示：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_16.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_thumb_7.png&quot; width=&quot;419&quot; height=&quot;480&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;这里创建成功后就会在IIS中添加对应的网站，所以以后若需要修改配置时可以直接在IIS中对Web站点进行修改。创建成功后接下来创建Web应用的数据库，单击Web配置中的&amp;#8220;Select&amp;#8221;按钮，弹出连接MDS数据库的窗口，配置MDS数据库的链接属性（这里是同一台服务器，所以直接使用默认设置即可），然后单击&amp;#8220;连接&amp;#8221;按钮，选择前面创建的MDS数据库&amp;#8220;MDSTest1&amp;#8221;，如图所示：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_18.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_thumb_8.png&quot; width=&quot;640&quot; height=&quot;451&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;单击&amp;#8220;OK&amp;#8221;按钮，回到Web配置界面，将Web Services区域的复选框&amp;#8220;Enable Web Services for this Web application&amp;#8221;设为选中，以启动WCF的Web服务。（当然，如果不希望发布WCF接口，那么也可以不选中该复选框。）最后单击&amp;#8220;应用&amp;#8221;按钮，系统将弹出一个成功提示，并可选择打开主数据管理Web站点，选择打开MDM站点，如图所示：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_22.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_thumb_10.png&quot; width=&quot;605&quot; height=&quot;480&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;接下来安装示例数据，单击Model Deployment Wizard连接，弹出模型部署向导，单击部署选项，然后选择部署的包文件，示例包文件在C:\Program Files\Microsoft SQL Server\Master Data Services\Samples\Packages\中，这里我们部署一个产品的包Product，然后一直&amp;#8220;下一步&amp;#8221;即可加载和部署包。&lt;/p&gt;
&lt;p&gt;部署完成后返回主数据管理页面，便可选择Product模型和版本，如图所示：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_24.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_thumb_11.png&quot; width=&quot;487&quot; height=&quot;480&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;单击&amp;#8220;资源管理器&amp;#8221;选项，便可查看Product的属性、结构、集合等，如图所示：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_26.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_thumb_12.png&quot; width=&quot;488&quot; height=&quot;480&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;比如要查看Class属性的值，可单击&amp;#8220;实体&amp;#8221;，在下列菜单中选择Class即可查看到Class的值有哪些，如图所示：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_30.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer2008R2_136F4/image_thumb_14.png&quot; width=&quot;640&quot; height=&quot;465&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;另外还可以通过MDM对各种数据进行管理，至此我们的MDS便安装完成，SQL2008R2的MDS到底该怎么使用，在什么情况下使用，我将在接下来的文章中讲解。&lt;/p&gt; &lt;img src=&quot;http://www.cnblogs.com/studyzy/aggbug/1633697.html?type=1&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;/&gt;&lt;p&gt;评论: 1　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/28/sqlserver2008r2-mds-setup.html#pagedcomment&quot; target=&quot;_blank&quot;&gt;查看评论&lt;/a&gt;　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/28/sqlserver2008r2-mds-setup.html#commentform&quot; target=&quot;_blank&quot;&gt;发表评论&lt;/a&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;最新新闻：&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56793/&quot; target=&quot;_blank&quot;&gt;知名扩展 Firebug 的简化版登陆 Chrome&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:59)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56792/&quot; target=&quot;_blank&quot;&gt;Google 悄悄地启用 1e100.net，打枪地不要&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:57)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56791/&quot; target=&quot;_blank&quot;&gt;从 Google 代码库找到的好东西&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:46)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56789/&quot; target=&quot;_blank&quot;&gt;苹果在线商店临时关闭 或将推新Macbook&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:39)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56788/&quot; target=&quot;_blank&quot;&gt;豆瓣网推出豆瓣电台iPhone客户端&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 21:51)&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;编辑推荐：&lt;a href=&quot;http://news.cnblogs.com/n/56782/&quot; target=&quot;_blank&quot;&gt;2010年2月编程语言排行榜&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;网站导航：&lt;a href=&quot;http://www.cnblogs.com&quot; target=&quot;_blank&quot;&gt;博客园首页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/&quot; target=&quot;_blank&quot;&gt;个人主页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://news.cnblogs.com&quot; target=&quot;_blank&quot;&gt;新闻&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/ing/&quot; target=&quot;_blank&quot;&gt;闪存&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/group/&quot; target=&quot;_blank&quot;&gt;小组&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com/q/&quot; target=&quot;_blank&quot;&gt;博问&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com&quot; target=&quot;_blank&quot;&gt;社区&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://kb.cnblogs.com&quot; target=&quot;_blank&quot;&gt;知识库&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/330732481/studyzy/feedsky/s.gif?r=http://www.cnblogs.com/studyzy/archive/2009/12/28/sqlserver2008r2-mds-setup.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/studyzy/330732481/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/studyzy/330732481/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 28 Dec 2009 00:17:00 +0800</pubDate><author>深蓝</author><guid isPermaLink="false">http://www.cnblogs.com/studyzy/archive/2009/12/28/sqlserver2008r2-mds-setup.html</guid><dc:creator>深蓝</dc:creator><fs:srclink>http://www.cnblogs.com/studyzy/archive/2009/12/28/sqlserver2008r2-mds-setup.html</fs:srclink><fs:srcfeed>http://www.cnblogs.com/studyzy/rss</fs:srcfeed><fs:itemid>feedsky/studyzy/~7646125/330732481/5755232</fs:itemid></item><item><title>在PowerDesigner中设计物理模型3——视图、存储过程和函数</title><link>http://www.cnblogs.com/studyzy/archive/2009/12/18/1627334.html</link><description>&lt;p&gt;阅读: 351 评论: 0 作者: &lt;a href=&quot;http://www.cnblogs.com/studyzy/&quot; target=&quot;_blank&quot;&gt;深蓝&lt;/a&gt; 发表于 2009-12-18 17:30 &lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/18/1627334.html&quot; target=&quot;_blank&quot;&gt;原文链接&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;视图&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在SQL Server中视图定义了一个SQL查询，一个查询中可以查询一个表也可以查询多个表，在PD中定义视图与在SQL Server中定义查询相似。例如要创几个所有学生的所有选课结果的视图，那么在工具栏中选择视图按钮，然后在设计面板中单击鼠标一次便可添加一个空白的视图，切换到鼠标指针模式，双击该视图便可打开视图的属性窗口。在General选项卡中，可以设置视图的名字和其他属性。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner3_11F55/image_2.png&quot;&gt;&lt;img height=&quot;423&quot; width=&quot;521&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner3_11F55/image_thumb.png&quot; alt=&quot;image&quot; border=&quot;0&quot; title=&quot;image&quot; style=&quot;display: inline; border-width: 0px;&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Usage是表示视图是只读的视图还是可更新的视图，还有一个是check option选项，指定了 CHECK OPTION，也不能依据视图来验证任何直接对视图的基础表执行的更新。如果我们只创建一般的视图，那么就选择只查询选项。&lt;/p&gt;
&lt;p&gt;Dimensional Type指定该视图表示的是维度还是事实，这个主要是在进行数据仓库多维数据建模时使用，一般情况下不需要指定。后面的两个复选框也不需要进行修改。Type使用默认的view选项。&lt;/p&gt;
&lt;p&gt;切换到SQL Query选项卡，在文本框中可以设置视图定义的查询内容，建议直接先在SSMS中验证视图定义SQL语句的正确性，然后再将SQL语句复制粘贴到该文本框中。在定义视图时最好不要使用*，而应该使用各个需要的列名，这样在视图属性的Columns中才能看到每个列。设计SQL Query如图所示。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner3_11F55/image_4.png&quot;&gt;&lt;img height=&quot;423&quot; width=&quot;521&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner3_11F55/image_thumb_1.png&quot; alt=&quot;image&quot; border=&quot;0&quot; title=&quot;image&quot; style=&quot;display: inline; border-width: 0px;&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;当然，也可以在PD中使用自带的SQL编辑器编写SQL语句，单击右下角的&amp;ldquo;Edit with SQL Editor&amp;rdquo;按钮，即可弹出SQL Editor编辑器，编写SQL语句。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;存储过程和函数&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;存储过程和用户自定义函数都是在同一个组件中设置的，在工具栏中单击Procedure按钮，然后在设计面板中单击一次便可添加一个Procedure。例如要创建一个存储过程根据学生的学号获得学生所选的课程，那么对于的操作如下：&lt;/p&gt;
&lt;p&gt;在指针模式下双击添加的Procedure，打开Procedure属性窗口，在General选项卡中可以设置该存储过程的名字。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner3_11F55/image_8.png&quot;&gt;&lt;img height=&quot;397&quot; width=&quot;605&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner3_11F55/image_thumb_3.png&quot; alt=&quot;image&quot; border=&quot;0&quot; title=&quot;image&quot; style=&quot;display: inline; border-width: 0px;&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;然后切换到Definition选项卡，该选项卡中定义了存储过程的定义，在下拉列表框中，选择&amp;lt;Default Procedure&amp;gt;选项，如果是要定义函数，那么就需要选择&amp;lt;Default Function&amp;gt;选项，系统会根据选择的类型创建SQL语句的模板。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner3_11F55/image_14.png&quot;&gt;&lt;img height=&quot;397&quot; width=&quot;605&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner3_11F55/image_thumb_6.png&quot; alt=&quot;image&quot; border=&quot;0&quot; title=&quot;image&quot; style=&quot;display: inline; border-width: 0px;&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;在下面的SQL语句中，可以将create procedure [%QUALIFIER%]%PROC%保留，其他的删除，根据自己要创建的存储过程编写SQL语句。&lt;/p&gt;
&lt;div&gt;
&lt;pre&gt;create procedure [%QUALIFIER%]%PROC%
@StudentID &lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt;
&lt;span style=&quot;color: #0000ff;&quot;&gt;as&lt;/span&gt;
begin
select CourseName
from vwStudentCourse
where StudentID=@StudentID
end&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;单击确定按钮，系统会根据编写的SQL语句，将所使用的表、视图与存储过程关联起来，如图所示：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner3_11F55/image_20.png&quot;&gt;&lt;img height=&quot;163&quot; width=&quot;407&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner3_11F55/image_thumb_9.png&quot; alt=&quot;image&quot; border=&quot;0&quot; title=&quot;image&quot; style=&quot;display: inline; border-width: 0px;&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;创建函数的过程与之类似，只是使用的是create function而不是create Procedure而已。&lt;/p&gt;
&lt;p&gt;至此，最常见的数据库对象：表（表的约束）、视图、存储过程、函数等在PD的创建已经介绍完了，接下来会介绍PD的设置。&lt;/p&gt;&lt;img src=&quot;http://www.cnblogs.com/studyzy/aggbug/1627334.html?type=1&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;/&gt;&lt;p&gt;评论: 0　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/18/1627334.html#pagedcomment&quot; target=&quot;_blank&quot;&gt;查看评论&lt;/a&gt;　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/18/1627334.html#commentform&quot; target=&quot;_blank&quot;&gt;发表评论&lt;/a&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;最新新闻：&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56793/&quot; target=&quot;_blank&quot;&gt;知名扩展 Firebug 的简化版登陆 Chrome&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:59)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56792/&quot; target=&quot;_blank&quot;&gt;Google 悄悄地启用 1e100.net，打枪地不要&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:57)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56791/&quot; target=&quot;_blank&quot;&gt;从 Google 代码库找到的好东西&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:46)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56789/&quot; target=&quot;_blank&quot;&gt;苹果在线商店临时关闭 或将推新Macbook&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:39)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56788/&quot; target=&quot;_blank&quot;&gt;豆瓣网推出豆瓣电台iPhone客户端&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 21:51)&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;编辑推荐：&lt;a href=&quot;http://news.cnblogs.com/n/56782/&quot; target=&quot;_blank&quot;&gt;2010年2月编程语言排行榜&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;网站导航：&lt;a href=&quot;http://www.cnblogs.com&quot; target=&quot;_blank&quot;&gt;博客园首页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/&quot; target=&quot;_blank&quot;&gt;个人主页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://news.cnblogs.com&quot; target=&quot;_blank&quot;&gt;新闻&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/ing/&quot; target=&quot;_blank&quot;&gt;闪存&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/group/&quot; target=&quot;_blank&quot;&gt;小组&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com/q/&quot; target=&quot;_blank&quot;&gt;博问&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com&quot; target=&quot;_blank&quot;&gt;社区&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://kb.cnblogs.com&quot; target=&quot;_blank&quot;&gt;知识库&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/330732577/studyzy/feedsky/s.gif?r=http://www.cnblogs.com/studyzy/archive/2009/12/18/1627334.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/studyzy/330732577/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/studyzy/330732577/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Fri, 18 Dec 2009 17:30:00 +0800</pubDate><author>深蓝</author><guid isPermaLink="false">http://www.cnblogs.com/studyzy/archive/2009/12/18/1627334.html</guid><dc:creator>深蓝</dc:creator><fs:srclink>http://www.cnblogs.com/studyzy/archive/2009/12/18/1627334.html</fs:srclink><fs:srcfeed>http://www.cnblogs.com/studyzy/rss</fs:srcfeed><fs:itemid>feedsky/studyzy/~7646125/330732577/5755232</fs:itemid></item><item><title>在PowerDesigner中设计物理模型2&amp;mdash;&amp;mdash;约束</title><link>http://www.cnblogs.com/studyzy/archive/2009/12/17/1626650.html</link><description>&lt;p&gt;阅读: 277 评论: 0 作者: &lt;a href=&quot;http://www.cnblogs.com/studyzy/&quot; target=&quot;_blank&quot;&gt;深蓝&lt;/a&gt; 发表于 2009-12-17 19:45 &lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/17/1626650.html&quot; target=&quot;_blank&quot;&gt;原文链接&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;唯一约束&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;唯一约束与创建唯一索引基本上是一回事，因为在创建唯一约束的时候，系统会创建对应的一个唯一索引，通过唯一索引来实现约束。不过唯一约束更直观的表达了对应列的唯一性，使得对应索引的目的更加清晰，所以一般建议创建唯一约束而不是只创建唯一索引。&lt;/p&gt;  &lt;p&gt;在PD中创建唯一约束的操作，以教室表来说，RoomID是主键，必然是唯一的，RoomName如果我们也要去必须是唯一的，那么具体操作如下：&lt;/p&gt;  &lt;p&gt;在PD的模型设计面板中，双击“教室”表，打开属性窗口，切换到&amp;quot;”Keys”选项卡，可以看到里面有一行数据PK_ClassRoom，这是主键约束。添加一行数据，命名为UQ_RoomName，不能将右边的“P”列选上，然后单击工具栏的“属性”按钮，弹出UQ_RoomName的属性窗口，切换到列选项卡，单击增加列按钮，选择将RoomName列添加到其中，然后单击确定即可完成唯一约束的添加。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner2_A96F/image_6.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner2_A96F/image_thumb_2.png&quot; width=&quot;441&quot; height=&quot;480&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;这样系统就会自动创建唯一约束。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;CHECK约束&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;CHECK分为列约束和表约束，列约束是只对表中的某一个列进行的约束，可以在列的属性中进行设置，而表约束是对多个列进行的约束，需要在表的属性中进行设置（其实列约束也可以在表约束中设置）。&lt;/p&gt;  &lt;p&gt;1.标准CHECK约束&lt;/p&gt;  &lt;p&gt;对于一些常用的CHECK约束，可以直接通过设置界面来完成。以班级表为例，ClassName每个学校有自己的命名规则，假设这里规定ClassName必须以2开头，那么需要在ClassName列上定义CHECK约束，使得其满足命名规范。具体操作是在PD中双击Class表，打开Class的属性窗口，切换到列选项卡，选择ClassName列，单击工具栏的“属性”按钮，弹出ClassName的属性窗口，切换到StandardChecks选项卡如图：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner2_A96F/image_26.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner2_A96F/image_thumb_12.png&quot; width=&quot;521&quot; height=&quot;397&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;在这个选项卡可以定义属性的标准检查约束，窗口中每项的参数的含义，如下：&lt;/p&gt;  &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td width=&quot;72&quot;&gt;参数&lt;/td&gt;        &lt;td width=&quot;354&quot;&gt;说明&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Minimum&lt;/td&gt;        &lt;td&gt;属性可接受的最小数&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Maximum &lt;/td&gt;        &lt;td&gt;属性可接受的最大数&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Default&lt;/td&gt;        &lt;td&gt;属性不赋值时，系统提供的默认值&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Unit&lt;/td&gt;        &lt;td&gt;单位，如公里、吨、元&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Format&lt;/td&gt;        &lt;td&gt;属性的数据显示格式&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Lowercase&lt;/td&gt;        &lt;td&gt;属性的赋值全部变为小写字母&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Uppercase&lt;/td&gt;        &lt;td&gt;属性的赋值全部变为大写字母&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Cannot modify&lt;/td&gt;        &lt;td&gt;该属性一旦赋值不能再修改&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;List Of Values&lt;/td&gt;        &lt;td&gt;属性赋值列表，除列表中的值，不能有其他的值&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Label&lt;/td&gt;        &lt;td&gt;属性列表值的标签&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;2.直接编写SQL语句的CHECK约束&lt;/p&gt;  &lt;p&gt;在前面弹出ClassName属性窗口中，单击左下角的“More”按钮，系统将弹出更多的选项卡，切换到“Additional Checks”选项卡，可以设置约束名和具体的约束内容，如图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner2_A96F/image_8.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner2_A96F/image_thumb_3.png&quot; width=&quot;513&quot; height=&quot;480&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;表级的CHECK约束与列级的CHECK约束设置类似，单击表属性窗口左下角的“More”按钮，切换到Check选项卡，设置CHECK约束的命名和SQL语句内容。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner2_A96F/image_10.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner2_A96F/image_thumb_4.png&quot; width=&quot;521&quot; height=&quot;433&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;3.使用Rule创建约束&lt;/p&gt;  &lt;p&gt;同样以班级名必须以2开头为例，通过Rule创建CHECK约束。首先需要创建一个Rule，双击Class表，打开表的属性窗口，切换到Rules选项卡，单击“Create a Object”按钮，系统将打开一个业务规则属性窗口，修改规则名，并将规则的类型修改为Constraint，如图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner2_A96F/image_16.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner2_A96F/image_thumb_7.png&quot; width=&quot;541&quot; height=&quot;480&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;然后切换到Expression选项卡，设置规则的内容为“ClassName LIKE '2%'”，单击确定按钮即可完成Rule的设置。切换到表属性的Check选项卡，默认约束内容中的“%RULES%”就是用来表示Rule中设置的内容，如果我们还有一些其他的CHECK约束内容，不希望在Rule中设置，而是在Check选项卡中设置，那么只需要删除%RULES%将CHECK约束内容添加进去，也可以保留%RULES%，然后在与%RULES%之间添加一个and即可。比如规定ClassID必须小于10000，那么我们可以将Check内容设置如下：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner2_A96F/image_18.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner2_A96F/image_thumb_8.png&quot; width=&quot;521&quot; height=&quot;433&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;生成的脚本如下：&lt;/p&gt;  &lt;p&gt;create table Class (   &lt;br /&gt;&amp;#160;&amp;#160; ClassID&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; not null,    &lt;br /&gt;&amp;#160;&amp;#160; ClassName&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; varchar(20)&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; not null,    &lt;br /&gt;&amp;#160;&amp;#160; constraint PK_CLASS primary key nonclustered (ClassID),    &lt;br /&gt;&amp;#160;&amp;#160; constraint CKT_CLASS check (ClassID&amp;lt;10000),    &lt;br /&gt;&amp;#160;&amp;#160; constraint ClassNameRule check (ClassName LIKE '2%')    &lt;br /&gt;)    &lt;br /&gt;go&lt;/p&gt;  &lt;p&gt;可以看到，根据Rule生成的CHECK约束与在Check选项卡中设置的约束将分别创建一个约束，相互并不影响。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;默认约束&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;默认约束是用户在没有输入值的情况下，系统给出默认的值。最常用的是CreateTime字段，设置默认值为getdate()，在用户创建一行数据时记录下创建时间。例如对于选课表，需要记录下选课的时间，则可以设置ApplyTime的默认值为getdate()函数。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner2_A96F/image_22.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner2_A96F/image_thumb_10.png&quot; width=&quot;240&quot; height=&quot;103&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;设置默认值约束的操作如下：双击选课表，打开表属性窗口，选择ApplyTime字段，单击工具栏的属性按钮，打开列的属性窗口，切换到Standard Checks选项卡，在Default下拉列表框中选择getdate()即可。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner2_A96F/image_24.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner2_A96F/image_thumb_11.png&quot; width=&quot;524&quot; height=&quot;480&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;至此我们所有的约束在PD中的设置都介绍完了，下一篇将介绍视图、存储过程等数据库对象。&lt;/p&gt;&lt;img src=&quot;http://www.cnblogs.com/studyzy/aggbug/1626650.html?type=1&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;/&gt;&lt;p&gt;评论: 0　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/17/1626650.html#pagedcomment&quot; target=&quot;_blank&quot;&gt;查看评论&lt;/a&gt;　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/17/1626650.html#commentform&quot; target=&quot;_blank&quot;&gt;发表评论&lt;/a&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;最新新闻：&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56793/&quot; target=&quot;_blank&quot;&gt;知名扩展 Firebug 的简化版登陆 Chrome&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:59)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56792/&quot; target=&quot;_blank&quot;&gt;Google 悄悄地启用 1e100.net，打枪地不要&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:57)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56791/&quot; target=&quot;_blank&quot;&gt;从 Google 代码库找到的好东西&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:46)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56789/&quot; target=&quot;_blank&quot;&gt;苹果在线商店临时关闭 或将推新Macbook&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:39)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56788/&quot; target=&quot;_blank&quot;&gt;豆瓣网推出豆瓣电台iPhone客户端&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 21:51)&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;编辑推荐：&lt;a href=&quot;http://news.cnblogs.com/n/56782/&quot; target=&quot;_blank&quot;&gt;2010年2月编程语言排行榜&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;网站导航：&lt;a href=&quot;http://www.cnblogs.com&quot; target=&quot;_blank&quot;&gt;博客园首页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/&quot; target=&quot;_blank&quot;&gt;个人主页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://news.cnblogs.com&quot; target=&quot;_blank&quot;&gt;新闻&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/ing/&quot; target=&quot;_blank&quot;&gt;闪存&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/group/&quot; target=&quot;_blank&quot;&gt;小组&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com/q/&quot; target=&quot;_blank&quot;&gt;博问&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com&quot; target=&quot;_blank&quot;&gt;社区&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://kb.cnblogs.com&quot; target=&quot;_blank&quot;&gt;知识库&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/330732793/studyzy/feedsky/s.gif?r=http://www.cnblogs.com/studyzy/archive/2009/12/17/1626650.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/studyzy/330732793/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/studyzy/330732793/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 17 Dec 2009 19:45:00 +0800</pubDate><author>深蓝</author><guid isPermaLink="false">http://www.cnblogs.com/studyzy/archive/2009/12/17/1626650.html</guid><dc:creator>深蓝</dc:creator><fs:srclink>http://www.cnblogs.com/studyzy/archive/2009/12/17/1626650.html</fs:srclink><fs:srcfeed>http://www.cnblogs.com/studyzy/rss</fs:srcfeed><fs:itemid>feedsky/studyzy/~7646125/330732793/5755232</fs:itemid></item><item><title>在PowerDesigner中设计物理模型1——表和主外键</title><link>http://www.cnblogs.com/studyzy/archive/2009/12/15/1624899.html</link><description>&lt;p&gt;阅读: 494 评论: 0 作者: &lt;a href=&quot;http://www.cnblogs.com/studyzy/&quot; target=&quot;_blank&quot;&gt;深蓝&lt;/a&gt; 发表于 2009-12-15 16:19 &lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/15/1624899.html&quot; target=&quot;_blank&quot;&gt;原文链接&lt;/a&gt;&lt;/p&gt;&lt;p&gt;在PD中建立物理模型由以下几种办法：&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;直接新建物理模型。 &lt;/li&gt;    &lt;li&gt;设计好概念模型，然后由概念模型生成物理模型。 &lt;/li&gt;    &lt;li&gt;设计好逻辑模型，然后由逻辑模型生成物理模型。 &lt;/li&gt;    &lt;li&gt;使用逆向工程的方法，连接到现有的数据库，由数据库生成物理模型。 &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;物理模型能够直观的反应出当前数据库的结构。在数据库中的表、视图、存储过程等数据库对象都可以在物理模型中进行设计。由于物理模型和数据库的一致性，接下来以数据库对象和物理模型对象的对应来一一介绍：&lt;/p&gt;  &lt;p&gt;表&lt;/p&gt;  &lt;p&gt;新建物理模型时需要指定物理模型对应的DBMS，这里我们使用SQL Server 2008，新建一个物理模型后，系统会显示一个专门用于物理模型设计的工具栏：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_9527/image_2.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_9527/image_thumb.png&quot; width=&quot;564&quot; height=&quot;30&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;若要在物理模型中添加一个表，单击&amp;#8220;表&amp;#8221;按钮，然后再到模型设计面板中单击一次便可添加一个表，系统默认为表命名为Table_n，这里的n会随着添加的表增多而顺序增加。添加的表是没有任何列的，如图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_9527/image_4.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_9527/image_thumb_1.png&quot; width=&quot;85&quot; height=&quot;70&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;单击工具栏的鼠标指针按钮，将鼠标切换回指针模式，然后双击一个表，系统将打开表属性窗口，在General选项卡中可以设置表的Name、Code等属性。例如我们要新建一个教室表（ClassRoom），则可修改Name和Code。Name是在模型中显示的名称，Code是生成数据库表的时候的实际表名。另外Name中的内容还会作为SQL Server中的表备注。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_9527/image9.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_9527/image9_thumb.png&quot; width=&quot;521&quot; height=&quot;433&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;单击Columns切换到列选项卡，在下面的列表中可以添加表中的列。Name是模型上显示的名称，Code是生成的实际的表名，后面的3个复选框P代办主键、F代表外键，M代表不能为空。为教室表设计了两个列，如图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_9527/image14.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_9527/image14_thumb.png&quot; width=&quot;521&quot; height=&quot;433&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;主键&lt;/p&gt;  &lt;p&gt;在设计一个表时，一般情况下每个表都会有一个主键，主键分为单列主键和复合主键。在为表设置主键时有以下几种办法：&lt;/p&gt;  &lt;p&gt;1.在Columns选项卡中，直接选中主键列的P列复选框，这是最简单的方式。&lt;/p&gt;  &lt;p&gt;2.选中一个列，然后单击工具栏中的&amp;#8220;属性&amp;#8221;按钮，系统将弹出列属性窗口，在该窗口中可以设置该列的各种属性，当然也包括该列是否是否是主键。另外还有一个很重要的复选框是&amp;#8220;Identity&amp;#8221;。选中Identity复选框则表示该列为自增列。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_9527/image19.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_9527/image19_thumb.png&quot; width=&quot;521&quot; height=&quot;397&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;3.切换到Keys选项卡中，在其中添加一行命名为PK_ClassRoom，然后单击工具栏的&amp;#8220;属性&amp;#8221;按钮，打开键属性窗口，在该窗口中切换到Columns选项卡，单击添加列按钮，弹出列选择窗口，选中主键中应该包含的列，单击确定按钮即可完成主键的创建。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_9527/image24.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_9527/image24_thumb.png&quot; width=&quot;543&quot; height=&quot;480&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;另外需要注意的是，在建立主键时，系统会在主键上建立索引，索引分为聚集索引和非聚集索引，在&amp;#8220;键属性&amp;#8221;窗口的General选项卡中可以设置该主键上建立的索引是聚集索引还是非聚集索引，如图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_9527/image28.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_9527/image28_thumb.png&quot; width=&quot;521&quot; height=&quot;397&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;外键&lt;/p&gt;  &lt;p&gt;如果是由概念模型或者逻辑模型生成物理模型，那么外键是通过Relationship生成的，也可以通过工具栏中的Reference来实现两表之间的外键关系。假如一个课程只会在一个固定的教室上课，而一个教室会安排多个课程在不同的时间上课，所以教室和课程是一对多的关系，那么课程表中就需要添加RoomID列以形成外键列，具体操作方法就是在工具栏中单击&amp;#8220;Reference&amp;#8221;按钮，然后在设计面板中，课程表上按下鼠标左键，并拖拽到教师表中放开鼠标，这时如果课程表中没有RoomID列，系统会自动创建RoomID列并创建该列上的外键引用，如果已经存在RoomID列，则只添加外键引用，不会再添加新列。&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_9527/image1.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_9527/image1_thumb.png&quot; width=&quot;244&quot; height=&quot;258&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;切换到鼠标指针模式，双击箭头，系统将弹出引用的属性窗口，在属性窗口中可以设置该引用的Name、Code、关联的列、约束名、更新策略和删除策略等。&lt;/p&gt;  &lt;p&gt;下一篇文章将会介绍其他约束具体包括：&lt;/p&gt;  &lt;p&gt;1.CHECK约束&lt;/p&gt;  &lt;p&gt;2.默认值约束&lt;/p&gt;  &lt;p&gt;3.非空约束&lt;/p&gt;  &lt;p&gt;&amp;#8230;&amp;#8230;&lt;/p&gt;  &lt;p&gt;另外在物理模型中还包括：视图、存储过程、函数、触发器等都会在接下来的几篇文章中讲解到。&lt;/p&gt;&lt;img src=&quot;http://www.cnblogs.com/studyzy/aggbug/1624899.html?type=1&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;/&gt;&lt;p&gt;评论: 0　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/15/1624899.html#pagedcomment&quot; target=&quot;_blank&quot;&gt;查看评论&lt;/a&gt;　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/15/1624899.html#commentform&quot; target=&quot;_blank&quot;&gt;发表评论&lt;/a&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;最新新闻：&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56793/&quot; target=&quot;_blank&quot;&gt;知名扩展 Firebug 的简化版登陆 Chrome&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:59)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56792/&quot; target=&quot;_blank&quot;&gt;Google 悄悄地启用 1e100.net，打枪地不要&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:57)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56791/&quot; target=&quot;_blank&quot;&gt;从 Google 代码库找到的好东西&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:46)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56789/&quot; target=&quot;_blank&quot;&gt;苹果在线商店临时关闭 或将推新Macbook&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:39)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56788/&quot; target=&quot;_blank&quot;&gt;豆瓣网推出豆瓣电台iPhone客户端&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 21:51)&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;编辑推荐：&lt;a href=&quot;http://news.cnblogs.com/n/56782/&quot; target=&quot;_blank&quot;&gt;2010年2月编程语言排行榜&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;网站导航：&lt;a href=&quot;http://www.cnblogs.com&quot; target=&quot;_blank&quot;&gt;博客园首页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/&quot; target=&quot;_blank&quot;&gt;个人主页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://news.cnblogs.com&quot; target=&quot;_blank&quot;&gt;新闻&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/ing/&quot; target=&quot;_blank&quot;&gt;闪存&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/group/&quot; target=&quot;_blank&quot;&gt;小组&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com/q/&quot; target=&quot;_blank&quot;&gt;博问&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com&quot; target=&quot;_blank&quot;&gt;社区&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://kb.cnblogs.com&quot; target=&quot;_blank&quot;&gt;知识库&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/330732955/studyzy/feedsky/s.gif?r=http://www.cnblogs.com/studyzy/archive/2009/12/15/1624899.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/studyzy/330732955/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/studyzy/330732955/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 15 Dec 2009 16:19:00 +0800</pubDate><author>深蓝</author><guid isPermaLink="false">http://www.cnblogs.com/studyzy/archive/2009/12/15/1624899.html</guid><dc:creator>深蓝</dc:creator><fs:srclink>http://www.cnblogs.com/studyzy/archive/2009/12/15/1624899.html</fs:srclink><fs:srcfeed>http://www.cnblogs.com/studyzy/rss</fs:srcfeed><fs:itemid>feedsky/studyzy/~7646125/330732955/5755232</fs:itemid></item><item><title>在PowerDesigner中设计概念模型</title><link>http://www.cnblogs.com/studyzy/archive/2009/12/10/1620867.html</link><description>&lt;p&gt;阅读: 293 评论: 0 作者: &lt;a href=&quot;http://www.cnblogs.com/studyzy/&quot; target=&quot;_blank&quot;&gt;深蓝&lt;/a&gt; 发表于 2009-12-10 10:10 &lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/10/1620867.html&quot; target=&quot;_blank&quot;&gt;原文链接&lt;/a&gt;&lt;/p&gt;&lt;p&gt;在概念模型中主要有以下几个操作和设置的对象：实体（Entity）、实体属性（Attribute）、实体标识（Identifiers）、关系（Relationship）、继承（Inheritance）、关联（Association）、关联连接（Association Link）。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;实体&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;实体就是我们抽象出的对象，比如：一个选课系统中，学生、教师、班级、课程等等都是实体。实体属性就是一个实体中所包含的简单属性，比如学生实体，具有学号、姓名、生日、性别等属性。另外实体还有个标识用于唯一的标识出每个实体实例，比如学生实体中就可用将学生的学号作为该实体的标识。标识可用是一个实体属性也可以是多个属性的结合。在PD中新建一个新的概念模型，系统将出现一个工具栏如下，用于在设计面板中设计模型。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_2.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_thumb.png&quot; width=&quot;587&quot; height=&quot;30&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;单击Entity图标，然后在设计主面板中单击一次便可添加一个实体。再单击鼠标图标，即可切换回一般鼠标的模式。双击已经添加的实体，弹出实体属性设置对话框，在General中可以设置实体的Name和Code等属性，如图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_4.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_thumb_1.png&quot; width=&quot;521&quot; height=&quot;397&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;切换到Attributes选项卡可以设置实体的属性Name、Code、DataType等，右边还有3个复选框，M表示不能为空，P表示是标识属性，D表示在模型图中是否显示，如果在设置属性时直接选中StudentID的P复选框，系统将会自动生成该Student实体的一个Identifier。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_6.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_thumb_2.png&quot; width=&quot;521&quot; height=&quot;397&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;如果不希望系统自动生成而是手动设置的话，那么切换到Identifiers选项卡，添加一行Identifier，然后单击左上角的&amp;#8220;属性&amp;#8221;按钮，然后弹出的标识属性设置对话框中单击&amp;#8220;添加行&amp;#8221;按钮，选择该标识中使用的属性。例如将学号设置为学生实体的标识，具体操作如图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_8.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_thumb_3.png&quot; width=&quot;542&quot; height=&quot;480&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;整个设置好的实体如图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_10.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_thumb_4.png&quot; width=&quot;393&quot; height=&quot;128&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;关系&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;关系用于表示一个实体与另外一个实体之间的对应关系，分为一对一（1:1），一对多（1:n），多对一（n:1），多对多（m:n）4种对应关系，一对多和多对一其实就是方向相反，所以实际上就是一对一、一对多和多对多。&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;最最常用的就是一对多，比如班级实体和学生实体就是一对多关系，一个班级有多个学生，一个学生只会属于一个班级。在设计面板中添加一个Class实体，然后单击工具栏的Relationship按钮，然后在Class实体上单击一下，再到Student上单击一下，就可以在Class和Student之间建立一对多关系，如图：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_12.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_thumb_5.png&quot; width=&quot;411&quot; height=&quot;315&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;系统默认会给该关系一个命名Relationship_1，切换到鼠标指针模式，双击Relationship_1，即可打开关系的属性窗口，可以在General选项卡中修改该关系的Name、Code等，如图：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_14.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_thumb_6.png&quot; width=&quot;505&quot; height=&quot;480&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;切换到Cardinalities选项卡，上面可以修改是一对多还是多对多之类的关系，下面的Role name没有多大的意义，就是在模型中显示文字，多的一方有0,n和1,n两种，也就是说一个班级可以对应多个学生，那么一个班级中最少是没有学生还是要至少存在一个学生，同样的一的一方有0,1和1,1两种，就是说一个学生是可以不属于任何班级呢还是必须属于某一个存在的班级，这里我们都选至少是1，所以最终的设置界面如图：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_16.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_thumb_7.png&quot; width=&quot;505&quot; height=&quot;480&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;继承&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;在概念模型中的继承与在OO模型中的继承是一回事，就是要抽象出一个实体，其他实体继承该实体后就拥有该实体的属性。&lt;/p&gt;  &lt;p&gt;同样以选课系统为例，现在有学生实体，有教师实体，其他他们都是人，具有人的属性，所以我们可以抽象出一个人的实体，人具有性别、生日、名字等属性，教师具有职称、工号等属性这是学生没有的，所以不能放在人实体中，学生具有学号属性是教师没有的。&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_18.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_thumb_8.png&quot; width=&quot;613&quot; height=&quot;266&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;这里只是概念模型，在DBMS中是没有继承这种说法的，所以在接下来的逻辑模型和物理模型中，系统就会将继承转换为实际的实体和表。这里只是概念模型，所以才有继承的说法。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;关联（Association）&lt;/strong&gt;&lt;em&gt;我也不知道这个翻译成中文用哪个词比较好，就暂且用&amp;#8220;关联&amp;#8221;吧。&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Association也是一种实体间的连接，在Merise模型方法学理论中，Association是一种用于连接分别代表明确定义的对象的不同实体，这种连接仅仅通过另一个实体不能很明确地表达，而通过&amp;#8220;事件（Event）&amp;#8221;连接来表示。&lt;/p&gt;  &lt;p&gt;也就是说，实体和实体之间存在着关系（多对多），但是这种关系还存在其他的属性，这些属性如果如果作为一个明确的实体的实体来表示又不是很合适，所以就使用了Association来表达，这种关系之间一般是一个&amp;#8220;事件&amp;#8221;虚实体，也就是说是一个&lt;strong&gt;动词&lt;/strong&gt;对应的实体。&lt;/p&gt;  &lt;p&gt;前面说的可能还是太抽象，以实际的例子来说明：现在有了学生实体，有课程实体，一个学生可以选择多门课程，一门课程有多个学生来上课，所以之间就存在一个&amp;#8220;选课&amp;#8221;的Association，其中记录了学生选课的时间、选课的状态：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_20.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_thumb_9.png&quot; width=&quot;197&quot; height=&quot;58&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;一个学生会对应多个选课结果选择多门课程，一个课程对应多个选课学生选课，所以学生实体和课程实体与选课的关系都是一对多，添加关联连接，一门课程可能太枯燥了，没有学生来选，所以课程对应选课可能是0,n，一个学生可能学分够了这学期一门课都不选，所以学生对应选课也可能是0,n的关系，所以我们最终形成的概念模型如图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_24.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/PowerDesigner_A7E6/image_thumb_11.png&quot; width=&quot;640&quot; height=&quot;385&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;这就是一个完整的概念模型。接下来就是要根据概念模型生成逻辑模型或者物理模型。&lt;/p&gt;&lt;img src=&quot;http://www.cnblogs.com/studyzy/aggbug/1620867.html?type=1&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;/&gt;&lt;p&gt;评论: 0　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/10/1620867.html#pagedcomment&quot; target=&quot;_blank&quot;&gt;查看评论&lt;/a&gt;　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/10/1620867.html#commentform&quot; target=&quot;_blank&quot;&gt;发表评论&lt;/a&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;最新新闻：&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56793/&quot; target=&quot;_blank&quot;&gt;知名扩展 Firebug 的简化版登陆 Chrome&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:59)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56792/&quot; target=&quot;_blank&quot;&gt;Google 悄悄地启用 1e100.net，打枪地不要&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:57)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56791/&quot; target=&quot;_blank&quot;&gt;从 Google 代码库找到的好东西&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:46)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56789/&quot; target=&quot;_blank&quot;&gt;苹果在线商店临时关闭 或将推新Macbook&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:39)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56788/&quot; target=&quot;_blank&quot;&gt;豆瓣网推出豆瓣电台iPhone客户端&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 21:51)&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;编辑推荐：&lt;a href=&quot;http://news.cnblogs.com/n/56782/&quot; target=&quot;_blank&quot;&gt;2010年2月编程语言排行榜&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;网站导航：&lt;a href=&quot;http://www.cnblogs.com&quot; target=&quot;_blank&quot;&gt;博客园首页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/&quot; target=&quot;_blank&quot;&gt;个人主页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://news.cnblogs.com&quot; target=&quot;_blank&quot;&gt;新闻&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/ing/&quot; target=&quot;_blank&quot;&gt;闪存&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/group/&quot; target=&quot;_blank&quot;&gt;小组&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com/q/&quot; target=&quot;_blank&quot;&gt;博问&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com&quot; target=&quot;_blank&quot;&gt;社区&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://kb.cnblogs.com&quot; target=&quot;_blank&quot;&gt;知识库&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/330733283/studyzy/feedsky/s.gif?r=http://www.cnblogs.com/studyzy/archive/2009/12/10/1620867.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/studyzy/330733283/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/studyzy/330733283/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 10 Dec 2009 10:10:00 +0800</pubDate><author>深蓝</author><guid isPermaLink="false">http://www.cnblogs.com/studyzy/archive/2009/12/10/1620867.html</guid><dc:creator>深蓝</dc:creator><fs:srclink>http://www.cnblogs.com/studyzy/archive/2009/12/10/1620867.html</fs:srclink><fs:srcfeed>http://www.cnblogs.com/studyzy/rss</fs:srcfeed><fs:itemid>feedsky/studyzy/~7646125/330733283/5755232</fs:itemid></item><item><title>PowerDesigner模型设计</title><link>http://www.cnblogs.com/studyzy/archive/2009/12/09/1620544.html</link><description>&lt;p&gt;阅读: 285 评论: 0 作者: &lt;a href=&quot;http://www.cnblogs.com/studyzy/&quot; target=&quot;_blank&quot;&gt;深蓝&lt;/a&gt; 发表于 2009-12-09 19:44 &lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/09/1620544.html&quot; target=&quot;_blank&quot;&gt;原文链接&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;绪论&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Sybase PowerDesigner（简称PD）是最强大的数据库建模工具，市场占有率第一，功能也确实十分强大，现在最新版本是15.1，已经支持最新的SQL Server 2008等数据库，另外在PD15中还增加了好几种模型，界面也得到了进一步的美化，做出来的图更漂亮了。下面是一个在PD15中新建模型的窗口：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8a7666ff4987_D890/image_4.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/8a7666ff4987_D890/image_thumb_1.png&quot; width=&quot;631&quot; height=&quot;480&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;PD本身除了进行数据库建模以外，还可以建业务模型、UML模型等，当然这些建模其他很多工具也有相同的功能，PD在这些模型的建立上并没有看出有什么明显的优势，所以我使用PD的目的只有一个就是进行数据库建模，这才是他的强项。&lt;/p&gt;  &lt;p&gt;一般来说在进行数据库建模时最常用的就是概念模型和物理模型，现在在PD15中增加了逻辑数据模型和多维数据模型。另外的数据流图、数据迁移模型和UML类图就暂时不研究了。&lt;/p&gt;  &lt;p&gt;在进行数据库建模时，最先是要建立概念模型，概念模型是一个抽象的宏观层次的业务模型，最常用的是&amp;#8220;实体-关系&amp;#8221;图。所以在概念模型中最重要的对象是实体和关系。&lt;/p&gt;  &lt;p&gt;根据概念模型可以生成逻辑模型，逻辑模型是概念模型的延伸，表示概念之间的逻辑次序，是一个属于方法层次的模型。具体来说，逻辑模型中一方面显示了实体、实体的属性和实体之间的关系，另一方面又将继承、实体关系中的引用等在实体的属性中进行展示。逻辑模型介于概念模型和物理模型之间，具有物理模型方面的特性，在概念模型中的多对多关系，在逻辑模型中将会以增加中间实体的一对多关系的方式来实现。&lt;/p&gt;  &lt;p&gt;逻辑模型主要是使得整个概念模型更易于理解，同时又不依赖于具体的数据库实现，使用逻辑模型可以生成针对具体数据库管理系统的物理模型。逻辑模型并不是在整个步骤中必须的，可以直接通过概念模型来生成物理模型。&lt;/p&gt;  &lt;p&gt;物理模型依赖于具体的物理实现，使用的就是数据库对象，原来的&amp;#8220;实体-关系&amp;#8221;转换成&amp;#8220;表-外键&amp;#8221;，实体的属性转换为表的列，同时每个列的数据类型转换为对应的DBMS中支持的数据类型。&lt;/p&gt;  &lt;p&gt;对于SQL Server 2008的物理模型，如果主键需要使用自增长，那么需要修改具体的列，设置该列为Identity。如果生成的数据类型不合理，也可以调整数据类型，使得数据类型使用得更恰当。在物理模型中除了生成的表外，还可以手动增加视图、存储过程、业务规则等在概念模型和逻辑模型中无法表达的数据库对象。&lt;/p&gt;  &lt;p&gt;对物理模型调整好后，就可以将模型应用到SQL Server数据库中。在数据库中实现物理模型的方法有两种，一种是使用PD连接到SQL Server数据库，然后将模型同步到数据库中，另一种方法就是生成数据库脚本。&lt;/p&gt;  &lt;p&gt;这里只是简单的介绍了下数据库建模的过程，接下来我会对每一个步骤每一个模型进行详细的讲解。&lt;/p&gt;&lt;p&gt;&lt;a id=&quot;ctl04_TitleUrl&quot; class=&quot;postTitle2&quot; href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/10/1620867.html&quot; target=&quot;_blank&quot;&gt;在PowerDesigner中设计概念模型&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src=&quot;http://www.cnblogs.com/studyzy/aggbug/1620544.html?type=1&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;/&gt;&lt;p&gt;评论: 0　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/09/1620544.html#pagedcomment&quot; target=&quot;_blank&quot;&gt;查看评论&lt;/a&gt;　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/12/09/1620544.html#commentform&quot; target=&quot;_blank&quot;&gt;发表评论&lt;/a&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;最新新闻：&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56793/&quot; target=&quot;_blank&quot;&gt;知名扩展 Firebug 的简化版登陆 Chrome&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:59)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56792/&quot; target=&quot;_blank&quot;&gt;Google 悄悄地启用 1e100.net，打枪地不要&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:57)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56791/&quot; target=&quot;_blank&quot;&gt;从 Google 代码库找到的好东西&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:46)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56789/&quot; target=&quot;_blank&quot;&gt;苹果在线商店临时关闭 或将推新Macbook&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:39)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56788/&quot; target=&quot;_blank&quot;&gt;豆瓣网推出豆瓣电台iPhone客户端&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 21:51)&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;编辑推荐：&lt;a href=&quot;http://news.cnblogs.com/n/56782/&quot; target=&quot;_blank&quot;&gt;2010年2月编程语言排行榜&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;网站导航：&lt;a href=&quot;http://www.cnblogs.com&quot; target=&quot;_blank&quot;&gt;博客园首页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/&quot; target=&quot;_blank&quot;&gt;个人主页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://news.cnblogs.com&quot; target=&quot;_blank&quot;&gt;新闻&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/ing/&quot; target=&quot;_blank&quot;&gt;闪存&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/group/&quot; target=&quot;_blank&quot;&gt;小组&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com/q/&quot; target=&quot;_blank&quot;&gt;博问&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com&quot; target=&quot;_blank&quot;&gt;社区&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://kb.cnblogs.com&quot; target=&quot;_blank&quot;&gt;知识库&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/330733460/studyzy/feedsky/s.gif?r=http://www.cnblogs.com/studyzy/archive/2009/12/09/1620544.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/studyzy/330733460/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/studyzy/330733460/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 09 Dec 2009 19:44:00 +0800</pubDate><author>深蓝</author><guid isPermaLink="false">http://www.cnblogs.com/studyzy/archive/2009/12/09/1620544.html</guid><dc:creator>深蓝</dc:creator><fs:srclink>http://www.cnblogs.com/studyzy/archive/2009/12/09/1620544.html</fs:srclink><fs:srcfeed>http://www.cnblogs.com/studyzy/rss</fs:srcfeed><fs:itemid>feedsky/studyzy/~7646125/330733460/5755232</fs:itemid></item><item><title>SQL Server到底需要使用哪些端口</title><link>http://www.cnblogs.com/studyzy/archive/2009/11/30/1614139.html</link><description>&lt;p&gt;阅读: 352 评论: 0 作者: &lt;a href=&quot;http://www.cnblogs.com/studyzy/&quot; target=&quot;_blank&quot;&gt;深蓝&lt;/a&gt; 发表于 2009-11-30 23:24 &lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/11/30/1614139.html&quot; target=&quot;_blank&quot;&gt;原文链接&lt;/a&gt;&lt;/p&gt;&lt;p&gt;SQL Server在安装到服务器上后，由于出于服务器安全的需要，所以需要屏蔽掉所有不使用的端口，只开放必须使用的端口。下面就来介绍下SQL Server 2008中使用的端口有哪些：&lt;/p&gt;  &lt;p&gt;首先，最常用最常见的就是1433端口。这个是数据库引擎的端口，如果我们要远程连接数据库引擎，那么就需要打开该端口。这个端口是可以修改的，在&amp;#8220;SQL Server配置管理器&amp;#8221;中切换到&amp;#8220;XXX的协议&amp;#8221;里面选择，TCP/IP协议属性中可以设置TCP端口。如图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer_F149/image_2.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer_F149/image_thumb.png&quot; width=&quot;395&quot; height=&quot;429&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;SSIS要调用DCOM协议，所以在使用SSIS的时候需要打开135端口，而且这个端口是不能更改的。只有打开 TCP 端口 135 才能访问服务控制管理器 (SCM)。SCM 执行以下任务：启动和停止 Integration Services 服务，以及将控制请求传输到运行的服务。&lt;/p&gt;  &lt;p&gt;接下来再说一下SSAS，SSAS默认实例使用的是2383端口，如果是命名实例，那么每个实例都会有一个管理员指定的端口，这个端口也可以是动态分配的，由于网络安全的需要，强烈建议不要使用动态分配端口的方案。&lt;em&gt;如果是动态分配的端口，客户端在连接服务器时，将会连接服务器的2382端口，这个端口是SQL Server Browser使用的端口。SQL Server Browser再通过2382端口告诉客户端，需要连接的命名实例的实际端口号。（这是官方的说法，但是我并不确定这里是要2382端口，不过接下来提到的UDP1434端口是肯定有用的。）&lt;/em&gt;另外SQL Server Browser需要使用到UDP的1434端口，所以如果需要使用该服务的话，必须将UDP1434打开。修改SSAS的端口，需要先打开SSAS服务，然后使用SSMS连接到SSAS中，在对象资源管理器中右击实例，选择属性，弹出分析服务属性窗口，设置Port属性为需要的端口，默认值是0，也就是没有设置的意思，然后重启SSAS服务即可。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer_F149/image_6.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer_F149/image_thumb_2.png&quot; width=&quot;592&quot; height=&quot;480&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;重启后，SSMS获取其他客户端连接SSAS的话，那么就需要使用&amp;#8220;主机名:端口&amp;#8221;的方式作为连接主机，而如果是数据库引擎的话，那么是使用&amp;#8220;主机名,端口&amp;#8221;的格式，这两个是有所区别的。&lt;/p&gt;  &lt;p&gt;报表服务是通过Web的方式提供服务的，所以默认情况下报表服务使用的是80端口，当然用户也可以修改报表服务的端口，在报表服务配置管理器中修改Web服务和报表管理器的端口，如图所示：&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer_F149/image_4.png&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/studyzy/WindowsLiveWriter/SQLServer_F149/image_thumb_1.png&quot; width=&quot;640&quot; height=&quot;446&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;SSB的端口配置，SSB如果涉及到计算机之间通过网络进行通信，那么就需要设置端点（EndPoint），在设置SSB的端点时，就需要制定侦听的端口，比如我们创建这样一个端点：&lt;/p&gt;  &lt;pre&gt;USE master;
GO

CREATE ENDPOINT BrokerEndpoint
    STATE = STARTED
    AS TCP ( LISTENER_PORT = &lt;strong&gt;4037&lt;/strong&gt; )
    FOR SERVICE_BROKER ( AUTHENTICATION = WINDOWS ) ;
GO&lt;/pre&gt;

&lt;p&gt;那么我们就需要开发4037端口。&lt;/p&gt;

&lt;p&gt;同样的道理，如果我们要配置数据库镜像、SOAP访问等，那么也需要创建端点，同时开通端点中的端口。&lt;/p&gt;

&lt;p&gt;除了以上介绍的端口外，如果要做数据库复制之类的，需要在数据库服务器上设置共享文件夹以方便多台服务器的数据传输的话，那么就还需要开通Windows共享的端口，如137、138、139、445等。&lt;/p&gt;

&lt;p&gt;以上介绍了这么多服务和端口，这需要根据实际的需要来设置，出于安全考虑可以将默认端口该为自己的端口，而且SQL Server Browser服务不要打开。&lt;/p&gt;&lt;img src=&quot;http://www.cnblogs.com/studyzy/aggbug/1614139.html?type=1&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;/&gt;&lt;p&gt;评论: 0　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/11/30/1614139.html#pagedcomment&quot; target=&quot;_blank&quot;&gt;查看评论&lt;/a&gt;　&lt;a href=&quot;http://www.cnblogs.com/studyzy/archive/2009/11/30/1614139.html#commentform&quot; target=&quot;_blank&quot;&gt;发表评论&lt;/a&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;最新新闻：&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56793/&quot; target=&quot;_blank&quot;&gt;知名扩展 Firebug 的简化版登陆 Chrome&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:59)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56792/&quot; target=&quot;_blank&quot;&gt;Google 悄悄地启用 1e100.net，打枪地不要&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:57)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56791/&quot; target=&quot;_blank&quot;&gt;从 Google 代码库找到的好东西&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:46)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56789/&quot; target=&quot;_blank&quot;&gt;苹果在线商店临时关闭 或将推新Macbook&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 22:39)&lt;/span&gt;&lt;br/&gt;· &lt;a href=&quot;http://news.cnblogs.com/n/56788/&quot; target=&quot;_blank&quot;&gt;豆瓣网推出豆瓣电台iPhone客户端&lt;/a&gt;&lt;span style=&quot;color:gray&quot;&gt;(2010-02-09 21:51)&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;编辑推荐：&lt;a href=&quot;http://news.cnblogs.com/n/56782/&quot; target=&quot;_blank&quot;&gt;2010年2月编程语言排行榜&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;网站导航：&lt;a href=&quot;http://www.cnblogs.com&quot; target=&quot;_blank&quot;&gt;博客园首页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/&quot; target=&quot;_blank&quot;&gt;个人主页&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://news.cnblogs.com&quot; target=&quot;_blank&quot;&gt;新闻&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/ing/&quot; target=&quot;_blank&quot;&gt;闪存&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://home.cnblogs.com/group/&quot; target=&quot;_blank&quot;&gt;小组&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com/q/&quot; target=&quot;_blank&quot;&gt;博问&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://space.cnblogs.com&quot; target=&quot;_blank&quot;&gt;社区&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://kb.cnblogs.com&quot; target=&quot;_blank&quot;&gt;知识库&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/330733499/studyzy/feedsky/s.gif?r=http://www.cnblogs.com/studyzy/archive/2009/11/30/1614139.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/studyzy/330733499/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/studyzy/330733499/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 30 Nov 2009 23:24:00 +0800</pubDate><author>深蓝</author><guid isPermaLink="false">http://www.cnblogs.com/studyzy/archive/2009/11/30/1614139.html</guid><dc:creator>深蓝</dc:creator><fs:srclink>http://www.cnblogs.com/studyzy/archive/2009/11/30/1614139.html</fs:srclink><fs:srcfeed>http://www.cnblogs.com/studyzy/rss</fs:srcfeed><fs:itemid>feedsky/studyzy/~7646125/330733499/5755232</fs:itemid></item></channel></rss>