Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

¿Es lo mismo un indice que una clave primaria?

Estas en el tema de ¿Es lo mismo un indice que una clave primaria? en el foro de Bases de Datos General en Foros del Web. Soy novato y estoy confundido, por favor expliquenme la diferencia si es que la hay, o denme un zape si son la misma cosa...
  #1 (permalink)  
Antiguo 10/09/2007, 23:17
Avatar de periCo[un]Ltd.  
Fecha de Ingreso: agosto-2003
Ubicación: Mexico
Mensajes: 146
Antigüedad: 21 años, 3 meses
Puntos: 0
¿Es lo mismo un indice que una clave primaria?

Soy novato y estoy confundido, por favor expliquenme la diferencia si es que la hay, o denme un zape si son la misma cosa
__________________
I miss you, like the desert miss the rain
  #2 (permalink)  
Antiguo 11/09/2007, 03:08
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Re: ¿Es lo mismo un indice que una clave primaria?

google!!!!

Bien... una clave primaria es un campo o conjunto de campos que identifican a un registro!!

Un indice.... es un indice, sirve para acceder rapidamente a un registro.
Es una buena practica, incluso indispensable, tener un indice en las claves primarias, pero no es esclusivo de estas, tambien puedes tener indices en cualquier otra columna de la BD.

No se si me he explicado muy bien.
Un saludo
  #3 (permalink)  
Antiguo 11/09/2007, 06:50
Avatar de 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
  #4 (permalink)  
Antiguo 11/09/2007, 08:28
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Re: ¿Es lo mismo un indice que una clave primaria?

Kelpie
  #5 (permalink)  
Antiguo 13/08/2009, 08:48
 
Fecha de Ingreso: agosto-2009
Mensajes: 2
Antigüedad: 15 años, 3 meses
Puntos: 0
De acuerdo Respuesta: ¿Es lo mismo un indice que una clave primaria?

Cita:
Iniciado por periCo[un]Ltd. Ver Mensaje
Soy novato y estoy confundido, por favor expliquenme la diferencia si es que la hay, o denme un zape si son la misma cosa

Efectivamente esta bien lo que te respondieron pero dejo una aclaración:

Cuando dicen que la Clave Primaria no se repite y el indice si es una verdad a media; ya que podes crear el indice permitiendo que se repita o no.

Crear indice y que el mismo no se repita es decir que sea único

CREATE UNIQUE INDEX [nombre_indice] ON [nombre_tabla].[nombre_campo]

Crear indice y que el mismo se pueda repitir

CREATE INDEX [nombre_indice] ON [nombre_tabla].[nombre_campo]

Y para borrar un indice

DROP INDEX [nombre_tabla].[nombre_indice]

Espero te sirva, saludos...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:47.