46 - Indices (eliminar)


Primer problema:

Un profesor guarda algunos datos de sus alumnos en una tabla llamada "alumnos".

1- Elimine la tabla y créela con la siguiente estructura:

 drop table alumnos;
 create table alumnos(
  legajo char(5) not null,
  documento char(8) not null,
  nombre varchar2(30),
  curso char(1) not null,
  materia varchar2(20) not null,
  notafinal number(4,2)
 );

2- Cree un índice no único para el campo "nombre".

3- Establezca una restricción "primary key" para el campo "legajo"

4- Verifique que se creó un índice con el nombre de la restricción.

5- Verifique que se creó un índice único con el nombre de la restricción consultando el diccionario de índices.

6- Intente eliminar el índice "PK_alumnos_legajo" con "drop index".

7- Cree un índice único para el campo "documento".

8- Agregue a la tabla una restricción única sobre el campo "documento" y verifique que no se creó un índice, Oracle emplea el índice creado en el punto anterior.

9- Intente eliminar el índice "I_alumnos_documento" (no se puede porque una restricción lo está utilizando)

10- Elimine la restricción única establecida sobre "documento".

11- Verifique que el índice "I_alumnos_documento" aún existe.

12- Elimine el índice "I_alumnos_documento", ahora puede hacerlo porque no hay restricción que lo utilice.

13-Elimine el índice "I_alumnos_nombre".

14- Elimine la restricción "primary key"/

15- Verifique que el índice "PK_alumnos_legajo" fue eliminado (porque fue creado por Oracle al establecerse la restricción)

16- Cree un índice compuesto por los campos "curso" y "materia", no único.

17- Verifique su existencia.

18- Elimine la tabla "alumnos" y verifique que todos los índices han sido eliminados junto con ella.

Ver solución

 drop table alumnos;
 create table alumnos(
  legajo char(5) not null,
  documento char(8) not null,
  nombre varchar(30),
  curso char(1) not null,
  materia varchar2(20) not null,
  notafinal number(4,2)
 );

 create index I_alumnos_nombre
  on alumnos(nombre);

 alter table alumnos
  add constraint PK_alumnos_legajo
  primary key (legajo);

 select constraint_name, constraint_type, index_name
  from user_constraints
  where table_name='ALUMNOS';

 select index_name,uniqueness
  from user_indexes
  where table_name='ALUMNOS';

 drop index PK_alumnos_legajo;

 create unique index I_alumnos_documento
  on alumnos(documento);

 alter table alumnos
  add constraints UQ_alumnos_documento
  unique (documento);

 select constraint_name, constraint_type, index_name
  from user_constraints
  where table_name='ALUMNOS';

 drop index I_alumnos_documento;

 alter table alumnos
  drop constraint UQ_ALUMNOS_DOCUMENTO;

 select index_name,uniqueness
  from user_indexes
  where table_name='ALUMNOS';

 drop index I_alumnos_documento;

 drop index I_alumnos_nombre;

 alter table alumnos
 drop constraint PK_ALUMNOS_LEGAJO;

 select index_name,uniqueness
  from user_indexes
  where table_name='ALUMNOS';

 create index I_alumnos_cursomateria
  on alumnos(curso,materia);

 select index_name,uniqueness
  from user_indexes
  where table_name='ALUMNOS';

 drop table alumnos;
 
 select index_name,uniqueness
  from user_indexes
  where table_name='ALUMNOS';

 


Retornar