数据对象范文

2024-07-17

数据对象范文(精选11篇)

数据对象 第1篇

VHDL是一种常用的高级描述语言, 通常包含库、程序包、实体、构造体和配置等部分。而数据对象根据不同情况可以定义在VHDL程序的这些部分中, 尤其是信号和变量的使用易产生混淆。

2 数据对象的区别与联系

在VHDL语言中, 凡是可以赋予一个值的对象称为客体也可叫做数据对象, 能够接受不同数据类型的赋值。常用的数据对象主要有常量、变量和信号三种。

从定义范围来看, 常量和信号是全局量, 变量是局部量。常量可以在程序包、实体、进程中使用, 一般在程序开始前对常量进行赋值。信号是电子电路内部硬件实体相互连接的抽象表示, 可以在结构体、程序包和实体说明中使用, 信号名不能冲突。变量仅在进程语句、过程语句、函数语句的结构中使用, 不能将信息带出对它作出定义的当前设计单元。其中, 应用在不同范围的变量名可以重复。

从延时特性来看, 常量与变量的赋值是立即生效的, 没有延时。VHDL语言规则不支持变量附加延时语句, 变量的赋值是一种理想化的数据传输, 是立即发生。但是信号的代入赋值是允许延时的。比如, A0<=A1 AFTER 10ns表示信号A0的值是由A1延时10ns所赋予的。

从赋值方式来看, 常量与变量采用的是“:=”进行赋值, 信号采用的是“<=”进行代入赋值, 但是不论何种数据对象, 初始化赋值均采用“:=”, 其中, 采用“:=”对信号赋初值时候不产生延时。常量的值在程序运行过程不能改变, 但是信号与变量可以进行赋值。

常量、变量和信号所赋的值应该与定义的表达式数据类型一致, 否则会出现错误。信号与变量也可相互赋值, 赋值符号的选择取决于被赋值的数据对象。由于变量只能在所定义进程内使用, 若想将变量用于进程外, 则可以赋值给同类型的信号。在VHDL中, 如果需要对某一数据进行多次操作, 则必须使用变量, 因为对信号的多次赋值只有最后一次会生效。

3 变量与信号用法的实例分析

数据对象中, 变量与信号的用法易混淆, 以四选一数据选择器为例, 分别采用信号赋值语句和变量赋值语句来实现。A0, A1, A2, A3分别为选择器的一位数据输入端, 选择端为S1, S0, 其中S1S0分别为00, 01, 10, 11时, 选择A0, A1, A2, A3的值给输出端口Q。采用信号赋值语句的结构体程序如下:

该程序段内xy是全局量的信号, 定义在结构体中, 其值与S1S0的值一样, 当xy分别为0, 1, 2, 3时, 将A0, A1, A2, A3赋给Q。经过Quartus II9.0软件程序编译可以通过。仿真结果如图1所示, 其中, 输入A0设置为频率较高的周期信号, A1为低电平, A2位频率较低的周期信号, A3为高电平。

从图1仿真结果看出, 采用信号赋值语句的结果不正确, 分析其原因主要是因为信号赋值是在进程结束时更新, 启动一次进程信号xy的值只能改变一次。

下面采用变量赋值语句来实现, 对程序进行如下修改:

该程序段中, 作为局部量的变量定义在进程中, 经过软件编译成功。图2为采用变量赋值语句的仿真结果。

从图2看出, 当S1S0也就是xy的值为0时, Q输出A0的值, S1S0为1时, Q输出A1的值, S1S0为2时, Q输出A2的值, S1S0为3时, Q输出A3的值, 所以采用变量赋值语句的结果实现了选择器的功能, 这是因为变量赋值是立即更新, 启动一次进程变量xy的值为所需要的最后结果。

4 结束语

在VHDL中, 数据对象类似于一种容器, 它接受不同数据类型的赋值。常量, 变量和信号是常用的三种数据对象。其中, 信号与变量的使用容易产生混淆, 通过实例分析讨论了信号与变量, 如果使用不当, 结果会产生错误, 因此, 在设计中要谨慎使用信号与变量。

摘要:简要介绍了VHDL中数据对象的基本概念, 从不同方面讨论了常用的数据对象的区别与联系, 通过实例详细比较了信号与变量的用法。

关键词:VHDL,变量,信号,常量

参考文献

[1]吴方, 刘文娟.EDA技术[M].武汉:武汉大学出版社, 2011.

[2]刘昌华.EDA技术与应用——基于Quartus II和VHDL[M].北京:北京航空航天大学出版社, 2012.

面向对象工程数据模型研究 第2篇

摘要:根据冷冲模CAD系统的设计特点,将面向对象思想与模板的知识表达方式相融合,提出了面向对象工程模板,建立了设计与制造活动的有机联系,实现了几何信息与制造信息的集成和分离的对立统一,将复杂对象、层次结构及动态的数据结构用相对简单且组织严密的方式组织起来。

关键词:数据模型 面向对象工程模板 冷冲模

随着计算机辅助设计(CAD)的迅速发展,集成化CAD系统的研制与开发成为当今计算机集成制造系统(CIMS)环境下CAD的发展方向。产品的设计制造过程实质是对信息的采集、传递、加工和处理过程,其本质体现在以信息集成为特征的技术集成和人的集成两方面?1?。信息集成是指将CAD/CAM/CIMS工程设计中涉及的数据和信息(尤其是图形数据、结构化数据和非结构化非图形信息)集中起来管理。由于工程设计过程的特殊性,设计过程是一个不断反复、试探、选择、完善的过程,会面临大量需要组织的设计数据和试验数据;同时还会因为同一设计对象的多个版本而产生大量的.重复数据,这些都给数据组织带来了很大的困难。因此如何及时、有效地组织和管理工程数据成为工程设计人员迫切需要解决的问题。

传统的数据模型工程设计中没有足够的能力表达工程数据的全部语义结构,表达工程数据的数据模型应当具有以下几个方面的特性:

・随着工程设计的逐步深入,设计人员能够定义新的数据类别,并对已有的数据类别进行改进和重新定义;

・可以允许定义静态和动态的数据种类,静态实体属于设计环境的一部分,可用它创建表示设计对象的动态实体;

・在提供基本数据结构的同时,可以建立设计中数据结构的抽象数据类型;

・提供描述复杂对象的数据描述标准框架,使得不同的设计者从不同的角度描述同一设计对象时,它们的视图是相关的;

・在数据模型里可以按照一定的格式描述任意一个产品设计信息及其语义信息,满足设计要求;

・满足设计和生产要求的一切产品都能为数据模型所描述。

1 面向对象与模板

模板的基本思想是从一组相似的事物中抽象出一种框架型的模式,任何一个类似的事物都可作为以模板为超类派生的实例。将模板概念引入到工程CAD领域,这与工程CAD领域的设计特色有密切的关系。工程设计是设计人员具有创造性的思维活动,其特点具体表现在创造性、变异性、模式重复性、绘图工作量大等方面。采用工程模板的设计思想使设计人员在设计的不同阶段都能按照自己的要求进行操作;而面向

浅议面向对象的数据库系统 第3篇

关键词:数据库;面向对象;新一代数据库管理技术

中图分类号:TP311.13文献标识码:A文章编号:1007-9599 (2010) 13-0000-02

Object-oriented Database System

Dai Xingmei1,Wang Chao2

(1.Suizhou Vocational and Technical College,Suizhou441300,China;2.

Computer Science Institute,China University of Geosciences,Wuhan430074,China)

