Cap. 9
Vistas
[email protected] :: jjcg@its. mx :: Saltillo, Coah, Enero de 2010
Instituto Tecnológico de SaltilloDepartamento de Sistemas y Computación
Manejo de Tablas
Manipulación Datos
Consultas Básicas
Funciones de Grupo
Funciones Generales
Consultas Avanzadas
Subconsultas
Vistas
Control de Usuarios
Introducción
COMPETENCIAS ESPECIFICAS
• Describir una vista • Creación y manejo de vistas• Recuperación de datos a través de vistas• Insertar, actualizar y borrar datos mediante vistas
[email protected] :: jjcg@its. mx :: Saltillo, Coah, Enero de 2010
Introducción a la Tecnología de
Bases de Datos Relacionales con SQL
Objetos de la Base de Datos
Objeto Descripción
TABLA Unidad básica de almacenamiento de información.
Se compone de renglones y columnas. También
llamadas tablas base.
VISTA Representación lógica de datos basada en una o
varias tablas. No contiene datos propios.
SECUENCIA Genera automáticamente números únicos.
SINÓNIMO Nombre alterno para objetos.
UTILIDAD DE LAS VISTAS
Restringir datos disponibles a los usuarios, permitiendo desplegar soloalgunas columnas.
Facilitar la escritura de instrucciones SQL de múltiples tablas yalmacenar su definición para recuperación de datos.
Son más eficientes ya que están precompiladas y existe su ruta deejecución.
Manejo de Tablas
Manipulación Datos
Consultas Básicas
Funciones de Grupo
Funciones Generales
Consultas Avanzadas
Subconsultas
Vistas
Control de Usuarios
Introducción
[email protected] :: jjcg@its. mx :: Saltillo, Coah, Enero de 2010
Introducción a la Tecnología de
Bases de Datos Relacionales con SQL
Tipos de VistasCaracterística Vista
Simple
Vista
Compleja
Número de Tablas Una Una o más
Contiene Funciones NO SI
Contiene funciones de grupo o
grupos de datos
NO SI
Operaciones DML a través de la
vista
SI No siempre
Manejo de Tablas
Manipulación Datos
Consultas Básicas
Funciones de Grupo
Funciones Generales
Consultas Avanzadas
Subconsultas
Vistas
Control de Usuarios
Introducción
[email protected] :: jjcg@its. mx :: Saltillo, Coah, Enero de 2010
Introducción a la Tecnología de
Bases de Datos Relacionales con SQL
CREATE [OR REPLACE] VIEW nombre [(col1, col2, …coln)]
AS subquery[WITH CHECK OPTION [CONSTRAINT constraint]][WITH READ ONLY [CONSTRAINT constraint]];
Creación de Vistas
OR REPLACE - vuelve a redefinir la vista si ésta ya existe.
Nombre - nombre de la vista
Subquery - instrucción SQL
WITH CHECK OPTION – especificar que solo registros accesibles a la vista puedan ser insertados o actualizados.
Constraint - nombre asignado a la restricción CHECK OPTION
WITH READ ONLY – asegurar que no se puedan realizar operaciones DML.
Manejo de Tablas
Manipulación Datos
Consultas Básicas
Funciones de Grupo
Funciones Generales
Consultas Avanzadas
Subconsultas
Vistas
Control de Usuarios
Introducción
[email protected] :: jjcg@its. mx :: Saltillo, Coah, Enero de 2010
Introducción a la Tecnología de
Bases de Datos Relacionales con SQL
CREATE OR REPLACE VIEW vista1
AS SELECT nombre, fecha_ingresoFROM docentes;
Creación de Vistas
DESC vista1;
CREATE OR REPLACE VIEW vista2
AS SELECT um_emp EMP, nombre PROFESOR, fecha_ingreso INGRESO
FROM docentes;
CREATE OR REPLACE VIEW vista2 (EMP, PROFESOR, INGRESO)AS SELECT num_emp, nombre, fecha_ingreso
FROM docentes;
ALIAS DE COLUMNAS EN VISTAS
Manejo de Tablas
Manipulación Datos
Consultas Básicas
Funciones de Grupo
Funciones Generales
Consultas Avanzadas
Subconsultas
Vistas
Control de Usuarios
Introducción
[email protected] :: jjcg@its. mx :: Saltillo, Coah, Enero de 2010
Introducción a la Tecnología de
Bases de Datos Relacionales con SQL
Recuperación de datos con Vistas
SELECT * FROM Vista1;
SELECT nombre FROM Vista1;
Consultar Vistas creadas en Diccionario de
Datos
DESC user_views;
SELECT view_name, text FROM user_views;
Manejo de Tablas
Manipulación Datos
Consultas Básicas
Funciones de Grupo
Funciones Generales
Consultas Avanzadas
Subconsultas
Vistas
Control de Usuarios
Introducción
[email protected] :: jjcg@its. mx :: Saltillo, Coah, Enero de 2010
Introducción a la Tecnología de
Bases de Datos Relacionales con SQL
Vistas Complejas
CREATE OR REPLACE VIEW VistaC (CARR, Min, Max)AS SELECT c.clave_carr, MIN(fecha_ingreso),
MAX(fecha_ingreso)FROM carreras, asignaturasWHERE c.clave_carr = a.clave_carrGROUP BY c.clave_carr;
DESC vistaC;
SELECT * FROM VistaC;
SELECT view_name, text FROM user_views;
Manejo de Tablas
Manipulación Datos
Consultas Básicas
Funciones de Grupo
Funciones Generales
Consultas Avanzadas
Subconsultas
Vistas
Control de Usuarios
Introducción
[email protected] :: jjcg@its. mx :: Saltillo, Coah, Enero de 2010
Introducción a la Tecnología de
Bases de Datos Relacionales con SQL
Operaciones DML con Vistas
No se puede modificar datos a través de la vista si ésta contiene:
FUNCIONES DE GRUPO
LA CLÁUSULA GROUP BY
LA PALABRA RESERVADA DISTINCT
COLUMNAS DEFINIDAS CON EXPRESIONES
No se pueden borrar registros si la vista contiene:
FUNCIONES DE GRUPO
LA CLÁUSULA GROUP BY
LA PALABRA RESERVADA DISTINCT
No se puede agregar datos a través de la vista si ésta contiene:
FUNCIONES DE GRUPO
LA CLÁUSULA GROUP BY
LA PALABRA RESERVADA DISTINCT
COLUMNAS DEFINIDAS CON EXPRESIONES
COLUMNAS DEFINIDIAS COMO NOT NULL EN TABLAS BASE.
Manejo de Tablas
Manipulación Datos
Consultas Básicas
Funciones de Grupo
Funciones Generales
Consultas Avanzadas
Subconsultas
Vistas
Control de Usuarios
Introducción
[email protected] :: jjcg@its. mx :: Saltillo, Coah, Enero de 2010
Introducción a la Tecnología de
Bases de Datos Relacionales con SQL
Cláusula WITH CHECK OPTION
CREATE OR REPLACE VIEW VistasistAS SELECT * FROM docentes
WHERE id_depto=‘SISTEMAS’WITH CHECK OPTION CONSTRAINT sistemas_ck;
UPDATE VistaSistSET id_depto=‘INDUSTRIAL’WHERE num_emp=100; No actualiza porque la vista solo
considera SISTEMAS y no permitecambiar
Manejo de Tablas
Manipulación Datos
Consultas Básicas
Funciones de Grupo
Funciones Generales
Consultas Avanzadas
Subconsultas
Vistas
Control de Usuarios
Introducción
[email protected] :: jjcg@its. mx :: Saltillo, Coah, Enero de 2010
Introducción a la Tecnología de
Bases de Datos Relacionales con SQL
Cláusula WITH READ ONLY
CREATE OR REPLACE VIEW VistaLecturaAS SELECT * FROM docentes
WHERE id_depto=‘SISTEMAS’WITH READ ONLY;
Se puede asegurar que no se realicen operaciones DML a través de vistas mediante la cláusula with read only.
DELETE FROM VistaLecturaWHERE id_depto=‘SISTEMAS; No se permiten
operaciones DML
Manejo de Tablas
Manipulación Datos
Consultas Básicas
Funciones de Grupo
Funciones Generales
Consultas Avanzadas
Subconsultas
Vistas
Control de Usuarios
Introducción
[email protected] :: jjcg@its. mx :: Saltillo, Coah, Enero de 2010
Introducción a la Tecnología de
Bases de Datos Relacionales con SQL
Borrar Vistas Creadas
DROP VIEW nombre;
Borra la definición de la vista del Diccionario de Datos
No afecta las tablas base en las que fue basada la vista cuando fue creada.
Solo el dueño de la vista puede borrarla, a menos que otros usuarios tengan el privilegio de DROP ANY VIEW
Manejo de Tablas
Manipulación Datos
Consultas Básicas
Funciones de Grupo
Funciones Generales
Consultas Avanzadas
Subconsultas
Vistas
Control de Usuarios
Introducción
[email protected] :: jjcg@its. mx :: Saltillo, Coah, Enero de 2010
Introducción a la Tecnología de
Bases de Datos Relacionales con SQL
PRÁCTICA No. 8
Manejo de Tablas
Manipulación Datos
Consultas Básicas
Funciones de Grupo
Funciones Generales
Consultas Avanzadas
Subconsultas
Vistas
Control de Usuarios
Introducción