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

Clave Principal - Ayuda

Estas en el tema de Clave Principal - Ayuda en el foro de Bases de Datos General en Foros del Web. Para que sirve la clave principal, estoy comenzando a usar access y en mis tutoriales me pide que la ingrese, pero no se entiende la ...
  #1 (permalink)  
Antiguo 06/01/2006, 13:55
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Clave Principal - Ayuda

Para que sirve la clave principal, estoy comenzando a usar access y en mis tutoriales me pide que la ingrese, pero no se entiende la explicasion, de que es, para que sirve y que pasa si no la uso o si la uso mal. Parece que es importante pero no se como funciona!, por favor ayuda
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #2 (permalink)  
Antiguo 06/01/2006, 14:18
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
La clave principal sirve para identificar y hacer (como su nombre lo indica) unica una tupla (fila o registro). Ademas por medio de la clave principal tu haces consultas mucho más eficiente que si no las tienes
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #3 (permalink)  
Antiguo 06/01/2006, 15:01
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Perdon por mi ignorancia, pero que importancia tiene que no este repetido un registro o fila, es decir por que tiene que ser unico. 2do, de que manera me ayuda con las consultas? tendrias un ejemplo de que obtengo teniendo la clave principal y que obtengo sin tenerla? Gracias"!!
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #4 (permalink)  
Antiguo 06/01/2006, 15:31
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Porque cuando haces cosas como actualizar el registro no sabrás cual de los 2 actualizar (en el peor de los casos terminarías actualizando ambos... o todos aquellos que sean iguales)

Además de que cuando llegues a la parte de los JOINS, donde "juntas" varias tablas en una sola necesitas un identificador que permita localizarlos. Porque por ejemplo, con 2 registros iguales terminarás con 4 (o más) registros en apariencia iguales.

Otra causamás estoérica son los índices, un índice unico (aplicable principalmente a llaves primarias) es más rápido que uno no unico, y los campos de union entre JOINS suelen ser el sujeto principal a indexar.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #5 (permalink)  
Antiguo 06/01/2006, 21:42
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Mithrandir, grax por tu aclaracion, ya voy entendiendo, lo primero q pense luego de leer tu explicasion es por que entonces no asigno varias claves principales a los registros mas importantes asi se me facilitan las busquedas y la uniones, pero veo que solo se permite una clave principal por tabla.. por que es asi?
Cuando decis sobre los JOINS, que tengo q utlizar la clave para localizarla, no era mas sencillo buscarla por el nombre de la tabla? en vez de asignarle un campo?
Recien acabo de ver que no es impresindible la clave principal, pense q era obligatoria..
Perdona que insista, no quiero ser molesto, sino quiero aprender su significado,
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #6 (permalink)  
Antiguo 09/01/2006, 15:53
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Para un join necesitas ambos datos, el nombre de la tabla _Y_ el nombre del campo (o campos) que actuarán como campo de unión, no solamente uno de ellos.

El tener una sola llave primaria es precisamente por que un solo campo (o conjunto de ellos) te debe permitir identificar unívocamente cada registro, para eso solo basta una, al resto se les llama llaves candidatas.

En la mayoría de los manejadores podrás imitar ese comportamiento mediante los índices, en el caso de SQL Server un unique index.

Espero que vayas entendiendo.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #7 (permalink)  
Antiguo 15/10/2008, 19:17
 
Fecha de Ingreso: octubre-2008
Mensajes: 1
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Clave Principal - Ayuda

LA CLAVE PRNCIPAL SIRVE PARA IDENTIFICAR DE FORMA UNICA CADA REGISTRO ALMACENADO, SE USA PARA :Access cre automatica/ un indice para el campo,y esto ayuda a encontrar los datos de forma rapida,los registros se muestran de forma ordenada segun la clave principal.Y si no la usas, access la crea , creara un campo tipo contador al cual se le asignara una clave , claro que la puedes almacenar sin clave, pero cuando quieras hacer una relacion de datos esta no podra establecerse por falta de ella.OK espero haber sido de ayuda.
  #8 (permalink)  
Antiguo 16/10/2008, 15:25
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Clave Principal - Ayuda

Hola, comparto todo lo dicho, una clave principal identifica unívocamente a cada fila de una tabla. Por ejemplo, una tabla con datos de Clientes podría tener por cada fila (cliente) un código de cliente, que ningún otro cliente (fila de esa tabla) podría tener igual. Ese código de cliente sería la clave principal.

Por otro lado, en otra tabla, por ejemplo Pedidos, donde se almacenan datos de pedidos, uno de los campos o columnas de esa tabla sería también el código de cliente, pero en esta tabla pedidos NO es clave principal, sino ajena o secundaria.

Se relacionarian las tablas clientes y pedidos por el código de cliente, que en clientes es clave principal y en pedido no, esto significa que en clientes solo podrá existir un cliente con la clave CT014, por ejemplo, pero en pedidos podría haber varios registros o filas donde apareciera el código de cliente CT014 lo que significaria que son pedidos del cliente con ese código de la tabla clientes.

Es decir, se establecería una relación de uno (clientes = solo un código) a varios (pedidos = varios códigos iguales).
Así mismo, el tener una clave principal en las tablas sirve también, y bajo mi punto de vista es muy importante, para mantener la integridad referencial entre las dos tablas que se relacionan a través del campo clave en una y el campo clave ajena en la otra.

Esa integridad referencial hará que en el ejemplo de los pedidos, no pueda haber pedidos en dicha tabla para clientes que no existan en la tabla de clientes, es decir no puede haber pedidos asignados a clientes que no existen.

Por esta razón, para mí, aunque no es obligatorio definir claves principales en las tablas, siempre explico a la gente donde doy clases que las claves principales son imprescindibles.

Espero haber aportado algo a este debate. Un saludo a todos
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 2 personas (incluyéndote)




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