由AO查询条件问题谈ArcSDE(3)
- 好了,我们再来解剖一下ArcSDE的DBMS是如何组织的吧。按照我前一篇blog介绍的方法,在sde用户中建立gis用户,这样sde方案中全是系统表,而gis方案中则是数据表,这样便于我们来研究整个架构。
我的SDE库结构如下:两个要素数据集,每个数据集中分别有30个要素类,与数据集同路径的位置有一个Table对象。
打开SDE的方案中的表,然后打开GDB_OBJECTCLASSES,我们将在这个表中看到SDE中所有的要素类和表的记录,一共是61行记录,其记录包括:该对象类的ID(这个狠重要哦)、所有者(均是GIS)、对象类的名称(表名或要素类名),最后一个字段是该对象类属于哪个要素数据集,不过只有60条记录有这个值。
打开GDB_FEATURECLASSES表,我们可以看到60条记录,即60个要素类将被看作是要素类;打开GDB_FEATUREDATASET,我们会看到两条记录,记录了两个要素数据集的名字。
继续往下看,打开GEOMETRY_COLUMNS的表,看看是什么内容。哦,原来是将一个B表和它的F表关联的记录,一个B表的OID如果是121,则它的F表就是“F121”。
再看LAYERS表,这下许多秘密就可以看到了,某个图层的图层ID、数据表名、空间字段名、空间范围都保存在这里,这也是为什么一个要素类载入空间后会有范围显示的原因。
好了,使用sde帐号,我们首先就看这些辅助表,我们应该可以意识到,这里面都是构建架构的辅助表,不存在任何数据。
再使用gis帐号,打开gis方案中的表,随便打开一个B表,看看其中记录的值,和在ArcCatalog中的差不多,但最后有个字段SHAPE的值,怎么是NUMBER型?它不是LONG RAW的吗?不要着急,查查它的OID号,然后打开这个B表的F表,看看结果,注意下这几个字段的值:
- NUMOFPTS 我们讲过,SDE保存数据是使用有序点集合和实体曲线对象完成的,这个字段就告诉我们,这个要素使用了几个点
- EMINX、EMINY、EMAXX、EMAXY,这些是告诉我们一个要素的Envelope值
- AREA和LEN,最常见的字段
- POINTS 这个字段才是几何内容所在,它才是LONG RAW型的
Related Items
Or, take a look at Archives and Categories
您好,您的文章对我很有启发。我现在正在做有关空间数据引擎的硕士论文,急需ARCSDE方面的资料,网上找到的不多,能否将资料分享一下,多谢了!我的邮箱:a322@163.com