Você está na página 1de 3

Vistas de base de datos

Una vista de base de datos es un subconjunto de una base de datos y se basa en


una consulta que se ejecuta en una o más tablas de base de datos. Las vistas de
base de datos se guardan en la base de datos como consultas con nombre y se
pueden utilizar para guardar consultas completas que se utilizan con frecuencia.
Hay dos tipos de vistas de base de datos: vistas dinámicas y vistas estáticas. Las
vistas dinámicas pueden contener datos de una o dos tablas e incluir
automáticamente todas las columnas de la tabla o tablas especificadas. Las vistas
dinámicas se pueden actualizar dinámicamente cuando se crean o modifican
objetos relacionados u objetos ampliados. Las vistas estáticas pueden contener
datos de varias tablas y las columnas necesarias de estas tablas se deben
especificar en las cláusulas SELECT y WHERE de la vista estática. Las vistas
dinámicas se pueden actualizar manualmente cuando se crean o modifican objetos
relacionados u objetos ampliados.
Cuando se crea una vista dinámica con datos de dos tablas, debe asegurarse de
que ambas tablas tengan las mismas columnas PRIMARYKEYCOLSEQ o que
contengan índices exclusivos con el mismo nombre de columna en el mismo orden.
En un entorno multitenencia, el administrador global crea vistas de base de datos
iniciales, que forman parte de los datos predeterminados que se proporciona a los
inquilinos. El ID de inquilino debe añadirse a las cláusulas SELECT y WHERE de
vistas estáticas para garantizar que se crean las vistas específicas de inquilino. Las
vistas dinámicas deben utilizarse para crear vistas de base de datos específicas del
inquilino para inquilinos con atributos ampliados. Las vistas estáticas no dan soporte
a atributos ampliados.
Las vistas de base de datos se rellenan en función del objeto en el que se basan.
Por ejemplo, si añade o elimina un atributo del objeto WORKORDER, el atributo se
añade o elimina la vista dinámica basada en el objeto. Cuando modifica un atributo,
no todos los cambios se aplican a la vista de base de datos asociada. Por ejemplo,
si cambia el tipo de datos de un atributo, el cambio se aplicará a la vista de base de
datos. No obstante, si cambia o añade un dominio al valor predeterminado del objeto
WORKORDER, el cambio no se aplicará automáticamente a la vista de base de
datos. En su lugar, debe aplicar este cambio a la vista de base de datos.

Ejemplo:

Se crea una vista:

CREATE VIEW View1 AS


SELECT zID, sName
FROM Animal
WHERE aName = 'Tony' and country = 'China';

Como ya se mencionó para crear una vista se usan las palabras


clave CREATE VIEW especificando el nombre de la vista view1 . Luego se declara la
consulta en SQL estándar. Dicha consulta selecciona zID y sName de los animales que se
llamen ‘Tony’ y procedan de ‘China’ .

PostgreSQL retorna:

CREATE VIEW

Al realizar un SELECT de la vista, PostgreSQL la despliega como si fuera una relación


cualquiera.

DBviews=# SELECT * FROM View1;

zid | sname
-----+------------------------
5 | Ailuropoda melanoleuca
1 | Panthera leo
3 | Panthera tigris
(3 rows)

Sin embargo la vista no almacena los datos, sino que estos siguen almacenados en la
relación Animal. Observe que ocurre cuando se insertan más datos en Animal

INSERT INTO Animal


(zID, sName, aName, country)
VALUES
(4,'Ailuropoda melanoleuca', 'Tony', 'China'),
(3,'Panthera leo', 'Tony', 'China'),
(1,'Loxodonta africana', 'Tony', 'China');

La View1 se actualiza automáticamente:

DBviews=# SELECT * FROM View1;


zid | sname
-----+------------------------
5 | Ailuropoda melanoleuca
1 | Panthera leo
3 | Panthera tigris
4 | Ailuropoda melanoleuca
3 | Panthera leo
1 | Loxodonta africana
(6 rows)

Você também pode gostar