Hi, my name is Michael. I'm a new Enterprise Architect for my organization and I'm trying to find some getting started links to understand the underlying data structure of our GIS database. We are using 10.1 I believe and are trying to upgrade. Specifically, I would like to understand what part of the GIS database is ESRI and what part is our data and what is the recommended method to not tightly couple our data to a specific ESRI DB release instance. Does that make sense?
Depending on your RDBMS used, but in general the tables, procedures, triggers, etc. are typically owned by the SDE schema/user.
If you create new tables via our ArcGIS clients, that are available, it will get registered with the Enterprise Geodatabase tables. If you create tables outside of ArcGIS products, i.e. SSMS, Toad, pgAdmin, etc., the will not be registered with the geodatabase.
I would highly recommend that you visit the Geodatabase space on GeoNet for more information or to post other questions.
Please let me know if you have any other questions. Thanks!
Thanks for your reply George. I guess my question is more basic than this in terms of putting up a message in the Geodatabase space when I think I need more basic information. SDE schema/user is just that right- the database owner of a set of tables? This refers to privileges. So are you saying that SDE is an ESRI provided schema owner for the "original" data tables and data dictionary for the ESRI portion of the database? How do you know the customer hasn't changed the underlying tables or data dictionary in your schema? I don't understand why ESRI has not provided a two database model. One database ESRI uses and another database that is "data-user specific"?
The SDE user is what we call the geodatabase administrator. They own the set of repository functions that allow the DB to perform the functions of a geodatabase. So yes, SDE is the Esri provided schema.
To be honest, you do not know if someone has changed the underlying tables. However, the ArcGIS client will update them as needed to register the items for use within the Esri and other ecosystems.
We used to have something like the 2 DB model, but they got way too complicated and created "double" the administration overhead.
You can have other users (i.e. GIS, DATA, DATAOWNER, etc.) own data in their specific schema. We highly recommend that you have a data owner that is not SDE.
Hope this helps!
There is always two sets of data with respect to defining a "whole GIS" system right?
1. Data specific to ESRI that I as a user would not necessarily want to ever change. Including: Generic data applying to all users. Specific data relating to a particular users settings, the whole ecosystem. Software specific settings including security and configuration, etc.
2. Data specific to my "particular data".
It seems like ESRI is expecting the second to data to be in this same database merely separated by this db schema boundary. Has ESRI matured their model to call or expose an external web service for this second set of data instead of having it in the database? If so, what would it be called? I know there could be perceived performance hits on this additional layer--but it is uncoupled at that point which is a very good thing. Abstraction and uncoupling usually comes at the expense of complication, but the opposite kind of complication, also called spaghetti is much, much worse at least for an enterprise. I agree that it is really just complicated for a small organization.
I would say that is the general idea. This is a very complex and detailed topic, as you have found out. From the DBA and GIS side.
The data can be accessed via ArcGIS Enterprise which is able to be exposed via an external web service.
The Enterprise Geodatabase is a great tool to use, but it depends on what your ultimate goal is.