Abstract:Object-oriented database system is object-oriented programming techniques and database technology product of the combination.Object-oriented database systems are the main features of object-oriented technology with encapsulation and inheritance,improves software reusability.As a third generation object-oriented database,the database can not be compared with the previous two generationsadvantages of the database.

Keywords:Database;Object-oriented;New generation database man-

agement technology

一、概述

面向对象数据库系统是面向对象的程序设计技术与数据库技术相结合的产物。面向对象数据库系统的主要特点是具有面向对象技术的封装性和继承性,提高了软件的可重用性。传统的关系模型,又称为平面关系模型。它在结构上是二维的,每个属性的数据类型是基本数据类型。关系模型的规范化最低要求是1NF条件,即属性值不可分解。面向对象的思路或称规范可以用于系统分析、系统设计、程序设计,也可以用于数据结构设计、数据库设计等。

二、面向对象数据库设计的特点

在如今信息大爆炸的时代,随着Internet应用的普及,用现有的关系型数据库已经无法描述现实世界的实体,而面向对象的数据库设计由于吸收了已经成熟的面向对象程序设计方法学的核心概念和基本思想,使得它符合人类认识世界的一般方法,更适合描述现实世界。

面向对象的数据库不仅在处理多媒体等数据类型时可以做到游刃有余,而且在应用系统开发速度和维护等方面有着极大的优越性,对于一些特定的应用领域,能较好地满足其应用需求。

随着许多基本设计应用(如MACD和ECAD)中的数据库向面向对象数据库的过渡,面向对象思想也逐渐延伸到其它涉及复杂数据的应用中,其中包括辅助软件工程(CASE)、计算机辅助印刷(CAP)和材料需求计划(MRP)。这些应用如同设计应用一样在程序设计方面和数据类型方面都是数据密集型的,它们需要识别于类型关系的存储技术,并能对相近数据备份进行调整。

三、面向对象技术在数据库中的实现

目前,最有影响力的数据库模型有:面向对象数据库模型(ODBMS)和对象-关系数据库模型(ORDBMS)。面向对象的数据模型(ODBMS)吸收了面向对象程序设计方法学的核心概念和基本思想,直接采用对象数据库模型来构造数据库系统,它是一个纯正的面向对象数据库系统。ORDBMS是面向对象技术与传统关系数据库技术相结合而形成的数据库关系。也可以说是一种扩展关系数据库,它具有一定的面向对象数据库特征。

基于以上两种数据库模型,面向对象数据库系统(OODBS)的实现一般有两种方式:一种则是对传统数据库进行改进,使其支持面向对象数据模型,另一种则是在面向对象的设计环境中加入数据库功能,这是纯的OODBS技术,但是因为两者支持概念差异较大,数据共享实现难度较大。将面向对象技术应用于数据库是解决当今许多新型数据库应用中遇到的问题的好办法,当前多数数据库生产商都在研发如何将面向对象技术应用到关系数据库中。将面向对象技术应用到关系数据库中可以有两种方式。

(一)把面向对象技术中的对象作为关系数据库系统中的一种新的数据模型

关系表中的属性值包含对象指针,对象数据的操作在关系数据库之外进行。把面向对象数据模型(ODM)和关系数据模型(RDM)结合起来,对关系数据库管理系统进行扩充,但对象查询功能受到一定的限制。

(二)把面向对象接口添加在关系数据库中。在关系数据库系统中增加一個对象到关系的转换器,将上层的面向对象模式转化为关系存储模式,存放到关系数据库中。这样,在面向对象的数据库中关系存储模型位于底层,数据库用户可以利用标准的面向对象数据库语言进行查询处理,用户输入的面向对象数据库语言被转换成关系数据库语言,从而对底层的关系存储模式进行查询等处理,同时将操作结果按照对象方式返回给用户。

四、面向对象数据库技术的发展趋势

(一)对象关系数据库管理系统。对象关系数据库管理系统既支持SQL语句,也支持面向对象技术,实现了传统数据库技术和面向对象技术的完美结合。这样既保留了原有关系型数据库系统,增加了通用性和兼容性,又可以实现两代数据库的平稳过渡。全球的数据库生产商争相研发这种数据库产品,数据库生产商竞争的一个焦点是如何在现有的数据库中加入面向对象技术。

(二)面向对象数据库管理系统。面向对象数据库管理系统以一种面向对象语言为基础,增加数据库的功能,主要支持持久对象和实现数据共享。利用类来描述复杂对象,利用封装方法来模拟对象行为,利用继承性来实现对象的结构和方法的重用。但是这种纯粹的面向对象数据库管理系统不能和现有的数据库结合起来,在扩展性和通用性方面受到限制。

(三)对象关系映射数据库系统。对象关系映射数据库系统是指在对象和关系之间建立一个映射,映射数据库系统作为中间件,使得数据源中的关系数据能够进入对象领域,并且作为对象供上层使用。

五、面向对象数据库技术的前景展望

数据对象 第4篇

在PowerBuilder中, 对TreeView对象的编程控制是一个繁琐的过程。如何有效利用PowerBuilder的强大数据窗口技术, 将TreeView的复杂方法简化为对数据窗口方法的简单调用是探讨的主题。

2 原理

2.1 树形结构

树形结构能很好地描述具有分支和层次特性的数据集合。TreeView对象即是一个典型的树形结构实现。将TreeView对象的非线性数据结构通过树来表现 (见图1) , 其由根节点A与以B、C、D为根节点的子树构成;对两个用线段连接的相关联的节点, 位于上端的节点是位于下端的节点的父节点, 位于下端的节点是位于上端的节点的子节点;定义根节点A所在的层次为0, 其他节点所在的层次等于它的父节点所在的层次加1。

2.2 存储结构

为了存储树 (TreeView对象的非线性数据) , 必须把各节点之间存在的关系反映在存储结构中。采用简化的带逆存储结

构, 即节点中不存储其子节点的位置信息, 只存储父节点的位置信息及节点本身的信息, 具体含义见图2。一个节点由Data (节点的数据, 具有唯一性, 对应TreeViewItem的Data属性) 、Label (节点名称, 对应TreeViewItem的Label属性) 、Level (节点所在的层次, 对应TreeViewItem的Level属性) 、Parent (父节点的数据Data, 用于关联其父节点, 父节点为根节点的标识为0, 未对应TreeViewItem的属性) 四个属性组成。对于虚线框中的Handle属性, 其值为TreeView建立过程中动态生成, 对应TreeViewItem的ItemHandle属性。

2.3 遍历算法

采用层次遍历算法, 即首先访问处于0层上的根节点, 然后从左至右依次访问处于1层上的节点, 处于2层上的节点等等, 自上而下从左至右逐层访问树各层上的节点。图1的遍历结果为ABCDEFGHIJ。

3 关键代码

3.1 初始化

3.2 遍历

3.3 查找节点

以节点的Data为参数调用数据存储的Find () 方法在数据存储的所有数据行中进行查找, 找到则返回其所在的数据行号, 根据其行号即可对各数据列进行访问, 如取其Handle列的数据, 可选中ItemHandle属性值为Handle值的节点。

3.4 增加节点

在数据存储中插入数据行, 分别设置数据列Data、Label、Parent, 完成数据准备, 根据Parent查找父节点的Handle、Leve值, 新节点的Level为父节点Level+1, 新建TreeViewItem, 取节点所在数据行的数据列的值分别设置Data、Label、Level等属性值, 调用insertitemlast () 方法完成节点插入。

