SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
Facultad Politécnica Base de Datos II 1
VISTAS
Facultad Politécnica Base de Datos II 2
DEFINICIÓN DEVISTAS
• Una vista es una tabla “lógica” basada en una tabla o
en otra vista.
• Una vista no contiene datos en sí misma , sino que se
podría considerar como una tabla virtual a través de
la cual pueden verse determinados datos de las tablas
reales.
• Las tablas sobre las cuales se basa una vista se llaman
tablas base.
• La vista se almacena como una sentencia SELECT en
el Diccionario de Datos. USER_VIEWS.
Facultad Politécnica Base de Datos II 3
Representación de una vista
Tabla
B_PERSONAS
Vista
V_PERSONAS_FISICAS
ID
TIPO
PERSONA NOMBRE APELLIDO
1 F Jorge Amado Pereira González
2 F Roberto Abente Gómez
3 J Avente Comercial
4 J EARG S.A.
5 F Alfonso Brizuela Cuevas
6 J Cristhian Achucarro
7 J Amalgama S.A.
8 J Atlantic S.A.E.C.A.
9 J Cima S.R.L.
10 F Reina Rios
11 J Emac S.R.L.
12 F Roque Talavera
13 J Sanimax
14 F Ramon Gauto
15 J Servimex
16 J
Libreria y Papeleria
NOVA
ID
TIPO
PERSONA NOMBRE APELLIDO
1 F Jorge Amado Pereira González
2 F Roberto Abente Gómez
5 F Alfonso Brizuela Cuevas
10 F Reina Rios
12 F Roque Talavera
14 F Ramon Gauto
Facultad Politécnica Base de Datos II 4
Ventajas de las Vistas
• Restringir el acceso a la Base de datos, puesto
que permite desplegar sólo una porción de la
misma
• Simplificar los queries, ya que las vistas
permiten que los usuarios consulten
información de diferentes tablas sin que
requieran conocer la complejidad de la
sentencia utilizada para el efecto.
• Permite lograr la independencia de los datos
con respecto a las aplicaciones
Facultad Politécnica Base de Datos II 5
Creando una Vista: Sintaxis
• Aplicación de un subquery con la sentencia
CREATE VIEW.
• Los subqueries pueden contener una sentencia
con compleja sintaxis de SELECT.
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW vista
[(alias[, alias]...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY [CONSTRAINT constraint]];
Facultad Politécnica Base de Datos II 6
OPCIONES DE LA SENTENCIA
Opción Descripción de la opción
FORCE Crea una vista sin importar que las tablas base existan o no.
Las tablas base deberán existir cuando se utilice una sentencia
SELECT u otra DML sobre la vista
NOFORCE Crea la vista solamente si la tabla existe
Vista Es el nombre de la vista
Alias Especifica el nombre que adoptarán los campos que
conforman la vista y que deben coincidir con las columnas del
SELECT
Subquery Es la sentencia SELECT. Las columnas que conforman la
sentencia SELECT serán las columnas de la vista
WITH CHECK
OPTION
Especifica que la vista solamente admitirá la actualización o
inserción de filas que cumplan con la restricción de la misma
Constraint Es el nombre que se le da al constraint establecido con la
cláusula WITH CHECK OPTION
WITH READ
ONLY
Asegura que no se admitan sentencias de tipo DML sobre la
tabla
Facultad Politécnica Base de Datos II 7
• Cree la vista Emp_contabilidad que contiene solamente los
empleados del área de Contabilidad:
CREATE VIEW EMP_CONTABILIDAD AS
SELECT E.CEDULA, E.NOMBRE|| ' ' || E.APELLIDO "Nombre
y Apellido",
A.NOMBRE_AREA
FROM B_POSICION_ACTUAL P, B_AREAS A, B_EMPLEADOS E
WHERE A.ID = P.ID_AREA
AND E.CEDULA = P.CEDULA
AND P.FECHA_FIN IS NULL
AND UPPER(A.NOMBRE_AREA) = 'CONTABILIDAD';
Creando una Vista: Ejemplo
• Despliegue datos de la vista ejecutando SELECT contra la
vista.
• Describa la estructura de la vista usando la orden DESCRIBE .
Facultad Politécnica Base de Datos II 8
Para modificar eventualmente la vista Emp_contabilidad use
CREATE OR REPLACE. También tiene la opción de usar alias
para cada una de las columnas.
Los seudónimos de la columna en la orden CREATE VIEW se
listan en el mismo orden en el que están colocadas las columnas
en el subquery.
CREATE OR REPLACE VIEW EMP_CONTABILIDAD
(Cédula, Nombre_apellido, Area) AS
SELECT E.CEDULA, E.NOMBRE|| ' ' || E.APELLIDO,
A.NOMBRE_AREA
FROM B_POSICION_ACTUAL P, B_AREAS A,
B_EMPLEADOS E
WHERE A.ID = P.ID_AREA
AND E.CEDULA = P.CEDULA
AND P.FECHA_FIN IS NULL
AND UPPER(A.NOMBRE_AREA) = 'CONTABILIDAD';
Facultad Politécnica Base de Datos II 9
Creando una Vista Compleja: Ejemplo
Cree una vista compleja que contiene funciones de grupo
para desplegar valores de dos tablas.
CREATE VIEW V_SALARIOS AS
SELECT MAX(S.ASIGNACION) MAXIMO,
MIN(S.ASIGNACION) MINIMO, AVG(S.ASIGNACION)
PROMEDIO
FROM B_POSICION_ACTUAL P, B_AREAS A,
B_EMPLEADOS E, B_CATEGORIAS_SALARIALES S
WHERE A.ID = P.ID_AREA
AND E.CEDULA = P.CEDULA
AND S.COD_CATEGORIA = P.COD_CATEGORIA
AND S.FECHA_FIN IS NULL
AND P.FECHA_FIN IS NULL;
Facultad Politécnica Base de Datos II 10
VISTAS SIMPLES vsVISTAS
COMPLEJAS
CARACTERÍSTICA VISTAS SIMPLES VISTAS
COMPLEJAS
Nº de Tablas Una Una o más
Funciones No Sí
Contiene grupos de
datos
No Si
Admite sentencias DML Sí No siempre
Facultad Politécnica Base de Datos II 11
No puede: Si la vista contiene:
◦Borrar filas
de una vista
◦Funciones del grupo.
◦Cláusula GROUP BY
◦La cláusula DISTINCT
◦La seudo columna ROWNUM
◦Modificar
filas en una
vista
◦Funciones del grupo.
◦Cláusula GROUP BY
◦La cláusula DISTINCT
◦La seudo columna ROWNUM
◦Columnas definas por expresiones
◦Agregar filas
a una vista
◦Funciones del grupo.
◦Cláusula GROUP BY
◦La cláusula DISTINCT
◦La seudo columna ROWNUM
◦Columnas definidas por expresiones
◦Columnas NOT NULL en la tabla base que no
están incluidas en la vista
Facultad Politécnica Base de Datos II 12
Restricción de operaciones DML
sobre la vista
CREATE VIEW V_DIARIO_CONTAB AS
SELECT ID, FECHA, CONCEPTO, USUARIO,
FECHA_CIERRE, ID_AREA
FROM B_DIARIO_CABECERA
WHERE ID_AREA = 3
WITH READ ONLY;
• READ ONLY :Evita la utilización de sentencias DML sobre la
vista. Si intenta modificar los datos a través de la vista,
tendrá error.
Facultad Politécnica Base de Datos II 13
Utilización de la restricción WITH CHECK
OPTION
CREATE VIEW V_DIARIO_CONTAB AS
SELECT ID, FECHA, CONCEPTO, USUARIO,
FECHA_CIERRE, ID_AREA
FROM B_DIARIO_CABECERA
WHERE ID_AREA = 3
WITH CHECK OPTION
CONSTRAINT CHK_DIARIO_AREA;
• CHECK OPTION: Restringe los valores de la vista: Si usted
intenta cambiar el id del área para cualquier fila en la vista,
la declaración fallará porque viola el constraint CHECK.
Facultad Politécnica Base de Datos II 14
Eliminando una Vista: Ejemplo
Al eliminar una vista, no se eliminan los datos, ya
que como se indicó, ella no es sino una
representación de otras tablas que sí existen en la
BD
SQL> DROP VIEW V_DIARIO_CONTAB;
View dropped.
Facultad Politécnica Base de Datos II 15
CONSULTA DE LASVISTAS CREADAS
 Las siguientes vistas pueden ser
consultadas:
 USER_VIEWS
 ALL_VIEWS
Información deVista
DESCRIBE user_views
SELECT DISTINCT view_name FROM user_views;
SELECT text FROM user_views
WHERE view_name = 'EMP_DETAILS_VIEW';
1
2
3
Facultad Politécnica Base de Datos II 17
Vistas MATERIALIZADAS
 La vistas materializadas son objetos de Oracle, en
los cuales además de almacenar la sentencia SQL
(query), se almacenan los datos que retorna,
realizando una carga inicial y después cada cierto
tiempo una actualización de los mismos.
 El query de la vista puede aplicarse sobre tablas u
otras vistas
 Las vistas materializadas permiten mejorar la
velocidad de acceso de las consultas de grandes
volúmenes de datos, ya que el query no se ejecuta
cada vez que se consulta la vista.
Facultad Politécnica Base de Datos II 18
Vistas MATERIALIZADAS
o Las vistas materializadas son utilizadas para realizar
resumen, cálculo, replicación y distribución de
datos.
o Se diferencian de las vistas convencionales por el
hecho de que no son ‘virtuales’ como las vistas
convencionales, sino que almacenan los datos
resultantes del query, por tanto:
- Los datos deben ser refrescados cuando la tabla
maestra cambia
- Mejoran la performance de las sentencias SQL
- Consumen espacio de almacenamiento
Facultad Politécnica Base de Datos II 19
CREATE MATERIALIZED VIEW
[esquema.]vista_materializada
ON PREBUILT TABLE [{WITH |
WITHOUT} REDUCED PRECISION]
[USING INDEX | USING NO INDEX
[opciones de refresh]
[FOR UPDATE] [{DISABLE | ENABLE}
QUERY REWRITE] AS subquery;
Vistas Materializadas- Sintaxis
Simplificada
Facultad Politécnica Base de Datos II 20
Descripción de la sintaxis
• Vista_materializada: Es el nombre de la vista
• La claúsula ON PREBUILT permite registrar una
tabla ya existente en el esquema como vista
materializada (asumiendo que la tabla refleja la
materializaición de un subquery)
• WITH REDUCED PRECISION: permite pérdida de
precisión
• FOR UPDATE: Especifica que la vista será
actualizada
• Subquery: Es el query definido para la vista
materializada
Facultad Politécnica Base de Datos II 21
CREATE MATERIALIZED VIEW
mi_vista_materializada
[TABLESPACE (mi_TableSpace)]
[BUILD {IMMEDIATE | DEFERRED}]
[REFRESH {ON COMMIT |
ON DEMAND | [START WITH fec_ini] NEXT
fecha_intervalo }
| {COMPLETE | FAST | FORCE} ]
[{ENABLE|DISABLE} QUERY REWRITE] AS
SELECT t1.campo1, t2.campo2 FROM mi_tabla1 t1,
mi_tabla2 t2 WHERE t1.campo_fk = t2.campo_pk …
Vistas Materializadas- Sintaxis aplicada
Facultad Politécnica Base de Datos II 22
Carga de datos en la vista
 BUILD IMMEDIATE:
Los datos de la vista se cargan en el mismo momento
de la creación
 BUILD DEFERRED:
Sólo se crea la definición, los datos se cargarán más
adelante. Para realizar esta carga se puede utilizar la
función REFRESH del package DBMS_MVIEW:
begin
dbms_mview.refresh('mi_vista_materializada');
end;
Comentarios sobre las diferentes opciones de la
sentencia Oracle SQL de creación de la vista
Facultad Politécnica Base de Datos II 23
 ENABLE QUERY REWRITE:
Se permite a la base de datos la reescritura de consultas
 DISABLE QUERY REWRITE:
Se desactiva la reescritura de consultas
 La opción QUERY REWRITE permite crear tablas agregadas en
forma de vistas materializadas, y que cuando se lance una SELECT
la base de datos pueda reescribirla para consultar la tabla o vista
que vaya a devolver los datos solicitados en menos tiempo, todo
de manera totalmente transparente al usuario
 Lo único que hay que hacer es crear las tablas agregadas como
vistas materializadas con QUERY REWRITE habilitado.
Comentarios sobre las diferentes opciones de la
sentencia Oracle SQL de creación de la vista
Facultad Politécnica Base de Datos II 24
 Ejemplo de vistas materializadas para la creación de tablas
agregadas.
CREATE MATERIALIZED VIEW ventas_agregadas_mv
BUILD IMMEDIATE REFRESH COMPLETE
ENABLE QUERY REWRITE AS
SELECT id_articulo, sum(cantidad * precio) totalv
FROM b_detalle_ventas
GROUP BY id_articulo;
 Con esta a sentencia se crearía una tabla agregada de total de
ventas por artículo
Ejemplo
Facultad Politécnica Base de Datos II 25
OPCIONES PARA REFRESCAR LAVISTA
{ REFRESH
{ { FAST | COMPLETE | FORCE }
| ON { DEMAND | COMMIT }
| { START WITH | NEXT } fecha
| WITH { PRIMARY KEY | ROWID }
| USING
{ DEFAULT [ MASTER | LOCAL ] ROLLBACK SEGMENT
| [ MASTER | LOCAL ] ROLLBACK SEGMENT
segmento_rollback
}
[ DEFAULT [ MASTER | LOCAL ] ROLLBACK SEGMENT
| [ MASTER | LOCAL ] ROLLBACK SEGMENT
segmento_rollback
]…| [NEVER REFRESH] }
Facultad Politécnica Base de Datos II 26
Vistas MATERIALIZADAS
Opciones de refresco
 FAST: Aplica cambios incrementales a medida que cambia
la tabla ‘master’. Los cambios son almacenados en la tabla
de LOG. Para saber si una vista materializada puede utilizar
el método FAST, el package DBMS_MVIEW proporciona el
procedure EXPLAIN_MVIEW
 COMPLETE: Refresca la vista ejecutando de nuevo el
query, aún cuando existan condiciones de hacer un FAST
refresh.
 FORCE: Aplica Fast Refresh si fuera posible, o de lo
contrario un refresco completo. Si no se especifica ninguna
opción (FAST, COMPLETE, FORCE), entonces se aplica
FORCE por default.
 NEVER: Indica que la vista no será refrescada
Facultad Politécnica Base de Datos II 27
Vistas MATERIALIZADAS
Opciones de refresco
 REFRESH ON COMMIT: se debe producir un refresh cuando
se da COMMIT a una transacción de la tabla ‘master’ de la base de
datos. Tiene la desventaja de que las operaciones DML tarden más,
por lo que no se recomienda para ambientes de mucha
concurrencia.
 REFRESH ON DEMAND. En el método ON DEMAND se
deberá utilizar explícitamente uno de los procedimientos
desponibles en el paquete DBMS_MVIEW: REFRESH,
REFRESH_ALL_MVIEWS o REFRESH_DEPENDENT. Es la opción
por defecto.
 REFRESH [START WITH fecha_inicio] NEXT
fecha_intervalo:
STARTWITH indica la fecha del primer refresco (fecha_inicio suele
ser un SYSDATE)
NEXT indica cada cuánto tiempo se actualizará (fecha_intervalo
podría ser SYSDATE +1 para realizar el refresco una vez al día)
Facultad Politécnica Base de Datos II 28
De qué manera se refrescarán
 REFRESH COMPLETE:
El refresco se hará de todos los datos de la vista materializada, la
recreará completamente cada vez que se lance el refresco
 REFRESH FAST:
El refresco será incremental, es la opción más recomendable.
Este tipo de refresco tiene bastantes restricciones según el tipo de
vista que se esté creando. Como ya se mencionó, para poder
utilizar este método casi siempre es necesario haber creado antes
un LOG de laVista materializada, indicando los campos clave en
los que se basará el mantenimiento de la vista.
 Se crea con "CREATE MATERIALIZEDVIEW LOG ON"
Temporalidad y método del refresco de los datos
Facultad Politécnica Base de Datos II 29
CREATE MATERIALIZED VIEW LOG ON B_DIARIO_CABECERA
WITH SEQUENCE, ROWID
(ID, FECHA, CONCEPTO , USUARIO, FECHA_CIERRE,
ID_AREA ) INCLUDING NEW VALUES;
CREATE MATERIALIZED VIEW LOG ON B_DIARIO_DETALLE
WITH SEQUENCE, ROWID
(ID, NRO_LINEA, CODIGO_CTA, DEBE_HABER, IMPORTE )
INCLUDING NEW VALUES;
OPCIÓN FAST: Requiere creación de LOGs
Facultad Politécnica Base de Datos II 30
OPCIÓN FAST: Requiere creación de LOGs
CREATE MATERIALIZED VIEW v_diarioFAST
BUILD IMMEDIATE
REFRESH FAST ON COMMIT
AS
SELECT c.id, c.fecha,
SUM (DECODE(d.debe_haber, 'D', d.importe,0)) DEBITO,
SUM (DECODE(d.debe_haber, 'C', d.importe,0)) CREDITO
FROM b_diario_detalle d JOIN b_diario_cabecera c
ON c.id = d.id
GROUP BY c.id, c.fecha;
Observación: Como se mencionó, la opción FAST tiene bastantes
restricciones. Puede ver las restricciones en la siguiente dirección:
https://docs.oracle.com/database/121/DWHSG/basicmv.htm#DWHSG8201
Facultad Politécnica Base de Datos II 31
REFRESH ON DEMAND
CREATE MATERIALIZED VIEW v_diariosONDEMAND
BUILD DEFERRED
REFRESH COMPLETE ON DEMAND
AS
SELECT c.id, c.fecha, d.nro_linea,
DECODE(debe_haber, 'D', importe, 0) DEBITO,
DECODE(debe_haber,'C',importe, 0) CREDITO
FROM b_diario_detalle d JOIN b_diario_cabecera c
ON c.id = d.id;
Para refrescar:
EXEC DBMS_MVIEW.REFRESH('v_diariosONDEMAND');
Facultad Politécnica Base de Datos II 32
REFRESCO PROGRAMADO
(START WITH y NEXT)
CREATE MATERIALIZED VIEW v_diariosProgramado
BUILD IMMEDIATE
REFRESH START WITH TRUNC(SYSDATE) + 11/24
NEXT NEXT_DAY(TRUNC(SYSDATE), 'LUNES') + 15/24
AS
SELECT c.id, c.fecha, d.nro_linea,
DECODE(debe_haber, 'D', importe, 0) DEBITO,
DECODE(debe_haber,'C',importe, 0) CREDITO
FROM b_diario_detalle d JOIN b_diario_cabecera c
ON c.id = d.id;
La vista se refrescará iniciando hoy a las 11 am, y
luego cada lunes a las 15:00
Facultad Politécnica Base de Datos II 33
 Este ejemplo crea una vista materializada de una tabla que se
refresque un día a la semana, y de manera incremental utilizando
un LOG.
CREATE MATERIALIZED VIEW LOG ON b_mayor
WITH PRIMARY KEY INCLUDING NEW VALUES;
CREATE MATERIALIZED VIEW mi_vista_materializada
REFRESH FAST NEXT SYSDATE + 7 AS
SELECT id_mayor, codigo_cta, anio, mes,
acum_debito, acum_credito
FROM b_mayor
WHERE anio = 2018;
Ejemplo
Facultad Politécnica Base de Datos II 34
Cada cuánto tiempo se refrescarán:
 REFRESH ON COMMIT
 REFRESH ON DEMAND
 REFRESH [START WITH fecha_inicio] NEXT
fecha_intervalo:
START WITH indica la fecha del primer refresco
(fecha_inicio suele ser un SYSDATE)
NEXT indica cada cuánto tiempo se actualizará
(fecha_intervalo podría ser SYSDATE +1 para realizar
el refresco una vez al día)
En síntesis, si hablamos de la temporalidad y el método
de refresco:

Más contenido relacionado

La actualidad más candente

Presentacion consultas access pilarchoco
Presentacion consultas access pilarchocoPresentacion consultas access pilarchoco
Presentacion consultas access pilarchoco
Pily Caiza
 

La actualidad más candente (16)

Manejo Control De Datos
Manejo Control De DatosManejo Control De Datos
Manejo Control De Datos
 
Vistas
VistasVistas
Vistas
 
Ejemplo ddl dml
Ejemplo ddl dmlEjemplo ddl dml
Ejemplo ddl dml
 
Sentencias Sql
Sentencias SqlSentencias Sql
Sentencias Sql
 
Presentacion consultas access pilarchoco
Presentacion consultas access pilarchocoPresentacion consultas access pilarchoco
Presentacion consultas access pilarchoco
 
SQL-DDL
SQL-DDLSQL-DDL
SQL-DDL
 
1.3. MANEJO DE CONTROL DE DATOS
1.3.	MANEJO DE CONTROL DE DATOS1.3.	MANEJO DE CONTROL DE DATOS
1.3. MANEJO DE CONTROL DE DATOS
 
Vistas
VistasVistas
Vistas
 
VISTAS
VISTASVISTAS
VISTAS
 
Vistas
Vistas Vistas
Vistas
 
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
 
Bdii 06 func_grupo_y_subconsultas
Bdii 06 func_grupo_y_subconsultasBdii 06 func_grupo_y_subconsultas
Bdii 06 func_grupo_y_subconsultas
 
1 lab-2 -tablas-y-restricciones
1 lab-2 -tablas-y-restricciones1 lab-2 -tablas-y-restricciones
1 lab-2 -tablas-y-restricciones
 
Consultas básicas en sql server
Consultas básicas en sql serverConsultas básicas en sql server
Consultas básicas en sql server
 
Tipos de consultas
Tipos de consultasTipos de consultas
Tipos de consultas
 
Vistas
VistasVistas
Vistas
 

Similar a Bdii 10 vistas_new

Vistas En Sql Y My Sql
Vistas En Sql Y My SqlVistas En Sql Y My Sql
Vistas En Sql Y My Sql
tec lerdo
 
Vistas En Sql Y My Sql
Vistas En Sql Y My SqlVistas En Sql Y My Sql
Vistas En Sql Y My Sql
Ziscko
 
Vistas en sql_y_my_sql
Vistas en sql_y_my_sqlVistas en sql_y_my_sql
Vistas en sql_y_my_sql
guest737e3012
 
Vistas En Sql Y My Sql
Vistas En Sql Y My SqlVistas En Sql Y My Sql
Vistas En Sql Y My Sql
itsl
 
Visualizacion de datos de varias tablas en sql
Visualizacion de datos de varias tablas en sqlVisualizacion de datos de varias tablas en sql
Visualizacion de datos de varias tablas en sql
JONATHAN1254
 

Similar a Bdii 10 vistas_new (20)

Vistas
VistasVistas
Vistas
 
Vistas
VistasVistas
Vistas
 
Vistas En Sql Y My Sql
Vistas En Sql Y My SqlVistas En Sql Y My Sql
Vistas En Sql Y My Sql
 
Vistas En Sql Y My Sql
Vistas En Sql Y My SqlVistas En Sql Y My Sql
Vistas En Sql Y My Sql
 
Vistas en sql_y_my_sql
Vistas en sql_y_my_sqlVistas en sql_y_my_sql
Vistas en sql_y_my_sql
 
Vistas en sql_y_my_sql
Vistas en sql_y_my_sqlVistas en sql_y_my_sql
Vistas en sql_y_my_sql
 
Vistas En Sql Y My Sql
Vistas En Sql Y My SqlVistas En Sql Y My Sql
Vistas En Sql Y My Sql
 
Vistas
VistasVistas
Vistas
 
Vistas
VistasVistas
Vistas
 
Indices y Vistas.pptx
Indices y Vistas.pptxIndices y Vistas.pptx
Indices y Vistas.pptx
 
Visualizacion de datos de varias tablas en sql
Visualizacion de datos de varias tablas en sqlVisualizacion de datos de varias tablas en sql
Visualizacion de datos de varias tablas en sql
 
Vistas
Vistas Vistas
Vistas
 
Diapositivas de vistas
Diapositivas de vistasDiapositivas de vistas
Diapositivas de vistas
 
Vistas
VistasVistas
Vistas
 
Vistas
VistasVistas
Vistas
 
Vista
VistaVista
Vista
 
Vistasensqlymysql
VistasensqlymysqlVistasensqlymysql
Vistasensqlymysql
 
Vistas en sql
Vistas en sqlVistas en sql
Vistas en sql
 
Bases de Datos Cap VI:SQL: SQL-Definición de datos
Bases de Datos Cap VI:SQL: SQL-Definición de datosBases de Datos Cap VI:SQL: SQL-Definición de datos
Bases de Datos Cap VI:SQL: SQL-Definición de datos
 
Leccion11
Leccion11Leccion11
Leccion11
 

Último

Conversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latinoConversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latino
BESTTech1
 

Último (20)

EPIDEMIO CANCER PULMON resumen nnn.pptx
EPIDEMIO CANCER PULMON  resumen nnn.pptxEPIDEMIO CANCER PULMON  resumen nnn.pptx
EPIDEMIO CANCER PULMON resumen nnn.pptx
 
Alfredo Gabriel Rodriguez Yajure Tarea#1
Alfredo Gabriel Rodriguez Yajure Tarea#1Alfredo Gabriel Rodriguez Yajure Tarea#1
Alfredo Gabriel Rodriguez Yajure Tarea#1
 
Las familias más ricas de África en el año (2024).pdf
Las familias más ricas de África en el año (2024).pdfLas familias más ricas de África en el año (2024).pdf
Las familias más ricas de África en el año (2024).pdf
 
Conversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latinoConversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latino
 
El Manierismo. El Manierismo
El Manierismo.              El ManierismoEl Manierismo.              El Manierismo
El Manierismo. El Manierismo
 
Las familias más ricas del medio oriente (2024).pdf
Las familias más ricas del medio oriente (2024).pdfLas familias más ricas del medio oriente (2024).pdf
Las familias más ricas del medio oriente (2024).pdf
 
max-weber-principales-aportes de la sociologia (2).pptx
max-weber-principales-aportes de la sociologia (2).pptxmax-weber-principales-aportes de la sociologia (2).pptx
max-weber-principales-aportes de la sociologia (2).pptx
 
AMNIOS Y CORDON UMBILICAL en el 3 embarazo (1).docx
AMNIOS Y CORDON UMBILICAL en el 3 embarazo (1).docxAMNIOS Y CORDON UMBILICAL en el 3 embarazo (1).docx
AMNIOS Y CORDON UMBILICAL en el 3 embarazo (1).docx
 
Porcentaje de población blanca europea en Europa Occidental (1923-2024).pdf
Porcentaje de población blanca europea en Europa Occidental (1923-2024).pdfPorcentaje de población blanca europea en Europa Occidental (1923-2024).pdf
Porcentaje de población blanca europea en Europa Occidental (1923-2024).pdf
 
data lista de ingresantes de la universidad de ucayali 2024.pdf
data lista de ingresantes de la universidad de ucayali 2024.pdfdata lista de ingresantes de la universidad de ucayali 2024.pdf
data lista de ingresantes de la universidad de ucayali 2024.pdf
 
Los primeros 60 países por IDH en el año (2024).pdf
Los primeros 60 países por IDH en el año (2024).pdfLos primeros 60 países por IDH en el año (2024).pdf
Los primeros 60 países por IDH en el año (2024).pdf
 
variables-estadisticas. Presentación powerpoint
variables-estadisticas. Presentación powerpointvariables-estadisticas. Presentación powerpoint
variables-estadisticas. Presentación powerpoint
 
6.3 Hidrologia Geomorfologia Cuenca.pptx
6.3 Hidrologia Geomorfologia Cuenca.pptx6.3 Hidrologia Geomorfologia Cuenca.pptx
6.3 Hidrologia Geomorfologia Cuenca.pptx
 
Los idiomas más hablados en el mundo (2024).pdf
Los idiomas más hablados en el mundo  (2024).pdfLos idiomas más hablados en el mundo  (2024).pdf
Los idiomas más hablados en el mundo (2024).pdf
 
CUADRO COMPARATIVO DE ARCHIVOS Y CARPETAS.pptx
CUADRO COMPARATIVO DE ARCHIVOS Y CARPETAS.pptxCUADRO COMPARATIVO DE ARCHIVOS Y CARPETAS.pptx
CUADRO COMPARATIVO DE ARCHIVOS Y CARPETAS.pptx
 
ROMA Y EL IMPERIO, CIUDADES ANTIGUA ROMANAS
ROMA Y EL  IMPERIO, CIUDADES  ANTIGUA ROMANASROMA Y EL  IMPERIO, CIUDADES  ANTIGUA ROMANAS
ROMA Y EL IMPERIO, CIUDADES ANTIGUA ROMANAS
 
Investigacion cualitativa y cuantitativa....pdf
Investigacion cualitativa y cuantitativa....pdfInvestigacion cualitativa y cuantitativa....pdf
Investigacion cualitativa y cuantitativa....pdf
 
Crecimiento del PIB real revisado sexenios neoliberales y nueva era del sober...
Crecimiento del PIB real revisado sexenios neoliberales y nueva era del sober...Crecimiento del PIB real revisado sexenios neoliberales y nueva era del sober...
Crecimiento del PIB real revisado sexenios neoliberales y nueva era del sober...
 
procedimiento paran la planificación en los centros educativos tipo v(multig...
procedimiento  paran la planificación en los centros educativos tipo v(multig...procedimiento  paran la planificación en los centros educativos tipo v(multig...
procedimiento paran la planificación en los centros educativos tipo v(multig...
 
La Guerra Biologica - Emiliano Paico Vilchez.pdf
La Guerra Biologica - Emiliano Paico Vilchez.pdfLa Guerra Biologica - Emiliano Paico Vilchez.pdf
La Guerra Biologica - Emiliano Paico Vilchez.pdf
 

Bdii 10 vistas_new

  • 1. Facultad Politécnica Base de Datos II 1 VISTAS
  • 2. Facultad Politécnica Base de Datos II 2 DEFINICIÓN DEVISTAS • Una vista es una tabla “lógica” basada en una tabla o en otra vista. • Una vista no contiene datos en sí misma , sino que se podría considerar como una tabla virtual a través de la cual pueden verse determinados datos de las tablas reales. • Las tablas sobre las cuales se basa una vista se llaman tablas base. • La vista se almacena como una sentencia SELECT en el Diccionario de Datos. USER_VIEWS.
  • 3. Facultad Politécnica Base de Datos II 3 Representación de una vista Tabla B_PERSONAS Vista V_PERSONAS_FISICAS ID TIPO PERSONA NOMBRE APELLIDO 1 F Jorge Amado Pereira González 2 F Roberto Abente Gómez 3 J Avente Comercial 4 J EARG S.A. 5 F Alfonso Brizuela Cuevas 6 J Cristhian Achucarro 7 J Amalgama S.A. 8 J Atlantic S.A.E.C.A. 9 J Cima S.R.L. 10 F Reina Rios 11 J Emac S.R.L. 12 F Roque Talavera 13 J Sanimax 14 F Ramon Gauto 15 J Servimex 16 J Libreria y Papeleria NOVA ID TIPO PERSONA NOMBRE APELLIDO 1 F Jorge Amado Pereira González 2 F Roberto Abente Gómez 5 F Alfonso Brizuela Cuevas 10 F Reina Rios 12 F Roque Talavera 14 F Ramon Gauto
  • 4. Facultad Politécnica Base de Datos II 4 Ventajas de las Vistas • Restringir el acceso a la Base de datos, puesto que permite desplegar sólo una porción de la misma • Simplificar los queries, ya que las vistas permiten que los usuarios consulten información de diferentes tablas sin que requieran conocer la complejidad de la sentencia utilizada para el efecto. • Permite lograr la independencia de los datos con respecto a las aplicaciones
  • 5. Facultad Politécnica Base de Datos II 5 Creando una Vista: Sintaxis • Aplicación de un subquery con la sentencia CREATE VIEW. • Los subqueries pueden contener una sentencia con compleja sintaxis de SELECT. CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW vista [(alias[, alias]...)] AS subquery [WITH CHECK OPTION [CONSTRAINT constraint]] [WITH READ ONLY [CONSTRAINT constraint]];
  • 6. Facultad Politécnica Base de Datos II 6 OPCIONES DE LA SENTENCIA Opción Descripción de la opción FORCE Crea una vista sin importar que las tablas base existan o no. Las tablas base deberán existir cuando se utilice una sentencia SELECT u otra DML sobre la vista NOFORCE Crea la vista solamente si la tabla existe Vista Es el nombre de la vista Alias Especifica el nombre que adoptarán los campos que conforman la vista y que deben coincidir con las columnas del SELECT Subquery Es la sentencia SELECT. Las columnas que conforman la sentencia SELECT serán las columnas de la vista WITH CHECK OPTION Especifica que la vista solamente admitirá la actualización o inserción de filas que cumplan con la restricción de la misma Constraint Es el nombre que se le da al constraint establecido con la cláusula WITH CHECK OPTION WITH READ ONLY Asegura que no se admitan sentencias de tipo DML sobre la tabla
  • 7. Facultad Politécnica Base de Datos II 7 • Cree la vista Emp_contabilidad que contiene solamente los empleados del área de Contabilidad: CREATE VIEW EMP_CONTABILIDAD AS SELECT E.CEDULA, E.NOMBRE|| ' ' || E.APELLIDO "Nombre y Apellido", A.NOMBRE_AREA FROM B_POSICION_ACTUAL P, B_AREAS A, B_EMPLEADOS E WHERE A.ID = P.ID_AREA AND E.CEDULA = P.CEDULA AND P.FECHA_FIN IS NULL AND UPPER(A.NOMBRE_AREA) = 'CONTABILIDAD'; Creando una Vista: Ejemplo • Despliegue datos de la vista ejecutando SELECT contra la vista. • Describa la estructura de la vista usando la orden DESCRIBE .
  • 8. Facultad Politécnica Base de Datos II 8 Para modificar eventualmente la vista Emp_contabilidad use CREATE OR REPLACE. También tiene la opción de usar alias para cada una de las columnas. Los seudónimos de la columna en la orden CREATE VIEW se listan en el mismo orden en el que están colocadas las columnas en el subquery. CREATE OR REPLACE VIEW EMP_CONTABILIDAD (Cédula, Nombre_apellido, Area) AS SELECT E.CEDULA, E.NOMBRE|| ' ' || E.APELLIDO, A.NOMBRE_AREA FROM B_POSICION_ACTUAL P, B_AREAS A, B_EMPLEADOS E WHERE A.ID = P.ID_AREA AND E.CEDULA = P.CEDULA AND P.FECHA_FIN IS NULL AND UPPER(A.NOMBRE_AREA) = 'CONTABILIDAD';
  • 9. Facultad Politécnica Base de Datos II 9 Creando una Vista Compleja: Ejemplo Cree una vista compleja que contiene funciones de grupo para desplegar valores de dos tablas. CREATE VIEW V_SALARIOS AS SELECT MAX(S.ASIGNACION) MAXIMO, MIN(S.ASIGNACION) MINIMO, AVG(S.ASIGNACION) PROMEDIO FROM B_POSICION_ACTUAL P, B_AREAS A, B_EMPLEADOS E, B_CATEGORIAS_SALARIALES S WHERE A.ID = P.ID_AREA AND E.CEDULA = P.CEDULA AND S.COD_CATEGORIA = P.COD_CATEGORIA AND S.FECHA_FIN IS NULL AND P.FECHA_FIN IS NULL;
  • 10. Facultad Politécnica Base de Datos II 10 VISTAS SIMPLES vsVISTAS COMPLEJAS CARACTERÍSTICA VISTAS SIMPLES VISTAS COMPLEJAS Nº de Tablas Una Una o más Funciones No Sí Contiene grupos de datos No Si Admite sentencias DML Sí No siempre
  • 11. Facultad Politécnica Base de Datos II 11 No puede: Si la vista contiene: ◦Borrar filas de una vista ◦Funciones del grupo. ◦Cláusula GROUP BY ◦La cláusula DISTINCT ◦La seudo columna ROWNUM ◦Modificar filas en una vista ◦Funciones del grupo. ◦Cláusula GROUP BY ◦La cláusula DISTINCT ◦La seudo columna ROWNUM ◦Columnas definas por expresiones ◦Agregar filas a una vista ◦Funciones del grupo. ◦Cláusula GROUP BY ◦La cláusula DISTINCT ◦La seudo columna ROWNUM ◦Columnas definidas por expresiones ◦Columnas NOT NULL en la tabla base que no están incluidas en la vista
  • 12. Facultad Politécnica Base de Datos II 12 Restricción de operaciones DML sobre la vista CREATE VIEW V_DIARIO_CONTAB AS SELECT ID, FECHA, CONCEPTO, USUARIO, FECHA_CIERRE, ID_AREA FROM B_DIARIO_CABECERA WHERE ID_AREA = 3 WITH READ ONLY; • READ ONLY :Evita la utilización de sentencias DML sobre la vista. Si intenta modificar los datos a través de la vista, tendrá error.
  • 13. Facultad Politécnica Base de Datos II 13 Utilización de la restricción WITH CHECK OPTION CREATE VIEW V_DIARIO_CONTAB AS SELECT ID, FECHA, CONCEPTO, USUARIO, FECHA_CIERRE, ID_AREA FROM B_DIARIO_CABECERA WHERE ID_AREA = 3 WITH CHECK OPTION CONSTRAINT CHK_DIARIO_AREA; • CHECK OPTION: Restringe los valores de la vista: Si usted intenta cambiar el id del área para cualquier fila en la vista, la declaración fallará porque viola el constraint CHECK.
  • 14. Facultad Politécnica Base de Datos II 14 Eliminando una Vista: Ejemplo Al eliminar una vista, no se eliminan los datos, ya que como se indicó, ella no es sino una representación de otras tablas que sí existen en la BD SQL> DROP VIEW V_DIARIO_CONTAB; View dropped.
  • 15. Facultad Politécnica Base de Datos II 15 CONSULTA DE LASVISTAS CREADAS  Las siguientes vistas pueden ser consultadas:  USER_VIEWS  ALL_VIEWS
  • 16. Información deVista DESCRIBE user_views SELECT DISTINCT view_name FROM user_views; SELECT text FROM user_views WHERE view_name = 'EMP_DETAILS_VIEW'; 1 2 3
  • 17. Facultad Politécnica Base de Datos II 17 Vistas MATERIALIZADAS  La vistas materializadas son objetos de Oracle, en los cuales además de almacenar la sentencia SQL (query), se almacenan los datos que retorna, realizando una carga inicial y después cada cierto tiempo una actualización de los mismos.  El query de la vista puede aplicarse sobre tablas u otras vistas  Las vistas materializadas permiten mejorar la velocidad de acceso de las consultas de grandes volúmenes de datos, ya que el query no se ejecuta cada vez que se consulta la vista.
  • 18. Facultad Politécnica Base de Datos II 18 Vistas MATERIALIZADAS o Las vistas materializadas son utilizadas para realizar resumen, cálculo, replicación y distribución de datos. o Se diferencian de las vistas convencionales por el hecho de que no son ‘virtuales’ como las vistas convencionales, sino que almacenan los datos resultantes del query, por tanto: - Los datos deben ser refrescados cuando la tabla maestra cambia - Mejoran la performance de las sentencias SQL - Consumen espacio de almacenamiento
  • 19. Facultad Politécnica Base de Datos II 19 CREATE MATERIALIZED VIEW [esquema.]vista_materializada ON PREBUILT TABLE [{WITH | WITHOUT} REDUCED PRECISION] [USING INDEX | USING NO INDEX [opciones de refresh] [FOR UPDATE] [{DISABLE | ENABLE} QUERY REWRITE] AS subquery; Vistas Materializadas- Sintaxis Simplificada
  • 20. Facultad Politécnica Base de Datos II 20 Descripción de la sintaxis • Vista_materializada: Es el nombre de la vista • La claúsula ON PREBUILT permite registrar una tabla ya existente en el esquema como vista materializada (asumiendo que la tabla refleja la materializaición de un subquery) • WITH REDUCED PRECISION: permite pérdida de precisión • FOR UPDATE: Especifica que la vista será actualizada • Subquery: Es el query definido para la vista materializada
  • 21. Facultad Politécnica Base de Datos II 21 CREATE MATERIALIZED VIEW mi_vista_materializada [TABLESPACE (mi_TableSpace)] [BUILD {IMMEDIATE | DEFERRED}] [REFRESH {ON COMMIT | ON DEMAND | [START WITH fec_ini] NEXT fecha_intervalo } | {COMPLETE | FAST | FORCE} ] [{ENABLE|DISABLE} QUERY REWRITE] AS SELECT t1.campo1, t2.campo2 FROM mi_tabla1 t1, mi_tabla2 t2 WHERE t1.campo_fk = t2.campo_pk … Vistas Materializadas- Sintaxis aplicada
  • 22. Facultad Politécnica Base de Datos II 22 Carga de datos en la vista  BUILD IMMEDIATE: Los datos de la vista se cargan en el mismo momento de la creación  BUILD DEFERRED: Sólo se crea la definición, los datos se cargarán más adelante. Para realizar esta carga se puede utilizar la función REFRESH del package DBMS_MVIEW: begin dbms_mview.refresh('mi_vista_materializada'); end; Comentarios sobre las diferentes opciones de la sentencia Oracle SQL de creación de la vista
  • 23. Facultad Politécnica Base de Datos II 23  ENABLE QUERY REWRITE: Se permite a la base de datos la reescritura de consultas  DISABLE QUERY REWRITE: Se desactiva la reescritura de consultas  La opción QUERY REWRITE permite crear tablas agregadas en forma de vistas materializadas, y que cuando se lance una SELECT la base de datos pueda reescribirla para consultar la tabla o vista que vaya a devolver los datos solicitados en menos tiempo, todo de manera totalmente transparente al usuario  Lo único que hay que hacer es crear las tablas agregadas como vistas materializadas con QUERY REWRITE habilitado. Comentarios sobre las diferentes opciones de la sentencia Oracle SQL de creación de la vista
  • 24. Facultad Politécnica Base de Datos II 24  Ejemplo de vistas materializadas para la creación de tablas agregadas. CREATE MATERIALIZED VIEW ventas_agregadas_mv BUILD IMMEDIATE REFRESH COMPLETE ENABLE QUERY REWRITE AS SELECT id_articulo, sum(cantidad * precio) totalv FROM b_detalle_ventas GROUP BY id_articulo;  Con esta a sentencia se crearía una tabla agregada de total de ventas por artículo Ejemplo
  • 25. Facultad Politécnica Base de Datos II 25 OPCIONES PARA REFRESCAR LAVISTA { REFRESH { { FAST | COMPLETE | FORCE } | ON { DEMAND | COMMIT } | { START WITH | NEXT } fecha | WITH { PRIMARY KEY | ROWID } | USING { DEFAULT [ MASTER | LOCAL ] ROLLBACK SEGMENT | [ MASTER | LOCAL ] ROLLBACK SEGMENT segmento_rollback } [ DEFAULT [ MASTER | LOCAL ] ROLLBACK SEGMENT | [ MASTER | LOCAL ] ROLLBACK SEGMENT segmento_rollback ]…| [NEVER REFRESH] }
  • 26. Facultad Politécnica Base de Datos II 26 Vistas MATERIALIZADAS Opciones de refresco  FAST: Aplica cambios incrementales a medida que cambia la tabla ‘master’. Los cambios son almacenados en la tabla de LOG. Para saber si una vista materializada puede utilizar el método FAST, el package DBMS_MVIEW proporciona el procedure EXPLAIN_MVIEW  COMPLETE: Refresca la vista ejecutando de nuevo el query, aún cuando existan condiciones de hacer un FAST refresh.  FORCE: Aplica Fast Refresh si fuera posible, o de lo contrario un refresco completo. Si no se especifica ninguna opción (FAST, COMPLETE, FORCE), entonces se aplica FORCE por default.  NEVER: Indica que la vista no será refrescada
  • 27. Facultad Politécnica Base de Datos II 27 Vistas MATERIALIZADAS Opciones de refresco  REFRESH ON COMMIT: se debe producir un refresh cuando se da COMMIT a una transacción de la tabla ‘master’ de la base de datos. Tiene la desventaja de que las operaciones DML tarden más, por lo que no se recomienda para ambientes de mucha concurrencia.  REFRESH ON DEMAND. En el método ON DEMAND se deberá utilizar explícitamente uno de los procedimientos desponibles en el paquete DBMS_MVIEW: REFRESH, REFRESH_ALL_MVIEWS o REFRESH_DEPENDENT. Es la opción por defecto.  REFRESH [START WITH fecha_inicio] NEXT fecha_intervalo: STARTWITH indica la fecha del primer refresco (fecha_inicio suele ser un SYSDATE) NEXT indica cada cuánto tiempo se actualizará (fecha_intervalo podría ser SYSDATE +1 para realizar el refresco una vez al día)
  • 28. Facultad Politécnica Base de Datos II 28 De qué manera se refrescarán  REFRESH COMPLETE: El refresco se hará de todos los datos de la vista materializada, la recreará completamente cada vez que se lance el refresco  REFRESH FAST: El refresco será incremental, es la opción más recomendable. Este tipo de refresco tiene bastantes restricciones según el tipo de vista que se esté creando. Como ya se mencionó, para poder utilizar este método casi siempre es necesario haber creado antes un LOG de laVista materializada, indicando los campos clave en los que se basará el mantenimiento de la vista.  Se crea con "CREATE MATERIALIZEDVIEW LOG ON" Temporalidad y método del refresco de los datos
  • 29. Facultad Politécnica Base de Datos II 29 CREATE MATERIALIZED VIEW LOG ON B_DIARIO_CABECERA WITH SEQUENCE, ROWID (ID, FECHA, CONCEPTO , USUARIO, FECHA_CIERRE, ID_AREA ) INCLUDING NEW VALUES; CREATE MATERIALIZED VIEW LOG ON B_DIARIO_DETALLE WITH SEQUENCE, ROWID (ID, NRO_LINEA, CODIGO_CTA, DEBE_HABER, IMPORTE ) INCLUDING NEW VALUES; OPCIÓN FAST: Requiere creación de LOGs
  • 30. Facultad Politécnica Base de Datos II 30 OPCIÓN FAST: Requiere creación de LOGs CREATE MATERIALIZED VIEW v_diarioFAST BUILD IMMEDIATE REFRESH FAST ON COMMIT AS SELECT c.id, c.fecha, SUM (DECODE(d.debe_haber, 'D', d.importe,0)) DEBITO, SUM (DECODE(d.debe_haber, 'C', d.importe,0)) CREDITO FROM b_diario_detalle d JOIN b_diario_cabecera c ON c.id = d.id GROUP BY c.id, c.fecha; Observación: Como se mencionó, la opción FAST tiene bastantes restricciones. Puede ver las restricciones en la siguiente dirección: https://docs.oracle.com/database/121/DWHSG/basicmv.htm#DWHSG8201
  • 31. Facultad Politécnica Base de Datos II 31 REFRESH ON DEMAND CREATE MATERIALIZED VIEW v_diariosONDEMAND BUILD DEFERRED REFRESH COMPLETE ON DEMAND AS SELECT c.id, c.fecha, d.nro_linea, DECODE(debe_haber, 'D', importe, 0) DEBITO, DECODE(debe_haber,'C',importe, 0) CREDITO FROM b_diario_detalle d JOIN b_diario_cabecera c ON c.id = d.id; Para refrescar: EXEC DBMS_MVIEW.REFRESH('v_diariosONDEMAND');
  • 32. Facultad Politécnica Base de Datos II 32 REFRESCO PROGRAMADO (START WITH y NEXT) CREATE MATERIALIZED VIEW v_diariosProgramado BUILD IMMEDIATE REFRESH START WITH TRUNC(SYSDATE) + 11/24 NEXT NEXT_DAY(TRUNC(SYSDATE), 'LUNES') + 15/24 AS SELECT c.id, c.fecha, d.nro_linea, DECODE(debe_haber, 'D', importe, 0) DEBITO, DECODE(debe_haber,'C',importe, 0) CREDITO FROM b_diario_detalle d JOIN b_diario_cabecera c ON c.id = d.id; La vista se refrescará iniciando hoy a las 11 am, y luego cada lunes a las 15:00
  • 33. Facultad Politécnica Base de Datos II 33  Este ejemplo crea una vista materializada de una tabla que se refresque un día a la semana, y de manera incremental utilizando un LOG. CREATE MATERIALIZED VIEW LOG ON b_mayor WITH PRIMARY KEY INCLUDING NEW VALUES; CREATE MATERIALIZED VIEW mi_vista_materializada REFRESH FAST NEXT SYSDATE + 7 AS SELECT id_mayor, codigo_cta, anio, mes, acum_debito, acum_credito FROM b_mayor WHERE anio = 2018; Ejemplo
  • 34. Facultad Politécnica Base de Datos II 34 Cada cuánto tiempo se refrescarán:  REFRESH ON COMMIT  REFRESH ON DEMAND  REFRESH [START WITH fecha_inicio] NEXT fecha_intervalo: START WITH indica la fecha del primer refresco (fecha_inicio suele ser un SYSDATE) NEXT indica cada cuánto tiempo se actualizará (fecha_intervalo podría ser SYSDATE +1 para realizar el refresco una vez al día) En síntesis, si hablamos de la temporalidad y el método de refresco: