Estoy un poco confundido sobre cuál es exactamente el significado de una "clave" en informática. Entiendo pares clave-valor, claves primarias, etc. Pero no puedo encontrar una definición de lo que el término 'clave' significa por sí mismo.
Por lo que puedo decir, solo significa una pieza de datos. En CLRS, los datos asociados con los nodos de árbol se denominan 'claves'. Los datos para buscar en una tabla hash se denominan 'clave'. ¿Es esto lo que es una 'clave'?
terminology
El máximo
fuente
fuente
Respuestas:
En el sentido más general, una clave es una pieza de información requerida para recuperar algunos datos. Sin embargo, este significado se desarrolla de manera diferente dependiendo de exactamente con qué situación está lidiando.
En los contextos que menciona, una clave es un identificador único para los datos completos utilizados para recuperarlos de alguna ubicación en la estructura. Cada clave está asociada con un solo elemento, por lo que se puede utilizar para encontrar un conjunto particular de datos. La estructura de datos generalmente se organizará de tal manera que encontrar la clave sea mucho más eficiente que una búsqueda lineal a través de todos los datos. A veces, la clave es en realidad parte de los datos y se almacena junto con ellos (como las claves principales en la base de datos); otras veces, se segrega de los datos en sí (como en un mapa hash). La estructura de datos también a menudo realizará un procesamiento adicional en la clave (y solo la clave) para admitir su algoritmo de búsqueda eficiente (como en un mapa hash, la clave se convierte en un código hash, o una base de datos indexará las claves primarias usando un árbol B)
En criptografía, una clave se utiliza en un sentido más parecido a las claves físicas utilizadas en las cerraduras. Son datos necesarios para obtener el original de los datos cifrados (para "desbloquear" los datos, por así decirlo).
fuente
Una clave en el contexto de las estructuras de datos (como en el libro CLRS) es un valor (a menudo un número entero) que se utiliza para identificar un determinado componente de una estructura de datos. A menudo, las claves determinan cómo se almacenan o manipulan los datos subyacentes. Por ejemplo, en los árboles de búsqueda binarios tenemos que para cada nodo, la clave de ese nodo es más grande que las claves del subárbol izquierdo y más pequeña que las del subárbol derecho. Esta propiedad facilita la búsqueda de una clave determinada (o determina que no hay ningún nodo con dicha clave).
En la práctica, nuestros datos "reales" a menudo no son una clave, sino algo más grande y más relevante que un solo número. Estos datos se denominan datos satelitales y se pueden ignorar principalmente cuando se trata de manipulaciones en estructuras de datos, siempre que los datos satelitales se muevan cada vez que se mueva la clave (de lo contrario, perderá el rastro de sus datos).
El concepto de una clave es similar en el contexto de las bases de datos, pero a menudo se requiere que una clave sea única . Una clave primaria tiene que ser única, por ejemplo. Este requisito es a menudo necesario en el contexto de las estructuras de datos, pero a veces se hace por simplicidad.
En criptografía, una clave generalmente se refiere a un parámetro (¡a menudo secreto, pero no siempre!) Que se necesita para cifrar o descifrar con un algoritmo de cifrado o descifrado dado. Las claves utilizadas para cifrar y descifrar deben estar 'relacionadas' (en criptografía simétrica, la necesidad de ser las mismas) para que el proceso de cifrado o descifrado sea exitoso.
fuente