欢迎您来到GIS动力

加入收藏 免费注册 用户登陆 帮助中心
首页 新闻动态 技术专栏 银杏树下 学习考研 软件下载 求职招聘 许愿瓶 节日祝福 用户中心 精彩推荐 资源搜索 地图
专栏导航: AO开发 | SO开发 | ArcGIS桌面 | 超图桌面 | 开发语言 | 数据库 | WebGIS | 银杏文学 | 研究生考题 | FreeMap 谈天说地
   您现在位于: 首页技术专栏地理信息技术 → 正文
关系与关系类
07-12-07 00:00:00 作者:浩淼的天空 出处:浩淼的天空
关系是现实世界对象的一种普遍联系,如电力网络或土地数据库,都与数据库中的其它对象,如所有者存在联系,一个地块可能存在一个或者多个所有人。

在地理数据库中,关系可以存在地理对象之间、非地理对象之间和地理对象与非地理对象之间。关系被保存在关系类中。其机制的表现和一般关系数据库中使用主键外键来建立关系类似。

关系分为三种:一对一、一对多和多对多关系。在这三种关系中,多对对是比较复杂的,连普通的关系数据库都不能直接支持这种关系的存在,而是通过一种中间关系的形式来实现。在地理数据库中,对于多对多关系也是这样构造的,即在存在关系的AB之间,使用一个单独的表来保存他们的关系。

两个对象之间的关系是通过关键字段(key fields)来维系的,我们知道,这中关键字段在关系数据库中其实叫做主键和外键,但是,在关系数据库中,一个表或要素类的主键常常使用OID字段自动建立,因此,地理数据库的关键字段往往是第二主键。

拥有关系的对象,一中称为“源对象”,另外一种称为“目标对象”,他们的关系是:源对象拥有目标对象,目标对象被源对象拥有。在关系类中,这些被称为向前和向后标注。

关系分为两种:简单关系和复杂关系。在简单关系中,具有关系的A、B两个对象如果删除源对象A的时候,B不会消失;而在复杂关系中,目标对象的生命周期是由源对象来控制的,如果删除A,则B也会删除掉,如电线杆和变压器模型,如果源对象电线杆消失,其与之相关的变压器也会全部消失。复杂关系默认存在一对多的关系中。

关系类可以有属性,任何有属性的关系类都必须作为一个表被存储在数据库中,它有一对外键索引指向源类和目标类。在这种情况下,每一个关系都作为一条记录被保存在关系类表中。一对一或者一对多的关系类并不需要一个新表来存储关系,但是,任何一个多对多的关系都需要一个新的单独的表来存储这些外键。

在关系类中,还存在一种使得拥有关系的两个对象互动的机制:消息。我们可以设置这些消息的类型:源对象通知目标对象;目标对象通知源对象,互相通知和不通知四种。在设置这些消息机制后,当一个对象发生改变的时候,会自动发消息给与之关联的对象。在默认情况下,简单关系不会设置消息。

(本文已被浏览 次)
发布人:admin
推荐给好友:发送给好友
上篇新闻:
下篇新闻:
相关评论
发表我的评论
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  •   相关文章  

    关于我们 友情链接 ┋ 与我在线 ┋ 管理 ┋ TOP
    网站当前版本:GisPower CMS V3.0
    『GIS 动力』- http://www.gispower.org/
    联系我们:webmaster#gispower.org
    Copyright (c) 2003-2007 GisPOwer.Org. All Rights Reserved.

                   滇ICP备05006901号