De tabla a clase de relación (Administración de datos)

Resumen

Crea una clase de relación con atributos a partir de las tablas de origen, de destino y de relación.

Uso

  • Esta herramienta crea una tabla en la base de datos que contiene los campos de atributos seleccionados de la tabla de relación. Estos campos almacenan atributos de la relación que se han atribuido ni a la clase de origen ni a la de destino. Por ejemplo, en una base de datos de parcela, puede tener una clase de relación entre las parcelas y los propietarios en la cual los propietarios son dueños de las parcelas y las parcelas pertenecen a los propietarios. Un atributo de esa relación puede ser el porcentaje de la propiedad.

  • Las relaciones simples o punto a punto comprenden dos o más objetos de la base de datos que existen de forma independiente uno de otro. Por ejemplo, en una red de ferrocarriles puede haber cruces de ferrocarril que tengan una o más lámparas de señal relacionadas. Sin embargo, puede existir un cruce de ferrocarril sin una lámpara de señal y puede haber lámparas de señal en la red de ferrocarriles donde no hay cruces de ferrocarril. Las relaciones simples pueden tener una cardinalidad de uno a uno, de uno a muchos o de muchos a muchos.

  • Una relación compuesta es aquella en la cual la duración de un objeto controla la duración de sus objetos relacionados. Por ejemplo, los postes de electricidad sostienen los transformadores y los transformadores están montados en los postes. Una vez eliminado un poste, se propaga un mensaje de eliminación a sus transformadores relacionados, que se eliminan de la clase de entidad de los transformadores. Las relaciones compuestas son siempre de uno a muchos.

  • Las etiquetas de ruta destino-origen y origen-destino describen la relación al navegar de un objeto a otro. La etiqueta de ruta origen-destino describe la relación al navegar desde la clase de origen a la clase de destino. En el ejemplo de postes y transformadores, una etiqueta de ruta origen-destino podría ser: los postes sostienen los transformadores. La etiqueta de ruta destino-origen describe la relación al navegar desde el destino a la clase de origen. En el ejemplo de postes y transformadores, una etiqueta de ruta destino-origen podría ser "Los transformadores están montados en los postes".

Parámetros

EtiquetaExplicaciónTipo de datos
Tabla de origen

Tabla o clase de entidad que se asociará a la tabla de destino.

Table View
Tabla de destino

Tabla o clase de entidad que se asociará a la tabla de origen.

Table View
Clase de Relación de salida

Clase de relación que se creará.

Relationship Class
Tipo de relación

Especifica el tipo de asociación que se creará entre las tablas de origen y de destino.

  • SimpleCada objeto será independiente del otro (una relación de principal a principal). Esta es la opción predeterminada.
  • CompuestaLa duración de un objeto controlará la duración de su objeto relacionado (una relación de principal a secundario).
String
Etiqueta de ruta origen-destino

Una etiqueta que describe la relación que se está transfiriendo desde la tabla o clase de entidad de origen a la tabla o clase de entidad de destino.

String
Etiqueta de ruta destino-origen

Una etiqueta que describe la relación que se está transfiriendo desde la tabla o clase de entidad de destino a la tabla o clase de entidad de origen.

String
Dirección del mensaje

Especifica la dirección en la que se propagarán los mensajes entre los objetos en la relación. Por ejemplo, en una relación entre postes y transformadores, cuando se elimina el poste, envía un mensaje a sus objetos transformadores relacionados y les informa que fue eliminado.

  • Ninguna (no se propagan mensajes)No propagará ningún mensaje. Esta es la opción predeterminada.
  • Hacia delante (de origen a destino)Los mensajes se propagarán desde el origen hacia el destino.
  • Hacia atrás (de destino a origen)Los mensajes se propagarán desde el destino hacia el origen.
  • Ambas direccionesLos mensajes se propagarán desde el origen hacia el destino y desde el destino hacia el origen.
String
Cardinalidad

Especifica la cardinalidad de la relación entre el origen y el destino.

  • Uno a uno (1:1)Cada objeto de la tabla o clase de entidad de origen puede estar relacionado con ningún o un objeto de la tabla o clase de entidad de destino. Esta es la opción predeterminada.
  • Uno a muchos (1:M)Cada objeto de la tabla o clase de entidad de origen puede estar relacionado con varios objetos de la tabla o clase de entidad de destino.
  • Muchos a muchos (M:N)Varios objetos de la tabla o clase de entidad de origen pueden estar relacionados con varios objetos de la tabla o clase de entidad de destino.
String
Tabla de relación

Tabla que contiene los atributos que se agregarán a la clase de relación.

Table View
Campos de atributos

Los nombres de los campos que contienen los valores de atributo que se agregarán a la clase de relación. Los campos deben estar presentes en el valor del parámetro Tabla de relación.

Field
Clave principal de origen

El campo de la tabla de origen que se utilizará para crear la relación.

String
Clave externa de origen

El nombre del campo de la tabla de relación que hace referencia al campo de clave principal de la tabla o clase de entidad de origen. Para las clases de relación basadas en tablas, estos valores se utilizan para rellenar las relaciones en la clase de relación para que no puedan ser nulas.

String
Clave principal de destino

El campo de la tabla de destino que se utilizará para crear la relación.

String
Clave externa de destino

El campo de la tabla de relación que hace referencia al campo de clave principal de la tabla o clase de entidad de destino. Para las clases de relación basadas en tablas, estos valores se utilizan para rellenar las relaciones en la clase de relación para que no puedan ser nulas.

String

