六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 25|回复: 0

实体关系图(ER图)

[复制链接]

升级  6.67%

16

主题

16

主题

16

主题

秀才

Rank: 2

积分
60
 楼主| 发表于 2013-1-27 05:07:59 | 显示全部楼层 |阅读模式
实体关系图也是设计数据库的关键问题,同时开发工程师也需要理解系统设计人员发布的ER图。是开发不可避免并经常用到的问题。所以加以论述。而本章使用的Microsoft SQL Server2000。由于其简单易用,是学习的好工具,所以采用。采用ERwin也是由于许多的开发商使用和简单易用的特性的原因,另外用得好的是PowerDesigner由于稍显复杂,故未采用。 实体关系图(ER图)

  在下面的具体实例中,使用的是PetShop数据库(网络上传播的为微软的.net的测试数据库,下载地址http://www.qddown.com/down.asp?id=2475&no=1.本文使用的是Petshop(<st1:chsdate isrocdate="False" month="12" w:st="on" day="30" islunardate="False" year="1899">1.5.2</st1:chsdate>).msi版本).ER建模工具为Erwin4.1.4.图1是其表结构在ERwin下的ER图.
<span style="">
<o:p></o:p>
<v:shapetype o:spt="75" coordsize="21600,21600" filled="f" stroked="f" id="_x0000_t75" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" o:connecttype="rect" gradientshapeok="t"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style="WIDTH: 414.75pt; HEIGHT: 311.25pt"><v:imagedata src="file:///C:\DOCUME~1\new\LOCALS~1\Temp\msohtml1\01\clip_image001.jpg" o:title="4"></v:imagedata></v:shape>

1

<a name="_Toc137039096" /><a name="_Toc136966541" /><a name="_Toc136966442" />3.1 1对1关系

    图2:Account中的userid和Signon中的username和Profile中的userid具有1对1的关系. 表中存在约束关系.并且Account中的userid必须同时在Signon和Profile中出现才可以插入.而Signon和Profile则没有限制.
<span style="">
<span style=""><o:p></o:p>
<v:shape id="_x0000_i1026" type="#_x0000_t75" style="WIDTH: 165pt; HEIGHT: 395.25pt"><v:imagedata src="file:///C:\DOCUME~1\new\LOCALS~1\Temp\msohtml1\01\clip_image003.wmz" o:title=""></v:imagedata></v:shape><o:p></o:p>

图2

<a name="_Toc137039097" /><a name="_Toc136966542" /><a name="_Toc136966443" />3.2 1对多关系<o:p></o:p>

  如图3:Profile表中的favcategory与BannerData的主键favcategory具有外键约束,并且favcategory在Profile中可以重复出现. 并只能是在BannerData中出现的才可以插入。

<v:shape id="_x0000_i1027" type="#_x0000_t75" style="WIDTH: 165.75pt; HEIGHT: 209.25pt"><v:imagedata src="file:///C:\DOCUME~1\new\LOCALS~1\Temp\msohtml1\01\clip_image005.wmz" o:title=""></v:imagedata></v:shape><o:p></o:p>

3

下图也是一对多的关系为什么出现的一个是菱形的图标?因为可以在Profile中在favcategory项上可以为空.而不必一定要出现在BannerData中.如果没有菱形图标就不允许为空。如下图4:

<v:shape id="_x0000_i1028" type="#_x0000_t75" style="WIDTH: 328.5pt; HEIGHT: 380.25pt"><v:imagedata src="file:///C:\DOCUME~1\new\LOCALS~1\Temp\msohtml1\01\clip_image007.wmz" o:title=""></v:imagedata></v:shape><o:p></o:p>

图4

<a name="_Toc137039098" /><a name="_Toc136966543" /><a name="_Toc136966444" />3.3 多对多关系<span style="" /><span style="" /><span style="" /><span style="" /><o:p></o:p>

     一门课程同时有若干学生选修,而一个学生有同时可以选多门课程,则学生与课程之间具有多对多关系。如图5:

<v:shape id="_x0000_i1029" type="#_x0000_t75" style="WIDTH: 168pt; HEIGHT: 288.75pt"><v:imagedata src="file:///C:\DOCUME~1\new\LOCALS~1\Temp\msohtml1\01\clip_image009.wmz" o:title=""></v:imagedata></v:shape><o:p></o:p>

5

<a name="_Toc137039099" /><a name="_Toc136966544" /><a name="_Toc136966445" />3.4 无任何约束的表

     没有限制的表,如图6:

<v:shape id="_x0000_i1030" type="#_x0000_t75" style="WIDTH: 115.5pt; HEIGHT: 64.5pt"><v:imagedata src="file:///C:\DOCUME~1\new\LOCALS~1\Temp\msohtml1\01\clip_image011.wmz" o:title=""></v:imagedata></v:shape><o:p></o:p>

图6 <o:p></o:p>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表