3.5 删除节点

调用结点查找方法of_finditemrow () , 得到结点所在数据行, 取其Handle列的数据, 删除ItemHandle属性值为Handle值的结点, 删除数据存储中结点所在的数据行。

4 示例说明

在PB中创建应用对象pbtreeview与窗口对象w_test、可视对象为封装好的TreeView对象。本示例以文档分类目录的管理为例, 文档分类目录的存储结构是对节点存储结构的扩充, 是树形结构的典型代表。文档分类目录数据库表docdir、数据窗口dw_docdir数据列、用户对象vo_ctrl_treeview_general各变量的含义及对应关系参见表1。

数据对象 第5篇

课程名称:《计算机软件基础》

实验类型:设计型(验证型、创新型、综合型、设计型)

实验项目名称:Access数据库对象综合应用学生姓名:专业: 教育技术学学号:

指导老师:

实验地点: 软件实验室实验学时:2学时

一、实验目的和要求

1.熟练掌握创建数据库、表以及查询的操作;

2.能综合运用窗体、报表以及宏等实现对数据的处理。

二、主要仪器设备或者软件

1.硬件环境 :PC 机

2.软件环境 :Windows环境,C语言系统或 其它语言工具

三、操作方法与实验步骤

1.数据表及关系的建立a)建立数据表b)为表建立关系

2.为表建立关系a)建立查询“货物明细”,显示货物名称、规格、数量、供应商名称、供应商电话号码、仓库号、地址和仓库电话;b)建立“按姓名查询职工信息”查询,要求能根据输入的职工姓名,显示职工的所有信息。c)建立“货物数量”查询,要求能根据输入的供应商名称,按货物名称分类显示出货物的总数量。

3.窗体的创建a)使用向导建立一个窗体,用于向“供应商表”输入数据。b)根据“货物明细”查询,使用向导创建嵌入式主/子窗体(见下图),要求主窗体显示供应商信息,子窗体显示货物信息。

4.报表的建立。a)参照下图,为员工表建立报表,要求年龄由出生日期计算而得,页面页脚显示日期和页数等信息

四、讨论或心得

数据对象 第6篇

关键词:面向对象;关系型数据库;映射;类;属性

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)20-0012-02

1 引言

面向对象(Object Oriented,OO)是把面向对象的思想应用于计算机软件开发中,以对象为内核,以类、继承、封装、多态等概念构造系统,进行客观事物的软件开发设计的一种方法。面向对象,对象其实就是一个封装体,包含数据和控制命令。随着计算机技术和开发软件的不断升级,面向对象的方法和应用已经不仅仅局限于软件开发和程序设计,已经逐渐扩展到数据库系统、分布式系统、网络管理、人机交互等计算机领域,甚至对人工智能、计算机辅助工具、信息系统等產生深远影响。计算机和网络都离不开数据库,面向对象的广泛应用,也给数据库技术增添了新鲜血液。面向对象方法与数据库技术,尤其是关系型数据库如何有效结合,更好的支持数据库的应用,是一个非常值得研究的课题。

2 面向对象的关系型数据库

2.1 关系型数据库

电子商务、云存储、云计算等计算机信息系统,已经是当今信息技术的重要手段,而数据库技术是计算机系统的重要组成部分和核心内容。数据库类型有网状、层次和关系几类,其中关系型数据库以其集合的操作方式得到了最为广泛的应用。关系型数据库是一种建立在关系数据库模型基础上的数据库,用集合代数方法对数据库单元中数据进行处理,是一组相互之间有关联关系的表,表的关系通过相关字段进行关联,表中的数据可以根据需求情况进行存取且不用重新组织数据库表格。新建一个关系型数据库时,每一行包含一个数据实体,是被列定义的种类。目前应用较多的数据库有oracle、sqlserver、mysql等。

2.2面向对象分析法

面向对象分析法(Object-Oriented Analysis,OOA),是指一个软件开发项目在开发过程中,首先要对业务情况进行调研,然后用面向对象的思想对该项目业务进行归纳、分类、分析。OOA强调的是业务对象之间的关系以及对象的属性和行为。面向对象分析法使用户和设计者之间的沟通更容易,设计者能够更好地理解用户的需求,设计者了解了用户的需求,才能更好地设计出用户与数据库之间的映射方式,从而设计出用户满意的数据库。

OOA方法的程序设计,从结构框架来说,一个是针对开发者的外部层,外部层是应用程序的整体设计;内部层针对物理存储,称为物化视图,是基于远程表格的,也可以称之为快照;概念层介于外部层和内部层之间,是内外部的映射,用DDL表示,概念层是关系型数据库的真正表现形式。对象与关系型数据库通过映射发生关系,映射方法就是将关系型数据库进行概念层的设计。从对象到关系型数据库的映射内容包括:属性与列的映射,关系型数据库中的继承,类与表的映射,映射的关联,聚合和组合以及实现关系等。

将对象建模和映射的过程就是将对象转换成概念层的数据库模型,对象模型转换为关系型数据库的映射有如下关系:

1)每个对象是唯一的,有唯一的标识符,具有唯一性。对象的标识一般用主键或者是系统自动生成的伪标识符来标识,而不是通过描述对象的属性来标识。

2)类与关系型数据库中的表的转换,可以通过直接调用表的名称,或者可以通过在类的名称前加前缀的方式修改成表的名称来实现。

3 基于面向对象技术的关系数据库的设计方法

3.1 整体思路

基于面向对象技术的关系型数据库的设计方法,首先要确定应用程序中的领域类,领域类中将数据信息和对数据的操作、调用方法进行了封装。领域类实例化,就得到对象,因此,需要提前把对象的存储、地址、检索方法、调用方法等问题设计好,做好准备工作。

在面向对象的关系型数据库中,数据通过对象形式存储到数据库中,并且对象之间的关联关系是自动存储的。关系型数据库本身不存在集合和分解的问题,可以由与对象相关的状态图像构成。面向对象的关系型数据库是通过对对象进行查询、检索、调用的,不存在对某个表的一行或一列进行某些操作。因此需要提前定义对对象的各种操作方法。比如:writeObject()是一个写入并存储一个对象及所有对象相关;read Object()是读取一个对象及所有对象相关。每个对象有唯一的标识ID,在写入和读取时通过唯一的标识ID进行。

以消费者对电子账户的写入、读取操作为例子,来说明面向对象数据库数据存储模式,如图1所示。将消费者对电子账户的操作对象的属性描绘成字段,指向其他对象需要映射到相应的外部关键字上,此处的操作动作不能封装。数据库中的每一个表对应一个类,对数据库中的表的操作设定为函数。

3.2 对象映射成关系数据库

RDBMS的表都是二维表,一个二维表是一个管理单元,二维表及表与表之间的关联关系用来描述对象模型的属性,即对象模型与关系型数据库的映射关系。将每个对象的类存储到数据库的表中,一个类对应一个对象实例,并进行存储。不仅对象实例映射到关系型数据库中,对象之间的关联关系也要映射到关系型数据库中,这样才能进行后续的操作。

对象之间的关系有四种:关联、继承、聚合、组成。关联是关系型数据库中对象之间的关联关系,聚合不仅需要对关系型数据库的整体进行操作,还需要对部分进行操作,即读取时需要整体读取的同时也需要在部分数据中进行读取。关联是不需要的,在关联中存储和读取的执行操作不明显。关联和聚合的区别在于对象之间的联系程度不同。

