Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/09/2007, 06:50
Avatar de Kelpie
Kelpie
 
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 9 meses
Puntos: 8
Re: ¿Es lo mismo un indice que una clave primaria?

La principal diferncia entre un índice y una clave primaria es la repetición de valores. En una clave primaria no pueden repetirse y en un índice si podrían.

Una clave primaria es, como ha dicho Seyko, un campo o varios que identifican cada registro de la base de manera unívoca, es decir, sin posibilidad de confusión.

Un índice es un campo o varios por los que se pueden "ordenar" los registros de manera que acceder a uno concreto es más rápido.

Suponiendo una tabla de clientes, se podría hacer una clave primaria con el NIF del cliente ya que es único para cada uno (salvando errores administrativos). De esta manera, sabiendo el NIF sabemos a qué cliente nos referimos sin lugar a dudas. No podríamos hacer clave primaria el nombre, porque se podríoa repetir, incluso con los apellidos detrás.
En esa misma tabla, sería útil hacer índices en los apellidos o la población ya que es previsible que acabemos buscando clientes según esos campos.

Especificar un campo como clave primaria lo único que modifica en la base de datos es que ya no vamos a poder repetir valores en ese campo (o grupo de campos) y que vamos a poder emplearlos como clave externa en otras tablas...
Especificar un índice suele crear un fichero auxiliar de indexado.

Un clave primaria puede estar compuesta por más de un campo. Por ejemplo, si tomamos una tabla de empleos, podemos distribuirla ordenada por departamentos, y dentro de cada departamento por niveles. Hacemos clave primaria ambos campos (departamento-nivel) de manera que se podrá repetir departamento, o nivel, pero no se podrá repetir el conjunto de un departamento y un nivel.
__________________
Kelpie

Última edición por Kelpie; 12/09/2007 a las 06:57