Tablas internas

El tipo de datos de una tabla interna se especifica completamente por su tipo de línea, clave y tipo de tabla.

Tipo de Línea

El tipo de línea de una tabla interna puede ser cualquier tipo de datos. El tipo de datos de una tabla interna es normalmente una estructura. Cada componente de la estructura es una columna en la tabla interna. Sin embargo, el tipo de línea también puede ser elemental u otra tabla interna.

Clave

La clave identifica las filas de la tabla. Hay dos tipos de clave para las tablas internas: la clave estándar y una clave definida por el usuario. Puede especificar si la clave debe ser ÚNICA o NO ÚNICA. Las tablas internas con una clave única no pueden contener entradas duplicadas. La singularidad depende del método de acceso a la tabla.

En las tablas con tipo de fila estructurada, la clave estándar se forma a partir de todas las columnas de tipo de carácter de la tabla interna. Si una tabla tiene un tipo de línea elemental, la clave predeterminada es la línea completa. La clave predeterminada de una tabla interna cuyo tipo de línea es una tabla interna, la clave predeterminada está vacía. En tablas con tipo de fila no estructurada, la clave estándar consiste en toda la fila. Si el tipo de fila también es una tabla, se define una clave vacía.

La clave definida por el usuario puede contener cualquier columna de la tabla interna que no sea una tabla interna en sí y que no contenga tablas internas. Las referencias se permiten como claves de tabla. Las tablas internas con una clave definida por el usuario se denominan tablas de claves. Al definir la clave, la secuencia de los campos clave es significativo. Debe recordar esto, por ejemplo, si tiene la intención de ordenar la tabla de acuerdo con la clave.

Tipo de tabla

El tipo de tabla determina cómo ABAP accederá a entradas de tabla individuales. Las tablas internas se pueden dividir en tres tipos:

Las tablas estándar tienen un índice lineal interno. A partir de un tamaño particular, los índices de las tablas internas se administran como árboles. En este caso, la sobrecarga de administración de índices aumenta en relación logarítmica y no lineal con el número de líneas. El sistema puede acceder a los registros utilizando el índice de tabla o la clave. El tiempo de respuesta para el acceso a las claves es proporcional al número de entradas de la tabla. La clave de una mesa estándar siempre no es única. No se puede especificar una clave única. Esto significa que las tablas estándar siempre se pueden llenar muy rápidamente, ya que el sistema no tiene que verificar si ya hay entradas existentes.

Las tablas ordenadas siempre se guardan ordenadas por la clave. También tienen un índice interno. El sistema puede acceder a los registros utilizando el índice de tabla o la clave. El tiempo de respuesta para el acceso a claves es logarítmicamente proporcional al número de entradas de tabla, ya que el sistema utiliza una búsqueda binaria. La clave de una tabla ordenada puede ser única o no única. Al definir la tabla, debe especificar si la clave debe ser ÚNICA o NO. Las tablas estándar y las tablas ordenadas se conocen genéricamente como tablas de índice.

Las tablas con Hash no tienen índice lineal. Solo puede acceder a una tabla con hash usando su clave. El tiempo de respuesta es independiente del número de entradas de tabla, y es constante, ya que el sistema accede a las entradas de tabla utilizando un algoritmo hash. La clave de una tabla con hash debe ser única. Al definir la tabla, debe especificar la clave como ÚNICA.

Tablas internas genéricas

A diferencia de otros tipos de datos locales en programas, no es necesario especificar completamente el tipo de datos de una tabla interna. En su lugar, puede especificar una construcción genérica, es decir, la clave o el tipo de clave y línea de un tipo de datos de tabla interna pueden permanecer sin especificar. Puede utilizar tablas internas genéricas para especificar los tipos de símbolos de campo y los parámetros de interfaz de los procedimientos . No se pueden usar para declarar objetos de datos.

Leave a Reply