对关系型数据库中的数据不但有存储、调用等动作,还有删除的动作,那么将数据库对对象的存储和删除也是一样,对象映射成关系型数据由一些规则,如下:

1)一个类与一个库表对应映射,也可以多个类与一个库表对应映射。

2)类中存在父子关系的类,映射关系时可以分别与父和子类分别映射,或者不对父类进行定义,让子类具有父类的属性;不对子类进行定义,让父类具有子类的属性。

3)映射关系定义为一个表,包含一对一、一对多、多对多等关联关系,也可在类表之间定义外键。

4)聚合的方式有两种:一种是用一张表将所有对象类的属性合并;一种是分别用两张表分别将对象类的整体和部分分别合并,利用外键关联整体与部分的关系。

5)有些类是没有属性的,没有属性则没有映射表。

6)映射后的关系型数据库表需要进行冗余操作,使其关系范式合理。

4 结论

面向对象的关系型数据库系统以其模型简单、数据独立的优势,成为数据库技术发展的主流方向,本文针对面向对象的技术和关系型数据库的特点,将两者相结合,研究了将面向对象技术方式应用于关系型数据库,进行系统设计方法的研究,重点描述了对象映射成关系数据库的方法。

参考文献:

[1] 杨玉芬,李明明.高晓旸对象管理在面向对象数据库中的应用研究[J].吉林大学学报(信息科学版),2013,9(5):548-553.

[2] 肖刚.面向对象数据库在教学信息管理系统中的应用[J].硅谷,2012(6):79.

[3] 陆登,李善平,郑春昭. 基于对象数据库的扩展Java集合框架[J].计算机应用与软件,2011(1):133-136.

[3] 陈文宇.面向对象的关系数据库设计[J].电子科技大学学报,2002(1):53-56.

基于面向对象的空间数据质量控制 第7篇

关键词:面向对象,空间数据,质量控制,异常检测

1. 概论

1.1 地理信息系统与空间数据质量控制的现状

地理信息系统是基于应用而形成的一门信息学科, 随着计算机技术的发展, 地理信息系统的应用已遍布各行各业, 并产生了举足轻重的影响。地理信息系统是在应用中得到迅速发展起来的, 而空间数据是GIS的重要组成部分, 数据质量关系到GIS系统的成败。

在GIS数据应用中, 以满足系统需求为前提, 而不是数据越多越全就是最好, 在GIS数据库中存放的是精致、精炼的数据, 这样系统运行效率才能达到最高。基于此, 对空间数据的评价不能完全对照老的图式标准, 而主要从用户需求、所采用的技术路线等出发来进行质量评价。

1.2 基于面向对象的空间数据质量控制思想

面向对象 (OO) 的方法使用对象、类、继承和封装等一些核心思想进行分析与设计, 它通过客观实体来抽象出对象。近年来, 面向对象方法也受到GIS专家和学者的亲睐和重视, 一些知名的地理信息系统, 如TIGERS、SYSTEM、Small World等在数据模型方面都运用了面向对象的方法。

GIS数据的质量问题是一个相对的概念, 衡量数据质量的标准也会随着具体应用的特点和要求而变化, 因此采用面向对象的方法进行质量控制可针对不同的情况制定GIS数据的质量标准, 从而改善数据处理方法, 减少GIS设计与开发的盲目性, 增强GIS应用分析结果的可靠性。

本文利用面向对象的方法, 对GIS数据进行分类, 构造出合理的数据模型, 针对数据的不同用途制定GIS数据的质量标准, 分别对每一类GIS数据选用适当的处理方法, 增强数据处理的有效性, 避免盲目追求数据精度而忽略数据的用户需求, 使其数据精度与准确性更有针对性, 更符合用户需求。因此, 提出以下GIS数据模型, (见图1) 。

2. 基于面向对象的GIS数据分类及控制方法

2.1 空间数据质量的基本概念及标准

空间数据质量是指空间数据的可靠性和精度, 通常用空间数据误差来度量。空间数据质量问题包括微观和宏观两个方面。微观部分主要是独立的数据元素的质量因素, 包括定位精度、属性精度、逻辑一致性等;宏观部分指数据几何整体部分的质量, 包括数据完整性、正确性、时间性、地域性和数据档案等。根据空间数据的特性, 数据质量控制的主要包含:位置精度、属性准确性、逻辑一致性、完整性和正确性。

2.2 异常数据的定义

异常数据的定义一直不很明确, 而且不同的学者的定义也不同。最初, Edgeworth认为异常值是“显然严重偏离了样本集合中其它观测值的观测值”, 这个纯主观的基于数据的概念直到二十世纪七十年代仍被采用;九十年代时期, 有一些学者将异常值的定义修正为“数据集合中部分与数组中别的数据不一致的数据”, 但事实上, 这种定义中的“不一致”实质上是一个更不明确的概念。

因此, 后来有学者将异常数据的定义再次修正:异常数据是指所有记录中如果一个或几个字段间绝大部分遵循某种模式, 其它小部分不遵循该模式的记录。为了使研究更有针对性和全面性, 本文所指的“异常数据”将包括:异常属性数据、图形中的空间孤立点以及空间奇异拓扑关系, 为全面有效地展开数据质量检测奠定了基础。

2.3 异常属性数据的检测

GIS系统的属性数据的质量特性包括: (1) 描述空间数据的属性项定义; (2) 标识码是区分标识空间数据的码, 必须唯一有效、不重复; (3) 空间数据与属性数据之间一一对应的关系正确。因此, 属性数据的质量检查应包括属性表结构定义正确性、属性内容完整性和属性内容正确性等三个方面, 检查依据主要是数据建库的标准规范、数据生产技术设计书等。

传统上, 对异常数据的识别采用最小二乘算法, 由实际工程经验和最小二乘数学理论可知该方法的缺陷:最小二乘辨识估计方法对采样数据中可能包含的异常数据反应敏感, 即当样本中包含有严重偏离大部分数据所呈现趋势的少量的样本点时, 应用最小二乘估计得到的最优线性无偏估计, 其残差平方和随平方函数增长而迅速变大。

目前, 由于对数据质量要求的不断提高, 国内外的许多学者对测量过程中的“异常数据”检测和剔除算法都有较深入的研究。利用一种基于三角形和四边形面积的异常数据识别的搜索算法, 运算简单, 应用效果较好, 对随机误差引起的数据异常能准确的识别;利用一种基于逐点剔除法的改进算法, 能解决减小计算量, 提高处理效率的问题。

2.4 空间孤立点的检测

空间孤立点, 即与邻居具有不连续性的空间点, 或者是偏离观测值以至使人们认为是由不同的体系产生的。检测空间孤立点在许多地理信息系统和空间数据库中有广泛的应用。

一般空间物体的属性可以分为两类:空间属性和非空间属性。空间属性包括位置、形状和其他地理上的拓扑关系;非空间属性一般包括长度、高度、建筑时期、名称等。空间物体的邻居关系是基于空间关系的空间数据集。而空间孤立点则是具有与其空间邻居显著不同的非空间属性, 通常情况下, 空间孤立点可能不止一个属性与空间位置有关。

现有的发现孤立点的方法大多建立在统计学基础上, 大致可以分为4类:基于分布的、基于深度的、基于距离的和基于密度的。但上述孤立点查找方法不是专门针对空间数据的, 它们没有区分空间维与非空间维, 忽略了空间信息。若直接应用在空间数据中, 其结果可能导致发现的孤立点没有实际意义, 或产生错误的判断。

