You are on page 1of 10

Módulo

A1

Crear secuencias

VIRGINIO GOMEZ
Secuencias

Si tú eres capaz de crear secuencias en lenguaje SQL, estarás en condiciones


de poder asignar números claves incrementales a las tuplas de tu base de datos.

Para crear de forma correcta una secuencia en lenguaje SQL, tendrás que:

. Describir una secuencia

. Describir la cláusula SQL de la secuencia

. Aplicar la creación, modificación y eliminación de una secuencia

T.N.S. en Computación e Informática Base de Datos 1


1.- Concepto de Secuencia
Describir una
secuencia

Describir la cláusula
Una secuencia genera números automáticamente, utilizado normalmente para
SQL de la secuencia crear valores de clave primaria. Es un objeto compartible y además evita el
Aplicar la creación,
modificación y
uso de código de aplicación.
eliminación de una
secuencia

2.- Cláusula SQL de la secuencia

La sentencia CREATE SEQUENCE define una sentencia para generar números


automáticamente:
CREATE SEQUENCE secuencia
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}];
VIRGINIO GOMEZ

3.- Creación, modificación y eliminación de una secuencia

Creación de una secuencia


- Podemos crear una secuencia DEPT_DEPTID para que nos de la clave
de la tabla DEPT.
- No usamos la opción CYCLE

CREATE SEQUENCE Dept_deptid


INCREMET BY 1
START WITH 91
MAXVALUE 100
NOCACHE
NOCYCLE;

Comprobar las secuencias


- Podemos consultar las secuencias en la tabla USER_SEQUENCES del
catalogo.

SELECT sequence_name, min_value, max_value,


increment_by, last_number
FROM user_sequences;

- La columna LAST_NUMBER muestra el próximo número de la


secuencia.

Uso de una secuencia

- Insertar un nuevo departamento «MARKETING» en San Diego.

2 T.N.S. en Computación e Informática Base de Datos


INSERT INTO dept(deptid, dnombre, loc)
VALUES (Dept_deptid.NEXTVAL, ‘MARKETING’, ‘SAN
DIEGO’);
- Comprobar el valor de la secuencia DEPT_DEPTID
SELECT Dept_deptid.CURRVAL
FROM dual;

- En los valores de una secuencia pueden aparecer huecos cuando:


Se usa ROLLBACK
Cae el sistema
La secuencia se usa en otra tabla

Modificando una secuencia


- Se puede cambiar el valor de incremento, el máximo, el mínimo y las
opciones de ciclo y cache.
-
ALTER SEQUENCE Dept_deptid
INCREMENT BY 1
MAXVALUE 99999
NOCACHE
COCYCLE;

VIRGINIO GOMEZ
Notas para modificar una secuencia
- Debemos ser propietarios de la secuencia o tener el privilegio para
alterarla.
- Sólo los valores futuros de la secuencia se alteran
- Para reiniciar la secuencia con un número diferente hay que destruirla
y volver a crear.

Eliminar una secuencia


- Se puede eliminar una secuencia con la sentencia DROP
SEQUENCE.
- Una vez eliminada ya no se puede referenciar.

DROP SEQUENCE dept_deptid

Autoevaluación

1.- Indique la estructura de la sentencia para creación de una secuencia.


FROM user_sequences;
increment_by, last_value
min_value, max_value,
2.- SELECT sequence_name,

2.- Indique la forma en que se verifica si una secuencia en la tabla de catálogos [{CACHE n | NOCACHE}];

del sistema.
[{CYCLE | NOCYCLE}]´
[{MINVALUE n | NOMINVALUE}]
[{MAXVALUE n | NOMAXVALUE}]
[START WITH n]
[INCREMENT BY n]
1.- CREATE SEQUENCE secuencia

Respuestas:

T.N.S. en Computación e Informática Base de Datos 3


VIRGINIO GOMEZ

4 T.N.S. en Computación e Informática Base de Datos


Módulo
A2

Crear índices

VIRGINIO GOMEZ
Indices

Si tú eres capaz de crear índices en lenguaje SQL, estarás en condiciones de


poder optimizar el rendimiento de acceso a las tuplas de tu base de datos.

Para crear de forma correcta un índice en lenguaje SQL, tendrás que:

. Describir un índice

. Describir la cláusula SQL de un índice

. Aplicar la creación, eliminación y consulta de un índice

T.N.S. en Computación e Informática Base de Datos 5


1.- Concepto de índices
Describir un índice

Describir la cláusula
SQL de un índice
Un índice es un objeto del esquema, es usado por el servidor de Oracle para
Aplicar la creación,
mejorar la velocidad con que se recuperan las tuplas y reducir las operaciones
modificación y
eliminación de un
de E/S del disco. Es independiente de la tabla que indexa. Se mantiene y usa
índice automáticamente por el Servidor Oracle.

