实体关系建模
软件行业中最常被误解的一个术语实际上是我们非常熟悉的一个:实体关系(ER)。这是因为我们经常缺少一种能被开发团队的所有成员理解的共同定义。我们假定团队的每个成员都对与 ER 和 ER 建模相关的方法学、语法和机制(mechanics)有着同样清楚的理解。
ER 建模本身定义了在基于信息的系统的分析和设计中用到的方法。数据库设计者通常使用该方法来收集需求,并定义数据库系统的构架。该方法的输出是实体类型、关系类型和约束条件的清单。
不幸的是,ER 建模没有为 ER 图的表示定义图解语法。数据库团队经常单独使用表示法,并且将 ER 建模限制在关系数据库设计的范围内。我们需要一种能让整个系统开发团队的成员获得更广泛理解的表示法。
统一建模语言(UML)是一种分析人员和软件开发人员广泛使用的语言,特别适合 ER 图的图形化表示。通过使用 UML,开发团队受益匪浅,这些获益包括团队成员间的交流更加简单,由于该语言是基于元模型的因而更容易与知识库集成,标准化输入/输出格式(XMI)的使用,应用建模和数据建模的普遍使用,从分析到实施再到部署的统一表示,以及规格说明书的完整性。
本白皮书定义了 ER 建模的核心概念,并解释了开发团队如何能够利用 UML 开发 ER 模型。
ER 建模的核心要素
ER 建模基于工件,可以是物理工件(比如 Product 或 Employee)的表示或者工件(比如 Order 或 Delivery)之间事务的表示。每个工件都包含关于自身的信息。ER 建模还专注于工件间的关系。这些关系可以是二元的(连接两个工件),也可以是三元的(在几个工件之间)。
ER 建模的四个必要元素是:
◆实体类型
◆属性
◆关系类型
◆关系属性
◆实体类型
实体类型是具有相同的结构并在企业内部独立存在的一组工件。Employees 或 Products 就是实体类型的例子。
工件的一次出现就是一个实体。虽然实体类型描述了结构,但是实体本身标识了单个实例以及该实例的所有数据。Employee Joe Ward 就是 Employees 实体的一个例子。
| 图1 实体类型 Employees 和实体 Employees Joe Ward |
属性
实体类型的结构是用属性定义的。属性可看作实体类型的特征。Employee 的属性可能有姓名、住址、社会安全号码、出生日期、参加工作日期以及职务等。
实体通过属性值来互相区分。由于实体的属性可能有相同的值,如果这样我们就不能区分某些特定的实体。因此,我们必须保证特定实体的属性值与其他实体的属性值不同。各个 Employee 都有一个唯一的姓名和社会安全号码属性组合。
Employee 的属性值的一个例子是:Joe Ward,地址为 34 Main Road, Redmond, WA, 98053,社会安全号码为 555-32-2222,出生于 1971 年 9 月 7 日,2001 年十月 1 日加入公司,是家电服务工程师。
| 图2 实体类型 Employee 的属性以及实体 Employee Joe Ward 的属性值 |
关系类型
实体类型描述了独立工件,而关系类型描述了实体类型间有意义的关联。更准确的说,关系类型描述了参与该关系的实体类型的实体可以构建一个有意义的关联。实体间实际发生的关联被称为一种关系。
有一点我们必须理解:尽管我们已经定义了一种关系类型,但是这并不意味着每一对实体都构建了一种关系。关系类型规定了发生关系的类型。
关系类型的一个例子是 Employee 拥有 Product。在该例中,关系类型是 Owns。关系本身是:Employee Joe Ward 拥有一种产品--一部编号 320 TS 03880 的黄色电话机。
| 图3 雇员 Joe Ward 和序号 320 TS 03880 的产品之间的拥有关系类型和拥有关系 |
关系类型的属性
关系类型还可以包含属性。比如,Employee 和 Product 间的关系类型 Services 可以包含属性 Date 和 Status,标识了服务的日期以及服务之后产品的状态。
当在具体发生的服务中实现关系时,该关系的属性值就被设置。关系的含义可能是:Joe Ward 在 2002 年 7 月 3 日为序号是 0462834 DF 4的黑色饮水机提供维修服务,并且使其建立了良好的工作状态。
| 图4 services 关系类型的属性,以及 Joe Ward 为序号 0462834 DF 4的产品提供服务的关系的属性 |
| 共4页: 1 [2] [3] [4] 下一页 | ||||||
|
|
||||
| · 浏览器的战国时代 · CCNA认证考试Pass必备 · 无线网络环境 · 无线路由器故障处理 · 解析35岁技术人的价值.. · 无线重中之重:安全问题 · 无线局域网基本知识 · 家庭无线局域网 |
· 华为七千人主动辞职规.. · 微软出价446亿美元收购.. · 虚拟化的“赤壁之战” · 802.11n:下一代的无线.. · 脉冲无线电uwb专题 · AIX操作系统管理应用 · 云计算时代来临 · 求职必杀技 决战面试官 |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · 无线网状网(MESH) · Windows远程桌面应用 · C#技术开发指南 |
· Apache技术专题 · Windows集群服务应用 · C#技术开发指南 · 文档格式标准开战 OOXM.. · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 解析35岁技术人的价值.. |
|||