Tablas virtuales - vistas
1 – Definición
2 – Creación de vistas
a) Horizontales
b) Verticales
c) Subconjuntos fila / columna
d) Agrupados
e) Compuestas
3 – Acceso a vistas
4 – Actualización de vistas
5 – Comprobación de actualizaciones de vistas
6 – Otras cláusulas para creación de vistas.
7 – Eliminación de vistas
8 – Ventajas e inconvenientes de las vistas
1 – DEFINICION:
Lasvistas se pueden definir como tablas virtuales basadas en una o más tablas o vistas y cuyos contenidos vienen definidos por una consulta sobre las mismas. Esta tabla virtual o consulta se le asigna un nombre y se almacena permanentemente en la BD, generando al igual que en las tablas una entrada en el diccionario de datos.
Las vistas permiten que diferentes usuarios vean la BD desde diferentesperspectivas, así como restringir el acceso a los datos de modo que diferentes usuarios accedan sólo a ciertas filas o columnas de una tabla.
Desde el punto de vista del usuario, la vista es como una tabla real con filas y columnas, pero a diferencia de esta, sus datos no se almacenan físicamente en la BD. Las filas y columnas de datos visibles a través de la vista son los resultados producidos porla consulta que define la vista.
2 – CREACION DE VISTAS:
La cláusula CREATE VIEW permite la creación de vistas. La cláusula asigna un nombre a la vista y permite especificar la consulta que la define. Su sintaxis es:
CREATE VIEW id_vista [(columna,…)]
AS especificación_consulta;
Opcionalmente se puede asignar un nombre a cada columna de la vista. Si se especifica, la lista de nombresde las columnas debe de tener el mismo número de elementos que el número de columnas producidas por la consulta. Si se omiten, cada columna de la vista adopta el nombre de la columna correspondiente en la consulta. Existen dos casos en los que es obligatoria la especificación de la lista de columnas:
1 – Cuando la consulta incluye columnas calculadas
2 – Cuando la consulta produce nombresidénticos.
Según el propósito con el que se organizan las vistas, pueden clasificarse en los siguientes tipos:
a) Horizontales o por Restricción
Son las que restringen el acceso de un usuario a únicamente un conjunto de filas de una tabla.
EJEMPLO: Si se desea que un director de ventas vea sólo las filas de la tabla RVENTAS, correspondientes a los vendedores de su región, se debería dedefinir una vista para cada región.
CREATE VIEW repEste AS
SELECT *
FROM RVENTAS
WHERE r_oficina IN (SELECT n_oficina
FROM OFICINAS
WHERE region = ‘Este’);
Las vistas horizontales son adecuadas cuando la tabla sobre la que se definen contiene datos que relacionan a varias organizaciones o usuarios, proporcionando una “tabla privada” para cada usuario compuestaúnicamente de las filas necesarias para ese usuario en concreto.
OTRO EJEMPLO:
1. Definir una vista para el empleado nº 102 que contenga solo los pedidos emitidos, por los clientes asignados al mismo.
CREATE VIEW emplCientodos AS
SELECT *
FROM PEDIDOS
WHERE clie IN (SELECT num_clie
FROM CLIENTES
WHERE rep_clie = 102);
2. Definir una vista, que muestre únicamenteclientes que tienen más de 30000 € en pedidos registrados actualmente.
CREATE VIEW clienTresmil AS
SELECT *
FROM CLIENTES
WHERE 30000 < (SELECT SUM (importe)
FROM PEDIDOS
WHERE num_clie = clie);
3. Crear una vista para el Banco Atlántico, que le permita ver la lista de usuarios que pagan en él.
CREATE VIEW vistaUsuariosAtlantico AS
SELECT *
FROMUSUARIOS
WHERE codigo_banco IN (SELECT ent_suc
FROM BANCOS
WHERE nombre = ‘ATLANTICO’);
b)Verticales o por proyección
Son aquellas que restringen el acceso de un usuario sólo a ciertas columnas de una tabla.
EJEMPLO:
El departamento de procesamiento de pedidos necesita acceso únicamente al número de empleado, nombre y oficina asignada al mismo...
Regístrate para leer el documento completo.