2.- Cláusula SQL de un índice

- Automáticamente
Un índice se crea cuando se define una restricción PRIMARY KEY o
UNIQUE en la definición de una tabla.

- Manualmente
Los usuarios pueden crear índices sobre columnas para mejorar la velocidad
de acceso a los datos.

- Se puede crear un índice sobre una o varias columnas:


VIRGINIO GOMEZ

CREATE INDEX <Nombre índice>


ON tabla (columna [,columna]..);

3.- Creación, eliminación y consulta de un índice

Podemos mejorar la consulta sobre la columna ENOMBRE de EMP

CREATE INDEX emp_enombre_idx


ON emp(nombre);

Notas para la creación de un índice


- La columna se usa con frecuencia en la cláusula WHERE o en
condiciones de reunión.
- La columna contiene un amplio rango de valores.
- La columna contiene una gran número de valores NULOS.
- Dos o más columnas se usan con frecuencia juntas en una cláusula
WHERE o en una condición de reunión.
- La tabla es grande y la mayoría de las consultas recuperan un 5%
de las tuplas.
- No se debe crear un índice sí:
La tabla es pequeña.
Las columnas no se suelen usar en las condiciones de una consulta.
Las consultas normalmente van a devolver más de un 5% de las
tuplas.
La tabla se actualiza con frecuencia.

6 T.N.S. en Computación e Informática Base de Datos


Consultar sobre los índices
- La vista USER_INDEXES del catálogo contiene el nombre de los
índices y sus características de unicidad.
- La vista USER_IND_COLUMNS contiene el nombre del índice, la
tabla y la columna sobre la que está definida.

SELECT ic_index_name, ic-column_name,


ic_column_position col_pos, ix.uniqueness
FROM user_indexes ix, user_ind_columns ic
WHERE ic.index_name = ix.inde_name
AND ic.table_name = ‘EMP’

Eliminación de un índice

- Se puede eliminar un índice:


DROP INDEX indice;

- Podemos eliminar el índice EMP_ENOMBRE_IDX del catalogo:


DROP INDEX emp_enombre_idx;

VIRGINIO GOMEZ
- Para eliminar el índice debe ser nuestro o tener el privilegio DROP
ANY INDEX

Autoevaluación

1.- Indique la estructura de la sentencia para creación de un índice.

2.- Indique la forma en que se verifica si un índice esta creado en la tabla de


catálogos del sistema.

ic.index_name = ix.inde_name;
WHERE
user_ind_columns ic
FROM user_indexes ix,
ix.uniqueness
ic_column_position col_pos,
ic_index_name, ic-column_name,
2.- SELECT
(columna [,columna]..);
ON tabla
<Nombre índice>
1.- CREATE INDEX

Respuestas:

T.N.S. en Computación e Informática Base de Datos 7


VIRGINIO GOMEZ

8 T.N.S. en Computación e Informática Base de Datos


Módulo
A3

Crear Sinónimos

VIRGINIO GOMEZ
Sinónimos

Si tú eres capaz de crear sinónimos en lenguaje SQL, estarás en condiciones


de simplificar el acceso a los objetos de tu base de datos.

Para crear de forma correcta un índice en lenguaje SQL, tendrás que:

. Describir un sinónimo

. Describir la cláusula SQL del sinónimo

. Aplicar la creación y eliminación de sinónimos

T.N.S. en Computación e Informática Base de Datos 9


1.- Conceptos sobre Sinónimos
Describir un sinónimo

Describir la cláusula
SQL del sinónimo Se puede simplificar el acceso a la base de datos creando sinónimos (nombre
Aplicar la creación, y alternativo para los objetos). Usado para referirnos a tablas de otro usuario y
eliminación de
sinónimos acortar nombres largos de objetos.

2.- Cláusula SQL del sinónimo


CREATE [PUBLIC] SYNONYM <Nombre sinónimo>
FOR objeto;

3.- Creación y eliminación de sinónimos

- Podemos crear un nombre corto para la tabla EMP

CREATE SYNONYM e
FOR emp;

- Lo podemos eliminar con DROP.


VIRGINIO GOMEZ

DROP SYNONYM e;

Autoevaluación

1.- Indique la estructura de la sentencia para creación de un sinónimo.

2.- Indique la forma en que se crea un sinónimo para la tabla PELICULAS

PELICULAS;
2.- CREATE SYNONYM e FOR
<Nombre sinónimo> FOR objeto;
1.- CREATE [PUBLIC] SYNONYM

Respuestas:

10 T.N.S. en Computación e Informática Base de Datos

You might also like