精华内容
下载资源
问答
  • 面向对象数据模型

    千次阅读 2018-03-28 09:22:25
    所谓面向对象数据模型指属性和操作属性的方法封装在称为对象类的结构中的模型。可以通过将一个对象类嵌套或封装在另一个类里来表示类间的关联,新的对象类可以从更一般化的对象类中导出,如:以下是描述面向对象数据...

    在很多领域中,一个对象可以由多hen个属性来描述,而其中某些属性本身又是另一个对象,也有自身的内部结构。例如,计算机辅助设计(CAD)的图形数据,多媒体的应用的图形、声音和文档等。

    所谓面向对象数据模型指属性和操作属性的方法封装在称为对象类的结构中的模型。可以通过将一个对象类嵌套或封装在另一个类里来表示类间的关联,新的对象类可以从更一般化的对象类中导出,如:


    以下是描述面向对象数据模型的几个概念。

    1对象 对象是对一组信息及其操作的描述。现实世界中实体的模型化,和记录的概念相似,但更加复杂。

    一个对象对应着E-R模型中的一个实体,面向对象类型的基础将一个对象的相关数据和代码封装为一个单元,其内容对外界是不可见的。

    深圳IT外包

    2 类(对象类)

    类是类似对象的集合(相似的对象组成一个类)。面向对象的数据模型中类的概念对应于E-R模型中实体集概念。

    3类层次

    一个面向对象数据库模型通常需要很多的类,然而,有些类是相似的。为了表示类之间的相似性,我们把类放入一个特殊化层次(ISA)中。

    一个系统中,所有的类和子类组成一个树形的类层次。类层次的概念实际上类似于E-R模型中特殊化层次的概念。在类层次中,一个类继承其直接或间接祖先的所有属性和方法。所谓继承性是指允许不同类的对象共享它们公共部分的结构和特征。继承性可以用超类或子类的层次联系实现。

    可用ISA指出一个类是另一个类的特殊化,类的特殊化称为子类(Subclass).例如,银行系统中,employee是person的一个子类,是teller的超类(Superclass),person是employee的超类。

    4对象标识

    创建对象时,系统为每一个对象赋予一个唯一的标识。这个标识称为对象标识。标识的形式包含以下几种。

    (1)值(value):用于标识的一个数据值。这种形式的标识常在关系数据库系统中使用。例如,一个元组的主码标识了这个元组。

    (2)名称(name):用于标识一个用户提供的名称。这种形式的标识常用于文件系统中的文件。不管文件的内容是什么,用户会给每个文件赋予一个名称来唯一标识这个文件。

    (3)内置(Built-in):数据模型或程序设计语言中的一种标识方法,它不需要用户提供的标识符。这种形式标识常在面向对象系统中使用,对象创建时系统自动赋予每个对象标识符。

    5对象包含

    对象之间的引用可以用于对现实世界中的不同概念进行模拟,对象包含是其中之一。下图是自行车设计数据库的包含层次,每辆自行车的设计包括车轮、车架、车闸和齿轮。车轮又包括轮框、一套辐条和l轮胎。该设计的每个构建可以建模为一个对象,同时构建间的包含可以建模为对象间的包含。



    深圳蓝快IDC

    包含其他对象的对象称为复杂对象(复合对象),这种情况下出现对象间包含层次。

    在面向对象系统中,包含是一个重要概念,因为它允许不同的用户用不同的粒度来观察数据。一个自行车设计师只专注于自行车的实例,而对于一个市场职员来说,所关心的只是自行车价格。

    展开全文
  • 面向对象数据模型可以表达丰富、复杂的语义,这对查询该类模型的数据产生了困难.分析了POSC石油组织建立的用于石油勘探开发行业的Epicentre公共模型的数据查询方法,构造出源实体-标识实体单向多级引用或源实体-...
  • 面向对象数据模型.pdf

    2021-10-01 11:40:33
    面向对象数据模型.pdf
  • 探讨了面向对象数据模型信息管理系统的结构设计和信息管理系统实现技术。系统设计采用面向对象数据模型,数据库结构采用对象-关系数据库。结合一个典型的教务信息管理系统实例说明,这一技术易于实现基于C/S和B/S结构...
  • 两大类数据模型客观对象的抽象过程---两步抽象3.数据模型的组成要素(1)数据结构(2)数据操作(3)数据的完整性约束条件4.概念模型(1)用途与基本要求(2) 信息世界中的基本概念(3)两个实体型之间的联系① 一对一联系(1:1...


    0.思维导图

    在这里插入图片描述

    1.数据模型的概念

    • 在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。
    • 通俗地讲数据模型就是现实世界的模拟

    数据模型应满足三方面要求:

    • 能比较真实地模拟现实世界
    • 容易为人所理解
    • 便于在计算机上实现

    2.两大类数据模型

    数据模型分为两类(分属两个不同的层次)

    • (1) 概念模型 也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。
    • (2) 逻辑模型物理模型
      逻辑模型主要包括网状模型层次模型关系模型面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。
      物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。

    客观对象的抽象过程—两步抽象

    • 现实世界中的客观对象抽象为概念模型
    • 概念模型转换为某一DBMS支持的数据模型
      在这里插入图片描述

    3.数据模型的组成要素

    (1)数据结构

    数据结构是所研究的对象类型的集合。这些对象是数据库的组成成分,数据结构指对象和对象间联系的表达和实现,是对系统静态特征的描述,包括两个方面:
    (1)数据本身:类型、内容、性质。例如关系模型中的域、属性、关系等。
    (2)数据之间的联系:数据之间是如何相互关联的,例如关系模型中的主码、外码联系等。

    (2)数据操作

    数据操作

    • 对数据库中各种对象(型)实例(值)允许执行的操作,及有关的操作规则

    数据操作的类型

    • 查询
    • 更新(包括插入、删除、修改)

    (3)数据的完整性约束条件

    • 数据的完整性约束条件是一组完整性规则的集合,规定数据库状态及状态变化所应满足的条件,以保证数据的正确性、有效性和相容性。

    完整性规则:给定的数据模型中数据及其联系所具有的制约和储存规则

    4.概念模型

    (1)用途与基本要求

    概念模型的用途:

    • 概念模型用于信息世界的建模
    • 是现实世界到机器世界的一个中间层次
    • 是数据库设计的有力工具
    • 数据库设计人员和用户之间进行交流的语言

    对概念模型的基本要求:

    • 较强的语义表达能力
    • 能够方便、直接地表达应用中的各种语义知识
    • 简单、清晰、易于用户理解

    (2) 信息世界中的基本概念

    • (1) 实体(Entity)
      客观存在并可相互区别的事物称为实体。
      可以是具体的人、事、物或抽象的概念。
    • (2) 属性(Attribute)
      实体所具有的某一特性称为属性。
      一个实体可以由若干个属性来刻画。
    • (3) (Key)
      唯一标识实体的属性集称为码。
      (4) (Domain)
      属性取值范围称为该属性的域。
    • (5) 实体型(Entity Type)
      实体名及其属性名集合来抽象和刻画同类实体称为实体型
    • (6) 实体集(Entity Set)
      同一类型实体的集合称为实体集
    • (7) 联系(Relationship)
      • 现实世界中事物内部以及事物之间联系在信息世界中反映为实体内部的联系和实体之间的联系。
      • 实体内部的联系通常是指组成实体的各属性之间的联系
      • 实体之间的联系通常是指不同实体集之间的联系

    (3)两个实体型之间的联系

    在这里插入图片描述

    ① 一对一联系(1:1)

    实例

    • 一个班级只有一个正班长
    • 一个班长只在一个班中任职
      在这里插入图片描述

    定义:
    如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然。则称实体集A与实体集B具有一对一联系,记为1:1

    ② 一对多联系(1:n)

    实例

    • 一个班级中有若干名学生,
    • 每个学生只在一个班级中学习
      在这里插入图片描述
      定义:
      如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n

    ③ 多对多联系(m:n)

    实例

    • 课程与学生之间的联系:
    • 一门课程同时有若干个学生选修
    • 一个学生可以同时选修多门课程
      在这里插入图片描述
      定义:
      如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体B具有多对多联系,记为m:n

    (4)两个以上实体型之间的联系

    ① 一对多联系(1:m||1:n)

    • 若实体集E1,E2,…,En存在联系,对于实体集Ej(j=1,2,…,i-1i+1,…,n)中的给定实体,最多只和Ei中的一个实体相联系,则我们说Ei与E1E2,…,Ei-1,Ei+1,…,En之间的联系是一对多的。

    实例

    • 课程、教师与参考书三个实体型
      一门课程可以有若干个教师讲授,
      使用若干本参考书,
      每一个教师只讲授一门课程,
      每一本参考书只供一门课程使用

    在这里插入图片描述

    ② 一对一联系(1:1:1)

    实例

    • 一个独生子女只有一个父亲,一个母亲
    • 一个父亲也只有一个独生子女
    • 一个母亲也只有一个独生子女
      在这里插入图片描述

    ③ 多对多联系(m:n:p)

    实例
    供应商、项目、零件三个实体型
    一个供应商可以供给多个项目多种零件
    每个项目可以使用多个供应商供应的零件
    每种零件可由不同供应商供给
    在这里插入图片描述

    (5)单个实体型内的联系

    ① 一对多联系(1:n)

    实例
    职工实体型内部具有领导与被领导的联系
    某一职工(干部)“领导”若干名职工
    一个职工仅被另外一个职工直接领导
    这是一对多的联系

    在这里插入图片描述

    ② 一对一联系(1:1)

    • 身份证可以唯一确认一个人的身份,人与身份证有确认和被确认的关系
    • 一个身份证唯一确定一个人
    • 一个人也唯一确认一个身份证
      在这里插入图片描述

    ③ 多对多联系 (m:n)

    • 饮料和厂商之间有制造和被制造的关系
    • 多个饮料可以被多个厂商制造
    • 多个厂商可以制造出多种饮料
      在这里插入图片描述

    (6)概念模型的一种表示方法

    ① 实体-联系方法(E-R方法)

    • E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用E-R图来描述现实世界的概念模型
    • E-R方法也称为E-R模型

    ② 实体型

    用矩形表示,矩形框内写明实体名。
    在这里插入图片描述

    ③ 属性

    用椭圆形表示,并用无向边将其与相应的实体连接起来
    在这里插入图片描述

    ④ 联系

    • 联系本身:
      用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)
      在这里插入图片描述

    ⑤ 联系的表示方法

    在这里插入图片描述

    ⑥ 联系的表示方法示例

    在这里插入图片描述

    ⑦ 联系的属性

    • 联系本身也是一种实体型也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来
      在这里插入图片描述

    ⑧ 一个实例

    用E-R图表示某个工厂物资管理的概念模型

    • 实体
      仓库: 仓库号、面积、电话号码
      零件 :零件号、名称、规格、单价、描述
      供应商:供应商号、姓名、地址、电话号码、帐号
      项目:项目号、预算、开工日期
      职工:职工号、姓名、年龄、职称

    实体之间的联系如下:

    • (1)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。
      (2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,仓库和职工之间是一对多的联系。职工实体型中具有一对多的联系
      (3)职工之间具有领导-被领导关系。即仓库主任领导若干保管员。
      (4)供应商、项目和零件三者之间具有多对多的联系
      在这里插入图片描述

    5.非关系模型

    (1)层次模型(Hierarchical Model)

    • 层次模型是数据库系统中最早出现的数据模型
    • 层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统
    • 层次模型用树形结构来表示各类实体以及实体间的联系

    ① 数据结构

    满足下面两个条件的基本层次联系的集合为层次模型

    • 有且只有一个结点没有双亲结点,这个结点称为根结点
    • 根以外的其它结点有且只有一个双亲结点

    层次模型中的几个术语
    根结点,双亲结点,兄弟结点,叶结点
    在这里插入图片描述

    ② 特点

    • 结点的双亲是唯一
    • 只能直接处理一对多的实体联系
    • 每个记录类型可以定义一个排序字段,也称为·码字段
    • 任何记录值只有按其路径查看时,才能显出它的全部意义
    • 没有一个子女记录值能够脱离双亲记录值而独立存在

    在这里插入图片描述
    在这里插入图片描述

    ③ 多对多联系在层次模型中的表示

    方法:

    • 将多对多联系分解成一对多联系

    分解方法:

    • 冗余结点法
    • 虚拟结点法

    ④ 数据操纵与完整性约束

    层次模型的数据操纵:

    • 查询
    • 插入
    • 删除
    • 更新

    层次模型的完整性约束条件:

    • 无相应的双亲结点值就不能插入子女结点值
    • 如果删除双亲结点值,则相应的子女结点值也被同时删除
    • 更新操作时,应更新所有相应记录,以保证数据的一致性

    ⑤ 存储结构

    邻接法:
    按照层次树前序遍历(T-L-R)的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序。又可分为:子女-兄弟链接法层次序列链接法

    在这里插入图片描述

    ❶ 子女-兄弟链接法
    • 每个记录设两类指针,分别指向最左边的子女(每个记录型对应一个)和最近的兄弟
      在这里插入图片描述
    ❷ 层次序列链接法
    • 按树的前序穿越顺序链接各记录值
      在这里插入图片描述

    ⑥ 优缺点

    • 优点:
      层次模型的数据结构比较简单清晰
      查询效率高,性能优于关系模型,不低于网状模型
      层次数据模型提供了良好的完整性支持
    • 缺点:
      多对多联系表示不自然
      插入删除操作的限制多,应用程序编写比较复杂
      查询子女结点必须通过双亲结点
      由于结构严密,层次命令趋于程序化

    (2)网状模型(Network Model)

    网状数据库系统采用网状模型作为数据的组织方式

    • 典型代表是DBTG系统:
      亦称CODASYL系统
      70年代由DBTG提出的一个系统方案
      奠定了数据库系统的基本概念、方法和技术
    • 实际系统:
      Cullinet Software Inc.公司的 IDMS
      Univac公司的 DMS1100
      Honeywell公司的IDS/2
      HP公司的IMAGE

    ① 数据结构

    网状模型:
    满足下面两个条件的基本层次联系的集合:

    1. 允许一个以上的结点无双亲;
    2. 一个结点可以有多于一个的双亲。

    表示方法(与层次数据模型相同):
    实体型:用记录类型描述
    每个结点表示一个记录类型(实体)
    属性:用字段描述
    每个记录类型可包含若干个字段
    联系:用结点之间的连线表示记录类型(实体)之
    间的一对多的父子联系

    网状模型与层次模型的区别:

    • 网状模型允许多个结点没有双亲结点
    • 网状模型允许结点有多个双亲结点
    • 网状模型允许两个结点之间有多种联系(复合联系)
    • 网状模型可以更直接地去描述现实世界
    • 层次模型实际上是网状模型的一个特例

    网状模型中子女结点与双亲结点的联系可以不唯一
    要为每个联系命名,并指出与该联系有关双亲记录子女记录
    在这里插入图片描述
    在这里插入图片描述

    多对多联系在网状模型中的表示:
    方法:将多对多联系直接分解成一对多联系

    例如:一个学生可以选修若干门课程,·某一课程可以被多个学生选修,学生与课程之间是多对多联系 ·

    • 引进一个学生选课的联结记录,由3个数据项组成
      学号
      课程号
      成绩
      表示某个学生选修某一门课程及其成绩

    在这里插入图片描述

    ② 网状数据模型的操纵与完整性约束(续)

    网状数据库系统(如DBTG)对数据操纵加 了一些限制,提供了一定的完整性约束

    • :唯一标识记录的数据项的集合
    • 一个联系中双亲记录子女记录之间是一对多联系
    • 支持双亲记录和子女记录之间某些约束条件

    ③ 存储结构

    关键:

    • 实现记录之间的联系

    常用方法:

    • 单向链接
    • 双向链接
    • 环状链接
    • 向首链接

    在这里插入图片描述

    ④ 优缺点

    • 优点
      能够更为直接地描述现实世界,如一个结点可以有多个双亲;
      具有良好的性能,存取效率较高;

    • 缺点
      结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握;
      DDL、DML语言复杂,用户不容易使用;

    6.关系模型

    关系数据库系统采用关系模型作为数据的组织方式
    1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型
    计算机厂商新推出的数据库管理系统几乎都支持关系模型

    (1)数据结构

    在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由组成。
    几个名词解释:

    • 关系(Relation)
      一个关系对应通常说的一张表

    • 元组(Tuple)
      表中的一行即为一个元组

    • 属性(Attribute)
      表中的一列即为一个属性,给每一个属性起一个名称即属性名

    • 主码(Key)
      表中的某个属性组,它可以唯一确定一个元组

    • (Domain)
      属性的取值范围。

    • 分量
      元组中的一个属性值。

    • 关系模式
      对关系的描述
      关系名(属性1,属性2,…,属性n)
      学生(学号,姓名,年龄,性别,系,年级)
      在这里插入图片描述
      举几个例子:

    • 例1
      学生、系、系与学生之间的·一对多联系:
      学生(学号,姓名,年龄,性别,系号,年级)
      系 (系号,系名,办公地点)

    • 例2
      系、系主任、系与系主任间的一对一联系

    • 例3
      学生、课程、学生与课程之间的多对多联系:
      学生(学号,姓名,年龄,性别,系号,年级)
      课程(课程号,课程名,学分)
      选修(学号课程号,成绩)

    规范化:

    • 关系必须是规范化的,满足一定的规范条件
    • 最基本的规范条件:关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表
    • 图1.27中工资和扣除是可分的数据项 ,不符合关系模型要求
      在这里插入图片描述

    在这里插入图片描述

    (2)关系数据模型的操纵与完整性约束

    • 数据操作是集合操作,操作对象和操作结果都是关系
      查询
      插入
      删除
      更新

    • 数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”

    • 关系的完整性约束条件
      实体完整性
      参照完整性
      用户定义的完整性

    (3)存储结构

    • 实体及实体间的联系都用来表示
    • 表以文件形式存储
      有的DBMS一个表对应一个操作系统文件;
      有的DBMS自己设计文件结构;

    (4)优缺点

    • 优点
      • 建立在严格的数学概念的基础上;
      • 概念单一:
        实体和各类联系都用关系来表示;
        对数据的检索结果也是关系;
      • 关系模型的存取路径对用户透明;
        具有更高的数据独立性,更好的安全保密性
        简化了程序员的工作和数据库开发建立的工作;
    • 缺点
      • 存取路径对用户透明导致查询效率往往不如非关系数据模型;
      • 为提高性能,必须对用户的查询请求进行优化,增加了开发DBMS的难度;

    7.面向对象数据模型

    • 语义数据模型面向对象程序设计方法结合起来,用面向对象观点来描述现实世界实体(对象)的逻辑组织对象间限制联系等的模型

    • 一系列面向对象核心概念构成了面向对象数据模型( Object Oriented Data Model, 00模型)的基础,主要包括以下一些概念:

      • (1)现实世界中的任何事物都被建模为对象。每个对象具有一个唯一的对象标识
        (OID)。
      • (2)对象是其状态和行为的封装,其中状态是对象属性值的集合,行为是变更对象状
        态的方法集合。
      • (3)具有相同属性和方法的对象的全体构成了类,类中的对象称为类的实例。
      • (4)类的属性的定义域也可以是类,从而构成了类的复合。类具有继承性,一个类可以继承另一个类的属性与方法,被继承类和继承类也称为超类和子类。类与类之间的复合与继承关系形成了一个有向无环图,称为类层次。
      • (5)对象是被封装起来的,它的状态和行为在对象外部不可见,从外部只能通过对象显式定义的消息传递对对象进行操作。
    • 面向对象数据库(OODB)的研究始于20世纪80年代,有许多面向对象数据库产品相继问世,较著名的有Object Store、02、ONTOS等。

    • 与传统数据库一样,面向对象数据库系统对数据的操纵包括数据查询、增加、删除、修改等,也具有并发控制、故障恢复、存储管理等完整的功能。不仅能支持传统数据库应用,也能支持非传统领域的应用,包括CAD/CAM、OA、CIMS、GIS以及图形、图像等多媒体领域、工程领域和数据集成等领域。

    • 尽管如此,由于面向对象数据库操作语言过于复杂,没有得到广大用户,特别是开发人员的认可,加上面向对象数据库企图完全替代关系数据库管理系统的思路,增加了企业系统升级的负担,客户不接受,·面向对象数据库产品终究没有在市场上获得成功。

    8.对象关系模型

    • 对象关系数据库系统(Object Relational DataBase System, ORDBS) 是关系数据库面向对象数据库的结合。
    • 它保持了关系数据库系统的非过程化数据存取方式和数据独立性,继承了关系数据库系统已有的技术,支持原有的数据管理,又能支持00模型和对象管理。各数据库厂商都在原来的产品基础上进行了扩展。
    • 1999 年发布的SQL标准(也称为SQL99),增加了SQL/Object Language Binding, 提供了面向对象的功能标准。SQL99对ORDBS标准的制定滞后于实际系统的实现。所以各个ORDBS产品在支持对象模型方面虽然思想一致,但是所采用的术语、语言语法、扩展的功能都不尽相同。
    展开全文
  • 论文《XML面向对象数据模型研究及应用》
  • 面向对象空间数据模型构建研究,王珂,佘江峰,空间数据模型是GIS应用的关键和基础,其研究影响了整个GIS发展的历程。本文根据面向对象空间数据模型的相关概念和特点,提出了面向
  • 1.引言  经过几十年的发展,今天的GIS系统已经具备了较强的数据存贮、管理和输入输出功能,但目前大多数的...为此,作者为现有GIS软件总结了两种典型的数据模型[1]:拓扑关系数据模型面向实体的数据模型,并分析了

    1.引言

      经过几十年的发展,今天的GIS系统已经具备了较强的数据存贮、管理和输入输出功能,但目前大多数的GIS仍然是以数据为中心的,在完整表达客观地理世界、进行高层次的空间分析和直接提出决策方案的能力方面还远远不够,导致这种情况的根本原因在于现有GIS的数据模型不能准确地表达客观地理世界。为此,作者为现有GIS软件总结了两种典型的数据模型[1]:拓扑关系数据模型和面向实体的数据模型,并分析了它们各自的优缺点,指出应该在整体论的基础上为地理空间建立一个能够直接反映人们认知的整体数据模型。

    2.面向对象的整体数据模型

      GIS本质上是对客观地理世界的近似模拟,其理想状态应该是尽可能准确地反映地理世界,同时做到数据量最小,又便于人们从中获取所需要的信息和规律。要达到这种理想状态,我们需要做好两步工作:1)准确理解地理空间;2)为地理空间建立面向对象的整体数据模型---一个基于地理空间整体论、完全以面向对象方式组织的GIS数据模型。


      地理空间的理解可以简单概括为[1]:地理空间是一个目标组合排列集,每个目标或说对象都具有位置、属性和时间信息,及与其它对象的拓扑关系、语义关系等。基于这一认识,我们可以得到,表达地理空间的整体GIS数据模型有如下特征:


      ■ 将地理空间按照人的思维方式理解为基于目标的空间和定义在地球表层目标集上的关系。除了要研究对象的几何位置及拓扑关系外,还要重视研究对象间的语义关系。


      ■ 整体数据模型虽然要求我们将客观世界作为整体看待,但在执行具体的数据组织时也需要对众多的地理实体进行分层。分层是基本的和必要的,但由于为一种目的进行的分层很难满足另外的需求,因此重要的不是提供一种通用的分层,而是对方便地加入、删除对象等维护层的操作予以足够的支持。复合图层含有不按对象维数分层的含义,能够很好地体现客观 世界的整体特征,为不同层中的关联对象或用户感兴趣的不同类型对象提供了一个集中存贮与交互的独立空间,整体数据模型尤其应该增强复合图层的功能,使用户能够自由地加入、删除、修改、查询任意类型(点、线、面和复杂实体)的地理实体,同时能够进行强大的空间分析;


      ■ 虽然传统的GIS数据模型常将基于对象的模型用矢量结构表达,而将基于场的模型用栅格结构表达[2][3],其实可将对象和连续场这两种看似对立的模型统一在面向对象的整体数据模型中,因为面向对象的方法作为一种框架不仅可以描述基于对象的模型,也可以描述基于场的模型[3][4]。


      ■ 空间对象是处在三维空间中的,并具有多尺度特征。


      ■ 整个数据模型完全以面向对象的方式组织。


      由上可见,在整体数据模型中,地理空间被表达为一个具有相互关系的对象集。每个对象不仅具有自己的几何信息、属性信息和时间信息,而且与其它对象之间具有拓扑关系和语义关系。所有这些信息在整体数据模型中都处于同等重要的地位,其中起着连接作用的是对象本身。根据对象的形状特点,同时为了方便计算机实现与管理,我们可以将地理空间中的对象分为5种基本对象:点、线、面、注记和复杂对象。其中,前面四种对象比较简单,统称为简单对象,这里只介绍第5种对象---复杂对象。


      复杂对象是由简单对象组合派生的,可以划分为如下两种类型:


    1)单纯型复杂对象


      多个同样类型的对象合并成为一个单纯型复杂对象。·复杂点:点群,由多个点状对象构成的集合,整个集合是一个对象,如聚集在一起的多个水文站等;?复杂线:线群,由多个线状对象构成的集合,整个集合是一个对象,如一线状水系,一径流网络等;·复杂面:面群,由多个面状对象构成的集合,整个集合是一个对象,如一湖泊群,一海洋群岛等。


    2)混合型复杂对象


      点、线、面共存的复杂对象。混合型复杂对象的混合种类包括:点与线混合,点与面混合、线与面混合及点、线、面同时存在的混合,多个不同类型对象合并成一个就构成了混合型复杂对象,因此混合型复杂对象不属于点、线、面中的某一基本类型,在属性上也就不具备这些基本类型对象的一些特有信息,如线对象的长度,面对象的面积和周长等,这在数据库表结构的设计中要予以必要的考虑。


      单纯型复杂对象可以在相应类型的简单对象集中存贮和在相应图层中显示,也可以在复合对象集中存贮和在复合图层中显示;混合型复杂对象只能在复合对象集中存贮和在复合图层中显示,它们不适合存入简单对象集,也不宜在点、线、面简单图层中显示,因为它们的加入会破坏简单对象集和简单图层的专题特性,也不便于管理。


      上面介绍的这5种对象在地理空间中都是以三维形态存在的,但由于三维GIS建设的成本较高,在技术实现上也有相当的难度,而目前二维GIS能够满足大部分实际需求,因此我们在表达三维客观地理世界、实现整体GIS数据模型时以开发二维GIS为主,而在某些需要查看具体三维细节的地方提供机制以表现其三维结构,例如可以另开辟一个小的三维地图窗口来表现对象的三维形状、结构和拓扑关系等。


      时间问题[5]-[8]、语义关系和拓扑关系[9]-[11]一直是GIS界长期研究的热点,虽然它们在整体数据模型里面占有很重要的位置,但是本文的重点在于确定整个数据模型和系统的总体组织,对它们的具体讨论将在以后逐步展开。

    3 系统数据组织

    3.1 对象集

      对象集是指由众多对象构成的集合。划分对象集的目的在于存储和管理对象的方便,它可以是由同种几何类型的对象构成的集合,也可以是由不同类型对象组成的集合。在整体GIS数据模型中,有如下三类对象集:


      ■ 简单对象集:包括简单点对象集、线对象集、面对象集和注记对象集四类;点对象集是由简单点对象或单纯型复杂点对象组成的集合,线对象集是由简单线对象或单纯型复杂线对象组成的集合,面对象集是由简单面对象或单纯型复杂面对象组成的集合。简单对象集也可称为专题对象集。


      ■ 复合对象集:由简单点、线、面对象、注记对象、单纯型复杂对象或混合型复杂对象等不同类型对象组成的集合。在这种对象集合中,可以包含任意类型的对象元素;


      ■ 场:场是由有机关联的对象构成的集合,其中的元素在几何上不再相互独立,而是紧密相关,这一点与以上两种对象集不同。如TIN、GRID、影像和网络等。场中的元素对象一般较多,场本身就是一个对象集,因此我们在概念上不再另设场对象和场对象集。


      由上可见,对象类型与对象集类型并不是完全一一对应的,例如:单纯型复杂线对象与简单线对象一样分别存贮与显示在简单线对象集和简单线图层中,不必要专门的单纯型复杂线对象集和单纯型复杂线图层来存贮和显示。


      除了点、线、面三种单纯型复杂对象外,其它各种对象(点、线、面简单对象、注记对象和混合型复杂对象)与对象集类型都是一一对应的。另外,场是一种对象集,不过由于其中的元素并不是场对象(没有场对象概念),因而场与场中的元素也不存在一一对应的关系,但在实现时开发者完全可以设计一个场类来管理各种各样的场。


      值得指出的是,整体GIS数据模型认为人们感知的客观世界是一个由众多类型不同的地理实体组成的整体世界,而不是人为分割的、僵化的对象层,但由于分层能够为GIS管理和显示地理对象提供极大的方便,因此我们在基本分层(在本文中是对象集)的基础上,特别提出并强调复合对象集的概念,以此来表达和实现整体GIS数据模型的整体思想。复合对象集打破了GIS中传统分层的框架,为不同对象集中的关联对象或用户感兴趣的不同类型对象提供了一个集中存贮与交互的独立空间,但同时也为系统开发和管理带来了一定难度。比如,单纯型对象集的显示、修改、存贮、管理、分析和输出都可采用统一的方法进行,而复合对象集的这些操作则必须在内部进行分别处理(按对象类型)。虽然如此,但单纯型对象集与复合对象集都是为了满足不同的用户需求而设计的,二者在对象组织、系统实现和空间分析上各有优缺点,一个功能强大的GIS应该同时支持它们。

    3.2 图层

      对象集加上自己特有的显示属性即是图层,因此对象集类型与图层类型是一一对应的。由于对象集包括点、线、面、注记对象集、复合对象集和场6种基本类型,因此图层也有相应的点、线、面、注记图层、复合图层和场图层6种基本类型。对象集用来存贮对象的空间与属性数据,而图层则用来设置对象集的显示风格并控制对象集的显示范围、显示比例和操作特性(如可显示、可选择、可编辑和可捕捉等),二者各司其职又相互联系。在对应关系上,一个图层只对应一个对象集,而一个对象集却可显示在不同的地图窗口中对应多个图层,因此对象集与图层之间的关系是一对多的关系。

    3.3 数据库

      我们这里所说的数据库是指广义的数据库,其定义为“存贮对象的集合”。物理上不管是以文件形式还是以商业数据库形式存在,只要存贮有对象,我们都称为数据库。就综合性能而言,一般是文件系统在小量数据方面有自己的长处,而商业数据库则对大量数据的支持有着文件系统无法替代的优势。


    3.4 地图或地图窗口

      对象集是用来存贮地理对象的,图层是用来控制对象的显示的,两者都不等同于地图或地图窗口。我们的地图或地图窗口是一种框架,是显示对象的实际载体,也是控制图层并对之进行操作和分析的主体。

    3.5 工作空间

      工作空间是为系统管理方便而设计的,相当于一个大的仓库,里面存贮有数据的基本信息,如数据库的名字与尺寸、地图和其它资源(如点、线、面型符号)。系统运行时可调入数据库对之进行管理控制。

    展开全文
  • 面向对象工程模板数据模型研究 [日期:2004-12-8] 来源:电子技术应用 作者:王 军 肖冬荣 刘晓平 [字体:大 中 小]    摘要:根据冷冲模CAD系统的设计特点,将面向对象思想与模板的知识表达方式相...
  • 业务模型;UML类图

    因为欣赏所以转载,原文地址 http://blog.csdn.net/sunleap/article/details/4976993

    开发的流程有以下几步:

    image

                   对象图

    • 组织视图:组织结构的静态模型。包括:层次组织结构的人员(people not human)资源,生产资源(比如,设备,运输等)以及计算机、通信网络结构等。 
    • 数据视图:业务信息的静态模型。包括:数据模型,知识结构,信息载体,技术术语和数据库模型等。 
    • 功能视图:业务流程任务的静态模型。包括:功能层次,业务对象,支持系统和应用软件等。 
    • 控制(业务)视图:动态模型,展示流程运转情况,并能够将业务流程与流程相关的资源、数据以及功能等联系起来。包括:事件驱动过程链、信息流、物流、通信图、产品定义、价值增值图等。
    业务模型的画法可以用任何编辑工具如Visio、word完成,当然目前PowerDesigner、Erwin等专业工具也支持业务模型。
    数据模型是对企业或信息系统种的数据特征的抽象,随着数据库技术的大量使用,主要指数据库模型。
      数据模型所描述的内容包括三个部分:数据结构、作用于数据上的操作、数据约束。
      1)数据结构:数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在数据结构上。不同的数据结构具有不同的操作和约束。
      2)数据操作:数据模型中数据操作主要描述在相应的数据结构上的操作类型和操作方式。
      3)数据约束:数据模型中的数据约束主要描述数据结构内数据间的语法、词义联系、他们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。
      数据模型按不同的应用层次分成三种类型:分别是概念数据模型、逻辑数据模型、物理数据模型。
      1)概念数据模型(Conceptual Data Model):简称概念模型,主要用来描述世界的概念化结构,与具体的数据库系统无关。概念数据模型必须换成逻辑或物理数据模型,才能在数据库系统中实现。概念数据模型中最常用的是E-R模型。
      2)逻辑数据模型(Logical Data Model):简称数据模型,这是从数据库所看到的模型,是具体的数据库管理系统所支持的数据模型,如网状数据模型(Network Data Model)、层次数据模型(Hierarchical Data Model)等等。此模型既要面向用户,又要面向系统。
      3)物理数据模型(Physical Data Model):简称物理模型,是面向计算机物理表示的模型,描述了数据在储存介质上的组织结构。物理数据模型的设计要考虑数据管理的性能问题,它不但与具体的数据库系统有关,而且还与操作系统和硬件有关。每一种逻辑数据模型在实现时都有起对应的物理数据模型。
    可以利用PowerDesigner、Erwin、Oracle Data builder、Infosphere Data Architect、Rose等建模工具建立数据模型。
    这个应该是软件开发者喜欢的模型,使用面向对象分析(OOA)和面向对象设计(OOD)过程中所建立模型,包括类图、对象图、状态图以及与之相关的活动图、顺序图、组件图等,可以利用UML建模工具,如Rose、Infosphere DataArchitect等工具以及软件
    集成开发工具(Eclipse、Netbeans)建立面向对象模型。当然有些数据建模工具也支持面向对象模型。
    数据挖掘模型的概念虽然重要,但没有比较权威的解释,我说一下自己的理解,使用数据挖掘算法建立的,描述数据之间的关系模型就叫数据挖掘模型。
    数据挖掘模型的表现形式多种多样,跟数据挖掘算法有关,也跟我们要进行的后续操作有关。比如表现学生身高体重关系的函数(可以是直线、曲线、二次函数、多项式函数)是一个数据挖掘模型;表现超市商品关联关系的关联规则集合也是一个数据挖掘模型;表现银行客户分类情况的决策树也是一个数据挖掘模型。
     

    各个阶段的UML图

    (1)需求阶段是:用例图

    (2)分析阶段是:类图、序列图

    (3)设计阶段:类图、序列图与平台结合

    业务建模工作步骤:

    (1)选定业务单元

    (2)识别业务执行者

    (3)识别业务用例

    (4)详述业务用例

    (5)建立业务对象模型

        类图(Class Diagram)应该是使用的最多的一种UML图。其语法并不复杂,可能只需要几天时间就能掌握,但是其背后的面向对象(OO)思想却是需要日积月累才能深刻理解。

     

    1、OOA(Object-Oriented Analysis 面向对象分析)

    2、OOD(Object-Oriented Design 面向对象设计)

    3、OOP(Object-Oriented Programming 面向对象编程)

    4、OOT(Object-Oriented Technology 面向对象技术)

     

    PS:无论是开发人员还是分析人员,这几种思想是必须要掌握的,作为开发人员来说,OO的思想,其深度和延伸内容可谓博大精深,值得花时间去学习。

     

        类可以视作一现实事物抽象出的统一的、相似的模型。

     

        对象可以看做是类的具体化,就像模具导出的产品一样。

     

        类图就是描述类与类之间关系的图。

    案例:


    1、识别出类。

    2、识别出类的主要属性。

    3、画出类之间的关系。

    4、对各类进行分析、抽象、整理。

        两个类之间有关系,但又不确定是什么关系,可以用关联关系表达。


    PS:关联关系如果出现数量上的对应可以写上数字表示数量,可以用角色关系表示两类分别处于什么角色,单向关联关系表示关联是单向的,只能由关联方找到被关联方。在写代码时,可以将其视作关联类包含了被关联类的一个引用。

        包含关系表示一个类包含另一个类。

    PS:包含关系分为两种,一种是弱包含关系,叫做聚合,为空心菱形,一种是强包含关系,叫做组合,为实心菱形。一开始可以将所有包含关系视作弱包含,当发现某些关系可以用强包含表示时,才转为强包含关系。

        当一个类是另一个类的子类时,可以使用泛化关系。

    PS:泛化关系通常也被称作继承关系,根据类的发现先后关系,如果是由父类导出子类,这样就可以说子类继承父类,如果是由子类导出父类,这样就可以说父类泛化子类。

     

        当一个类可以实现某个抽象类时,可以使用实现关系。

    PS:标识接口与类之间的关系用的比较多。

     

        当一个类需要另一个类协助时,可以用依赖关系表示。


        当某类使用或者包含自己时,可以使用递归关系。


        当发现两个类之间的关系不能用一般关系来表示,这时候可以用关联类来表示关系,这也就是三角关系。

    PS:可以通过思考属性是否恰当来识别出关联类关系,列出两类的关键属性之后,思考这些属性的属性值是不是由该类本身就可以确定,如果不能两类之间就可能有关联类关系。

     


        如果说类图代表了一类事物,那么对象图就代表着某个具体的事物。

    现实世界被业务模型映射并且记录下来,但 这只是原始需求信息,距离可执行的代码还很遥远,必须把这些内容再换成一种可以指导开发的表达方式。UML 通过称之为概念化的过程( Conceptual)来 建立适合计算机理解和实现的模型,这 个模型称为分析模型( Analysis Model)。分析模型介于原始需求和计算机实现之间,是一种过渡模型。分析模型向上映射了原始需求,计算机的可执行代码可以通过分析模型追溯到原始需求;同时,分析模型向下为计算机实现规定了一种高层次的抽象,这种抽象是一种指导,也是一种约束,计算机实现过程非常容易遵循这种指导和约束来完成可执行代码的设计工作。

    事实上分析模型在整个分析设计过程中承担了很大的职责,起到了非常重要的作用。绘制分析模型最主要的元模型有:

    边界类(boundary) 。边界是面向对象分析的一个非常重要的观点。从狭义上说,边界就是大家熟悉的界面,所有对计算机的操作都要通过界面进行。从广义上说,任何一件事物都分为里面和外面,外面的事物与里面的事物之间的任何交互都需要有一个边界。比如参与者与系统的交互,系统与系统之间的交互,模块与模块之间的交互等。只要是两个不同职责的簇之间的交互都需要有一个边界,换句话说,边界决定了外面能对里面做什么“事”。 在后续的章节中,读者会感受到边界的重要性,边界能够决定整个分析设计的结果。

    实体类(entity) 。原始需求中领域模型中的业务实体映射了现实世界中参与者完成业务目标时所涉及的事物,UML 采用实体类来重新表达业务实体。实体类可以采用计算机观点在不丢失业务实体信息的条件下重新归纳和组织信息,建立逻辑关联,添加那些实际业务中不会使用到,但是执行计算机逻辑时需要的控制信息等。这些实体类可以看作是业务实体的实例化结果。

    控制类(control) 。边界和实体都是静态的,本身并不会动作。UML 采用控制类来表述原始需求中的动态信息,即业务或用例场景中的步骤和活动。从UML 的观点看来,边界类和实体类之间,边界类和边界类之间,实体类和实体类之间不能够直接相互访问,它们需要通过控制类来代理访问要求。这样就把动作和物体分开了。考虑一下,实际上在现实世界中,动作和物体也是分开描述的。

    读者或许在小时候都玩过一个游戏,每个同学发四张小纸条,在第一张纸条上写上XXX 的名字,在 第二张纸条上写上在什么地方,在 第三张纸条上写上一个动作,在 第四张纸条上写一个物体,然后将这些字条分开放在四个箱子里,再随意地从这四个箱子里各取一张纸条,就能组成很多非常搞笑的句子,例如张XX 在公园里跳圆规之类的奇怪语句,一个班的同学常常笑得前仰后合。

    游戏虽然是游戏,但说明了一个道理,只要有人、事、物和规则(定语),就能构成一个有意义的结果,无非是是否合理而已。分析类也是应用这个道理来把业务模型概念化的。由于所有的操作都通过边界类来进行,能做什么不能做什么由边界决定,所以边界类实际上代表了原始需求中的“事”; 实体类则由业务模型中的领域模型转化而来,它代表了现实世界中的“物”; 控制类则体现了现实世界中的“ 规则”, 也 就是定语;再 加上由参与者转化而来的系统的“ 用户”, 这 样一来,“ 人”也有了。有了人、事、物、规则,我们就可以像那个游戏一样把它们组合成各种各样的语句,只不过不是为了搞笑,所以不能随意组合,而是要依据业务模型中已经描绘出来的用例场景来组合这些元素,让它们表达特定的业务含义。

    (1)业务模型:也称企业模型,它为企业提供一个框架结构,以确保企业的应用系统与企业经常改进的业务流程紧密匹配。可以说,也就是说业务建模主要是从业务的角度而非技术角度对企业进行建模。典型的建模方法包括Zachman框架、ARIS HOUSE模型等,业务模型一般包括下面一些视图:

    (2)数据模型

    (3)面向对象模型

    (4)数据挖掘模型

    展开全文
  • Django ORM对模型继承的支持,将python面向对象的编程方法与数据库面向关系表的数据结构结合的很巧妙。支持三种风格的模型继承。 1.抽象类继承:父类继承自models.Model,但不会在底层数据库中生成相应的数据表,...
  • 基于面向对象数据映射模型的分析与实现,邓郁敏,,计算机的高速发展使计算机作为你们新兴的技术被广泛应用,其新的应用领域层出不穷,其中不乏大量的数据处理应用。而面向对象的编
  • 在数据库技术中,用数据模型的概念描述数据库的结构和语义,是对现实世界的数据抽象。数据模型是研究数据库技术的核心和基础。 文章目录1.概念数据模型(CDM)2.逻辑数据模型(LDM)3.物理数据模型(PDM) 1.概念...
  • 面向对象模型中加入对动态属性的支持,提出和建立了一种面向对象的支持全时域数据存储和查询的移动对象数据模型。探讨了GPS定位信息中精度、方位等信息对移动对象位置更新的影响,并给出了一种新的基于定位精度、...
  • 5-第五章:面向对象数据模型和对象关系数据模型.pdf
  • 从设计虚拟GIS数据模型应考虑的问题出发,提出一种全新的基于特征的面向对象虚拟GIS数据模型构建思路,并详细分析了其对象的结构;最后介绍基于该数据模型的数据库构建过程和步骤,为后续原型系统的开发提供数据支持...
  • 面向对象三种模型之间的关系

    万次阅读 2017-03-11 16:39:14
    功能模型指明了系统应该“做什么”;动态模型明确规定了什么时候(即在何种状态下接受了什么事件的...在面向对象方法学中,对象模型是最基本最重要的,它为其他两种模型奠定了基础,人们依靠对象模型完成3种模型的集成。
  • 面向对象名词解释

    千次阅读 2019-11-10 19:56:57
    面向对象:将现实生活中的事物封装成对象,通过对象的实例化和调用,完成需求。关注点是对象的属性和方法,忽略事物执行的顺序或过程。面向对象的特点有:抽象、封装、继承、多态。 抽象:抽象就是将现实生活中的...
  • 第4讲 面向对象的方法学;数据与处理之间的关系;面向对象的方法学;面向对象方法学的四个要点;面向对象方法学的四个要点;面向对象方法学的四个要点;面向对象方法学的四个要点;面向对象方法学的优点;面向对象方法学的...
  • 结合GIS数据模型的最新进展,在CAD、虚拟现实和仿真等领域得到应用的相关数据模型的基础上,提出使用基于特征的建模技术和面向对象的方法构建一个全新的基于特征的面向对象虚拟GlS数据模型。采用0racle0RDB管理模式...
  • 为了解决地下矿体解译和圈定问题,采用面向对象的方法,分析了矿体三维模型,论述了矿体构模过程,矿体三维数据模型元素的表达,抽象成矿体模型类库,最终建立矿体的三维数据模型的过程,并成功地建立了国内某大型...
  • 数据模型所描述的内容包括三个部分:数据结构、数据操作、数据约束。  1)数据结构:数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在...
  • 面向过程、面向对象模型和方法

    千次阅读 2017-02-14 12:04:33
    Oriented)是一种以“过程”为中心的编程思想,所谓“面向过程”的编程就是以“什么事情发生”或“什么流程进行”为目标或单元进行编程,而面向对象的则是以“谁在受影响”或“谁作出什么反映”为指导进行编程。...
  • 现在针对逻辑数据模型中所用到的三种数据模型---层次数据模型、网状数据模型以及关系数据模型做一个相信的介绍与对比分析。 一、层次数据模型 定义:层次数据模型是用树状<层次>结构来表示实体类型...
  • 面向对象的方法学;面向对象方法学的四个要点;面向对象方法学的四个要点;面向对象方法学的四个要点;面向对象方法学的四个要点;面向对象方法学的优点;面向对象方法学的优点;概述 面向对象技术;面向对象的特点;对象;类;...
  • 面向对象分析与设计——对象模型

    千次阅读 2014-10-22 09:18:58
    对象模型  对象模型包括:抽象、封装、模块化、层次结构、类型、并发和持久   2.1 对象模型的演进   OO建立在以前技术的最佳思想之上。两大趋势:小规模→大规模;高级程序设计语言;   2.1.1 程序...
  • 在这里我不想列举学术上的定义,只谈一下我自己的理解:模型是为了模拟、演示、深入分析被研究对象而建造的任何形式的作品。根据这一理解,我们想一下:小时候折的纸飞机是不是模型呢?是的。售楼处摆放的楼盘模型...
  • 基于OpenGIS简单要素规范的面向对象时空数据模型研究,对如何在网络上运用通用GIS数据传输和建模标准表达空间数据,以便完善空间数据互操作和广泛的共享。
  • 一、结构化分析(面向过程)方法  结构化分析方法(Structured Method,结构化方法)是面向过程的程序设计的方法,是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构是指系统内各个组成要素...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 270,830
精华内容 108,332
关键字:

面向对象数据模型