因此, 我们需要找出专门针对空间孤立点的查找方法。在相关的空间统计文献中提供了两种测试, 即图形测试和定量测试。图形测试是用可视化的方法来查找空间孤立点, 如变差云图与Moran散点图;定量方法提供了一个精确测试, 将空间孤立点与其它数据区别开来, 如散点图。

2.5 空间拓扑关系的检测

拓扑学 (Topology) 是以空间集合的形式来表示事物内部的结构、原理、工作状态等。空间拓扑关系则是反映空间要素与要素之间的、或者空间要素内部关系的数据模型或格式。

在特定的地理信息系统中, 开发人员会根据用户需求制定相关的拓扑规则, 主要用来解决坐落之间的关系、各分层要素之间的关系以及不同要素之间的关系。目前, 对此类“空间拓扑关系”的检测主要依靠目视对比的方法, 将制定完整的拓扑规则作为标准, 对数据库中的拓扑关系依次进行对照检查, 为了全面并且逻辑清晰地进行检查, 通常依据对象特点, 将拓扑关系分为面拓扑、线拓扑、面与点拓扑、面与线拓扑、点与线拓扑五大类关系, 若干小类, 这样能让检查过程条理清楚, 层次分明, 并且能保证检查的全面完整。

3. 结语

矿山地质对象的三维数据模型研究 第8篇

关键词:面元模型,体元模型,混合模型

1、前言

矿山生产所面对的地质构造、地层、矿体、断层等地质对象大多位于地下深处, 长期的地质作用使其空间赋存状态和分布特征变得异常复杂, 正确再现这些地质对象的空间特征和分布规律对于规划远景找矿区域是很有意义的。采取野外地质调查、遥感、钻探、物探、化探等地质勘探手段, 以及矿山生产过程中的生产勘探手段来获得地质找矿信息, 并通过对这些信息的合理表达, 再现地质环境的真三维形态。以前的二维地理信息系统虽然对矿山信息化做出了很好的贡献, 但具有很多软肋, 不具备空间分析、查询、几何量算等功能, 不能解决三维地质对象的内部属性、拓扑关系的表达, 以及三维空间的索引、管理等问题, 利用三维可视化的最新技术, 构建具有空间查询、空间分析的三维地质数据模型, 解决二维GIS的短处, 能真实再现地质三维空间, 为勘探找矿提供帮助。

2、矿山地质对象的三维数据模型国内外研究现状

2.1 国外三维数据模型研究现状

为了描述侵染状贫金属矿床的品位的空间变化, 引入计算机三维建模可视化技术, 利用地质统计学的Kriging法、距离反比法建立三维块段数据模型, 来描述矿体状态, 在上个世纪的60年代很有市场, 1978年由Hunter G.M提出了八叉树的数据模型, 八叉树的编码高效率的压缩了存储量, 特别对于均匀地质矿体的压缩效果更加明显, Kavouras等研究人员对八叉树的线性编码贡献很大, 但这两种数据模型的建模方法不能精细的表示矿体的表面及边界。单纯复形模型具有地下空间结构的三维概念, 是1987年由Carlson Eric提出来的。结合块段模型能很好的描述三维特征值的变化、矿体的内部形状, 线框模型适合描述矿体表面和矿体形态, Wheeler A.J于1998年提出了一个综合两种数据模型优点的混合三维数据建模模型, Smith D.R对地学信息的三维表示方法提出了自己的见解, 做出了一个典型的三维地学资源管理系统, Raper J.F于1989年提出了一些三维地学模型, Fritsch于1990年对三维数据模型也做出了自己的研究, 提出了三维GIS数据结构, Joe于1991年提出了基于三维点集的局部变换构建三维D e l au n a y三角形算法, Molenar 1992年提出了基于点、弧、边、面四种元素构成的形式化三维数据模型, Houlding S.W在2000年左右提出了地下三维可视化化理论的核心技术, Li Rongxin提出了综合多种三维数据构建三维地质体的建模思路, Victor、Pilout M对三维矢量数据模型TEN的研究做出了贡献, Lattuada实现了3DDT三维空间数据模型在地质领域的应用技术, Gruen实现了混合的三维空间数据模型V3D, Zlatanova实现了基于点和面两种土元的简化的三维空间数据模型SSM, Coors实现了用平面凸壳面表示三维空间的表面和实体的城市数据模型UDM。

2.2 国外三维数据模型研究现状

韩建国、郭达志等研究了基于八叉树的三维地质数据模型, 赵树贤研究了基于界面三角网三维地质数据模型, 傅国康对分形建模方法做出了贡献, 李德仁研究了基于八叉树和四面体格网的混合数据模型, 李青元提出了3D矢量拓扑模型, 李清泉对基于不规则三角形格网与结构实体几何的混合数据模型进行了研究, 陈军提出了基于空间破分的三维数据模型, 孙敏提出基于表的面向对象的三维数据模型, 程鹏根提出基于矢量与栅格结合的面向对象的混合数据模型, 侯恩科研究了面向地质建模的三维拓扑数据模型。

3、矿山地质对象的三维数据模型的类型

专家们提出的三维数据模型有几十种, 按几何特征进行分类, 可以分为面模型、体模型、面体混合模型。

3.1 面元模型

面元模型侧重于地质体的表面表示, 以具有便于显示和数据更新优点的面单元或者面元素表示地质体的表面形态, 面元数据模型种类主要有:用于地形表面和层状矿床构模的格网模型, 具有很强的根据形状的浓淡程度来进行三维表面重建能力形状模型, 具有建模过程清晰, 能正确表达地层分界面的格网形式多层模型, 对复杂表面具有较高精度、较小数据量、较短计算时间的不规则三角网数据模型, 对描述结构简单的三维物体效率很高的边界表示数据模型, 由线表达能力决定能表示的地质体的复杂程度, 极大的简化模型生产难度的线框模型数据模型, 在地质描述方面最简便也最有效率的断面模型等。

3.2 体元模型

体元模型基于三维空间的体元分割和真三维的实体表达, 可以对体元的属性独立进行存储和描述, 还可进行空间查询和分析。体元模型主要有:对体内不均一性具有一定的表达能力, 叠加分析、缓冲区分析比较容易实现, 结构简单、位置隐含表示、操作算法易于实现的三维栅格模型的数据模型, 用来表示地层、地温、地下水之类的均匀质地的层状三维地质体的针状三维数据模型, 通过对三维空间的地质体进行分割的八叉树三维数据模型, 八叉树的编码规则有普通八叉树、线性八叉树、三维行程编码八叉树。他们的优点是数据压缩量大、操作灵活。还有规则块体模型三维数据模型、结构实体几何模型三维数据模型、四面体格网模型三维数据模型、金字塔模型三维数据模型、地质细胞模型三维数据模型、不规则块体模型三维数据模型、实体模型三维数据模型、3D Voronoi图三维数据模型、三棱柱三维数据模型、针对地质勘探中钻孔发生歪斜的广义三棱柱三维数据模型。

3.3 混合模型

混合模型综合了面模型只注重对地质体表面的表示和体模型易于进行空间操作和分析的优点, 取长补短。混合模型主要类型有断面—三角网混合模型、边界表示---结构实体几何混合模型、八叉树—四面体混合模型、线框—块段混合模型、八叉树—结构实体几何混合数据模型等。

4、结语

