7 votos

Restringir los valores a los códigos de dominio (más allá de la tabla de atributos)

La geodatabase de ESRI se pueden asignar campos dominios. Los dominios son almacenados en XML columnas en las tablas del sistema de geodatabase. ArcGIS Desktop utiliza los dominios como las tablas de búsqueda (un.k.una. la validación de las tablas). Cuando los usuarios editar los datos en el attribute table o attribute editing window, los valores se limita a lo que es en los dominios. Esta es una herramienta útil para hacer cumplir la integridad de los datos en el nivel de aplicación.

Sin embargo, es fácil para los usuarios a querer subvertir los dominios mediante el uso de la field calculator, ArcCatalog LOAD tool, geoprocessing tools, etc.. Esta es la principal causa de errores en tablas de geodatabase en mi organización.

Es allí una manera de utilizar dominios para restringir los valores que se pueden introducir utilizando el field calculator, ArcCatalog LOAD tool, geoprocessing tools, etc., realmente la fuerza de la integridad de los datos? (Idea: ¿el nivel de base de las limitaciones de utilizar el XML dominios?)

7voto

Alex Tereshenkov Puntos 13433

Reglas de negocio vs las reglas de integridad de datos

Cuando el modelo de la base de datos, especificar la lógica de negocio en dos espacios:

una. Las reglas de integridad de datos. Esto incluye, entre otros, tener una columna de enteros de modo que los usuarios no serán capaces de entrar en las cadenas.

b. El dominio de la empresa, reglas. Esto incluye la posibilidad de cheque/único/restricciones de clave externa en columnas por lo que no será posible almacenar valores duplicados o ilegal de valores.

Creo que es una opción válida para el uso de la geodatabase dominios a establecer las reglas para el dominio de la empresa, sin embargo debe tener en cuenta que dichas reglas son realmente ayudantes sólo como que no exponga cualquier restricción en la tabla de base de datos en sí. Por otro lado, te gustaría que tu geodatabase jugando un papel central en la definición de las reglas de negocio para ArcGIS usuarios finales.

Posible solución

Aquí es lo que ha funcionado para mí la mejor de los últimos años. Supongamos que tenemos una clase de entidad Roads (almacenados como una tabla de base de datos) que almacena información acerca de los caminos y tiene al menos una columna llamada Type.

  1. Crear una nueva tabla de base de datos llamado RoadType con dos columnas, Id y Description.
  2. Rellenar esta tabla de acuerdo a su negocio las reglas de dominio (por carretera puede ser mayor, menor, carretera, autopista, autopista, rampa tipo). Así, se tiene por ejemplo 10 filas en esta tabla.
  3. Crear una clave externa conexión de la Roads clase de entidad Type columna RoadType tabla Id de columna. Esto significa que no será posible definir una función como un tipo de vía de un valor que no está en la Id de columna.
  4. Ahora utiliza este RoadType tabla para crear una geodatabase de dominio (se puede hacer en arcpy si usted se siente cómodo con las secuencias de comandos o usando GP de herramientas).

Ventajas de la solución

  1. Mantener su dominio de la empresa, reglas en una simple tabla de base de datos disponibles para otras aplicaciones que puede trabajar con SQL y ellos no tienen que trabajar con XML (como cuando uno está tratando de obtener información acerca de la geodatabase dominios utilizando la llanura de SQL). Si su tabla de base de datos serán editados por otras aplicaciones que no son conscientes de la geodatabase de ArcGIS dominios (tal vez usted tiene un no-espacial de la operación por lotes de carga de datos en el Roads clase de entidad de cada noche), usted puede estar seguro de que la integridad de los datos se hará cumplir.

  2. Usted todavía está utilizando la geodatabase dominios para los usuarios de ArcGIS que son de editar los datos de un cliente rico como ArcMap y cuando la función de edición de atributos, van a ver las opciones disponibles para un campo que tiene un dominio asociado con él. Esto es realmente útil.

  3. Cuando usted encuentra que usted debe agregar un nuevo tipo de carretera, se trata de escribir un breve fragmento de código SQL que se va a insertar nuevas filas en la RoadType tabla y, a continuación, utilizando arcpy a actualizar la geodatabase de dominio en consecuencia.

  4. Esto hace que el mantenimiento de la geodatabase dominios de muy fácil en caso de que usted se mueva de su base de datos a otra base de datos donde no se dispone de Esri geodatabase corporativa habilitada, la integridad de los datos reglas se seguirán aplicando. También, si usted va a cargar la base de datos de las tablas en una nueva geodatabase corporativa, siempre puede crear una geodatabase de dominio a través de la RoadType tabla desde su tabla de reglas de negocio (RoadType) después de su clase de entidad.

