domingo, 10 de julio de 2016

Definición de Vistas

                               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.

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.

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.
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.

view_name
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.

    
ELIMINACIÓN DE UNA VISTA
    Para eliminar una vista de una base de datos tenemos la sentencia DROP TABLE.
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

http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week7/lecture27.html




No hay comentarios:

Publicar un comentario