Tipos de tablas
En Db2 los datos de usuario se almacenan en tablas. Db2 da soporte a varios tipos de tablas, cada una de las cuales tiene su propio propósito y características.
Db2 da soporte a los siguientes tipos de tablas:
- tabla solo de acelerador
- Una tabla que almacena filas solo en el acelerador, no en Db2. La definición de tabla y columna de la tabla de solo acelerador está contenida en las tablas de catálogo de Db2. Cualquier consulta que haga referencia a la tabla solo de acelerador, se debe ejecutar en el acelerador. Si una consulta que hace referencia a una tabla solo de acelerador no se puede seleccionar para acelerar las consultas, se emite un error. Para cambiar el contenido de una tabla solo de acelerador, la sentencia de cambio de datos se debe ejecutar en el acelerador.
- tabla de archivo
- Tabla que almacena las filas que se han suprimido de otra tabla.
- tabla que admite archivos
- Tabla que contiene una tabla de archivado asociada. Cuando se suprimen filas de una tabla habilitada para archivado, Db2 puede insertar automáticamente esas filas en una tabla de archivado.
- tabla auxiliar
- Tabla que se ha creado con la sentencia de SQL CREATE AUXILIARY TABLE y se utiliza para contener los datos para una columna definida en una tabla base.
- tabla base
- El tipo de tabla más común en Db2. Para crear una tabla base utilice la sentencia de SQL CREATE TABLE. La tabla de catálogo de Db2, SYSIBM.SYSTABLES, almacena la descripción de la tabla base. La descripción de la tabla y los datos de la tabla son persistentes. Todos los programas y usuarios que hacen referencia a este tipo de tabla, hacen referencia a la misma descripción de la tabla y a la misma instancia de la tabla.
- tabla de réplica
- Tabla estructuralmente idéntica a una tabla base. Para crear una tabla de réplica utilice una sentencia ALTER TABLE para la tabla base que incluya una cláusula ADD CLONE. La tabla de réplica se crea en una instancia diferente del mismo espacio de tablas que la tabla base, es estructuralmente idéntica a la tabla base en todos los aspectos y tiene los mismos índices, desencadenantes BEFORE y objetos LOB. En el catálogo de Db2, la tabla SYSTABLESPACE indica que el espacio de tabla solo tiene una tabla, pero SYSTABLESPACE.CLONE indica que existe una tabla de clonación. Las tablas clonadas solo pueden crearse en un espacio de tablas de partición por rango o partición por crecimiento gestionado por Db2. La tabla base y la tabla de réplica tienen conjuntos de datos VSAM subyacentes distintos (identificados por sus números de instancia de conjunto de datos) que contienen filas de datos independientes.
- tabla vacía
- Una tabla con cero filas.
- tabla histórica
- Una tabla que se utiliza para almacenar versiones históricas de filas de la tabla temporal de periodo del sistema asociada.
- tabla de consulta materializada
- Tabla, definida con la sentencia de SQL CREATE TABLE, que contiene datos
materializados que proceden de una o más tablas fuente. Las tablas de consultas materializadas son útiles para
consultas complejas que se ejecutan en granes cantidades de
datos. Db2 puede precalcular la totalidad o parte de dichas consultas y utilizar los resultados precalculados, o materializados, para responder a las consultas de manera más eficiente. Las tablas de consultas materializadas se
utilizan con frecuencia en aplicaciones de depósito de datos e inteligencia
empresarial.
Varias tablas de catálogo de Db2, incluidas SYSIBM.SYSTABLES y SYSIBM.SYSVIEWS, almacenan la descripción de la tabla de consulta materializada e información sobre su dependencia en una tabla, vista o función. Los atributos que definen una tabla de consulta materializada indican a Db2 si la tabla es:
- Está mantenida por el sistema o mantenida por el usuario.
- Es renovable: todas las tablas materializadas se pueden actualizar con la sentencia REFRESH TABLE. Sólo las tablas de consultas materializadas mantenidas por el usuario también se pueden actualizar con el programa de utilidad LOAD y las sentencias de SQL UPDATE, INSERT y DELETE,
- Está habilitada para optimización de consultas: se puede habilitar o inhabilitar la utilización de una tabla de consultas materializadas en la reescritura automática de consultas.
Las tablas de consultas materializadas pueden utilizarse para mejorar el rendimiento de las consultas de SQL dinámicas. Si Db2 determina que una parte de una consulta se puede resolver utilizando una tabla de consulta materializada, la consulta puede ser reescrita por Db2 para que utilice la tabla de consulta materializada. Esta decisión se basa en los valores de CURRENT REFRESH AGE y en los registros especiales CURRENT MAINTAINED TABLE TYPES FOR OPTIMIZATION.
- tabla de resultados
- Una tabla que contiene un conjunto de filas que Db2 selecciona o genera, directa o indirectamente, desde una o más tablas base en respuesta a una sentencia de SQL. A diferencia de una tabla base o una tabla temporal, una tabla de resultados no es un objeto que se define utilizando una sentencia CREATE.
- tabla de ejemplo
- Una de varias tablas enviadas con el programa bajo licencia Db2 que contiene datos de ejemplo. Muchos ejemplos de esta información están basados en las tablas de ejemplo.
- tabla temporal
- Una tabla que registra el periodo de tiempo en el que una fila es válida.
Db2 admite dos tipos de períodos, que son el período del sistema (especificado por una cláusula SYSTEM_TIME) y el período de la aplicación (especificado por una cláusula BUSINESS_TIME). El periodo del sistema consta de un par de columnas con valores mantenidos por el sistema que indican el periodo de tiempo de validez de una fila. El periodo de aplicación consta de un par de columnas con valores mantenidos por la aplicación que indican el periodo de tiempo de validez de una fila.
- tabla temporal de periodo del sistema
- Una tabla temporal de periodo del sistema es una tabla que se define con creación de versiones de datos de periodo del sistema. Puede modificar una tabla existente para convertirla en una tabla temporal de periodo del sistema especificando la cláusula ADD PERIOD SYSTEM_TIME en la sentencia ALTER TABLE. Después de crear una tabla histórica correspondiente a la tabla temporal de período del sistema, puede definir la creación de versiones de datos de período del sistema en la tabla emitiendo la sentencia ALTER TABLE ADD VERSIONING con la cláusula de tabla USE HISTORY TABLE.
- tabla temporal de periodo de aplicación
- Una tabla temporal de período de aplicación es una tabla base que incluye un período de aplicación (especificado por una cláusula BUSINESS_TIME). Puede modificar una tabla existente para convertirla en una tabla temporal de periodo de aplicación especificando la cláusula ADD PERIOD BUSINESS_TIME en la sentencia ALTER TABLE.
- tabla bitemporal
- Una tabla bitemporal es una tabla que es tanto una tabla temporal de periodo del sistema como una tabla temporal de periodo de aplicación. Puede utilizar una tabla bitemporal para mantener la información de periodo de aplicación y la información histórica basada en el sistema. Por lo tanto, tiene mucha flexibilidad en la forma en que consulta los datos, en función de los periodos de tiempo.
- tabla temporal
- Tabla que se define mediante la sentencia de SQL
CREATE GLOBAL TEMPORARY TABLE o DECLARE GLOBAL TEMPORARY TABLE para contener
datos temporalmente. Las tablas temporales son especialmente útiles cuando se necesita clasificar
o consultar tablas de resultados intermedios que contienen muchas filas, pero únicamente se desea
almacenar permanentemente un pequeño subconjunto de estas filas.
- tabla temporal global creada
- Tabla que se define con la sentencia de SQL CREATE GLOBAL TEMPORARY TABLE. La tabla de catálogo de Db2, SYSIBM.SYSTABLES, almacena la descripción de la tabla temporal creada. La descripción de la tabla es persistente y compartible. Sin embargo, cada proceso
de aplicaciones individual que hace referencia a una tabla temporal creada
tiene una instancia diferente de la tabla. Es decir, si el proceso de
aplicaciones A y el proceso de aplicaciones B utilizan una tabla
temporal creada llamada TEMPTAB:
- Cada proceso de aplicaciones utiliza la misma descripción de tabla.
- Ningún proceso de aplicaciones tiene acceso a las filas, ni conocimiento de ellas, en la otra instancia de aplicación de TEMPTAB.
- tabla temporal global declarada
- Tabla que se define con la sentencia de SQL DECLARE GLOBAL TEMPORARY TABLE. El catálogo de Db2 no almacena una descripción de la tabla temporal declarada. Por lo tanto, la descripción y la instancia de la tabla no son persistentes. Varios procesos de aplicaciones pueden hacer referencia a la misma tabla temporal declarada por nombre, pero en realidad no comparten la misma descripción o instancia de la tabla. Por ejemplo, supongamos que el proceso de aplicaciones A define una tabla temporal declarada denominada TEMP1 con 15 columnas. El proceso de aplicaciones B define una tabla temporal declarada denominada TEMP1 con cinco columnas. Cada proceso de aplicaciones utiliza su propia descripción de TEMP1; ningún proceso de aplicaciones tiene acceso a las filas, ni conocimiento de ellas, en la otra instancia de aplicación de TEMP1.
- Tabla de XML
- Una tabla especial que únicamente contiene datos XML. Al crear una tabla con una columna XML, Db2 crea implícitamente un espacio de tablas XML y una tabla XML para almacenar los datos XML.
Estos tipos de tablas diferentes se diferencian en otros aspectos que no se describen en este tema.