地质体的形态复杂多样, 实现地质体的数据来源也有很多的途径, 不同的应用情景需要不同的侧重点, 相应的也需要不同的三维数据类型来建模, 对这些三维数据模型的优缺点进行介绍, 并对他们适用的领域进行分析, 对于我们的三维地质建模能提供有益的帮助。

参考文献

数据对象 第9篇

1 XML与XML Schema

用于描述XML数据结构和内容的文档定义方式主要有DTD和XML Schema,在实际应用中,XML Schema因具有强大的复杂数据类型定义和数据结构描述功能而被广大信息系统的设计者和开发者接受并加以采用。DTD正迅速被XML Schema所取代[2]。

2 语义对象模型

语义对象模型是用来文档化用户需求并建立数据模型的。它把语义看作基本出发点,数据模型中的语义对象是用户认为重要的事物的基本结构的映射,通过确定在用户需求中称之为语义对象的可标识事物,然后确定这些事物的属性来表达语义对象的特征及其之间的联系来建立数据模型。

相比于E-R模型,语义对象模型具有更接近用户和保存有更多语义信息的特点[3,4],而易于为用户所接受。利用语义对象模型来获取XML Schema,或将语义对象模型作为关系数据模型向XML Schema转换的中介,有利于尽可能多地保留数据语义信息。

3 语义对象模型到XML Schema的数据建模

XML Schema有类似于数据库模式的特点,因此,可根据语义对象模型七种类型对象的特点[3,4],可以很方便地实现语义对象模型到XML Schema的数据建模。

3.1 简单对象

简单对象是指只包含单值非对象属性的语义对象。在XML Schema的建模过程时,对简单对象的处理比较简单,只将简单对象转化为同名的XML元素简单对象中的各属性也将作为该元素的子元素或属性;其数据类型根据语义对象模型中的定义;如果简单对象在XML Schema建模时作为其他元素的子元素,其标识符属性将使用“key”键约束或“unique”惟一键约束表明属性的码属性。

3.2 组合对象

组合对象是指包含一个或多个多值非对象属性的语义对象。在XML Schema的建模时,可将组合对象中的语义对象S设计为一个同名XML元素S,其中的多值简单属性及属性组将作为元素S的子元素,各子元素中具有唯一性的属性或元素在元素S中利用“key”键约束或“unique”惟一键约束标明;多值简单属性内的其他属性或元素的设计可参考简单对象的建模方法转换成嵌套子元素或属性。

3.3 复合对象

复合对象是指至少包含一个对象属性的对象,两个对象之间的关系包含1对1、1对多和多对多三种类型。复合对象C1和C2互相饱含,二者是1:1关系,在XML Schema时是将元素C2作为元素C1的子元素,并设置子元素C2的“minOccurs”和“maxOccurs”均为“1”,对象C2中的其他属性将作为子元素C2的嵌套子元素或属性,对象C1中的其他属性可参考简单对象和组合对象的转换方法设计为元素C1的子元素或属性;复合对象C3和C4是1:n的关系,其中C3是1方,C4是多方,在XML Schema建模时,设计与对象同名的两个元素,且C4是C3的子元素,注明子元素C4的“maxOccurs”值为“unbounded”;C5和C6是m:n关系的复合对象,在XML Schema建模是将两个对象按去掉对方对象后的简单对象或组合对象构建元素,然后再构建第三个元素C5_C6,C5_C6元素中包含两个“ref”关键字的子元素。

3.4 混合对象

混合对象是指两种类型对象的结合[4]。混合对象的XML Schema建模可以综合使用复合对象和组合对象的建模方法来完成。有两个对象S1和S2,根据混合对象Sl上的成对属性的最大基数不同有四种情形,其XML Schema建模的策略也有所不同。

情形1,一个S2可以在多个不同的S1中出现,但只能在每个S1的一个Gl中出现。XML Schema建模方法是将组属性Gl提取出来看成是一个单独的“对象”,这个对象分别与S1和S2构成复合对象,将对象S1和对象S2及G1设为根节点的子元素,在子元素G1中除包含原对象中的各属性转化得到的子元素外,还设计联系节点的子元素对元素S1和元素S2的引用。

情形2,一个R2可以在多个不同的Rl中出现,且可以在每个Rl的多个不同的Gl中出现。XML Schema建模方法同样是将组属性Gl提取出来看成是一个单独的“对象”,同S1和S2一样设计为根节点的子元素,另外设计一个根节点的子元素S1_S2_G1,通过其联系节点的子元素对三个字元素的引用。

情形3,一个S2只能在一个S1中出现,且只能出现在该S1的一个Gl中。除了一个S2只能关联一个S1的约束外,与情形1的情况相似,其XML Schema建模方法也与情形1的方法相似。

情形4,一个S2只能在一个S1中出现,也可以在该S1的多个不同的Gl中。除了一个S2只能关联一个S1的约束外,与情形2的情况相似,其XML Schema建模方法也与情形1的方法相似。

3.5 关联对象

关联对象是关联两个(或多个)对象并存储特定于这种关系的数据对象。关联对象的XML Schema建模可以为关联对象分别建立元素,然后再设计一个与各关联对象元素同层的元素R,元素R包含多个“ref”关键字的子元素分别引用各关联对象元素。

3.6 父子类型

父子类型对象是将多个(子类型)对象的一些共同属性抽象出来组成一个新的(父类型)对象,或称子类型对象获取或继承它的父类型对象的全部属性。在XML Schema时,可以将父类型对象设计为子类型对象的一个子元素。如果一个对象R被作为多个对象的父对象,则可以为对象构建一个名为R_Type的顶层元素,在为子类型对象构建元素时附加一个名为R、“type="R_Type"”的子元素。

3.7 原型对象

原型对象是产生其它表示原型的版本、修订本或版次的语义对象。这种对象类似于具有1:n关系的复合对象,因此,其XML Schema建模也可参照相关的规则执行。

4 转换实例

图1显示了利用语义对象模型创建的各语义对象。

按照上述语义对象模型到XML Schema数据建模的方法,以下是其中部分XML Schema建模结果。

5 结束语

语义对象模型是一种建模能力很强,也是一种很接近用户的数据模型,利用语义对象到XML Schema建模有利于尽可能多地保留数据的语义信息。该文按照七种语义对象的特点分别提出了其XML Schema建模方法,并将这种方法应用于教学检查建模过程中。如果这种建模方法同基于逆向工程的关系数据库向语义对象模型的转化结合起来,将有利于开辟一条数据信息整合的新途径。

摘要:语义对象模型是把语义看作基本出发点,用来文档化用户需求并建立数据模型的。利用语义对象模型来获得XML Schema,或将语义对象模型作为关系数据模型向XML Schema转换的中介,有利于尽可能多地保留数据的语义信息。文章提出了利用语义对象的XML Schema数据建模的一些基本规则和方法。

关键词:语义对象模型,XML Schema,建模

参考文献

[1]Kleiner C,Udo W.Lipeck.Automatic Generation of XML DTDs from Conceptual Database Schemas[DB/OL].http://dbs.uni-leipzig.de/webdb/wien/015.pdf.

[2]廖明潮,高洪波.教学检查语义对象模型到数据库设计的转换[J].武汉食品工业学院学报,1999(3):65-71.

[3]左伟明.即用即查XML数据标记语言参考手册[M].北京:人民邮电出版社,2007.

面向对象的数据库技术研究 第10篇

关键词:面向对象数据库,事物管理,建模

