VISTAS
Las vistas se
basan en una visión bases de datos de tres niveles, que lo componen:
- Capa física: En el nivel inferior, se encuentran los datos reales
almacenados en un disco.
- Capa conceptual: Es la abstracción de las relaciones (o tabla) de los datos
almacenados en un disco.
- Capa de lógica: la última capa es una abstracción por encima de las
relaciones es lo que se conoce como vistas (views).
Definición
Una vista es una
tabla virtual derivada de las tablas reales de una base de datos.
Las vistas no se almacenan en la base de datos, sólo se almacena una definición
de consulta, es decir una vista contiene la instrucción SELECT necesaria
para crearla. Resultado de la cual se produce una tabla cuyos datos proceden de
la base de datos o de otras vistas. Eso asegura que los datos sean coherentes
al utilizar los datos almacenados en las tablas. Si los datos de las relaciones
cambian, los de la vista que utiliza esos datos también cambia. Por todo ello, las
vistas gastan muy poco espacio de disco.
Como una vista se
define como una consulta sobre las relaciones, aún pertenecen en el modelo de
datos relacional.
Para definir una
vista V, se especifica una consulta de Vista en SQL, a través de un
conjunto de tablas existentes (R1, R2,…Rn).
Vista V= ConsultaSQL(R1, R2, …, Rn)
La vista V,
entonces, se puede pensar como una tabla de los resultados de la consulta.
Ahora supongamos que se desea ejecutar una consulta Q en la
base de datos. Esta no es una consulta de vista, es sólo una consulta como las
vistas anteriormente en el curso. La consulta Q hace
referencia a V.
V := ViewQuery(R1,R2,…,Rn)
Evaluate Q
Lo que realmente
hace Q es consultar o editar las relaciones R1, R2,…, Rn instanciadas por V. El
DBMS realiza automáticamente el proceso de rescritura sobre las relaciones.
Usos de las vistas
Las vistas se
emplean para:
- Realizar consultas complejas más fácilmente: Las vistas permiten
dividir la consulta en varias partes.
- Proporcionar tablas con datos específicos: Las vistas permiten
ser utilizadas como tablas que resumen todos los datos, así como también
permiten ocultar ciertos datos. Cuando ese se requiere un detalle que no
corresponde precisamente a las relaciones.
- Modularidad de acceso a base de datos: las vistas se
pueden pensar en forma de módulos que nos da acceso a partes de la base de
datos. Cuando ese detalle que se requiere no corresponde precisamente a
las relaciones.
Las aplicaciones
reales tienden a usar un muchas vistas, por lo que cuanto más grande es la
aplicación, más necesario es que haya modularidad, para facilitar determinadas
consultas o para ocultar los datos. Las vistas entonces son el mecanismo para
alcanzar dichos objetivos.
Las vistas proporcionan una variedad
de beneficios, pudiendo resaltarse los siguientes: • Seguridad. Cada usuario
puede obtener permiso para acceder a la base de datos únicamente a través de un
pequeño conjunto de vistas que contienen los datos específicos que el usuario
está autorizado a ver.
• Simplicidad de consulta. Una vista puede
extraer datos de varias tablas diferentes y presentarlos como una única tabla,
haciendo que consultas multitabla se formulen como consultas de una sola tabla
con respecto a la vista.
• Simplicidad estructurada. Las vistas
pueden dar a un usuario una visión "personalizada" de la estructura
que tiene la base de datos presentando está como un conjunto de tablas
virtuales que tienen sentido para ese usuario.
• Aislamiento frente al cambio. Una vista
representa una imagen consistente inalterada de la base de datos, incluso si
las tablas fuente subyacentes se dividen, reestructuran o cambian de nombre.
• Integridad de datos. Si los datos se acceden
y se introducen a través de una vista, el gestor de la base de datos puede
comprobar automáticamente los datos para asegurarse que satisfacen
restricciones de integridad específicas.
Sin embargo, las vistas presentan también una
serie de desventajas al utilizarlas en lugar de una tabla real. Estas
desventajas son:
• Rendimiento. Las vistas crean la
apariencia de una tabla, pero el gestor de la base de datos debe traducir las
consultas con respecto a la vista en consultas con respecto a las tablas fuente
subyacentes.
• Restricciones de actualización. Cuando un
usuario trata de actualizar filas de una vista, el gestor de la base de datos
debe traducir la petición a una actualización sobre las filas de las tablas
fuente. Esto es posible para vistas sencillas, pero vistas complejas no pueden
ser actualizadas, son "de solo lectura".
SINTAXIS
•
La sintaxis para la creación de vistas en SQL es la
siguiente: CREATE | REPLACE
VIEW vista [(comalista_columna)]
AS expresión tabla [with check
option]
en donde:
– CREATE VIEW es la orden que permite la creación de la vista.
– vista es el nombre de la tabla virtual que se va a crear.
– (comalista_columna) son los nombres
de los atributos de la tabla y es opcional:
•
Si no se especifica, el nombre coincide
con el nombre de los atributos resultantes en expresión_tabla.
•
Es obligatorio si algún atributo
de expresión_tabla es el resultado de una
función de agregación o una operación
aritmética.
–
La sintaxis para
la creación de vistas en SQL
–
es la siguiente: CREATE
| REPLACE VIEW vista [(comalista_columna)]
AS expresión_tabla [with check
option]
en donde:
– expresión_tabla es una consulta SQL cuyo resultado
será el contenido de la vista.
–
WITH CHECK OPTION es opcional
y se debe incluir si se desea actualizar la vista de una manera íntegra.
– Para la eliminación de una vista se utiliza
la instrucción:
– DROP VIEW vista
[restrict | cascade];
ADMINISTRACIÓN
DE VISTAS
CREATE, que
define y crea un objeto en la base de datos.
DROP, que elimina un objeto existente en la
base de datos.
ALTER, que modifica la definición de un objeto
de la base de datos.
CREACIÓN
DE UNA VISTA
CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ]
[ WITH <view_attribute> [ ,...n ] ]
AS select_statement
[ WITH CHECK OPTION ]
[ ; ]
<view_attribute> ::=
{
[ ENCRYPTION ]
[ SCHEMABINDING ]
[ VIEW_METADATA ]
}
Argumentos
schema_name
Es el nombre del esquema al que pertenece la vista.
Es el nombre del esquema al que pertenece la vista.
view_name
Es el nombre de la vista. Los nombres de las vistas deben cumplir las reglas de los identificadores. La especificación del nombre del propietario de la vista es opcional.
Es el nombre de la vista. Los nombres de las vistas deben cumplir las reglas de los identificadores. La especificación del nombre del propietario de la vista es opcional.
column
Es el nombre que se va a utilizar para una columna en una vista. Solo se necesita un nombre de columna cuando una columna proviene de una expresión aritmética, una función o una constante; cuando dos o más columnas puedan tener el mismo nombre, normalmente debido a una combinación; o cuando una columna de una vista recibe un nombre distinto al de la columna de la que proviene. Los nombres de columna se pueden asignar también en la instrucción SELECT.
Es el nombre que se va a utilizar para una columna en una vista. Solo se necesita un nombre de columna cuando una columna proviene de una expresión aritmética, una función o una constante; cuando dos o más columnas puedan tener el mismo nombre, normalmente debido a una combinación; o cuando una columna de una vista recibe un nombre distinto al de la columna de la que proviene. Los nombres de columna se pueden asignar también en la instrucción SELECT.
Si no
se especifica el parámetro column, las columnas de la
vista adquieren los mismos nombres que las columnas de la instrucción SELECT.
MODIFICACIÓN
DE UNA VISTA
ALTER VIEW [ schema_name . ] view_name [ ( column [ ,...n ] ) ]
[ WITH <view_attribute> [ ,...n ] ]
AS select_statement
[ WITH CHECK OPTION ] [ ; ]
<view_attribute> ::=
{
[ ENCRYPTION ]
[ SCHEMABINDING ]
[ VIEW_METADATA ]
}
Argumentos
schema_name
Es el nombre del esquema al que pertenece la vista.
Es el nombre del esquema al que pertenece la vista.
view_name
Es la vista que se va a cambiar.
Es la vista que se va a cambiar.
column
Es el nombre de una o más columnas, separadas por comas, que van a formar parte de la vista especificada.
Es el nombre de una o más columnas, separadas por comas, que van a formar parte de la vista especificada.
ELIMINACIÓN
DE UNA VISTA
Para eliminar una vista de una base de datos tenemos la sentencia
DROP TABLE.
Sintaxis:
Sintaxis:
DROP VIEW [nbEsquema.]nbVista[ ,...n ] [ ;
]
Se eliminan
las vista de la base de datos actual. Cuando eliminamos una vista eliminamos su
definición y los permisos asociados a ella.
Se pueden
quitar varias vistas en una misma sentencia DROP VIEW escribiendo los nombres
de las vistas a eliminar separados por comas.
Para ejecutar
DROP VIEW, como mínimo, se necesita el permiso ALTER en SCHEMA o el permiso
CONTROL en OBJECT.
Ejemplo:
DROP VIEW oficinas_este, oficinas_EO;
Elimina las
vistas oficinas_este y oficinas_EO.
Si eliminamos
una tabla mediante DROP TABLE, se deben quitar explícitamente, con DROP VIEW,
las vistas basadas en esta tabla ya que no se quitarán por sí solas.
RESUMEN
Una vista es una
tabla virtual derivada de las tablas reales de una base de datos.
Las vistas no se almacenan en la base de datos, sólo se almacena una definición
de consulta, es decir una vista contiene la instrucción SELECT necesaria
para crearla. Resultado de la cual se produce una tabla cuyos datos proceden de
la base de datos o de otras vistas. Eso asegura que los datos sean coherentes
al utilizar los datos almacenados en las tablas. Si los datos de las relaciones
cambian, los de la vista que utiliza esos datos también cambia. Por todo ello,
las vistas gastan muy poco espacio de disco.
SUMMARY
A view is a virtual table derived from the actual tables
in a database. The views are not stored in the database, only one query
definition is stored, that is a view containing the SELECT instruction
necessary to create it. Result of which a table is produced which data derived
from the database or other views. This ensures that the data is consistent when
using the data stored in tables. If data relationships change, the view uses
these data also changes. Therefore, the views spend very little disk space.
RECOMENDACIONES
Las vistas pueden ser una herramienta perfecta para
simplificar consultas que unen distintas tablas, permiten abstenerse de la
estructura origen y simplificar si hace falta la estructura saliente. También
nos pueden servir como un mecanismo de seguridad que limitará el acceso de los
usuarios a datos no deseados de las tablas base.
CONCLUSIONES
La utilización de las vistas proporciona beneficios adicionales en el
rendimiento que no pueden lograrse mediante índices estándar. Las vistas
indizadas pueden aumentar el rendimiento de las consultas de las siguientes
formas:
•
|
Las agregaciones pueden
calcularse previamente y almacenarse en el índice para minimizar los cálculos
costosos durante la ejecución de consultas.
|
•
|
Las tablas pueden unirse
previamente y puede almacenarse el conjunto de datos resultante.
|
•
|
Las combinaciones de uniones o
agregaciones pueden almacenarse.
|
GLOSARIO
Modularidad: es, en
programación modular y más específicamente en programación orientada a objetos,
la propiedad que permite subdividir una aplicación en partes más pequeñas
(llamadas módulos), cada una de las cuales debe ser tan independiente como sea
posible de la aplicación en sí y de las restantes partes.
Subyacentes: Si se toma como base la etimología de este
vocablo se puede considerar como su definición lo que subyace. Entendiendo por
subyacer la acción de estar tendido bajo algo o también se puede referir a
estar un objeto ocultado por otro.
BIBLIOGRAFÍAS
Y FUENTES DE INFORMACIÓN
No hay comentarios:
Publicar un comentario