Você está na página 1de 9

BASE DE DATOS

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

ING. Fernando Castillo R. 2010 - II


ecastillor@upao.edu.pe
VISTAS

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

Creación de vistas simples


Sintaxis

REPLACE: si ya existe la reemplaza por la nueva


FORCE: crea la vista aunque los datos no existan

Ejemplo
Crear una vista, EMPVU80, que contiene detalles de los empleados del departamento 80.

Descripción de la estructura interna de una vista

Mostar las vistas del usuario

2
Creación de vistas usando alias para los respectivos nombres de columnas de la subconsulta

Consultar los datos de una vista

Funcionamiento de las vistas

Modificación de una vista


La cláusula CREATE OR REPLACE VIEW crea la vista pero si esta ya existe la reemplaza

Modificar la vista empvu80 adicionándole los nombres de cada empleado

3
Creación de vistas complejas

Añadir datos a través de una vista

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

Aseguramiento de operaciones DML

WITH CHECK OPTION


Asegura que las operaciones DML se establezcan siempre dentro del dominio de la vista
Ejemplo
Asegurarse que siempre se mantenga la condición de la vista empvu20 de tal forma que no permita
cambiar el número de departamento

WITH READ ONLY


Asegura que no se puedan realizar operaciones DML sobre la vista

Eliminar una 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

Verificación de los valores de las secuencias

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.

Mostrar el valor actual de la secuencia

Modificación de una secuencia


Las modificaciones solo afectaran a los valores futuros más no a los ya utilizados.

Ejemplo
Cambiar el valor incremental, valor máximo, valor mínimo, opción cycle, u opción cache.

Eliminar una secuencia


Al eliminar una secuencia no se eliminan los valores que esta ya creo

Vacios en las secuencias:


• Cuando ocurre una restauración.
• Cuando se generan errores o eliminaciones
• Cuando la secuencia es usada en otratabla

Ejemplo de uso de secuencias


CREATE SEQUENCE SEQ_COD_CLI
START WITH 1
INCREMENT BY 1;

update clientes
set codigo = SEQ_COD_CLI.NEXTVAL;

insert into clientes


values(SEQ_COD_CLI.NEXTVAL,'Juan','Perez');

select * from clientes


where codigo = SEQ_COD_CLI.CURRVAL;
6
SINÓNIMOS

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

Mostrar la información de los sinónimos

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.

Formas de creación de índices

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.

Cuando crear un indice Cuando no crear un indice


• Una columna contiene un amplio rango • La tabla es muy pequeña
de valores • Las columnas no son frecuentemente
• Una columna contiene un número usadas como una condición en el query
grande de valores nulos • La mayoría de queries se esperan
• Una o más columnas son recuperen más de 2 a 4 por ciento de las
frecuentemente usadas en las consultas filas de las tablas
• La tabla es grande y la mayoría de • La tabla es actualizada frecuentemente
queries recuperan menos de 2 a 4 por • Las columnas indexadas son
ciento de filas referenciadas como parte de una
expresión

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

Indices basados en funciones

Eliminación de un índice

Referencias
http://www-db.stanford.edu/~ullman/fcdb.html

Você também pode gostar