Saltearse al contenido

Vistas

Una Vista puede ser considerada una tabla virtual obtenida a partir de una consulta almacenada que se ejecuta sobre una o más tablas base u otras Vistas de la base de datos. Es decir, representa una tabla que no existe físicamente pero que el usuario percibe como si existiera. Debido a que, una vez creada, se la puede consultar al igual que una tabla base.

Las Vistas se almacenan en la base de datos como consultas con nombre y usualmente se utilizan para almacenar consultas complejas, utilizadas con frecuencia.

A diferencia de las tablas base ordinarias de una base de datos, una Vista forma parte del esquema lógico, pero no del esquema físico. Es deicr, no contiene registros, sino que es solo una consulta preestablecida. Y, al consultarla, devuelve un result-set calculado dinámicamente a partir de los datos de las tablas (u otras Vistas) a las que haga referencia. Esto hace que el espacio de almacenamiento para una Vista sea mínimo.

Las actualizaciones que se realicen a los datos en una tabla subyacente (utilizada en la Vista) se reflejarán en los result-sets que se obtengan en llamados posteriores a la Vista.


Fig 2.1

En la imagen, podemos ver que la Vista V2 selecciona registros de las tablas base Tabla A, Tabla B, Tabla C y de la Vista V1. Pero solo de los campos indicados y no necesariamente todos los registros. La limitación dependerá de las cláusulas incluidas en la consulta que conforma a la Vista V2.

La consulta que conforma la Vista V2 del ejemplo anterior podría ser escrita genéricamente como se muestra a continuación:

1
SELECT A.Col2 AS Col1, C.Col3 AS Col2, B.Col6 AS Col3, V1.Col5 AS Col4
2
FROM A JOIN B ON ...
3
JOIN C ON ...
4
JOIN V1 ON ...
5
WHERE ...

Características

  • Almacenamiento mínimo: como mencionamos, las Vistas son simplemente consultas preestablecidas, por lo tanto, ocupan un espacio de almacenamiento ínfimo en el servidor.

  • Limita la exposición de datos y el esquema de la base de datos al exterior: las Vistas pueden representar un subconjunto de los datos contenidos en una o más tablas u otras Vistas. En consecuencia, una Vista puede limitar el grado de exposición de las tablas subyacentes al exterior. Además, un usuario determinado (definido en el servidor) puede tener permiso para consultar la Vista, pero se le puede negar el acceso al resto de la base de datos y consecuentemente al esquema de la base de datos.

  • Facilidad de uso: las Vistas pueden incluir funciones de agregación, subconsultas, joins y demás cláusulas, como cualquier consulta. Y, a la vez, pueden ser usadas por otras consultas al igual que cualquier otra tabla base. De esta manera, en una Vista se oculta la complejidad de una consulta, permitiendo al usuario manejarse en un entorno más abstracto sin entrar en detalles complejos.

  • Individualidad: toda Vista debe tener un nombre y este debe ser único, no solo entre las demás Vistas, sino también entre las demás tablas base, ya que tiene que poder ser usada indistintamente entre las demás tablas.

  • Estándar SQL: las Vistas forman parte del estándar SQL, por lo tanto, están presentes en la gran mayoría de los SGBD. Aunque estos tienen distintas implementaciones para las Vistas. Algunos ofrecen Vistas dinámicas y estáticas, algunos permiten actualización e inserción a las tablas subyacentes a través de la Vista.