Vistas Sql
2.6.2.- Aplicaciones de las vistas.
• Una vista es una tabla derivada de otras tablas (básicas o virtuales).
• Una vista se caracteriza porque:
– Se considera que forma parte del esquema externo.
– Una vista es una tabla virtual (no tiene una correspondencia a
• Para la especificación de tablas con información que se accede con
frecuencia pero no poseeexistencia física:
– Información derivada de la relación entre varias tablas.
– Información derivada de la formación de grupos de tuplas (p.e. para
la obtención de estadísticas).
– En general: información derivada de consultas complejas a la que se
accede con frecuencia.
nivel físico)
– Se puede consultar como cualquier tabla básica.
– Las actualizaciones se transfieren a la/s tabla/soriginal/es
(con ciertas limitaciones).
• Como mecanismo de seguridad: creación de vistas con, únicamente, los
atributos de las tablas a los cuales se desea permitir acceder a determinados
usuarios.
• Para la creación de esquemas externos.
1
2
2.6.3.- Vistas en SQL.
2.6.3.- Vistas en SQL.
• La sintaxis para la creación de vistas en SQL es la siguiente:
• La sintaxis para lacreación de vistas en SQL es la siguiente:
CREATE | REPLACE VIEW vista [(comalista_columna)]
CREATE | REPLACE VIEW vista [(comalista_columna)]
AS expresión_tabla [with check option]
AS expresión_tabla [with check option]
en donde:
en donde:
– CREATE VIEW es la orden que permite la creación de la vista.
– expresión_tabla es una consulta SQL cuyo resultado será el contenido de lavista.
– vista es el nombre de la tabla virtual que se va a crear.
– WITH CHECK OPTION es opcional y se debe incluir si se desea actualizar la
– (comalista_columna) son los nombres de los atributos de la tabla y es opcional:
vista de una manera íntegra.
– Para la eliminación de una vista se utiliza la instrucción:
• Si no se especifica, el nombre coincide con el nombre de losatributos
resultantes en expresión_tabla.
– DROP VIEW vista [restrict | cascade];
• 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.
3
4
2.6.3.- Vistas en SQL (Ejemplos).
2.6.3.- Vistas en SQL (Vistas Actualizables).
• Dada la siguiente relación de una base de datos:
Motivos por los que una vista NOes actualizable:
Cocinero(nombre:varchar, edad: number, país:varchar)
•
contiene operadores conjuntistas (UNION, INTERSECT,…).
•
el operador DISTINCT
•
funciones agregadas (SUM, AVG, ..)
•
la cláusula GROUP BY
Obtén una vista con, únicamente, los cocineros franceses:
El Check Option impide que yo pueda añadir
cocineros que no sean franceses
Obtén una vista con laedad media de los cocineros agrupados por país:
5
2.6.3.- Vistas en SQL (Vistas Actualizables).
2.6.3.- Vistas en SQL (Vistas Actualizables).
Vista sobre una concatenación de relaciones:
Vista sobre una tabla básica:
•
•
•
el sistema traducirá la actualización sobre la vista en una operación de
actualización sobre la relación básica.
la actualización sólo puede modificaruna de las tablas básicas
•
actualización modificará la relación básica que cumpla la propiedad de
conservación de la clave (aquella relación tal que su clave primaria podría ser
también clave de la vista)
•
la actualización no se realizará si viola alguna de las restricciones definidas
sobre la relación básica que se va a actualizar
siempre que no se viole ninguna restricción deintegridad definida sobre
dicha relación.
2.6.3.- Vistas en SQL (Vistas Actualizables).
2.7.1.- Concepto de disparador.
EJEMPLO:
• Dadas las siguientes relaciones:
Persona(nif: dom_nif, nombre: dom_nom, edad: dom_edad)
CP:{nif}
Son reglas que especifican acciones que son activadas
automáticamente por determinados eventos.
Vivienda(cod_viv: dom_cod, nif: dom_nif, dir:...
Regístrate para leer el documento completo.