Los índices.

Google

Definición

 

Un índice en informática es como el índice de un libro donde tenemos los capítulos del libro y la página donde empieza cada capítulo. No vamos a entrar ahora en cómo se implementan los índices internamente ya que no entra en los objetivos del curso pero sí daremos unas breves nociones de cómo se definen, para qué sirven y cuándo hay que utilizarlos y cuando no.

Un índice es una estructura de datos que permite recuperar las filas de una tabla de forma más rápida además de proporcionar una ordenación distinta a la natural de la tabla. Un índice se define sobre una columna o sobre un grupo de columnas, y las filas se ordenarán según los valores contenidos en esas columnas. Por ejemplo, si definimos un índice sobre la columna poblacion de una tabla de clientes, el índice permitirá recuperar los clientes ordenados por orden alfabético de población.

Si el índice se define sobre varias columnas, los registros se ordenarán por la primera columna, dentro de un mismo valor de la primera columna se ordenarán por la segunda columna, y así sucesivamente. Por ejemplo si definimos un índice sobre las columnas provincia y poblacion se ordenarán los clientes por provincia y dentro de la misma provincia por población, aparecerían los de ALICANTE Denia, los de ALICANTE Xixona, VALENCIA Benetússer, y finalmente los de VALENCIA Oliva.

El orden de las columnas dentro de un índice es importante, si retomamos el ejemplo anterior y definimos el índice sobre poblacion y provincia, aparecerían los de VALENCIA Benetusser, seguidos de los ALICANTE Denia, VALENCIA Oliva, y finalmente los de ALICANTE Xixona. Ahora se han ordenado por población y los clientes de la misma población se ordenan por el campo provincia.

 

Ventajas e inconvenientes.

 

Ventajas:

Si una tabla tiene definido un índice sobre una columna Access puede localizar mucho más rápidamente una fila que tenga un determinado valor en esa columna.

Recuperar las filas de una tabla de forma ordenada por la columna en cuestión también será mucho más rápido.

 

Inconvenientes:

Al ser el índice una estructura de datos adicional a la tabla, ocupa un poco más de espacio en disco.

Cuando se añaden, modifican o se borran filas de la tabla, el sistema debe actualizar los índices afectados por esos cambios lo que supone un tiempo de proceso mayor.

Por estas razones no es aconsejable definir índices de forma indiscriminada.

Los inconvenientes comentados en este punto no son nada comparados con las ventajas si la columna sobre la cual se define el índice es una columna que se va a utilizar a menudo para buscar u ordenar las filas de la tabla. Por eso una regla bastante acertada es definir índices sobre columnas que se vayan a utilizar a menudo para recuperar u ordenar las filas de una tabla.

El Access de hecho crea automáticamente índices sobre las columnas claves principales y sobre los campos que intervienen en las relaciones ya que se supone que se utilizan a menudo para recuperar filas concretas.

 

Cómo definir un índice.

 

Los índices forman parte de la estructura de la tabla, luego se definen y modifican desde la ventana Diseño de tabla.

Si el índice se basa en un sólo campo.

Seleccionar el campo y modificar la propiedad Indexado.

Si pulsamos en la flecha de la derecha aparecen tres opciones:

No: no tiene índice.

Sí (Con duplicados) : se define un índice con duplicados es decir que en la tabla podremos tener varias filas con el mismo valor en esa columna.

Sí (Sin duplicados): se define un índice sin duplicados es decir que en la tabla no podremos tener dos filas con el mismo valor en esa columna.

Si el índice se basa en varios campos.

Tenemos que abrir la ventana Índices con el icono , al hacer clic sobre el aparecerá una ventana como esta:

En la primera columna se pone el nombre del índice, en la segunda columna el nombre del campo sobre el que se basa el índice, y en la tercera columna podemos indicar el orden (si queremos que las filas de la tabla se ordenen de forma ascendente o descendente). Si el índice se basa en varias columnas se pone el nombre del índice en una primera línea con el primer campo que contiene y en las líneas siguientes se indican los demás campos que forman el índice.

En nuestro ejemplo tenemos dos índices definidos sobre la tabla, el índice PrimaryKey lo ha creado Access cuando hemos definido el campo codigo como clave principal, y nosotros hemos definido otro que hemos llamado prov_local sobre los campos provincia y localidad. Observa que el orden puede ser distinto para cada uno de los campos. De esta forma el índice se podrá utilizar para recuperar los datos por orden alfabético de provincia y dentro de cada provincia por localidad empezando por la letra z.

Para definir el índice basta realizar la misma operación que para crear campos, posicionarse en una fila de la columna Nombre de Índice, escribir el nombre del índice, pasar a la siguiente columna y escribir el nombre del campo o haciendo clic a la derecha del campo aparece la flecha que despliega la lista de campos que tiene la tabla para que seleccionemos el deseado, lo mismo para la columna Orden (esta columna, como solo tiene dos valores posibles, haciendo doble clic se pasa de Ascendente a Descendente y viceversa.)

En la parte inferior tenemos las propiedades del índice:

Principal: indica si el índice es el de la clave principal o no.

Única: permite indicar si permitimos valores duplicados o no. Única = Sí significa que no admite valores duplicados.

Ignorar Nulos: si ponemos que sí las filas que tengan el valor nulo en el campo serán excluidas del índice.

Para modificar índices ya definidos o borrar índices o crear nuevos índices utilizar la misma mecánica que para crear, borrar y modificar campos de una tabla.

   
Aviso legal: este curso es gratuito siempre que se visualice desde la página web de aulaClic. No está permitido descargar el curso ni utilizarlo en academias o centros privados sin estar conectado a Internet.
© aulaClic. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.
Octubre-2002. aulaClic.es