Escolar Documentos
Profissional Documentos
Cultura Documentos
LABORATORIO 8
Vistas, Secuencias, Índices y Sinónimos
Contenido
1. Tipos de vistas
2. Creación de vistas
3. Descripción de la estructura interna de una vista
4. Mostar las vistas del usuario
5. Creación de vistas usando alias para los respectivos nombres de columnas de la subconsulta
6. Consultar los datos de una vista
7. Funcionamiento de las vistas
8. Modificación de una vista
9. Creación de vistas complejas
10. Añadir datos a través de una vista
11. Aseguramiento de operaciones DML
12. Eliminar una vista
13. Verificación de los valores de las secuencias
14. Uso de una secuencia
15. Modificación de una secuencia
16. Eliminar una secuencia
17. Mostrar la información de los sinónimos
18. Creación de sinónimos
19. Eliminación de sinónimos
20. Formas de creación de índices
21. Creación de un índice
22. Detalles de los índices
23. Tipos de índices
24. Indices basados en funciones
25. Eliminación de un índice
Una vista es una tabla virtual basada en una consulta SELECT almacenada que representa un
subconjunto de datos de una o mas tablas a fin de ser utilizadas tantas veces sea necesario
No contiene datos sino las consultas de las tablas base que son las que proveen los datos
almacenados en la BD con los cuales la vista se soporta
• Puede contener columnas, columnas calculadas, alias, y funciones de agregación
• Restringe el acceso a los datos
• Hace fáciles de usar a las consultas complejas
• Provee independencia de datos
• Presentan diferentes perspectivas de los mismos datos
• Proporciona datos completos
Tipos de vistas
Ejemplo
Crear una vista, EMPVU80, que contiene detalles de los empleados del departamento 80.
2
Creación de vistas usando alias para los respectivos nombres de columnas de la subconsulta
3
Creación de vistas complejas
No puede adicionar datos, ni eliminar filas y/o modificar datos en una vista si la
vista contiene cualquiera de lo siguiente:
• Funciones de grupo
• La cláusula GROUP BY
• La palabra reservada DISTINCT
• La palabra reservada de seudocolumna ROWNUM
• Columnas definidas por expresiones calculadas
• Columnas NOT NULL en las tablas que no son seleccionadas por la vista
4
SECUENCIAS
Es usado para crear el valor de una llave primaria para ser asignado a un campo autonumérico ya
que genera automáticamente números secuenciales únicos
Una secuencia es una tabla con una columna numérica en la que se almacena un valor
independiente. Cada vez que se consulta la secuencia se incrementa el número para la siguiente
consulta.
Sintaxis
Increment By: Indica cuanto se incrementa la secuencia cada vez que se usa, por defecto se
incrementa de 1 en 1, (puede ser cualquier entero positivo o negativo)
Start With: Indica el valor inicial de la secuencia (por defecto 1)
Maxvalue: Máximo valor que puede tomar la secuencia, por defecto es NOMAXVALUE que
permite llagar hasta 1027
Minvalue: Mínimo valor que puede tomar la secuencia, por defecto es NOMINVALUE que permite
llegar hasta -1026
Cycle: Hace que la secuencia vuelva a empezar si se ha llegado al máximo valor (por defecto es
NOCYCLE)
Cache: Reserva un espacio de memoria cache para almacenar el valor de la secuencia (por defecto
es nocache)
Ejemplo
Crear una secuencia llamada DEPT_DEPTID_SEQ para ser usada por la llave primaria de la
tabla DEPARTMENTS
NEXTVAL
Incrementa el valor de la secuencia al siguiente valor disponible
CURVAL
Obtiene el valor actual de la secuencia sin incrementarla
5
Uso de una secuencia
Insertar un departamento nuevo llamado “Support”en la localización ID 2500.
Ejemplo
Cambiar el valor incremental, valor máximo, valor mínimo, opción cycle, u opción cache.
update clientes
set codigo = SEQ_COD_CLI.NEXTVAL;
Simplifica el acceso a los objetos de la base de datos redefiniendo los nombres de los objetos
creando un sinónimo que permita acceder a los objetos a través del nuevo nombre simplificado
PUBLIC
Permite que todos los usuarios puedan acceder al sinónimo, por defecto el sinónimo solo lo puede
usar el usuario que lo creo
USUARIO
Permite acceder a otro esquema de base de datos diferente al del usuario actual
Creación de sinónimos
Eliminación de sinónimos
7
INDICES
• Es un objeto que crea una lista ordenada con los valores del campo indexado y es usado por el
servidor para acelerar la velocidad a la recuperación de filas
• Cada vez que se añade un nuevo registro los índices involucrados se actualizan
automáticamente
Podemos usar la analogía del índice de un libro, cuando nosotros necesitamos buscar un tema en un
libro, tenemos dos posibilidades:
1. Recorrernos todas las páginas del libro buscando la primera hoja de cada tema y comprobando
si es el que necesitamos. En esta búsqueda perderemos la mayoría del tiempo en pasar hojas
buscando el principio de cada tema, y una vez que lo hayamos encontrado, comprobar si el tema
es el deseado.
2. Podemos ir al índice en el que sólo están escritos los títulos de los temas y tan solo con pasar
unas hojas ya hemos recorrido todo el temario. Después vamos a la página que nos indique el
índice y consultamos lo que necesitemos.
Automáticamente:
Los índices se crean automáticamente cuando se define una PRIMARY KEY o UNIQUE (Indice
único para el campo)o FOREIGN KEY (Indice con duplicados)
Manualmente:
Los usuarios pueden crear Indices no únicos sobre las columnas mas utilizadas para elevar la
velocidad de las consultas.
Creación de un índice
Sintaxis
Ejemplo
Acelerar las consultas de los apellidos de la tabla empleados
8
Detalles de los índices
USER_INDEXES contiene el nombre del índice y sus datos unívocos.
USER_IND_COLUMNS contiene el nombre del índice, el nombre de la tabla, y el nombre de la
columna indexada.
Tipos de índices
Indices Únicos:
Se crea al definir tablas con alguna columna declarada como PRIMARY KEY o UNIQUE, entones
dicha columna será Indexada automáticamente
Indices Compuestos:
Índice basado en dos o más atributos, frecuentemente usado para eliminar registros duplicados
Eliminación de un índice
Referencias
http://www-db.stanford.edu/~ullman/fcdb.html