QA/QC para el uso de ArcGIS

Uno también quisiera realizar diversas QA/QC de operaciones en el negocio de datos. No-espacial de la integridad de los datos puede ser aplicado con bastante facilidad, como se describe anteriormente. Sin embargo, la comprobación de la integridad del espacio puede ser mucho más difícil de realizar. Aunque uno podría escribir SQL con Oracle Spatial o ST_Geometry funciones, me gustaría sugerir el uso de herramientas de ArcGIS para esto.

Usted puede utilizar varias herramientas de QA/QC que puede hacer un montón de cheques en forma automatizada. Es importante tener en cuenta que usted puede programar sus módulos de Python para ejecutar en un momento determinado utilizando el Programador de Tareas de Windows.

  1. Topología de Geodatabase (también puede utilizar el GP de herramientas tales como Validate Topology y Export Topology Errors como parte de su secuencia de comandos de Python).

  2. Datos de Revisor extensión proporciona una gran cantidad de cheques. De nuevo, usted puede fácilmente programar una tarea tal como se especifica aquí, en la página de Ayuda.

  3. Personalizado de secuencias de comandos de Python que de donde usted puede utilizar el poder de la arcpy para generar informes sobre el QA/QC hecho y edición de datos según sea necesario.

2voto

user62572 Puntos 587

Una alternativa es la comprobación de valores erróneos después de que'rlve ha introducido, en lugar de impedir que se escribe en el primer lugar.

Ha sido un tiempo desde que he hecho esto. Áspero de un flujo de trabajo es: Para cada tabla, para cada campo con un dominio, compruebe que todos los valores contra el dominio asociado.

Esto podría ser hecho en Python, aunque sería muy lento. Yo prefiero hacerlo en procedimiento SQL (PL/SQL es la velocidad del rayo). Puedo revisar toda la base de datos en menos tiempo del que se necesita para ArcPy caliente (aprox. 5 segundos).

Áspero pasos:

1 . Lista de todos los campos y sus dominios, para cada tabla con SQL (table_name, nombre_de_campo, domain_name)

2a. Bucle a través de la lista de campos, comprobar en las tablas de búsqueda

2b. O, en lugar de un bucle, crear una función para comprobar los valores, en contra de las tablas de búsqueda

1voto

Son of a Beach Puntos 184

No es posible prevenir el mal uso de los valores introducidos por otros medios, a continuación, la entrada manual de datos. Esto es un grave dolor de cabeza, y debe ser dirigida por Esri!

Evitar en ArcMap:

Sin embargo, usted puede utilizar el "Validar" en la opción "Editor" del menú para comprobar las características con valores no válidos. Usted tendrá que tener la barra de herramientas de Edición visible para esto.

Para hacer esto:

  • tener una sesión de edición en ejecución ( Editor -> Iniciar la Edición )
  • seleccione las características que desea validar
  • seleccione "Validar Funciones" del "Editor" en el menú

La salida de este comando es bastante vago, pero al menos dirá si las características de los atributos contienen valores válidos o no (de acuerdo a sus asignado dominios). Si no, entonces le corresponde a usted para averiguar cuáles son los que están mal, pero al menos es un comienzo.

Por desgracia, el validar las características de opción sólo funciona en las clases de entidad, no de no-tablas espaciales, como el nombre implica.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X