arcpy.management.TableToRelationshipClass(origin_table, destination_table, out_relationship_class, relationship_type, forward_label, backward_label, message_direction, cardinality, relationship_table, attribute_fields, origin_primary_key, origin_foreign_key, destination_primary_key, destination_foreign_key)
NombreExplicaciónTipo de datos
origin_table

Tabla o clase de entidad que se asociará a la tabla de destino.

Table View
destination_table

Tabla o clase de entidad que se asociará a la tabla de origen.

Table View
out_relationship_class

Clase de relación que se creará.

Relationship Class
relationship_type

Especifica el tipo de asociación que se creará entre las tablas de origen y de destino.

  • SIMPLECada objeto será independiente del otro (una relación de principal a principal). Esta es la opción predeterminada.
  • COMPOSITELa duración de un objeto controlará la duración de su objeto relacionado (una relación de principal a secundario).
String
forward_label

Una etiqueta que describe la relación que se está transfiriendo desde la tabla o clase de entidad de origen a la tabla o clase de entidad de destino.

String
backward_label

Una etiqueta que describe la relación que se está transfiriendo desde la tabla o clase de entidad de destino a la tabla o clase de entidad de origen.

String
message_direction

Especifica la dirección en la que se propagarán los mensajes entre los objetos en la relación. Por ejemplo, en una relación entre postes y transformadores, cuando se elimina el poste, envía un mensaje a sus objetos transformadores relacionados y les informa que fue eliminado.

  • NONENo propagará ningún mensaje. Esta es la opción predeterminada.
  • FORWARDLos mensajes se propagarán desde el origen hacia el destino.
  • BACKWARDLos mensajes se propagarán desde el destino hacia el origen.
  • BOTHLos mensajes se propagarán desde el origen hacia el destino y desde el destino hacia el origen.
String
cardinality

Especifica la cardinalidad de la relación entre el origen y el destino.

  • ONE_TO_ONECada objeto de la tabla o clase de entidad de origen puede estar relacionado con ningún o un objeto de la tabla o clase de entidad de destino. Esta es la opción predeterminada.
  • ONE_TO_MANYCada objeto de la tabla o clase de entidad de origen puede estar relacionado con varios objetos de la tabla o clase de entidad de destino.
  • MANY_TO_MANYVarios objetos de la tabla o clase de entidad de origen pueden estar relacionados con varios objetos de la tabla o clase de entidad de destino.
String
relationship_table

Tabla que contiene los atributos que se agregarán a la clase de relación.

Table View
attribute_fields
[attribute_fields,...]

Los nombres de los campos que contienen los valores de atributo que se agregarán a la clase de relación. Los campos deben estar presentes en el valor del parámetro relationship_table.

Field
origin_primary_key

El campo de la tabla de origen que se utilizará para crear la relación.

String
origin_foreign_key

El nombre del campo de la tabla de relación que hace referencia al campo de clave principal de la tabla o clase de entidad de origen. Para las clases de relación basadas en tablas, estos valores se utilizan para rellenar las relaciones en la clase de relación para que no puedan ser nulas.

String
destination_primary_key

El campo de la tabla de destino que se utilizará para crear la relación.

String
destination_foreign_key

El campo de la tabla de relación que hace referencia al campo de clave principal de la tabla o clase de entidad de destino. Para las clases de relación basadas en tablas, estos valores se utilizan para rellenar las relaciones en la clase de relación para que no puedan ser nulas.

String

Muestra de código

Ejemplo de TableToRelationshipClass (ventana de Python)

El siguiente script de la ventana de Python muestra cómo utilizar la función TableToRelationshipClass.

import arcpy
arcpy.env.workspace = "C:/data/Montgomery.gdb"
arcpy.TableToRelationshipClass_management("owners", "Parcels", "ownersParcels_RelClass",
                                          "SIMPLE", "Owns", "Is Owned By", "BACKWARD",
                                          "MANY_TO_MANY", "owners", ["OWNER_PERCENT", "DEED_DATE"],
                                          "OBJECTID", "owner_id", "OBJECTID", "parcel_id")
Ejemplo de TableToRelationshipClass (script independiente)

Crear una clase de relación con atributos entre una clase de entidad de parcela y una tabla con información del propietario.

# Name: TableToRelationshipClass.py
# Description: Create an attributed relationship class between parcels
#              feature class and table with owner information
# Author: ESRI

# import system modules 
import arcpy
from arcpy import env

# Set environment settings
env.workspace = "C:/data"

# Copy owners.dat to file gdb table, since both tables to be related
# must be in the same database
ownerDat = "owners.dat"
ownerTbl = "Montgomery.gdb/owners"
arcpy.CopyRows_management(ownerDat, ownerTbl)

# Create attributed relationship class between 'parcel' parcel layer
# and 'owner' table with additional parcel owner information
parcel = "Montgomery.gdb/Parcels"
relClass = "Montgomery.gdb/parcelowners_RelClass"
forLabel = "Owns"
backLabel = "Is Owned By"
attributeFields = ["OWNER_PERCENT", "DEED_DATE"]
originPK = "OBJECTID"
originFK = "owner_ID"
destinationPK = "OBJECTID"
destinationFK = "parcel_ID"
arcpy.TableToRelationshipClass_management(ownerTbl, parcel, relClass, "SIMPLE",
                                          forLabel, backLabel, "BACKWARD", "MANY_TO_MANY",
                                          ownerTbl, attributeFields, originPK, originFK,
                                          destinationPK, destinationFK)

Temas relacionados