Vista ( vista en inglés , a veces se usan los nombres "vista" , "mirar" ): una tabla virtual (lógica), que es una consulta con nombre (sinónimo de la consulta), que se sustituirá como una subconsulta cuando se usa la vista.
A diferencia de las tablas de bases de datos relacionales regulares , una vista no es una parte independiente del conjunto de datos almacenado en la base de datos. El contenido de la vista se calcula dinámicamente en función de los datos de las tablas reales. Los cambios en los datos de una tabla de base de datos real se reflejan inmediatamente en el contenido de todas las vistas basadas en esta tabla.
Una forma típica de crear vistas para DBMS que admitan el lenguaje de consulta SQL es especificar una consulta SQL específica; en consecuencia, el contenido de la vista es el resultado de ejecutar dicha consulta, y las posibilidades de construir una vista están limitadas solo por la complejidad del dialecto SQL admitido por un DBMS en particular. Entonces, para DBMS típicos como PostgreSQL , Interbase , Firebird , Microsoft SQL Server , Oracle Database , la vista puede contener:
Las vistas se utilizan en las consultas de la base de datos de la misma manera que las tablas normales. En el caso de un DBMS SQL, el nombre de la vista puede aparecer en la consulta SQL en lugar del nombre de la tabla (en la cláusula FROM). DBMS trata una consulta de una vista exactamente de la misma manera que una consulta que tiene una subconsulta en lugar del nombre de vista que define esa vista. Al mismo tiempo, DBMS con capacidades avanzadas de optimización de consultas puede optimizar conjuntamente la consulta de nivel superior y la consulta que define la vista antes de ejecutar una consulta desde una vista para minimizar el costo del muestreo de datos.
El uso de vistas no brinda posibilidades completamente nuevas para trabajar con la base de datos, pero puede ser muy conveniente. Las vistas ocultan la complejidad de las consultas y la estructura misma de las tablas de la base de datos del programa de aplicación. Cuando una aplicación necesita una tabla con un conjunto específico de datos, realiza una consulta simple desde una vista preparada. Además, incluso si se requiere una consulta extremadamente compleja para obtener estos datos, el programa en sí no contiene esta consulta.
Además, el uso de vistas le permite separar el esquema de presentación de datos de la aplicación del esquema de almacenamiento. Desde el punto de vista del programa de aplicación, la estructura de datos corresponde a las representaciones de las que el programa recupera estos datos. En realidad, los datos se pueden almacenar de una manera completamente diferente, basta con crear representaciones que satisfagan las necesidades del programa. La separación le permite modificar de forma independiente el programa de aplicación y el esquema de almacenamiento de datos: tanto al cambiar la estructura de las tablas físicas como al cambiar el programa, basta con cambiar las vistas en consecuencia. Cambiar el programa no afecta las tablas físicas y cambiar la estructura física de las tablas no requiere ajustes del programa.
Las vistas proporcionan otra capa de protección de datos. Al usuario se le pueden otorgar derechos de solo visualización, de modo que el usuario no tendrá acceso a los datos que se encuentran en las mismas tablas pero que no están destinados a él.
Dado que la consulta SQL que selecciona los datos de la vista es fija en el momento de su creación, el DBMS tiene la oportunidad de aplicar optimización o precompilación a esta consulta, lo que tiene un efecto positivo en la velocidad de acceso a la vista, en comparación con la ejecución directa de la consulta. misma consulta desde el programa de aplicación.
Algunos DBMS tienen vistas extendidas para datos de solo lectura. Por lo tanto, Oracle DBMS implementa el concepto de " vistas materializadas ": vistas que contienen conjuntos de datos no virtuales preseleccionados que se comparten en bases de datos distribuidas. Estos datos se recuperan de varias fuentes remotas (de diferentes servidores DBMS distribuidos). La integridad de los datos en las vistas materializadas se mantiene mediante sincronizaciones periódicas o el uso de disparadores . Se proporciona un mecanismo similar en Microsoft SQL Server versión 2000.
Por su propia naturaleza, las vistas pueden ser de solo lectura. Sin embargo, en algunos DBMS (como Oracle Database), las vistas se pueden editar al igual que las tablas físicas normales. Es posible que se permita la edición de vistas seleccionadas de una única tabla física, de modo que cada registro de la vista corresponda exactamente a un registro de la tabla de origen y los campos de la vista incluyan la clave principal de la tabla física. Cuando se emiten comandos de edición, adición o eliminación para dicha vista, el servidor DBMS traduce estos comandos en los comandos correspondientes para la tabla de origen física. Por supuesto, si la vista utiliza la agrupación de registros o la transformación de valores en campos, la edición de dicha vista es imposible incluso teóricamente. Pero incluso tales representaciones pueden, sin embargo, editarse escribiendo disparadores apropiados (aunque el significado de tales operaciones permanecerá completamente en la conciencia del programador). Además, en algunos SGBD es posible especificar un disparador a nivel de vista (EN LUGAR DE en Oracle Database), en el que el programador puede especificar las acciones a realizar al editar la vista.
Base de datos | |
---|---|
Conceptos | |
Objetos |
|
Llaves | |
sql |
|
Componentes |