Vistas de Db2

Una vista es una forma alternativa para representar datos que existen en una o más tablas. Una vista puede incluir todas o algunas de las columnas de una o más tablas base.

Una vista es una especificación con nombre de una tabla de resultados. Conceptualmente, una vista en cierto modo se parece a la utilización de unos anteojos. Puede mirar a través de unos anteojos para ver un paisaje entero o para ver una imagen específica dentro del paisaje como, por ejemplo, un árbol.

Puede crear vistas e Db2 es que logren los siguientes objetivos:

  • Combina datos de varias tablas base
  • Basado en otras vistas o en una combinación de vistas y tablas
  • Omitir ciertos datos, protegiendo así algunos datos de la tabla de los usuarios

De hecho, son razones subyacentes comunes para utilizar una vista. La combinación de información de tablas base y vistas simplifica la recuperación de datos para un usuario y la limitación de los datos que un usuario puede ver es útil para la seguridad. Puede utilizar vistas para muchos propósitos diferentes. Una vista puede:

  • Controlar el acceso a una tabla
  • Facilitar la utilización de datos
  • Simplificar la autorización al otorgar acceso a una vista sin otorgar acceso a la tabla
  • Mostrar únicamente parte de los datos de la tabla
  • Mostrar datos de resumen para una tabla determinada
  • Combinar dos o más tablas de formas significativas
  • Mostrar sólo las filas seleccionadas que corresponden al proceso que utiliza la vista

Cómo acceder a los datos en las vistas de Db2

Para recuperar información o acceder a información de una vista, debe utilizar vistas del mismo modo que utiliza tablas base. Puede utilizar una sentencia SELECT para mostrar la información de la vista. La sentencia SELECT puede nombrar otras vistas y tablas, y puede utilizar las cláusulas WHERE, GROUP BY y HAVING. No puede utilizar la cláusula ORDER BY ni nombrar una variable de lenguaje principal.

Que una vista pueda utilizarse o no en una operación de inserción, actualización o supresión dependerá de su definición. Por ejemplo, si una vista incluye una clave foránea de su tabla base, las operaciones INSERT y UPDATE que utilizan la vista están sujetas a la misma restricción de referencia que la tabla base. Del mismo modo, si la tabla base de una vista es una tabla padre, las operaciones DELETE que utilizan la vista están sujetas a las mismas reglas que las operaciones DELETE en la tabla base. Las vistas de solo lectura no se pueden utilizar para operaciones de insertar, actualizar y suprimir.

Cómo crear vistas de Db2

Para definir una vista, utilice la sentencia CREATE VIEW y asigne un nombre (con un máximo de 128 caracteres de longitud) a la vista. La especificación de la vista en otras sentencias de SQL es en efecto como ejecutar una sentencia SELECT de SQL. En cualquier momento, la vista está formada por las filas que resultan de la sentencia SELECT que contiene. Puede pensar en una vista formada por columnas y filas al igual que la tabla base en la que está definida la vista.

También puede especificar una especificación de período para una vista, sujeta a algunas restricciones.

Ejemplos de creación de vistas de Db2

Iniciar información de la interfaz de programación de uso general.
Ejemplo 1
La figura siguiente muestra una vista de la tabla EMP que omite información confidencial sobre empleados y renombra algunas de las columnas.
Figura 1. Vista de la tabla EMP
Comenzar descripción de figura. Esta figura muestra los nombres de
columna de la tabla base, EMP, y los nombres de columna de una vista, EMPINFO,
basada en la tabla base EMP. Finalizar descripción de figura.
Nota de la figura : La vista EMPINFO representa una tabla que incluye columnas denominadas EMPLOYEE (EMPLEADO), FIRSTNAME (NOMBRE), LASTNAME (APELLIDO), TEAM (EQUIPO) y JOBTITLE (PUESTO). Los datos de la vista proceden de las columnas EMPNO, FIRSTNME, LASTNAME, DEPT y JOB de la tabla EMP.
Ejemplo 2
La sentencia CREATE VIEW siguiente define la vista EMPINFO que se muestra en la figura anterior:
CREATE VIEW EMPINFO (EMPLOYEE, FIRSTNAME, LASTNAME, TEAM, JOBTITLE)
  AS SELECT EMPNO, FIRSTNME, LASTNAME, DEPT, JOB
  FROM EMP;

Cuando define una vista, Db2 almacena la definición de la vista en el catálogo de Db2. Sin embargo, Db2 no almacena datos para la propia vista, porque los datos existen en la tabla base o en las tablas.

Ejemplo 3
Puede reducir el ámbito de la vista EMPINFO limitando el contenido a un subconjunto de filas y columnas que únicamente incluya los departamentos A00 y C01:
CREATE VIEW EMPINFO (EMPLOYEE, FIRSTNAME, LASTNAME, TEAM, JOBTITLE)
  AS SELECT EMPNO, FIRSTNME, LASTNAME, WORKDEPT, JOB               
  FROM EMP                                                         
  WHERE WORKDEPT = 'A00' OR WORKDEPT = 'C01';
Finalizar la información de la interfaz de programación de uso general.

En general, una vista hereda los atributos del objeto del cual deriva. Las columnas que se añaden a las tablas después de definir la vista en dichas tablas no aparecen en la vista.

Restricción : No puede crear un índice para una vista. Además, no se puede crear ninguna forma de clave o restricción (de referencia o de otro tipo) en una vista. Estos índices, claves o restricciones deben crearse en las tablas a las que hace referencia la vista.