This topic continues the general introduction to geospatial data storage covered by the Data Storage Strategies and the Spatial DBMS topics. This topic should be read together with those two topics, which introduce terminology and concepts used in this topic as well. This topic breaks out information specific to ESRI use of databases for new types of ESRI geospatial storage for the convenience of ESRI users.
ESRI, a legacy GIS vendor, has introduced a variety of products that can work with geometry and attribute data stored in DBMS servers. These are not spatial DBMS servers as such are generally understood, but rather are software products and middleware software that manage data stored in real DBMS servers using either blob or geometry types if the DBMS is a spatial DBMS. It is a classic case of a GIS vendor providing their own spatial capabilities for a DBMS by using their own non-native geometry types together with supporting capabilities supplied by the GIS vendor.
Manifold can also work with non-native data stored in databases using ESRI conventions. In such cases Manifold will work with ESRI's geometry types and supporting metadata tables using ESRI conventions for compatibility with ESRI products.
Nomenclature
Many users are baffled by ESRI nomenclature when it comes to parsing the bewildering variety of marketing phrases ESRI has used to describe ESRI "geodatabase" formats. If you feel baffled, you are not alone. In a nutshell, ESRI at one point introduced the idea of storing geometry in DBMS using a format that more or less boiled down to storing shapefiles within blobs. This was done in a complex way using middleware called ArcSDE that worked with serious databases like Oracle, and it was also done in a somewhat simplified way in Personal Geodatabase products that used Access .MDB files and were later apparently updated to work with MSDE (a free version of Microsoft SQL Server) or with SQL Server Express. In recent years, the ArcSDE product name seems to have been dropped by ESRI: more recent versions of this technology have been packaged as part of the ArcGIS product family and have been referred to as geodatabases.
All such storage methods are technically similar and are generally referred to as SDE geodatabase formats or as Personal geodatabase formats when in the somewhat simplified form that uses Access .MDB for file-based storage. Since all such formats are similar or derived from ArcSDE, they are referred to by Manifold documentation as ESRI SDE or as ESRI Geodatabase or as Personal Geodatabase data sources, the various terms being used interchangeably, regardless of which file format or DBMS system is used to store the data.
The terms are used interchangeably because some ESRI users come from a long ArcSDE tradition and don't realize that "geodatabase" is the new term for the same old thing, while some newer ESRI users might not realize that their "geodatabase" is really SDE technology with a new name. Because of the confusion caused by ESRI names for their SDE and their Personal technology being so similar, Manifold documentation will often refer to SDE and Personal geodatabases to underline that a particular capability is available whether one is working with either SDE geodatabases or the somewhat simpler Personal geodatabases.
Manifold can also connect to ESRI SDE and Personal geodatabase data sources for full read / write / edit capability. The only limitation is that unlike all other work with all other spatial DBMS, Manifold will not create new SDE or new Personal geodatabases, nor will Manifold add new drawings to an existing geodatabase. If we already have drawings in an SDE or Personal geodatabase, Manifold will happily import or link to those drawings. We can edit those drawings, adding new objects and deleting or editing old objects and in general perform whatever operation we like. For example, we could link to an existing drawing in a geodatabase and then copy and paste objects from some other drawing into that drawing. However, we cannot create new drawings or new geodatabases.
ESRI ArcSDE / ArcGIS / Personal Geodatabases
ESRI's ArcSDE product stores drawing geometry and other GIS data within ordinary, non-spatial DBMS servers. ESRI products refer to such data as geodatabases or SDE data sources (see notes on nomenclature above).
Technically, one can organize an SDE data source on almost any database. However, since this can not be done in a database-neutral fashion and since setting up an SDE data source involves creating database-specific objects, SDE data sources are only organized on big-name databases explicitly supported by ESRI, such as IBM DB2, IBM Informix, Microsoft SQL Server 2000 or 2005 and Oracle. SDE data sources using Access .mdb appear to have been replaced with SQL Server Express 2005. Personal geodatabases seem to be found almost exclusively within .mdb files.
Manifold knows to look for SDE or Personal geodatabase data if we use Database Console to connect to a database. Manifold usage of SDE or Personal geodatabase data sources uses Database Console as the primary interface and includes:
· Connecting to an SDE data source.
· Listing the drawings in an SDE data source in Database Console.
· Importing drawings.
· Linking drawings in read-write mode.
When importing or linking drawings from SDE or Personal geodatabase data sources Manifold will fetch the coordinate systems (projections) in use from ESRI metadata. Importing or linking a drawing assigns it the coordinate system stored on the data source.
Manifold will convert ESRI style objects within the SDE database into Manifold equivalents. For example, reading data from an SDE geodatabase reads parametric curves, flattening them into lines with straight line segments. As of the current writing Manifold does not accept "multipoint" values, although this capability is expected to be added in future editions.
Although Manifold can connect to an existing SDE database, read (import) drawings, write drawings, link drawings and edit drawings, Manifold will not export new drawings to an SDE database nor will Manifold create a new SDE database.
See the Spatial DBMS topic for more information on the advantages and disadvantages of spatial storage within a DBMS.
Notes
Why doesn't Manifold create new ESRI geodatabases?
There are two reasons for this limitation. The first reason is that it does not make sense to create new SDE databases since these are significantly inferior to using native standards within a true spatial DBMS like Oracle or SQL Server. This should not be an obstacle for ESRI users who are operating legacy SDE databases, since such users normally have ESRI software available should they ever need to create a new SDE database.
The limitation does not affect non-legacy users since new GIS users will never choose SDE over a real spatial DBMS. In modern times it does not make sense to create a new SDE database when true spatial DBMS servers, like Oracle Spatial or SQL Server 2008 spatial, are now available. Using a true spatial DBMS provides far greater reliability, performance, flexibility and interoperability with other applications and usually dramatically lower costs as well. It therefore makes no sense to use SDE if we have a real spatial DBMS available.
The purpose of Manifold's ability to work with SDE is therefore to provide the capability of dynamically working with existing SDE databases in legacy installations so that ESRI users can enjoy the convenience of working with that data and, eventually, rescue it when they transition to modern spatial DBMS.
The second reason is that from a technical perspective both SDE and Personal geodatabases are regarded by Manifold engineering as lacking desired reliability due to the convoluted architecture employed in those ESRI technologies. Simply put, the manifold.net team does not want to be blamed for problems arising from that lack of robustness. If someone wants to create a new drawing in an ESRI geodatabase and they run into problems when using an ESRI tool to create that drawing, then the problem is clearly ESRI's fault. In contrast, if Manifold were used to create that new drawing no matter how well Manifold accomplished the task if problems arose due to the basic architectural unreliability of ESRI geodatabases it would be Manifold that would be blamed. No thanks!
See Also