用实体关系图进行数据库建模

上传人:cl****1 文档编号:474322794 上传时间:2023-08-21 格式:DOC 页数:15 大小:709KB
返回 下载 相关 举报
用实体关系图进行数据库建模_第1页
第1页 / 共15页
用实体关系图进行数据库建模_第2页
第2页 / 共15页
用实体关系图进行数据库建模_第3页
第3页 / 共15页
用实体关系图进行数据库建模_第4页
第4页 / 共15页
用实体关系图进行数据库建模_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《用实体关系图进行数据库建模》由会员分享,可在线阅读,更多相关《用实体关系图进行数据库建模(15页珍藏版)》请在金锄头文库上搜索。

1、用实体关系图进行数据库建模(ccidnet阿良仙人掌工作室2001年08月14日)一、概述很可能你现在正在规划一个数据库驱动的网站;而且几乎可以肯定的是,你一定已经浏览过数据库驱动的网站。过文本文件存储实现数据持久化,但现在我们能够访问大量不同的关系型、对象-关系型、面向对象型数据库。对于Web应用来说,关系数据库是一种强大的支持工具,这得感谢它们的高可用性、性能,而且相对来说,关系数个功能完善、源代码开放、能够在多种平台上运行的数据库系统并不困难。你可以用Perl、Java、PHP以及其他服务器端网站连结到一起。随着网站规模的发展,它对数据库通常是关系数据库的依赖程度也日益增加。大量页面和服

