




已阅读5页,还剩59页未读, 继续免费阅读
(计算机软件与理论专业论文)基于应用模型的多源空间数据引擎研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
糖要 摘要 国予不两瓣空黼数据库系绕在数据缭褥、藜疆模型帮数据椿式、存在鞍太差舅, 导致在不同应用系统间笼法共事数据和服务。多源空间数据引擎就是要为驶留在不同 的数禚源中豁数据戳致熬谤闽接口,并;= 王致靛表示方式茬酪磷雳户。 s 潞e 是个基于m e d i a t o r 晰a p p e r 方法的空间数据麾引擎,它最突出的优点炼 系统袋焉了公菸的套询语言g s 罐。及襁残鲍公共数据模型,缀磐盔器蔽了不融数据源溺 的差别。s d b e 还具有伸缩性好、易于扩腱的特点,并且其体系结构十分适合用于分布 式系统。但是,在班意翡s 磷系统中,弓| 擎接固鞍应爝接口这魏矜客户黩鼹开发羧 口还存在数据源与客户成用的耦含性强和不够灵活等缺陷,不能满足实际应用的需要。 应焉模型邂秘曝予x 季象懿描述攥型,宅将数耀巍器佟为一耱瓣象来定义j 罄使麓, 从而使其能够描述比较复杂的数据结构。应用模型不依赖特定的数据源,以。啜的方 式离客户应瘸撼洪关予数据添翡擒述漠蘩;客户液鬻无器共溺赛撼深酶具体缀节,只 需通过应用模型获得预先定义的基于对魏的数据视图嚣素类,然后利用应用模型 提供酌接霹= 粜糨素类转攘炎辫镑# 哥遴褥数据谤霹。 应用模型具有如下特点:对象定义。应用模型把数据源中的数据表字段作为蕊 本数据类垂,透遥对囊本数据类型煞组合可塔j 蟋磁较复杂熟对象炭塑。 霁擦嵌套。 在定义对象时,可以用已经存在的要素炎定义对繇,以构避更为复杂的对象装型。 对象聚合。当瑟令要素表露遘鎏囊对,霹镕险崮璎蘩复的数据,这是羡系数燃静一 个缺点。而利用应用模型中的对裂,可以对查询获得的关祭型数据记录集游行加工。 戳弼多豹对象蒙台关系滔豫这释重复。 腹用模型的设计采用面向对象的程序设计思想,充分考虑了可扩充性。烂个应用 禳黧类俸系均使鬻工厂方法烈蛹咨对象,并透避妇模式来实现爨蠢复杂鼹操俸。 扩充随用模型擞体系只需在应用模型类体系中添加所需的予类,并扩充相殿的v i s i 协r 接瑟;需要燃锄能时只黎在硒蘸晒r 粪薅系中添蠡痨黼瞬类。 虑用模型是通过应用模型描述脚本来管理的。应用模裂描述脚本还提供数据源访 露售怠管理、餍户缓餐壤勰户甓淫等功裁。鳓l 模型蕊述辫本将客户应礤帮鼗据源 北京工业大学硕士学位论文 分离开来,察户必须舆有s d b e 的用户舞份才女器游阍指定的应角;模型,搿游目数据源 所霈的霜户番份亩窟潮模型描述脚本中的数据源访问信息管理提供,客户廨用无需关 心。用户的身份通过指定所属的用户缎镕e 控巷如根据用户缀来确定废鼹模型粒访姻权 陵,瘸予菜个用户缝静用户自獬访问特定的应翊模型。 应用模型描述脚本的结构e 随复杂,因此圈彤躅户嚣蕊的建摸工具是必颂的。遗 过瘦耀建模工具我躺8 积镌孽龟奄灌、编辑应甭摸鍪l 和应掰模型脚本中的其它信息。 关键诱:窆斓数据瘁;多源空游数据簿譬 擎;赢掰模型;艇用建横工具 怂s t r = t 袁b s t r 寮g t 执嘲敬文埭黻t 肇瓣8 l 幽羟鳓s 尊拶淑髓s 鲻洳猎魄棚c 龇式般r e f 黼讯d 舷蟪嘴嗽 女醯鼯k m a 麟d 躐a 鲰黼穰秘s 豳舱a 巍嘶暇迅w 嫩馥强。s e 删潮o n s 搭娃致s b 泌t 。薮擞蔻糟秣s 黯c 趋m 娥鼢出瞧删潞丽淄坟粕豫辫嬲l 淑删喀黼秘则 瘦妇融辩错西教尊弧h 蜮两粼拄瞄酶3 。嘛黻s 鼬, 驻嚣萎逸巍鼯醛醯渤触蛾渊鳓髓艟m 醚i 涨剃勰掣簿醐涨确巍娜 燃蝴袋则抵m o 馘积蝴馘婚镬踟徽槭 毯踟嘲撼燃触撼濑删蹴确馘i s as l 剁e 蝴粼粼y 撼 测淑黼蟠燃i s 鲻蚋 e 黩洲娥删瓣氐恻躜鼢s b 啦弧她翻啦鲢 s 藤嚣酾眠躲撕馘o f 黼融随即鲫戳殛抵触啷鼬妇妇e a n d 妇秭铡斓漱漱泌。黼嫩a s 秘僦随g 她 燃融c e 啦嫩懒涵溉证溆瓣捌漱躐。饿嗽渊躲 酬e 硒f 镯姬黯嘲辩扼 趣带酝舔徽粥黼蘸i sa 蟪畦撼蚓酾o n m 酮| e lb 黼翻徘嘲簿斌i t 黼m ec 。恻o f 蜥积妻。搬龇铒懒蒯c 懿酝溉b e 删l 髓漱激l 燃1 聚喇瓣矮删 愈e s 黼t 积y 撼删印嫩幽陈s 。嗽廷删溉e 熊帮删黻溺墩啻鼯彘刚。珏 删e lo f 如| as o 渊嘲囊落癍醅m 蠲斜溅秘端c 菇溅锻啦翩瓤社捌涮盎垃a 旗鼢锋镰魏聪c 1 8 醛:淑印蝤漱m 。d 媾u i 嵫趣e 涵嚣纽群融韬e d 姆掣嘛g 坞蝴d 漱注 量持q l l e 秽协辩酶雠d a 缘麴曲& 却薅c 曩妇删斌斛蛾叛嘲麟铡蛾蕊麟她趣蝼溆l 渊焖 触辩协凇讯d 搬蝴a s 她铡c 嘲鳅蜘溉酬锹溅躺敝蛐 撼姻埝麟赡嗽湖溆喇敏淤) 簿锹蛾珊燥徽删锨 s 蜥n g 粼 蕊晌g 凳懿辩程粼蝴醅u 嫡3 s 蘸i 积秘协础燃粥辨觏嘲姆逗捌。醴 键搿嘴蕊龇w 揪蛩融搬勰龇躺j o i 瓣孙辫敷建m a y 群妇l 。姆龋面漱 d 瓶魄堍嘲蛐罐黻懒黼触嫩c a n 蝴。烛删蝴b y 妇删积 雒搿镐# d 触龉佛l e 韬瑚趣搭 礅麟鬻。f 撇m 删漱掣漱o n 黼嗽酬落燃继黼蒯酬瓣 o f 蹦漱斌矮拉镯。懒粼= 醴i 挺繇e l 勰躺弧铂e 印薅e 蕊瀚m o d 畦琪a s s 憾蝴n s e 嘲獬蝴啦删颤删龋印嘲i o n 删蝴嗡蒯碰e 嗽辩 证攀辆辣蒯娥v 技妇颦掣溅w h 冁黼碱槲文械c 搪鼹e s c a n 酶奶黜喊 * l l + 熊京工渡大学硕l ? 学证论殳 m 鼢m e c l a s s 硒e f a 础yo f 印p h g 砸o nm o d e i ,a n dn e w 吲v 谢s i 自0 rc f a s s e sc a nb el l s e dt o d e 矗n en e w c o m p l e ) ( 哪哟d a l l s , a p p “c 鲥o nm o d e l i so q 挚d z e da n d m a l l 赠e d ( h m u 曲d e s c i p n o ns c 却t 丁h ed e s c i j p 6 0 ns c i p t i s 。p d e s 锄魄s o u ea 。c e s si 蝴撕o n m 蠲锵鼬u s e rg 弹m a n a g 鼬搬避a 珏du s 打 l n a l l a 鲫献t h ed 涮蛳o ns c 邱ts e p a r a t e sc h 跚t 印p h c 撕0 n 硒md a t as 0 燃,a n dt 1 1 e l l s e r sm u s cb e 蟛删i 1 1 s d b e s y s 咖树b f et b c yc a c c e s s 出ea p p b c 甜0 nm o d d t h o s e m 酗黼曲。ns 蕊a s 黼d 8 聪p a 删蒯黼融s o 龇运m 酬酚& d e 8 c r 】p n o ns c r 】p l a c c e s sa u t h o d t y t 0 耐l 印p h c a 蛞0 n m o d e l i s a s s i 口t o 啷g r o l i p s ,a n d o n e u s 材m u 或溉v e 也e d 蹦舡妒d 弘翠盯u s 嚣印单st o 羽缸畦豫a c c e s s 重。黟。匹蠡c 聊l i c a 螽锄 m o d e l 淑童l l s e 。f 妇嘲l 踊每礤期矗e 舐锵m o 嗣,8 馥露矬捧捌琏蓦蝌i s 嬲:e s s 罄y 论 n 1 枷p u i a t ea p p b c 撕o nm o 曲le 伍d 蛳n 】m u 出m em o d e h n gt 0 0 1w ed e v e l o p e d , 印p 啪d e l c a n 泌c f 嘞d 碰e d ,棚m a n a 蒯潮y k e yw o r d s :撕“d 删) a 踺印撕a 1d a t a :b a s ee n g 峨a p p b c 赫o n m o 姒m o d d 咄州 1 v 第】章绪论 。渫惩营蓑 1 1 1 空间数据库简介 第1 章绪论 空间数据是揩与空间位鼹和空间关系相联系的数据,与馓的属性数据相比,空 溺数据枣魏下曩。个穗 匝筒拼,奎阉分夺特征; # 结耩 = 将征;窆闽关系特征; 分类编码特征;海量数据特征。正是由于这些特征,决定了空间数据存储与管理 需要罴鼹号般蔼 生数据不疑靛、更蠢复杂戆接拳手羧。 空间数据库禁统是专门用来存赭和管理空间数据的数据库系统。除般属性数据 之外,空阉数据库燃模銎和蠢邂语言还簧提供对空阕鼗攒进 亍接述、套逡帮分辨 冉勺功能。 出予空闻数黎酌复杂瞧鞫特殊镁,遥瑙数据库蛰理系绕难戬满是嚣要。爨缎阂 数据管理方法,空间数据库经历了以下几个拨屣阶段;文件数据库混合管理系 统;全关系他抟察阚数瓣管理系统;淤瞎- 关系数据瘁管理系统;酪每对 蒙数据瘁管理系统。 空溺数据痒系统发展耪麓,受诗冀枧硬转睦髓与数据库管理系统功能匿嘉t 空间 数据库大多采用文件数据库混台方式来存储和管瑷空间数据。其中,空间数据存 档在特定格式豹窒闼数据文件中,相关酶瘸瞧数据存绪燕关系数攥痒中,空间数据与 满性数据的关联通过空间数据库系统的内部编码来维护。 全关系型空阉数据瘴管理系统熬成功为管理空溺数据黾供了毅翡手段- 葶i j 萎;成 熟的关系数据库管理系统统管理耩性数据和空间数据。由于关系数据库系统不直接 提供x 啁隧敲淞阕数据的支持,因魏需要逶进隽关系数据瘁系统扩充涮# 结$ 每健 空间数据的功能来实现空间数据库系统。 遗巷潍象联系数据霹系统和蕊囱x 豫数据岸系统磷爨,出现了薹予羚潆一 关系数据库和面向对象数据库的空间数据库系统。对象非常适合用来描述非结构化 的空间数据,通过对象的继承、嵌套和聚合,能够有效地描述复杂的、非结构化的空 川数据。 1 2 问题的提出 随着空间数据库管理技术的发展,出现了许多比较成熟的空间数据库管理系统, 如e s 埘的a r c s d e ,h t e r 酽a p h 的g c 锄1 甜i a 及m 印h 面的m 印h 面等。同时,基于空 间数据库的应用系统也在电力、矿产及城市规划等诸多领域广泛应用。计算机网络技 术和数据库技术的迅速发展,使空间数据库系统也从传统的主机一终端系统、桌面工 作站系统、局域网分布式系统,发展到目前的基于互联网的应用信息系统;而其应用 范围也从面向专业领域扩展到诸如“数字地球”等面向社会的信息基础设施,成为社 会化的应用信息系统。 由于不同部门可能采用不同的空间数据库构建自己的应用系统,而不同的空间数 据库管理系统之间在数据结构、数据模型和数据格式上存在较大差异,往往导致花费 e i 大人力物力建设的应用系统无法与其它系统共享数据和服务【1 0 】 1 3 】【”】。 多源空间数据引擎正是为解决上述问题提出的。多源空间数据引擎提供了一种实 现空间数据资源共享和互操作的方法,并且它能够以透明的方式向用户提供一致的访 问界面。 1 2 工作基础 1 2 1 互操作性与0 1 ) e n g i s 0 g c ( 0 p g 鹕c c i n s o 而u m ) 是负责制定地理空间信息系统互操作规范的标准化 组织。o p 印g i s 规范是o g c 为分布式环境下访问和处理空间数据提供软件框架而制 订的一套全面规范。0 p g 瑕规范的提出为不同厂商的空间数据库系统实现协同工作 提供了统一标准,使得开发人员编写的符合咻l g i s 接口标准的空间数据应用软件之 第1 章绪论 间能够实现互操作。 o 【煳g i s 在其空间数据共享和互操作规范中定义了空间要素表、几何图形及空间 参考系等相关信息的存储模式,给出了空间对象参考模型,并且在这个模型的基础上 定义了数据共享和互操作接口,其中包括d c o m 组件接口规范和c o r b a 对象接口 规范【3 8 】| 【3 9 】。在符合规范的d c o m 组件和唧a 对象之间能够实现空间数据的共享 和互操作。在空间数据管理方面,q 埘l g i s 为支持抽象数据类型的d b m s 系统制定了 面向s o l 语言的互操作规范。为了实现数据共享,规范中给出了三种空间数据的管理 方案:二进制数据存储范式表扩展s q l ,分别用于空间数据数据存储和不同 系统平台软件之间的数据传输与数据交换。以上规范为空间数据库系统提供了实现数 据共享和功能共享的基础。 1 2 2 空间数据库引擎系统s d b e s d b e 是个符合晰l g 工s 规剩3 8 】【3 9 舯】的空间数据库引擎系统,它采用面向对象 程序设计语言( c - 件) 设计实现,以类库的方式提供面向对象的应用程序访问接口和 结构化查询语言g s o l ,为构建空间数据库应用系统提供了一个可伸缩的、开放的、 分布式的平台【1 6 f ”】。 s d i 强采用基于m e d i 掀:w 噼方法的三层c 侣结构,如图1 - 2 所示。m 。d i 曲w 负责与客户程序交互,并将来自客户的数据访问请求转发给特定的帅盯,由 、仰日负责访问数据源以获取数据。客户程序与m e d i 栅、m e d i a 幻r 与w 砷p e r 之间 均通过g s o l 语言及其数据模型进行交互。 s d b e 采用基于m 。d 协昕w 啦方法的三层c 愿结构,如图1 2 所示。m o d j a t o r 负责与客户程序交互,并将来自客户的数据访问请求转发给特定的w i 印p 盯,由 w 嘲) p 盯负责访问数据源以获取数据。客户程序与m e d i a t o r 、m o d i a t o r 与w 呻之间 均通过g s o l 语言及其数据模型进行交互。 g s o l 是s 强系统定义的种结构化查询语言,它将数据源中的关系表分为两 种要素表( f e a t r et 出l 嚣) ,空间要素表和非空间要素表。空间数据对用户而言只是一 种对象类型,包含空间对象的表即为空间要素表,否则为非空间要素表。g s q l 是在 s 。l 9 2 的基础上,扩充了点、线、面和空间对象集合体等空间对象及相关操作实现的。 北京】业人学硕i 学位论文 ( ;s 0 l 的空间对象模型参见图1 3 。 客户应用 j 应用接l i 引擎接口 、f 、一 ;d b e 系统 1 g s q l i m e d i a l 。r j 盱a 。p e r sig s q l 申审申幸审 图1 2 空间数据库引擎s d b e 系统结构图 f i g 哦1 - 2s 拇e r n 砌t e c t l 醒o f s d b e 图1 0 g s q l 空间对象模型 g s q l 及其空间数据对象模型的引入使s d b e 和客户应用能够直接操纵空间数据 ,以一致的方式表示查询请求,并以致的方式向客户应用提供数据表示,屏蔽 4 第j 章绪论 后台不同数据源问的差异。 1 2 3 问题与不足 s d b e 为客户提供了两级应用开发接口,即下层的引擎接口与上层的应用接口。 引擎接口使用g s 0 l 语句直接与s d b e 的m e d i a t o r 交互;这种方式的优点是访问手段 非常灵活,可以根据需要定义复杂的数据视图;缺点是客户应用必须了解数据源内部 的细节并直接操纵空间要素表,客户应用与数据源间的耦合性强,降低了客户应用的 可复用性,并增加应用开发负担。 应用接口在引擎接口的基础上,采用“图层要素表”的方式对“空间要素表”进 行了封装,图层要素表是种非空间要素表,它通过连接运算把空间要素表作为图层 要素表中的对象类型来处理。这种方式刚氐了客户应用与数据源间的耦合度,增强了 客户应用的可复用性。但这种封装方式要求为每个空间要素表建立固定的图层要素表, 而且不具备定义复杂数据视图的能力,从而限制了应用接口的使用范围。 1 3 课题简介 本课题得到国务院9 2 0 2 工程和北京市教委科技发展计划的资助,着重研究通过为 数据源建立应用模型来实现多源空间数据共享与互操作。 1 3 1 课题内容 本课题的主要工作包括: 提出并设计实现了基于对象的数据源建模方法应用模型,并将其应用到 多源空间数据引擎s d i 强中。 为应用模型的创建、编辑开发可视化的应用建模工具。 改造空间数据库引擎s d l 强,为其扩充应用模型相关的功能。 设计实现基于应用模型的客户应用支撑环境,为客户应用提供一个钓童开发 框架。 北京丁业人学硕i 学位论文 本课题的创新之处在于,提出了一种基于对象的应用模型,通过为多源空间数据 分别建立应用模型来实现数据的共享与互操作。这种方法的特点是: 以一致的方式为数据源建模,通过对客户应用屏蔽不同数据源间的差异实现 对不同数据源的透明访问。 基于对象的模型体系支持对象定义,通过引入对象的概念实现了属性数据和 空间数据的无缝集成。 建模手段灵活,通过对象嵌套和对象聚合,提供对复杂数据视图定义的支持。 为客户应用开发提供基于应用模型的对象查询和对象浏览服务。 1 ,4 本文结构 本文第一章绪论介绍空间数据库及空间数据互操作的背景知识,并简要介绍了课 题内容。第二章和第三章介绍本课题的重点应用模型的设计与实现。第四章介绍 f a 佣模型脚本和应用建模工具。第五章介绍基于直用模型的客户应用开发框架,并给 r 一个基于应用模型的s d b e 客户应用实例。 1 5 本章小结 本章介绍了空间数据、空间数据库以及多源空间数据引擎的基本概念和研究现状, 并在此基础服出了本课题的研究内容:种多源空间数据共享和互操作的实现方法 蝴模型。 第2 帝麻用模型的引入 第2 章应用模型的引入 2 1s d b e 接口分析 s d b e 提供两种开发模式:一是使用s d b e 提供的引擎接口访问数据源;二是使 用s d b e 提供的应用接口访问数据源。下面分别对它们作简要分析。 2 1 1 引擎接口 第种方式下,客户应用使用引擎提供的关于数据源的元数据描述,获取关于要 素表细节,然后自行定义并构造g s q l 查询以获取数据。 图2 1 基于s d b e 引擎接口应用系统结构图 f i g u r e 2 一l a 印“倒蛐咖a 删咖h 羽s d b e 印咖i r l 重e 而c c 北京工业大学硕 + 学位论史 如在图2 1 中,数据源中有两个要素表,空间要素表a p ip m 、i n c e s f 和非空间要 索表a p l p 趴i n c e 椰。空间要素表中的g e 0 p o l y g o n 是g s q l 中的关键字,g s q l 通过它来定义空间对象。要素表a p i j ) l d v 汹c e 椰则给出了要素表a p i j v 疵e _ s f 幅性数据。如果我们希望得到所有省的空间数据对象及其名称,则需要由客户应用中 f q 造如图2 2 中的g s o l 查询: 图2 - 2 基于引擎接口的g s m 查询示恸j 1 f i 舭p 2 2 g s q l q u a y a 叫e1 ,b a s e d s d b e g m 缸曲c e 从图2 之中的g s q l 语句中可以看出,使用引擎接口时客户应用具备根据需要定 义复杂的g s q l 查询的能力。通过引擎接口客户应用能够访问数据源能提供的所有的 要素表,为客户应用定义数据视图提供了足够的灵活性。 2 1 2 应用接口 应用接口在引擎接口的基础上,提出了“图幅一图层”的模型,并据此对引擎 接口进行封装。图幅对应数据源,它对数据源本身进行描述,如数据源名、数据源类 型等;图层对应数据源中的非空间要素表,称为“图层要素表”,它通过一定的命名规 则与空间要素表相关联。 从j 立用接口的角度看,空间要素表对客户应用而言是不可见的,客户应用只能通 过图层要素表来访问空间要素表和空间数据对象。这种方法在一定程度上实现了对空 阃要素表进行封装的目的。另外,应用接口要求s d b e 提供相应的“图幅一图层” 模型的信息,包括系统提供唧挫图幅、每个图幅中有明陛图层、每个图层列应那些要 袭表等信息等。 第2 章应用模型的引入 图2 _ 3 图层要素表映射关系 f i g m ”r d a d o r 啦) b e c 、m 1 m 甲l 啊踟d 凳甑e 切b l e s 例如,我们为数据源中的空间要素表a p i j ) m 疵e - s f ,添加图层要素表 a p ii 。a :y i 琅p n 州1 1 c e ,如图2 - 3 所示。这时空间要素表对客户应用是不可见的,对它 的访问只能通过图层要素表进行。 2 1 3 问题与不足 2 1 3 1引擎接口 引擎接口存在如下问题:首先,客户应用与数据源之间是紧密耦合的,客户应用 必须了解数据源中的数据模式细节,g s q l 查询需要在客户应用中定义,当应用需求 改变时可能导致重新开发客户应用。这降低了客户应用的复用性,增加了开发负担。 其次,引擎接口仅提供种比较简单的对象类型即空间数据对象( 点、线、面、 集合体) ,表示复杂的数据结构的能力较弱。在前面例子的基础上为数据源添加空间要 素表a p i _ d i s 乜i c t c 崎p n 和非空间要素表a p id i 嘶c t c i 哆p 限,它们分别表示地级 市的空间位置和属性。如图2 _ 4 所示。如果希望得到这样的结果:“广东省及其所辖地 级市的图形”,我们需要定义如图2 - 5 的查询。其中“a 3 n m 小i ”是布尔空间运算, 该方法在第个参数所代表的图形包含第二个参数代表的图形时值为真,否则为假。 对于这个查询,可以很容易看出其结果中存在比较严重的数据冗余,即 a p ip m v j i 】c es f 中的空间列京j :曼重复。 北京 一业大学钡j 学位论文 数据源 a p i - p r o v 缸c e _ s fa p i _ p r o v m c e _ a t t r ( 空间要素表)( 非空间要素表) “i d :证t g e o p o 】y g o n :劬t n ee 1 :v c h ” d 远p p o l y g o n i d :m t m e r 订n e t e r :f b a t d a r e a :f l o a t i s 廿讪d d :访t a p i d 虹t r i c t c i t y _ p n a p i 一蕊t n c t c i t l a t t r ( 空间要素表)( 非空问要素表) 二j :一 j d :加t g e 0 p o 缸t :雠 n m o 盯:v c h a r d 妇p p o 抽t i d :面t i s 打缸g i d :证t 图2 _ 4 引擎接口复杂查询图示 f j g u r e 2 4 1 咖6 o f c o n 驴奴q u e r y l 】s i n g s d b e 哪n e 面e 晌c e 图2 - 5 基于引擎接口的g s q l 复杂查询示例 f i g u r e 2 - 5 c 叫似g s q l 恻唧l e ,b a d0 1 1 s d b e 髓1 9 硫锄e 而c e 213 _ 2应用接口 由于图层由图层要素表映射得到,因此必须在蝴源中为空间要素表添加相应的 阁层要素表。这是种静态模型,因为所有的图层信息在查询构造和执行前已经确定。 1 0 第2 章应用模型的q 入 另外,在基于应用接口的系统中,对数据源的访问需要通过“图幅一图层”模型进 行,但是图幅中仅给出了每个图层对应的图层要素表信息,没有对数据源中所包含的 其它信息进行描述。因此,应用接口的灵活性和实用性受到很大的限制。由于空间要 素表中的空间对象也是不可见的,因此在匣用接口中无法定义空间运算。 2 _ 2 应用模型的提出 应用模型正是针对前述引擎接口和应用接口的缺点提出的一种数据源描述模型。 应用模型是一种基于对象的模型,它将数据视图作为对象来定义和使用,从而使其能 够描述复杂的数据结构。应用模型是通过“应用模型要素类分组成员” 的层次关系建立起来的,如图2 石所示。 图2 缶应用模型数据源映射关系图 f i g u r e 2 _ 6 h l s 吐蚯o f 枷。埘邱b e c w e 印曲倒i f r 刚出d d a 扭c e s 应用模型中的概念解释如下: 成员。成员定义了数据的来源,是应用模型中最基瘁的绍局沅素。成员分为 两种:一是简单对象成员,由要素表的字段定义得到;二是嵌套对象成员, 由已定义的要素类定义得到。 北京工业夫学硕 学位论文 分组。分组由同一要素表中的字段定义的成员组成。在同一个要素类中,所 有由同一要素表中的字段定义的简单对象均属于同一分组:所有由同一要素 类定义得到的嵌套对象属于同一个分组。分组对客户应用是不可见的,它是 为方便定义连接条件而引入的。 要素类。要素类定义了坪十对象结构,表示一个数据视图,基于应用模型的 系统的数据是按照要素类组织的。要素类还可以用来定义嵌套对象,如图2 - 6 中的粗线表示“要素类2 分组2 威员1 ”是一1 嵌套对象,它是由要素类1 定义得到的。要素类由若干个分组组成,当要素类中的分组多于两个时必须 定义“主成员”。主成员是作为对象标识使用的,其所在分组称为“主分组”。 应用模型。应用模型与一个数据源相对应,它数据源本身进行描述,提供关 于数据源的位置、类型、存储类别等信息,同时应用模型也是要素类的容器。 应用模型具有如下特点:对象定义。应用模型把数据表中的字段作为基本数据 类型,通过对基本数据类型的组合可以构造比较复杂的对象类型。对象嵌套。在定 义对象时,可以用已经存在的要素类定义对象,以构造更为复杂的对象类型。 对象 聚合。当两个要索表作连接时,可能会出现重复的数据,这是关系数据模式的一个缺 点。而利用应用模型中的对象,可以对查询获得的关系型数据记录集进行加工,以一 埘多的对象聚合关系消除这种重复。 2 3 应用模型举例 我们来看第2 1 3 1 小节中的例子。针对这个例子的需求,我们定义如图2 7 的 要素类。图中定义了两个要素类,第一个是“地级市”,它包含两个分组 “a j ”一d i s t r i c t c i t y ”和“a p i d j s t r i c t c i t y - a 丌r ”。 其中,分组 “a p 】d i s t r i c t c i t yp n ”中有两个成员“点对象i d ”和“点对象”,它们来自同一个 要素表“a p i d i s t r i c t c i t y _ p n ”。“点对象i d ”是主成员,以 标记。另一个分组 “几p 】d i s t r i c t c i ty - a t t r ”中也有两个成员,“属性i d ”和“名称”。该分组有一个 连接条件“属性i d = 点对象i d ”,通过它将要素表a p r - d i s ”i c t c i t y p n 和 a j ,】d j s t r i c t c i t ya t t r 连接起来。 第2 章应用模型的引入 应用模型数据源 _a p i d b 仃l c t c 计y - p n ( 空间要素表) 旧:m t 一 - 三 g e o p o m t :m t 证口p o 订a i d :讯t 一属性i d :m t l s t r m g i d :加t a p i 一曲t r j c t c 时一a t t r ( 非空间要素表) 剖i d :叭 r 4 a m ee t :v c h a r 广东省的地级市:要素类 a p id r o v 讷c es f 一面对象l d :n f ( 空间要素表) 一面对象:g e o p 0 1 y g o n i i d :讯t 一 g e o p 0 1 y 9 0 n :m t u i d i s p p o l y g o n 】d :缸 省名称:s 圩加g ( n a m e = 广东省) 一 d p 口沛酏e r :n o a t d a r e a :n o a t 一地级市:地级市( 要素类) i s t r 面窟i d :讯t a p i p f o v 证c e a t t r ( 非空间要素表) 剖粤:一 图2 _ 7 要素类定义举例 f i 舭r e 2 - 7e ) 【锄叫嚣o f 蜘l 睇c l a 璐蛐j 右0 n 第二个要素类“广东省的地级市”中有三个分组,“a p ip r i 州n c es f ”、 “a p i 俅o v i i l c e 脓”和“地级市”,其中“地级市”分组中有个成员地级市,它 是个嵌套对象,由“地级市”要素类定义。“地级市”分组与主分组的连接条件为“地 级市点对象w r r m 烈面对象”。注意,在应用模型中定义条件时,关系表达式均使 用对象名,即简单对象成员名,如“属性i d ”;或嵌套对象成员名串,如“地级市点 对象”。 我们对应用模型的定义做如下约定:( i ) 条件定义均使用对象名或对象名串。成 员约束条件只自洲亥成员本身( 简单对象成员) 或其分量( 嵌套对象) 进行约束。 连接条件类型应为内连接。定义连接条件时,所有的非主分组只能和主分组中的简单 对象成员进行连接。成员不允许递归定义,即嵌套对象成员的类型只能使用已定义 北京工业人学坝 学位论义 n 勺要素类,而不能直接或间接使用正在定义的要素类。同一要素类中所有条件之间 的关系为“逻辑与”。 根据以上约定,通过应用模型提供的接口,我们能够得到前述要素类“地级市” 和“广东省的地级市”对应的g s q l 语句。 由要素类“广东省的地级市”得到的记录集在返回给客户应用前需要作进一步处 理的。由于该查询的结果只有一个面对象,点对象有多个,因此需要通过对像聚合的 方式来消除a p i p r o v i n c 哂f 表中面对象的重复。由于主成员为“面对缘i d ”,它唯 一标识一个要素类对象,因此“面对象i d ”重复的,并且属于同一分组的记录集字段 将被删除,而其它分组中的字段则合并为对缘集合。为了保持要素表中原有的关系, 非主分组中的成员对应的字段在合并时是按分组进行的。 应用模型的创建和编辑是通过图形用户界面的建模工具进行的。由于应用模型的 结构可能比较复杂,因此图形用户界面的建模工具是必不可少的,它不仅能提高建模 的效率,而且能减少建模时出错的可能性。关于建模工具的介绍参见第4 章。 2 4 基于应用模型的s d b e 系统结构 基于应用模型的s d b e 系统结构如图2 8 所示。由该图可以看出,在基于应用模 g ! 的s 【姬匠系统中,客户应用是通过s d b e 引擎提供的应用椟翌b 渤问数据源的。 s i ) b e 引擎向客户应用提供个应用模型列表,由客户应用决定使用哪个应用模型访 问数据源。另外图2 8 还指出,我f 门不仅可以为不同的数据源建立不同的应用模型, 而且也可以为同个数据源建立多个应用模型,在这样的s d b e 系统中,我们可以使 例同个客户应用程序,根据不同客户的应用需求选择不同的应用模型来访问不同数 赫源中的数据。 第2 章应用模型的引入 s d b e 弓i 擎 应用模型1 l 舟 田ii 。i i “1l l 胜川偎生l i 出田+ 精1 ,i 叫胜用俣型j 图2 基于应用模型的s d b e 系统结构 f i g l e 粥a 耐l 如。曲鹏0 f s d b e 掣;【a 粥b a s e d 印p b c 鲥n n 城 2 5 本章小结 本章对s d b e 引擎接口和应用接口做了比较深入的分析,指出了这两种接口的不 足:在此基础上提出了种基于对象的数据描述模型应用模型,并以个实例对 应用模型的组麒痢功能做了详细的阐述。 1 5 北京_ 业大学硕l 学位沧文 第3 章应用模型分析与设计 3 1 应用模型定义 应用模型是一种基于对象的模型,它对数据源及其中数据进行抽象,不应当局限 j 特定数据源的数据模型。应用模型应当提供灵活的数据视图描述手段,能够定义复 杂的数据视图;同时,应用模型还应当提供一定的扩展机制,以便充分利用已有的要 素类糊织更复杂的数据视图。 :;1 1 应用模型中的概念定义 与s d b e 的应用接口中的“图幅一图层”静态模型不同,应用模型提出了“应用 模型崾素类分组_ 成员”的动态模型。 应用模型:应用模型对应某个数据源,它由要素类组成。可以为同一个数据 源定义不同的应用模型,以适应不同的应用需求。 要素类:要素类定义数据视图。要素类相当于数据库中的查询视图,它可能 涉及一个或多个要素表。要素类由分组组成。要素类也可以作为一种对象类 型用来定义成员,通过这种方式可以在新的数据视图中方便地复用已定义的 要素类。 分组。分组由同要素表中的字段定义的成员组成。在同一个要素类中,所 有由同一要素表中的字段定义的简单对象均属于同一分组;所有由同一要素 类定义得到的嵌套对象属于同一个分组。分组对客户应用是不可见的,它是 为方便定义连接条件而引入的。 成员:成员是应用模型中最基本的元素,成员代表数据对象。成员可以由要 素表中的字段定义,这时它称为简单数据对象;成员也可以由同应用模型 中已经存在的要素类定义,这是它称为嵌套对象。成员由成员名、对象类型 和约束条件组成。成员名必须能够唯一标识某个成员。成员的对象类型即定 第3 章应用模型分析与设计 义它的要素表字段或要素类。成员约束条件是一个字符串表示的关系表达式, 用于对其所属的成员进行约束。该表达式中除成员之外其它的操作数均为常 量。 3 1 _ 2 数据视图的定义 定义数据视图是应用模型最重要的功能,也本课题的工作重点之一。数据视图的 定义主要涉及三个方面的问题:对象类型的定义;成员约束条件的定义;连接 条件的定义。 成员的对象类型有两种,一是要索表中的字段,称为简单对象:二是同一应用模 型中已经存在的要素类,称为嵌套对象。 约束条件是指对成员的约束条件。这里有两种情况,当成员是简单对象时,其对 象类型为要素中的字段,条件实际e 是对该字段进行约束。当成员是嵌套对象时,其 对象类型为已定义的要素类,这时约束条件可能是该要素类中一个或多个成员的约束 条件的组合。定义约束条件时使用对象名( 简单对象) 或对象名串( 嵌套对象) ,以便 对数据源进行屏蔽。 当要素类中的成员由两个或以上的要素表定义时,多数情况下需要定义连接条件 才能得到正确的结果。这时我们需要指定个“主成员”,它所在的分组称为“主分组”, 规定所有其它分组只能主分组中的简单对象作连接。为了保持应用模型在描述上的灵 滑陛,这里只提供连接条件定义的手段,不对连接条件作过多的限制,其语义由应用 模型龟q 建者指定。 例如,在应用接口的元数据模型中定义的图层“省、自治区、直辖市”,它对应要 素表“a p li 姻p 1 1 慨”和空间要素表“a p ip m v 曲c es f ”。我们可以通过定义 要素类来表示与应用接口中图层相同的数据视图,如图3 1 所示。这里的连接条件为 “空间对象索引= 空间对象d ”。如果要求在数据视图中仅给出直辖市的数据,那么 我们可以为成员“名称”定义成员约束条件“名称= 北京a n d 名$ 忙天津a n d 名 称= 上海a n d 名称= 重庆”,由此可以得到直辖市的空间数据和属性数据。 从图3 1 中可以看出,要素类的定义不依赖与某个特定的要素表,而是根据应用 需求来定义数据视图的,并且支持多表连接查询的定义。 北京工业人学硕i 学位论文 应用模型 直辖市:要素类 i r 一面对象i d + :加t 卜- 面对象:g e o p o l y g a n p 一属性i d :m t r 一名称:s 仃缸g i( 名称= 北京市 la n d 名称= 天津市 ia n d 名称= 上海市 la n d 名称= 重庆市 】 数据源 a p id r o v m c es f ( 空间要素表) i d :i l t g e o p o l y 叠o n :妯t i d 遮p p 0 1 y g o n i d :m t d p 叮i m e t 盯:f 1 0 a t d a r e a :f l o a t :i s 仃m g i d :缸t a p l 一蝴r r o v 抽c e ( 非空闻要素表) s u r f a c e _ s f :访t n m t e r :v c h a r 图3 1 要素类与要素表问关系示意图 f i g u f e 3 - lr d a t i o n s 坤b e c w 嘲f b 船d a 蛸a n d f b 呲训e s 应用模型提出使数据视图定义的灵活性大大增加,而连接条件和要素类的嵌套定 义则为定义复杂的数据视图,实现复杂的查询分析打下了基础。 3 2 应用模型设计 应用模型的组成元素之间有明显的层次关系,如图3 - 2 所示,“应用模型要素 炎一成员”从左到右是整体与部分的关系,应用模型由要素类组成,而要素类由成 员细茂。 图3 2 应用槎蜃螃埸测图 f i g u r e 3 0 侧鳅f i d d d o f 印p h 咖r d d 成员是应用模型中最基本的元素,它包含成员名、对象类型、约束条件等信息, 这些都是将应用模型中定义的数据视图映射为g s q l 查询时必须的。 第3 章应用模型分析与设计 3 2 1 分组的引入 要素类中的成员可能由多个不同要素表中的字段定义得到。如果其中有多个成员 由同一要素表中的不同字段定义,往往只需为所有这些成员定义一们引安条件定义即 可。因此在要素类中合理区分对缘类型来源要素表不同的成员是有必要的,这样就可 以在定义连接条件时可以将列像类型来源要素表相同( 数据源中的要素表、应用模型 中的要素类) 的成员作为个整体来看待,使连接条件的定义方式更加合乎逻辑。 分组正是基于以上思想引入的。引入分组后的应用模型对象模型图如图3 3 所示。 分组是个要素类中对缘类型来源要素表相同的所有成员的集合。连接条件的定义按 分组进行,分组中的某个成员与主成员所在分组的简单对缘作连接运算构成连接条件。 主成员所在分组称为“主分组”,它没有连接条件。 图3 3 引 分钼后的应用模型对象模型图 f i g 哦3 3o 崎鳅n h 纠o f 印蛐c 碰o n m o 出l 诵m 印呷妇【o 血o e d 在应用模型对象结构中,要素类与查询相当,即查询的转换是根据要素类进行的。 分组的引入不仅使应用模型的结构更加清晰合理,同时也有助于简化要素类查询 的转换处理。 应用模型中的概念“应用模型要素类分组成员”具有明显的层次关 系,同时考虑到描述数据源及自定义数据视图的需要,对应用模型的类体系作如下设 计。 3 2 2 应用模型 应用模型需要保存两方面的信息,一是关于数据源的信息,应用模型是数据源的 北京一f 业大学硕1 。学位论文 抽象表示:二是要素类信息,应用模型是要素类的集合。应用模型文法如图3 4 所示。 图3 4 应羁模型的文法 f i g m 3 4g i 锄t 料o f 印p h 酬0 1 1 n l o 出l 正确地访问数据源需要以下信息:数据源类型,数据源名,数据库名, ;! 间数据存储类型。目前支持的数据源类型有5 种,分别是o d b c 、s q l s e r v 盯、o m c l e 、 o r a c l es p 撕a 1 和s l a p cf i l e 。不同类型的数据源,其数据源名和数据库名的含义也不同, o d b c 数据源名必须表示已在操作系统中注册的o d b c 数据源,数据库名与0 d b c 数据源名相同;s q ls a v 盯数据源名是数据源驻留的主机名,数据库名为s q l s e r v 日 数据库名;0 i a d e 和0 r a c l e s p 商a 1 数据源名和数据库名均为q 拟e 服务名:蛳f i l e 数据源名和数据库名规定为s h 即e f i l e 文件所在的目录名。 应用模型是要素类的集合,它维护一个要素类列表,同一应用模型中的要素类名 1 、允许重复。根据这个列表可以按名访问要素类,也可以j i 顷j = 溯整个要素类列表。 3 2 3 要素类 应用模型中的要素类在逻辑上相对独立的,它代表了个数据视图。要素类是由 数据来源分组组成,因i 比它需要维护一个分组列表。由于割转换是按要素类处理的, 吲此要素类中应当提供查询转陕时所需的访问接口。要素类的文 去立口图3 5 所示。 图3 _ 5 要素类的文法 r g l e3 5 m m o f 锄i e d a s s 第3 章应用模型分析与设计 3 2 4 分组 分组是成员的集合,它维护一个成员列表,其中成员的对象类型来源要索表相同。 连接条件在分组中定义。分组的文法如图3 6 所示。这里要注意的是无需为主分组定 义连接条件。 3 2 _ 5 成员 图3 _ 6 分组的文法 f i 殍r 3 _ 6g i 0 f g m 叩 成员保存对京类型信息,也就是定义成员的要素表字段或要素类的信息,这是将 要素类映射为特定数据源查询的基础。成员必须指出对象类型是要素表中的字段还是 已定义的要素类;如果是要素表中的字段,则给出要素表名、字段名及数据类型;如 果是已定义的要素类,则给出要素类名。另外,成员约束条件也在成员中定义。成员 的文法如图3 7 所示。 图3 7 成员的文法 f i g l e 3 7g l a r 瑚蚵0 f m 町由盯 2 1 北京下业人学颂 学位论文 3 2 6 条件 条件是定义复杂数据视图的关键,只有提供灵活的条件定义手段才有可能实现复 杂的查询分析。应用模型中的条件定义是以关系表达式的方式定义的。 由于应用模型在设计时s d b e 系统尚未集成空间运算功能,因此这里提供对5 种 氍本数据类型和基本关系运算的支持,并为关系运算预留了接口,但是没有实现。应 r 】模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 华北电力大学锅炉原理教案第 11 讲 动力燃烧、过渡燃烧、扩散燃烧
- 四年级语文上册作文范文我的成长故事1素材新人教版
- 人工智能在测绘误差分析中的应用-洞察阐释
- 医院综合提升改造项目实施方案
- 气候变化与水资源可持续利用-洞察阐释
- 智能监测纺织品-实时环保反馈-洞察阐释
- 湖南民族职业学院《专题设计一》2023-2024学年第二学期期末试卷
- 成都锦城学院《国际组织》2023-2024学年第二学期期末试卷
- 厦门演艺职业学院《欧美影视专题》2023-2024学年第二学期期末试卷
- 2025至2030年中国智慧商城建设行业市场现状调查及发展趋向研判报告
- 新生儿窒息的急救及护理
- JJG 7-2004直角尺
- GB/T 16917.1-2014家用和类似用途的带过电流保护的剩余电流动作断路器(RCBO)第1部分:一般规则
- 广工计算机专业离散数学考试题,广东工业大学-离散数学试卷和答案A
- 浙江嘉兴市小学英语四年级下学期期末测试卷测试题(含答案)
- 信息化项目网络设备、网络安全设备、服务器和存储系统集成项目培训方案
- 汉语语法教学-是……的
- 无犯罪记录无吸毒史证明模板
- 六年级信息技术下册《走进人工智能》优质课获奖课件
- 第18课 现代设计与现代媒体-高中美术鲁美版美术鉴赏
- 国际商务毕业论文范文
评论
0/150
提交评论