数据建模是应用程序设计中的很重要的部分,尤其对分布式应用程序更是如此。然而,现在创建模型的方法在许多方面都不太完善。Microsoft的Terry Halpin博士提出了ORM(对象角色建模)来解决数据建模的问题。
在概念层上,ORM是一种设计和查询数据库模型的方法,在这一层中,应用程序是用一些非技术用户也能理解的术语描述的。实际上,ORM数据模型常常获取较多的商务规则,并且比其它方法创建的数据模型更容易验证和升级。简而言之,ORM使得数据建模更加面向商务规则。
建模比设计出现的早。从传统意义上讲,ORM不能代理E-R模型,也不能用于设计数据库。它是数据存储建模的推理模型,就像UML是对象建模的推理模型一样。ORM可以用来把用户具体思想概念化以形成一般的数据模型。例如,用户可以勾画一篇报表,而我们能根据报表的信息建立一般的数据模型。
下面是要讲述的ORM的内容:
市民具有姓名
这是最普通的事实类型:一个二元元素。
如果句子只有一个名词,它将是一个属性或一个一元元素。如:市民是男性的。
同样有三元和四元元素。如:市民从Kroger获得食品。这里有三个名词。
事实中的名词的数量称为它的元数(arity)。最终将与我们在数据库中庙宇的约束有关。
这就是建模,至今我们还没有进入设计阶段。实际上,如果建模过程要获得最高的效率,避免把任何事都映射到预先规划数据库外观是很重要的。
单一约束:如:一个电话号码有一个区号,一个区号可以有多个电话号码。在角色关系中很难看到这些,但他们通常在图表中出现。
在概念层上,ORM是一种设计和查询数据库模型的方法,在这一层中,应用程序是用一些非技术用户也能理解的术语描述的。实际上,ORM数据模型常常获取较多的商务规则,并且比其它方法创建的数据模型更容易验证和升级。简而言之,ORM使得数据建模更加面向商务规则。
建模比设计出现的早。从传统意义上讲,ORM不能代理E-R模型,也不能用于设计数据库。它是数据存储建模的推理模型,就像UML是对象建模的推理模型一样。ORM可以用来把用户具体思想概念化以形成一般的数据模型。例如,用户可以勾画一篇报表,而我们能根据报表的信息建立一般的数据模型。
下面是要讲述的ORM的内容:
- 对象角色建模的概念
- 在建模过程中Visio的用途
- 用ORM建立数据库
- 最后讲解一些实例代码
ORM的概念
ORM提供了数据关系以及与此数据有关的商务规则的可视化表示方法。然而,它不仅包括图表模式,也包括结构化的事实语言,以及建立图表的过程。它用来提高符合目标应用程序的最终用户,通过指出要采用什么数据结构提高了通常的非结构化处理过程的效率。ORM的组成部分
ORM有两种格式,和一个使它们起作用的处理过程。第一种格式以语言为基础。它允许我们用一种易懂的方法描述数据关系和商务规则。第二种格式是图表,用于形象的表示系统。1.一些基本事实
举一个例子,假设我们正在看一个电话簿,我们能用完全的二元关系描述此数据。例如:- 此人名叫"Bill"
- 住在“123大街”
- ”123大街“在Ohio
- 电话号码是"555-1212“
- ”555-1212“的电话区号是“614”
- 市民的姓名
- 市民的居住地址
- 地址位于的国家
- 市民的电话号码
- 电话号码的电话区号
2.事实的类型(陈述句)
注意这些基本的事实全都有两个名词:市民具有姓名
这是最普通的事实类型:一个二元元素。
如果句子只有一个名词,它将是一个属性或一个一元元素。如:市民是男性的。
同样有三元和四元元素。如:市民从Kroger获得食品。这里有三个名词。
事实中的名词的数量称为它的元数(arity)。最终将与我们在数据库中庙宇的约束有关。
这就是建模,至今我们还没有进入设计阶段。实际上,如果建模过程要获得最高的效率,避免把任何事都映射到预先规划数据库外观是很重要的。
3.约束
它们大部分用图表定义,但是也是语言的重要组成部分。单一约束:如:一个电话号码有一个区号,一个区号可以有多个电话号码。在角色关系中很难看到这些,但他们通常在图表中出现。