Some of my colleagues have asked me the following questions:
- We use the Oracle spatial sdo_geometry, isn't it useless arcsde?
- Whether we are using Oracle spatial or ARCSDE is a bit of a rip!
- Did the Create enterprise Geodatabase represent the use of ARCSDE? What is this action about?
- We don't use ARCSDE services, why do you say we use ARCSDE?
- ......
Because ask a lot of people, I intend to write down my understanding, and communicate with you, in order to accept the effect.
1. What is ArcSDE
The full name of SDE is the spatial database engine, which is called the engine because all of the spatial data IO needs to be managed by it. It belongs to the middleware technology, between the client and the database, which itself is not able to store spatial data (storage is done by the database), its role can be understood as the database objects (tables, views, etc.) can be abstracted into the concept of the upper-level GIS applications, such as feature, feature Class and so on.
2. How does ArcSDE work?
ARCSDE holds a system database object that is used to manage spatial information, collectively known as the Data Archive (Repository). As an example of Oracle database-based ARCSDE, the repository contains a data dictionary table, stored procedures, and several. dll files under the SDE user. A data dictionary table that stores metadata information such as feature classes, Feature class fields, feature class projections, feature class scopes, and stored procedures and. dll to implement GIS operations and operations on spatial data, such as methods for calculating polygon perimeter.
3. How spatial data is stored
As mentioned above, ARCSDE is not able to store spatial data, and data is stored in an RDBMS (relational database) (in fact not limited to RDBMS,ARCSDE also supports non-relational databases and Hadoop.) But now it's only about its relationship to Oracle spatial, so here's the RDBMS. As an example of vector data, it can be stored either as a Blob object in binary form or with a vector data type provided by an RDBMS or ARCSDE.
Initially, when ArcSDE and RDBMS did not provide the vector data type, all the data was stored in a serialized binary form, represented as a BLOB field in the database.
Stored as a BLOB field, although it solves the problem of storage, it does not make good use of the capabilities of the RDBMS. For example, it cannot operate with SQL (the so-called SQL operation, which is compared to our COM arcgisengine is that we do not need to use the ArcGIS interface to manipulate the data, we directly use the SQL statement to delete and change the spatial data to operate) It is very convenient to process spatial data (processing blobs need to be deserialized). To make better use of RDBMS resources, starting with ARCSDE 9.2, a structured data type--st_geometry is provided. Because the data is structured, querying the spatial data through SQL allows you to understand the content of the data, and it makes it easy to perform various operations on the data (such as updates) with SQL. This benefit is visible, it breaks through the limitations of ArcGIS, in particular, the user's data is a simple point line, and the business only relevant editing aspects, without the SDE version requirements, SQL operations will be very convenient and intuitive. These operations also reduce the operator's GIS threshold, but remember: high convenience and high risk are always coexisting .
In addition, RDBMS has introduced custom spatial data types, such as Oracle's Sdo_geometry. It is similar in function to St_geometry.
4. How to connect using ARCSDE
Before ARCSDE8.1, connecting a database through ARCSDE is a three-tier model. Since 8.1, ARCSDE provides two data-junction architectures, two-and three-tier models. A two-tier model is a direct-connect, three-tier model that is an ARCSDE service connection.
The ARCSDE Service connection model is as follows:
1 giomgr processes and multiple GSRVR processes are running on an ARCSDE server.
Giomgr is the ARCSDE server management process, which always exists, is responsible for monitoring the user connection request, assigning the corresponding GSRVR management process, the maintenance of the spatial data dictionary.
Gsrvr belongs to a process where a client requests a database connection, and a separate process named Gsrvr is assigned by Giomgr to be fully responsible for the meta data communication between the client and the server.
When using an ARCSDE service connection, you need to install the RDBMS Client software on the ARCSDE server. In this connection mode, after the client accesses the data table through the SDE service, the ArcSDE server server completes various operations on the data and returns the result of the operation to the client.
ARCSDE Direct-connect models such as:
Unlike the ARCSDE service connection, the GSRVR process is embedded in the client and no longer requires a server-side ARCSDE service. The ARCSDE direct drive and ARCSDE services are built with the same code. The difference is that the ARCSDE Direct drive is a series of dynamic link library DLLs that are installed and run in the process space of the client application, while the ARCSDE service is an executable program that runs on the server side.
When using ArcSDE direct connection, you need to install the DBMS client software on the clients. In this connection mode, various operations on the data (such as spatial analysis, editing, etc.) are done locally on the client after accessing the data table through SDE.
Direct connect with service under the ratio, the advantages are shown in:
- Direct Connect mode offload 20%-40% load over service connection
- Direct connect reduces the need for server-side memory
- Direct connection faster
- Direct-attached configuration supports failover, and service connections do not support RAC schemas
- You do not need to install the SDE service, nor do you need to maintain the SDE service
- Easy to deploy, switch environments simply package the tools with the Oracle client
- To connect to the database using the operating system authentication method, you must use Direct Connect
Disadvantages are shown in:
- High Requirements for client configuration
- All clients must have an Oracle client (or other database connection driver) installed
- The database client must be 32-bit
Note: ESRI has always recommended the use of direct Connect, since ESRI provides a direct connect method. Also, after ArcGIS 10.3, the SDE service is no longer available (that is, the Sdeservice tool is no longer available (starting at ArcGIS 10.1, ESRI officially recommends connecting to SDE directly, so the SDE service is no longer automatically installed at SDE installation, Need to manually use the Sdeservice tool to create the service).
5. What is ORACLE spatial?
ORACLE Spatial provides a set of SQL scenarios and functions for storing, retrieving, updating, and querying a collection of spatial features in a database. Mainly by the geometric data type, spatial index mechanism, a set of operational functions, management tools.
For Oracle databases, the fact that Oracle spatial can completely replace ARCSDE provides almost all of the capabilities that ARCSDE provides. In addition to providing data type Sdo_geometry, but also provides a large number of GIS application API, but also to achieve rendering and visualization, but in the implementation of the way, the richness of functionality, stability and ARCSDE is different.
6. What kind of combination is Oracle SPATIAL+ARCSDE?
Today, many of our projects do use Oracle spatial and ARCSDE at the same time. According to the answer to question 5th, we have a set of things enough, why are they used at the same time?
In Oracle SPATIAL+ARCSDE, Oracle Spatial provides vector data types, called Sdo_geometry, and ARCSDE is responsible for registering tables with sdo_geometry data types in the SDE repository , only after registering, the application layer of ArcMap, arcengine to recognize it. Because it does not have the concept of a table in the database for applications such as ArcMap, Arcengine, and so on, it has only the concepts of feature, Feature class, feature DataSet defined in Geodatabase. In other words, the reason to use SDE Repository is because our project was developed based on Arcengine. If the project is not developed on the basis of arcengine, but instead uses the SDK provided by Oracle Spatial, then we can completely use the Oracle without the SDE Repository, and we do not need to use ARCSDE at all. Spatial for a variety of GIS operations, rendering and visualization.
7, create enterprise Geodatabase exactly what to do
Before ArcGIS 10.0 (including 10.0), after installing the ARCSDE software, it jumps to the post installation interface. Here, you can choose to create a user, create a tablespace, install an SDE Repository, create an SDE service, and so on. Such as:
(When "complete" is selected, creating a user, creating a tablespace, installing the SDE Repository, creating the SDE service, four steps will be performed)
After 10.1, it is no longer necessary to install the ARCSDE software, the creation of the SDE user, the SDE tablespace, and the installation of the SDE repository are done by the Create Enterprise Geodatabase feature. The SDE service is no longer created by default compared to 10.1, and the SDE service needs to be created manually using the Sdeservice tool (ARCGIS 10.3 no longer provides the tool).
8. Without SDE Repository, why can I still see feature class through ArcMap?
Starting in ArcMap 10.1, if a table with the Sdo_geometry data type is not registered in the SDE Repository, it can be browsed without even the SDE Repository. In this case, ArcMap will read the Repository (metadata table) of Oracle spatial based on the vector data type, i.e., User_sdo_geom_metadata, as long as you can get the metadata information for that layer in Oracle spatial. You can also browse in ArcMap. However, this is also limited to browsing, as there are no advanced features of the SDE REPOSITORY,SDO Geodatabase model, such as topology building, versioning, and other features that will not be available.
9, Oracle SPATIAL+ARCSDE calculation is not used ARCSDE
as long as the SDE repository is used to say that ARCSDE is used.
Oracle spatial vs. ArcSDE relationships