En Access 2013, para que sirve tener más de una llave en una tabla y cual es su función.

Tengo un proyecto donde me presentan una base de datos que contienen tablas con más de una llave, tengo que explicar como es posible y para que sirve.

4 respuestas

Respuesta
1

No es necesario que una tabla tenga campos clave. Sólo se utilizan por si quisieras relacionarla con otra tabla, o para evitar que haya registros duplicados. Me explico, supongamos que tienes una tabla Clientes donde vas a guardar los que tienes. Podría darse el caso que pusieras dos veces el nombre del mismo cliente. Si haces el campo NombreCliente clave, no podrás escribir dos veces José López García, porque al ser clave no puede haber dos con el mismo valor. En esencia se usan para identificar un único registro. Por ejemplo, supón que tienes una tabla Autores, donde vas a guardar sus nombres, con que haya un único registro con John Grishan, Arturo Perez reverte, etc es suficiente. Y también tienes una tabla Libros donde vas a guardar los títulos de los libros y sus autores. Entonces sí te conviene tener un campo clave en Autores, por ejemplo Nombre que te relacione esa tabla con el campo Autor de la tabla Libros.

Respuesta
1

Poner varias llaves en una tabla sirve para crear "claves compuestas", es decir, una clave única para cada registro pero formada por dos o más campos. Eso no quiere decir que en la misma tabla tengas varias claves principales, sino que tienes una única formada por la combinación de varios campos.

https://support.office.com/es-es/article/Agregar-o-cambiar-la-clave-principal-de-una-tabla-en-Access-0dde1a80-d913-4d9b-a1b3-061f24ccd991?CorrelationId=c05e23ec-eeb2-4557-82e4-80a2ce8214ed&ui=es-ES&rs=es-ES&ad=ES&ocmsassetID=HA102749633#Autonumber 

No es necesario que un campo sea clave para que forme parte de una relación (aunque es conveniente que sí lo sea en la parte 1 de la relación), ni tampoco para que no se pueda repetir (para eso basta con ponerle la propiedad "Indexado" a Sí (sin duplicados) )

Respuesta

Si hablamos de tablas de bases de datos relacionales, sirve basicamente para eso. Relacionar tablas. Es muy similar a lo que hariamos en SQL. Tenemos una tabla principal que queremos relacionar con otras tablas pero por campos diferentes. Tenemos una clave principal en la tabla y luego tantas claves secundarias o ajenas como necesitemos. Se utiliza sobretodo para asegurarnos la integridad referencial o lo que es lo mismo, que no tengamos en una tabla relacionada un dato que no está en la otra tabla. En este ejemplo puedes ver como la tabla Tb_Horas y Tb_Horas_Baja tienen 4 claves cada una que a su vez se relacionan con campos diferentes de otras tablas.

(Si, lo se, no soy muy ordenado haciendo relaciones xD)

Respuesta

Están bien todas las explicaciones y son correctas, para anexar los indices se utilizan para acelerar las consultas, un ejemplo, cuando utilizas más de un campo en un where, ejemplo: where field1 > 1 and field2 > 2, debes de crear un indice que tenga ambos campos y existe en SQL una sentencia llamada explain que te dirá cuales son los indices que tomará esta consulta y acelera los resultados de la consulta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas