- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9.2面向对象数据库建模.ppt
9.2 面向对象数据库建模;图 9 ― 2 数据库建模和实现的过程;9.2.1 ODL的类说明
在对象的定义中主要包括以下几个部分:
① 关键字 Interface(接口);
② 类的名字;
③ 类的特性表,可以是属性、 联系、 方法。
所以,ODL类说明的最简单形式是:
Interface 类名字 {
特性表
};
;9.2.2 ODL中属性的说明
属性是类的一种最简单的特性。
例 9.1 利用ODL描述职工(employee)类,语句如下:
interface employee {
attribute string name;
attribute integer age;
attribute enum sextype{ male,female} sex;
};
;语句说明:
第一行说明employee是一个类;
第二行说明属性name,其类型是string,即长度未知的字符串;
第三行说明属性age,类型是整型;
第四行说明属性sex,其类型是枚举型,枚举类型名字为sextype,sex的值从male或female中选择。
这是employee??的说明,任何一个employee对象在这几个属性上均对应一个分量。
; 例9.1中的属性均是原子的,事实上属性类型可以是结构、 集合、 聚集等复杂类型。
例 9.2 给出类department的ODL描述,有属性name(部门名)、 manager(负责人)、 address(办公地址),其中address是一个结构,包括楼层和房间号:
interface department {
attribute string name;
attribute string manager;
attribute struct Addr
{ string room,string floor}address;
}; ; ODL中的原子类型有: 整型(integer)、 浮点型(float)、 字符(char)、 字符串(string)、 布尔型(boolean)和枚举型(enum)。 复杂类型可以是集合、 列表、 数组和结构等。
; 9.2.3 ODL中的联系
为了得到对象与同类或不同类的其他对象的连接方式,需要在类的定义中说明类与类之间的联系。
如职工类与部门类之间有联系。 一个职工对象总与某个部门对象有关系(工作关系)。 在employee类说明中,可用下面的ODL语句表示这种联系:
Relationship department workin;
; 该语句说明在employee类中的每个对象,都有一个对department对象的引用,引用名为workin。
因为在职工类和部门类的联系中还有一层联系是一个部门对象中总包含了若干个职工对象,即从部门类中的每个对象,也应该能实现对职工类中的对象集的引用。 那么这种引用如何实现呢?
在ODL中有反向联系的概念,要说明一个部门可有多个职工,需要在department类说明中加进对employee类对象的引用:
; Relationship setemployee owns
Inverse employee:: workin;
其中联系名为owns,关键字set表示集合,setemployee表示employee的对象集合,说明de
partment对象将引用employee的对象集合,Inverse employee:: workin说明owns联系是employee类中联系workin的反向联系。
; 在E―R模型中,没有反向联系的概念,因为E―R模型中的联系是双向的。 所以E―R模型中的一个联系,在ODL中要用一对反向联系来表示。 在ODL中
文档评论(0)