(9-)对象数据模型概述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一范式是对关系模式的最起码的要求。不满足
第一范式的数据库模式不能称为关系数据库。
以下“工资”表具有组合数据项,不属于第一范式。 职工编号 001 002 003 …… 姓名 赵军 刘娜 李东 …… 工资 基本工资 职务工资 工龄工资 2000 500 500 1800 400 300 2300 700 800 …… …… ……
GIS中的各种地物,在几何性质方面不外乎表 现为四种类型,即点状地物、线状处物、面 状地物以及由它们混合组成的复杂地物,因 而这四种类型可以作为GIS中各种地物类型的 超类。
空间地物
点状地物
线状地物
面状地物
复杂地物
电 视 塔
桥 梁
车 站
道 路
水 管
电 力 线
建 筑 物
ห้องสมุดไป่ตู้
公 湖 园
矿 山
大 县 学
⑵ 面向对象数据模型的优点
封装的最基本单位是对象。封装技术提高了面向对象
方法开发软件的可重用性,从而大大提高了复杂软件的 开发效率、质量和可靠性,更加易于维护。
②分类
类是关于同类对象的集合,具有相同属性和操作的对象 组合在一起称为类。属于同一类的所有对象共享相同的属
性项和操作方法,每个对象都是这个类的一个实例,即每 个对象可能有不同的属性值。 可以用一个三元组来建立一个类型: Class=(CID,CS,CM)
(1)具有表示和构造复杂对象的能力。
(2)封装性和信息隐蔽技术提供了模块化
机制。 (3)继承和类层次技术提供了重用机制。
小结:
关系数据模型和关系数据库管理系统基
本上适应于 GIS中属性数据的表达与管理。若
采用面向对象数据模型,语义将更加丰富, 层次关系也更明了。可以说,面向对象数据 模型是在包含关系数据库管理系统的功能基 础上,增加面向对象数据模型的封装、继承 和信息传播等功能。
• 第3节 空间数据库逻辑模型设计
(一)关系数据模型基本概念 (二) 依赖 数据依赖 函数依赖
基本依赖 完全函数依赖 传递函数依赖 多值依赖
(三) 范式 1NF 2NF 3NF BCNF
关系数据库的规范化理论
(1) 第一范式(1NF)
定义:如果一个关系模式R的所有属性都是不可
分的基本数据项,则R属于1NF。
的属性描述数据和操作,这些是不能为复合对象所公用的.例如,
弧段聚集成线状地物或面状地物,简单地物组成复杂地物。 在聚集这两种对象中,是用“传播”作为传递子对象的属性
到复杂对象的工具。 即是说,复杂对象的某些属性值不单独
存于数据库中,而是从它的子对象中提取或派生。例如,一个 多边形的位置坐标数据,并不直接存于多边形文件中,而是存 于弧段和节点文件中,多边形文件仅提供一种组合对象的功能 和机制,通过建立聚集对象,借助于传播的工具可以得到多边 形的位置信息。
⑴、面向对象方法中的基本概念
对象:是对客观世界实体的抽象描
述,由信息(数据)和对数据的操 作组合而成。 类:是对多个相似对象共同特性的 描述。 消息:是对象之间通信的手段,用 来指示对象的操作。分公有消息和 私有消息。
方法:是对象接收到消息后应采取
的动作序列的描述。 实例:是由一特定类描述的具体对 象。 元类:是相似的类的共同属性的抽 象,元类的实例是类,类的实例是 对象。
④ 继承 建立超类实际上是一种概括,避免了说明 和存储上的大量冗余。由于超类和子类的分开 表示,所以就需要一种机制,在获取子类对象 的状态和操作时,能自动得到它的超类的状态 和操作。这就是面向对象方法中的模型工具— —继承,它提供了对世界简明而精确的描述, 以利于共享说明和应用的实现。
⑤聚集
聚集是将几个不同特征的对象组合成一个更高水平的复合对 象。每个不同特征的对象是该复合对象的一部分,它们有自己
一个类可能是某个或某几个超类的子类,同时又可能 是几个子类的超类。
概括 – 超类:在定义类型时,将几种类型中某些具有公 共特征的属性和操作抽象出来,形成一种更一般 的超类。设有两种类型: class1=(CID1,CSA,CSB,CMA,CMB) class2=(CID2,CSA,CSC,CMA,CMc) 可形成一种超类: Superclass(CID,CSA,CMA) 其中SID为超类的标识号, 此时 class1=(CID1,CSB,CMB) class2=(CID2,CSC,CMC) class1 和 class2 称 为 Superclass 的 子 类 (Subclass)。 一个类可能是某个或某几个超类的子类,同 时又可能是几个子类的超类。
①对象与封装性
在面向对象的系统中,每个概念实体都可以模型化为
对象。一个对象是由描述该对象状态的一组数据和表达 它的行为的一组操作(方法)组成的。例如,河流的坐标数
据描述了它的位置和形状,而河流的变迁则表达了它的 行为。可见,对象是数据和行为的统一体。 一个对象可定义成一个三元组: Object=(ID,S,M) 其中,ID为对象标识, M为方法集, S为对象的内部状 态,它可以直接是一属性值,也可以是另外一组对象的 集合,因而它明显地表现出对象的递归。
二 面向对象数据模型
面向对象(object-oriented,oo)的概 念起源于程序设计语言——面向对象的编 程语言(简称OOPL),强调对象概念的统—, 引入对象、对象类、方法、实例等概念和 术语,采用动态联编和单继承性机制。它 以OOPL为核心,集各种软件开发工具为 一体,建立OO计算环境,配有很强的图 形功能和多窗口用户界面。 基本出发点就是以对象作为最基本的 元素,尽可能按照人类认识世界的方法和 思维方式来分析和解决问题。
其中, CID为类标识或类型名,CS为状态描述部分,CM为应用于 该类的操作。显然有:S∈CS和 M∈CM (当Object∈Class时)
在实际的系统中,仅需对每个类型定义一组操作,供该 类中的每个对象应用。由于每个对象的内部状态不完全相 同,所以要分别存储每个对象的属性值。
③概括 在定义类型时,将几种类型中某些具有公共特征的 属性和操作抽象出来,形成一种更一般的超类。例如, 将 GIS中的地物抽象为点状对象、线状对象、面状对 象以及由这三种对象组成的复杂对象,因而这四种类 型可以作为GIS中各种地物类型的超类。 例如,建筑物是饭店的超类,因为饭店也是建筑 物。子类还可以进一步分类,如饭店类可以进一步分 为小餐馆、普通旅社、宾馆、招待所等类型。所以,