1 传统数据库技术存在的不足

传统数据库技术的不足主要表现在以下几个方面:

1)无法表述客观世界中相对复杂的对象,其基于二维表来表述数据及其关系,因此语义表示能力相对较差,对于客观世界中的复杂对象及数据间的内在联系无法表述;

2)无法支持复杂的数据类型,无法动态的扩大数据集,如果遇到高级程序设计语言构造数据类型及操作,不仅使得用户的负担有所加重,而且数据的一致性也得不到有效保证;

3)数据结构无法与行为互相关联;

4)语义断层及阻抗失配,无法实现与高级程序设计语言的无缝集成,开发过程中要同步应用程序设计语言及数据库语言,于是存在着结构与模式转换的问题,不仅原数据结构语义容易丢失,而且对其它工具及用户共享原有语义层次的相关数据也有一定的妨碍;

5)在检查与处理事件方面有一定的被动性;

6)管理知识与对象的能力不足,不具备处理实际中二义性及未知对象的能力,而且没有推理演绎功能,管理知识的能力也有所欠缺;

7)响应和处理多重嵌套套事务及长事务的能力不足;

8)对于巨型数据库的应用需要力不从心。

2 面向对象数据库技术简介

2.1 面向对象数据库的概念

面向对象主要包括对象、分类、继承、消息四种,其中对象就是指一组属性及该组属性中专用操作的封装体;而类是属性及操作一致的对象描述;继承则是类之间的基本关系;而消息则是各对象之间的通信手段。面向对象数据还有着信息隐蔽、消息传递以及封装和多态性等特定。由此可见,面向对象数据一一对应了现实世界的实体,使其具备了传统数据库技术没有的两大特质,即结构的复杂性与内容的海量性,所以可以作为新型数据库的构建基础。而面向对象数据库系统支持定义与操作,前提是必须满足两个标准,其一,要具备数据库系统必须具备的能力;其二,要充分的支持完整的面向对象概念及相关的控制机制。那么可以将面向对象数据库系统简单概括为具备数据库能力的面向对象系统。

2.2 面向对象数据库的特点

通过对面向对象数据库概念的分析,可以总结出其特点体现在以下两个方面:

1)具备数据库的基本功能面向对象数据库有着数据库系统的所有功能:永久性,即数据库中的数据可以永久保存;存储管理功能,包括查询、选对存取路径、数据的缓冲与聚集以及索引管理等等;可以实现并发控制,可以提供高于当前数据库管理同样级别、对多个用户并发操作的支持;具有故障恢复能力;具备交互式的查询功能,并且该功能有着非过程化、高效化、与应用相对独立的特点。

2)具备面向对象系统的特点支持面向对象数据库模型,对于客观世界的复杂对象也可以提供支持,可以运用各种构造机制将简单对象组成为复杂对象。这种构造复杂对象的能力提高了面向对象数据库技术模拟客观现实世界的能力,并且方法更自然、更易于理解,有对象标识并且对象标识是与相对于其值独立存在的,这一特性使得查询的速度得到了大幅度提高;其封装性不仅封装数据,而且封装操作,因此可以实现信息隐藏,即使用户不了解操作的实现细节也可以通过开发者所提供的消息实现对对象的访问。

3 面向对象数据库基本技术

3.1 事务管理技术

3.1.1 面向对象数据库事务管理技术的特点

面向对象数据库事务管理子系统包括死锁管理器、锁管理器以及恢复管理器和日志管理器等四个模块,其中对锁表的管理是锁管理器的主要功能,这其中还包括单个事务管理锁和等待锁;对对象事前进行上锁处理,事后再把该锁释放是存储子系统及锁管理器的主要作用;而死锁管理器的主要作用就是对死锁的检测和解除。同时,一般情况下系统所采用大都是时间溢出技术,也就是每个申必须在一定时间内完成,如果超出时间限制,死锁管理器就会自动放弃事务;而日志管理的主要功能就是记录对象修改日记。与传统的数据库事务管理系统相比,其具有以下特点:首先,其加锁是对象而不是类;其次,相比较而言,给类对象加锁比给关系对象加锁所需的信息更多;第三,一旦实例被加锁,相应的其超类也会被加锁。在数据库中粒度是用来表示被加锁项的大小的,粗粒度锁机制的开锁代价比较低,但是系统的并发性比较差,反之细粒度锁机制使得高度并发性得到了保证,但相应的要付出较大的开锁代价。面向对象数据库技术应用的是粗粒度加锁机制,但是其并行性一样比较高,这是由于其加锁的为对象;假如某个事务须访问同一个类的大多数实例,就可以对整个类进行加锁设置,这样不仅可以保证系统的可靠性,而且系统开锁的代价也比较低。

3.1.2 恢复机制

面向对象数据库技术可以支持由于软件故障及用户激活导致事务夭折的恢复功能,无需使用磁盘故障恢复。面向对象数据库在结束事务时将其更新的对象页存入磁盘中。区分多媒体数据和与其相关的描述,主要以象标识符为途径实现后者对前者的引用。存储子系统对一个动态变化的空闲块链表也就是多媒体数据日志实行管理。如果在创建途中多媒介体数据事务遭到损坏,就会置空描述部分的引用;同样如果删除多媒体数据的事务也受到某种破坏,描述部分同样也会退回到到原来的状态。其二,索引页日志的恢复,这种机制的实现方法有两种,一种是对索引而的插入操作进行分页,系统就会把当前索引页的一半表项分配给新页,只有复制到新页的表项不会记录在日志中,而其它的在日志中均有记录,如果出现故障则把整个新页去掉;二是合并索引页的删除操作,系统就会把当前的索引页表项重新复制到新页中,只有从当前页删除的表项不存在日志中,其它的表项日志中均有记录,一旦出现故障重新启用当前页即可。

3.1.3 虚拟事务

面向对象数据库支持常规事务及虚拟事务两种类型,提交常规事务时会把全部的更新结果均记录至数据库,如果事务夭折,则全部的修改均取消。而虚拟事务总是夭折,即无论其如何结束,均全部取消所有的改动。虚拟事务对象主要有两种:副本有影子副本和当前副本,影子副本主要是指原始对象,这种对象一般不会被更新;当前副本则是被更新的对象。

3.2 版本管理技术

其实工程应用设计就是一项不断重复、不断完善的过程,在这个过程中同一个对象会出现多个版本,而这些不同的版本要进行妥善的管理。为了使得设计复杂性进一步降低,可以采用分层方法进行逐步细化,从而多个子对象构成一个对象,每个子对象又会产生多个不同的版本。而上层对象某些特定的版本就是由子对象的某些版本合起来构建而成的,而且假如某个子对象创建了一个新版本,与之对就上层对象也可能会衍生出一个新版本。实际工作中对象演化过程通常用版本管理技术对其进行控制。版本管理包括两个方面的内容,一是集合管理,对所有的版本实行管理,有两种关系,其一是时间先后关系,通过版本号表示;其二是派生关系,采用版本图表示。二是引用管理,由于在多版本系统中,对象只是一个逻辑上成立的虚拟概念,其对应的各个版本才是实际的存在,因此应用对象的过程实际就是引用其某个版本。引用的方法包括静态及动态两种,所谓的静态引用是指直接引用某个对象的某个特定的版本,而动态引用则是指引用某个对象但未指定其版本。比较而言动态引用的效果比较好。按照版本是否冻结可以将其分为发行版本及临时版本,其中发行版本已经定型无法更改,而临时版本则可以根据需要进行修改。