2、务需要向数据提取信息。对于大多数网站,数据库表很快成为网站体系结构中的关键部分,成为网站运作的生命中枢。为了方便和轻户、新闻动态、内容、统计数据都可以保存到关系数据库管理系统(RelationalDatabaseManagementSystem,RDBMS)用图(Diagram)管理数据模型具有高效、方便的优点。对于RDBMS,描述数据模型的图通常称为实体关系图(Entit用ERD描述数据模型能够帮助你预先精确定义数据需求,使你能够对以后的改动作出有效的规划,能够随着网站的发本文将介绍ERD建模工具和概念。文章提供了一些图的实例,但它们的目的不是提供精确的或者是全面的数据设计模工具为例,介绍数

3、据建模符号。在不同的工具之间,图的符号有着重大的差别,但它们的基本概念一样。本文的图例Professional的试用版得到,你可以从本文末尾找到这些工具和其他类似产品的链接。二、是否使用建模工具?许多规模较小的网站用ASCII形式的SQL(StructuredQueryLanguage)脚本文件进行数据建模。当开发小组人员较一个人构成时,这种方法最有效。然而,数据模型将很快发展成为一个复杂的结构在这种情况下,CASE(Compu计算机辅助软件设计)工具、有关所有数据信息的图、集中式知识库能够极大地帮助你管理Web网站的数据层。2.1何时使用SQL?即使当你准备用SQL直接管理数据模式(物理数据

4、库)时,图也能有效地帮助你理解和改进系统。然而,如果你的复杂的新式建模工具可能得不偿失。相反,在这种情况下,你应该使用一个简单的图形工具把数据模式的基本情况记录数据建模工具。如果你正在设计的数据库类型不常见(或者是非标准的),避免使用某些复杂CASE工具可能是明智的,因为这些些自动功能可能无法在你的环境下发挥作用。这里所谓的自动功能,是指建模工具根据输入模型的图形和属性信息,自命令的能力。反向工程是这样一种能力,建模工具根据已经部署的物理数据模式,从现有的表提取出实体和关系信息。2.2转入建模工具从简单绘图工具转换到数据建模工具并不是一个很复杂的过程。大多数数据建模工具的工作方式就象是一个标准

5、的这是两个数据建模工具的界面实例。你可以在这里创建和排列表,定义关系,以及指定其它信息(列的类型、长度,键图la:PowerDesigner的界面图lb:Visio的界面转向数据建模工具的主要挑战在于:学习使用建模符号。在不丢失任何关键信息的前提下,用数据建模工具描述现有数据模型。寻找一个对你的数据库提供全面支持的工具,例如在生成SQL、从现有数据模式通过反向工程建立数据模型一些入门级数据建模工具(参见本文后面的参考资源)只有少量的高级特性。这有好处,但也有弊端它们很容多的经验时,它们可能不再满足你日益增长的需要。然而,升级工具或更换工具一般不存在大的问题,特别是当新的工确、完整的反向工程时,

6、升级或更换工具的过程尤其简单。三、ERD建模符号本文使用Martin的InformationEngineering符号。PowerDesigner采用的就是这种符号,Oracle的Designer产品所使以在AISModelingSummary查看各种ERD符号的说明。基本的ERD绘图规范很直观易懂。你可以定义实体(表),扌写表和关系的细节信息时,每一种工具的做法都有所不同;但就我所遇到的工具来看,基本概念在大多数软件包之间是你必须了解的主要图形元素和设置方法。3.1表所有构造合理的数据建模工具都允许为表指定丰富的关联信息。这些信息包括(但不局限于):表的扌述、注解,以及实体(表)的标题。列,

7、列的类型、长度、默认值和强制条件。主键,索引,唯一性约束。要指定这些信息,一般你需要进入表的属性窗口,如图2a和图2b所示。2a:PowerDesigner中表的属性窗口图3b:Visio的表在图3a中可以看到一些非标准的数据类型,如PHONENUMBER和PK。许多数据建模工具允许定义域或定制数据使用。域不仅代表着数据类型通常,它们还包含检查约束、默认值、值列表等信息。如果你想要更新一个域(例如所有该模型中引用该域的列都将自动更新。3.2关系如果我们只定义数据模式中的表,数据建模工具就不那么重要了。各个表之间的关系、依赖情况往往很复杂,有一将带来很大的帮助。对于一个给定的关系,必须收集的重要

8、信息包括:父表和子表。两个表之间的强制关系。例如,父表可能有一个子表,但子表必须有一个父表。关系基数(Cardinality)。即,一个父表可以有零个或者多个子表,但一个子表有且只能有一个父表。关于关系的注释、意见和角色说明。大多数建模工具通过在两个或者更多表之间画出连线的方式定义关系。默认情况下,关系往往被定义成为一对多关一方都是可选的。要修改关系,你必须打开关系的属性窗口,更新实体关系的特征信息。图4a和图4b显示了两个不同属性:图4a:PowerDesigner的关系属性设置界面图4b:Visio的关系属性设置界面该图显示了一个一对多关系一个典型的父-子关联关系。部门(Branch)和雇

9、员(Emplyee)的关系是强制的。一个雇员(1-N强制关系);另一方面,它意味着一个雇员必须属于且只能属于一个部门(1-1强制关系)。图5a和图BranchidnamePKVA25EmployeeidFKcountryVA25firstMameVA25stateVA251.n1.1lastNameVA25cityVA25-iofficeNumberVA3streetVA50i1J-officeFhonePHONENUMBEF:HPVA8joinDateDATEphoneFHONENUMBERldtf_1图5a:PowerDesigner中两个表之间的关系图5b:Visio中两个表之间的关系这

10、个图显示了如何把信息转换成符号。强制的关系由一条实心垂直线(而不是椭圆)表示。某些工具用虚线表示可的这一边用一个类似鸟爪的图形表示,关系的基数在靠近它所描述的那一端显示。你可能已经注意到,Employee表没有定义外键列。这个图仍旧处于“概念设计”阶段一一此后,从概念图到物理数的。大多数工具区分概念和物理数据模型概念数据模型描述信息的需求,但不关注细节问题,例如索引和强制性的有些时候,你可能要定义自我引用的表。自我引用的表一般用来描述层次型关系。如下面的图形所示,大多数数据注意在这个例子中,雇员可以有零个或者一个上级一一它使你能够处理一些特殊的情况,比如总统没有直接的上级。图6a:PowerD

11、esigner中自我引用的表图6b:Visio中自我引用的表四、图的规划定义表和关系只是挑战的一部分,图的清楚明白同样很重要。虽然一些工具提供自动布局能力,我还没有看到过-标应该是遵从“孔雀东南飞”这一规则(这里的“孔雀”是关系中代表“多”这一方的符号,它是连接到表的三条分叉子表应该位于父表的右方和下方。这种安排使得从逻辑上组织和理解数据模型更加方便。最重要、最高级别的表应该出出现在页面的右下角。为了清楚起见,减少图中交叉线的数量也是很重要的。正如EberhardtRechtin在TheArtofSyste个好的设计往往看起来很舒服”。如果无论怎样安排,你的数据模型看起来都很混乱,那么,它可能

12、正在告诉你数据模BranchidPKnameVA25countryVA25stateVA25cityVA25streetVA50zipVA8phonePHONENUMBEREmployeeidFKtirstNameVA25lastNameVA25officeNurnberVA3officePhoneFHONENUMBEF:joinDateDATEldtf_1J.n-U.ndescriptioncomplexityAssignmenttitleVA25descriptionVA255startDateDATEstopDateDATE1.1EmployeeinfoactiveDateDATEsal

13、aryF8homeAddressVA255titleVA25图7a:完整的ER图(PowerDesigner)BranchPKidSHORTnamecoimtiystatecitystreetzipphoneCHAR(15)CHAR(10)CHAR(10)CHAR(10)CHAR(15)CHAR(10)CHAR(15)JobTypePKELSHORTtitledesciiptioncomplexityCHARTS)CHAR(255)SHORTEmployeePKSHORTFK2FK3hranchidsupervisor_idfirstNamelastNaineofficeNumberoffic

14、ePhonejoinDateSHORTSHORTCHAR(25)CHAR(25)CHARCHAR(15)DATETIMEAssignmentPK,FK1PK,FK2iobTvueidempidSHORTSHORTtitledesciiptionstartDatestopDateCHARCHAR(255)DATETIMECHAR(255)EmployeeinfoPK,FK1eiiipidSHORTactiveDatesalaryhomeAddresstitleDATETIMESINGLECHAR(255)CHAR(25)图7b:完整的ER图(Visio)五、从图到数据库依赖于你所选择的用来建立数据模型的软件包,建模工具可能会根据模型生成SQL命令或直接修改数据库模式。这使用ASCII格式的S

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号