答案:注意:某些特性可能公开使用的Visual Studio .NET β2版本中没有提供。
什么是ORM?
对象角色建模(ORM)提供了概念性的、易于理解的模型化数据的方法。ORM方易做图基于三个核心原则:
- 简单:以最基本的形式建模数据。
- 传达性:数据库结构被任何人都能理解的语言文档化。
- 精确性:基于数据模型创建正确标准化了的结构。
典型地,建模者通过收集来自那些熟悉应用程序但不熟练的数据建模者的人的信息开发信息模型。建模者必须能够用非技术企业专家可以理解的术语在概念层次上与数据结构进行通讯。建模者也必须能以简单的单元分析信息,对样本数据进行处理。ORM专门被设计为改进这种联系。
规则表达式 ORM把应用程序世界表示为具有角色(关系中的部分)的一组对象(实体或值)。ORM有时也称为基于事实的建模,因为它把相关数据描述为基本事实。这些事实如果分割为再小的事实就会丢失信息。
简单事实的一些例子包括:
- 人有电话
- 人住在某个地方
- 人生于某个日期
- 人在某个日期被雇佣
这些事实相应的ORM模型如下:
/upload/2006-3/200631403130229.gif 图 1. 对象角色模型
图中的圆代表对象;矩形代表论断。在ORM中,象在逻辑中一样,一个论断只是带有对象洞的语句。箭头和点代表系统中的约束。
例如,在“人有电话”这个事实的诊断上的箭头可以翻译为:有可能某个人有多于一个电话,并且至少有一个人有电话。
在“人生于某个日期”这个事实中,在论断上的箭头与连接对象与论断的点的结合表明: 每个人确切地出生于一个日期。
与 ER的比较 实体关系(ER)是另一种类型的数据库建模。ORM模型的简单性与ER相应部分的比较:
/upload/2006-3/200631403139121.gif 图 2. 实体关系
ORM以简单对象和论断的形式描述企业事实,而实体关系方易做图以术语实体(拥有属性并参与关系)描述世界。在图1的ORM例子中,人,电话,地址和日期都表示为扮演有相互联系的角色的对象。在ER例子中,人是一个实体,它由属性:地址和电话进行描述。
例如,如果要把地址分解为街道,城市,州,ZIP码,那么必须把地址改变为具有相应属性的实体类型,结果会改变人与地址间的关系。尽管在上面的ORM模型中表示的约束也可以在ER中表示,但只要向模型中增加节点,或编写应用程序代码对模型进行补充,就可以表示其它约束。
ORM的优点 ORM提供的不只是描述不同对象间关系的一个简单而直接的方式。从示例中,可以看出ORM还提供了灵活性。使用ORM创建的模型比使用其它方法创建的模型更有能力适应系统的变化。另外,ORM允许非技术企业专家按样本数据谈论模型,因此他们可以使用真实世界的数据验证模型。因为ORM允许重用对象,数据模型能自动映射到正确标准化的数据库结构。
ORM模型的简单性简化了数据库查询过程。使用ORM查询工具,用户可以访问期望数据,而不必理解数据库的底层结构。
数据库生成和遍历引挚 象所有优秀的模型方法一样,ORM也不只是一个概念。它包含了不同的设计过程以帮助建模者映射概念的和逻辑的模型,或使用转换引挚在这些模型间转换。
ORM模型也能够自动地映射到大多数流行的关系型数据库所实现的数据库结构。检查前面的例子,ORM模型能自动生成ER图表或逻辑模型(可以翻译为SQL 代码,并适用于所选择的数据库)。
总结 利用非技术企业专家的知识对于确保应用程序满足企业需求是重要的。ORM,Visual Studio .NET的一个特性,是一个最初的、易于使用的概念性数据模型方法。通过使用不只是只有数据库专家才能理解的语言,ORM使那些充分理解了企业对应用程序需求的人能直接参与设计。 [/B]
ORM还支持完全的遍历引挚,因此一旦定义了企业需求,它们就能迅速的转化为逻辑和物理数据库图表。使用ORM,组织可以提高应用程序开发的效率,确保企业需求能被正确交付。
上一个:Microsoft .NET 中的基类继承 (转自微软MSDN)
下一个:用WinDbg探索CLR世界1 - 安装与环境配置