3.3 安全建模技术

面向对象数据库技术安全建模的实质是采用面向对象建模技术,将若干安全性约束引入现实世界,划分安全等级,把现实系统中安全性语义表达为DBS可以支持的安全模型。在这一过程中会出现冲突问题,导致数据库安全性语义不同,所以必须做数据一致性的检测,并解决冲突。而安全建模的主要作用就是划分安全性等级、检测数据的一致性以及解决冲突。面向对象数据库系统提供划分安全等级的方法,最终由系统开发者完成;而检测数据的一致性及解决冲突则由机器来完成。

4 面向对象数据库的有效实现方法

一般而言,面向对象的数据库系统有两种具体实现途径,一种是以面向对象语言为基础,再辅之以数据库功能,从而建立起一个面向对象的、纯粹的、数据库系统;除此之外,这种系统除了在处理类型方面拥有比较复杂的数据外,而且在应用系统的开发和维护方面有着强大的优势。不过其无法支持SQL语言,使其通用性及兼容性的优势大大降低。还有一种是把传统的关系数据库进行扩展,将面向对象的特性添加其中,使得面向对象技术与数据库技术相融合,从而建立起对象数据库管理系统。该系统不仅支持SQL语言,而且有着极好的通用性,同时具备面向对象的优势,而且还可以对复杂的对象及行为进行支持,是面向对象与传统数据库技术的有效结合。

参考文献

[1]张文嵩.面向对象数据库管理系统的设计与实现[D].长沙:国防科技大学,2008.

[2]刘海蓉,胡善岳.面向对象和数据库技术相结合的探讨[J].佛山科学技术学院学报:自然科学版,2010(3).

[3]马思红.浅谈面向对象数据库的技术和发展[J].安徽农业科学,2009(11).

[4]郭武士,易欣.基于面向对象技术的数据库应用研究[J].华章,2011(3).

[5]邓娟,周冰.面向对象与数据库技术结合发展现状研究[J].科技资讯,2009(3).

数据对象 第11篇

1 原理及研究现状

相比于线性表顺序结构, 链表比较方便插入和删除操作。因此程序设计中存储大量同一类型数据结构时普遍采用链表的操作模式。

在Vxworks操作系统下, 系统自带的链表API操作却需要在插入或者删除节点时由程序设计者对节点的内存区域按照节点类型自己进行维护。如此一来, 对于不同类型的数据结构存储, 我们就要相应的建立多个不同类型的链表, 且插入删除都需根据节点长度自行进行相应的内存维护, 程序设计就会变得繁琐, 基于以上原因, 本文专门针对于Vxworks下的链表操作设计了一个链表数据结构操作类, 简单方便的对不同数据结构进行链表存取操作。

2 Vxworks下链表操作类

2.1 理论基础

vxworks中使用了多种基本数据结构, 例如链表, 队列, 树等等, 本文将着重介绍适用于不同数据结构体的链表操作在vxworks中的实现。

vxworks中链表的实现样式如图1所示。

List为一个指针, 该指针链表结构体, 包含两个域, 分别指向链表头节点和尾节点。

head和tail指针分别指向链表的头节点和尾节点, 节点结构体包含两个域, 分别为前一个节点和后一个节点。

在创建链表时, 链表还没有任何子节点, 因此此时的头节点和尾节点指针均为NULL;但是链表结构体需要创建, 因此需要为链表结构体分配内存, 我们一般利用malloc函数为链表的节点进行内存分配, 分配的长度就需要依据节点数据结构不同而定, 欠缺灵活性。

因此本文设计了一个链表数据存取类, 设计该类的初衷在于:抽象出所有链表到文件存取操作中的底层共性部分, 以后任意节点类型的链表存储和读取可以不必关心其实现细节。

2.2 方法论述

2.2.1 设计要点

(1) 链表节点结构体的前两个元素必须为类型固定的node和ID (元素名称可以任意, ID是用于后期链表中节点维护使用, ID将作为该节点在链表中的唯一标示, 不同节点均不一样) , 如下定义:

(2) 给类对链表节点的访问都以char*型指针访问, 原因在于char类型为1个字节, 指针加减操作增量统一, 存储或读取时可将其转为特定的结构体指针来使用。

2.2.2 数据存取类的创建

创建对象并初始化相关变量

n Element Size:[in]链表节点结构体的size,

c Full File Name:[in]数据文件的完整文件名CList Storage Manager::CList Storage Manager (nt n Element Size, char*c Full File Name) ;

传入节点结构体的size是便于新建链表节点时开辟相应大小的内存使用, 传入数据文件的完整文件名是为了便于需要对链表数据进行文件操作时使用。

2.2.3 链表节点的添加

在链表尾部添加一个元素并写入文件, 被添加的元素可以是符合本类要求的任意结构体, 转为char*的格式传入

int Add Element (char*p Element) ;

p Element:[in]被添加元素转为char*的指针

return:添加后链表的长度

在新建节点时会通过 (char*malloc (n Element Size) 为需添加的节点开辟相应的内存, 与此同时, 添加过程中需自行对链表ID进行维护以确保该节点标识的独特性。

应用此种方式调用完毕后, 该元素在链表中不再依赖于p Element所指向的内存, 方便调用者对链表数据的添加, 不需专门进行内存维护。

2.2.4 链表节点的删除

根据ID删除一个元素

bool Delete Element By Id (int n Id) ;

n Id:[in]被获取元素的ID

return:true删除成功/false:失败

因链表中节点添加之初对节点的ID进行了维护, 故不同节点的ID不同, 所以删除时可通过ID的查找来查找到相应的节点进而进行删除。

删除时需进行相应内存的释放, 对应于新建节点时的malloc开辟内存, 此处判断链表中节点删除成功后会利用free (p Node) 来释放新建节点时开辟的内存。

2.2.5 链表节点的其它操作

由于ID的独特性, 对于链表节点的其他操作均可参考节点删除操作进行设计, 方便且易于实现。

2.3 实验过程

为验证本文所论述的通用数据结构存取类在Vx Works系统下为操作带来的便利, 我们在Vx Works系统下设计测试程序进行数据结构的存取, 以验证该方法的有效性和便利性。测试程序主要部分如下所示:

2.4 实验结果

实验后查看文件lsmtest.dat, 发现数据添加成功且正确无误, 且经反复实验论证, 该类对于链表节点的操作方便易行, 免去了常规Vxworks系统下链表操作中反复自行维护链表节点内存的过程, 且添加ID成员后链表节点删除、查找、更新操作简单易行, 且效率较高。

3 结束语

本文针对Vxworks系统下链表数据结构操作的局限性设计了新的基于Vxworks中Lstlib的链表数据结构操作类, 使得程序设计者在对不同类型的数据结构进行链表操作时都可调用此类, 不需要自己维护内存, 也就在一定程度上规避了一些程序设计时内存维护问题, 具有较高的适用性。

参考文献

[1]李珊珊, 宁洪, 陈波, 彭绍亮.通用数据仓库员数据模型的研究[J].计算机工程与科学, 2004.

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

【数据对象】相关文章:

基于面向对象的GIS空间数据特征模型研究09-11

刑法中的行为对象与犯罪对象的若干研究09-11

对象构建05-22

实践对象05-22

工程对象05-31

对象关系06-30

发展对象07-03

比较对象07-10

业务对象07-25

对象内容07-25

上一篇:管线腐蚀下一篇:嘉兴地方特色