컴퓨터 과학에서 '키'의 의미가 정확히 무엇인지에 대해 약간 혼란스러워합니다. 키-값 쌍, 기본 키 등을 이해하고 있습니다. 그러나 '키'라는 용어 자체의 의미에 대한 정의를 찾을 수 없습니다.
내가 알 수있는 한 단지 데이터 조각을 의미합니다. CLRS에서 트리 노드와 관련된 데이터를 '키'라고합니다. 해시 테이블을 검색하는 데이터를 '키'라고합니다. 이것이 '핵심'인가?
컴퓨터 과학에서 '키'의 의미가 정확히 무엇인지에 대해 약간 혼란스러워합니다. 키-값 쌍, 기본 키 등을 이해하고 있습니다. 그러나 '키'라는 용어 자체의 의미에 대한 정의를 찾을 수 없습니다.
내가 알 수있는 한 단지 데이터 조각을 의미합니다. CLRS에서 트리 노드와 관련된 데이터를 '키'라고합니다. 해시 테이블을 검색하는 데이터를 '키'라고합니다. 이것이 '핵심'인가?
답변:
가장 일반적인 의미에서 키는 일부 데이터를 검색하는 데 필요한 정보입니다. 그러나이 의미는 처리중인 상황에 따라 다르게 나타납니다.
언급 한 문맥에서 키는 구조의 특정 위치에서 키 를 검색하는 데 사용되는 전체 데이터 의 고유 식별자 입니다. 각 키는 하나의 항목에만 연결되므로 특정 데이터 집합을 찾는 데 사용할 수 있습니다. 데이터 구조는 일반적으로 키를 찾는 것이 모든 데이터를 통한 선형 검색보다 훨씬 효율적으로 구성됩니다. 때때로 키는 실제로 데이터의 일부이며 데이터베이스와 함께 기본 키와 같이 함께 저장됩니다. 다른 경우에는 해시 맵과 같이 데이터 자체와 분리됩니다. 데이터 구조는 종종 효율적인 검색 알고리즘을 지원하기 위해 키 (및 키만)에 대해 추가 처리를 수행합니다 (예 : 해시 맵에서, 키가 해시 코드로 변환되거나 데이터베이스가 B- 트리).
암호화에서 키는 잠금에 사용되는 물리적 키와 더 유사한 의미로 사용됩니다. 암호화 된 데이터에서 원본을 얻는 데 필요한 데이터입니다 (데이터를 "잠금 해제"하기 위해).
키 (예 : 책 CLRS 같이) 데이터 구조의 맥락에서이 데이터 구조의 특정 구성 요소를 식별하는 데 사용되는 값 (종종 정수)이다. 키는 기본 데이터가 저장되거나 조작되는 방식을 결정합니다. 예를 들어, 이진 검색 트리 에서는 모든 노드에 대해 해당 노드의 키가 왼쪽 하위 트리의 키보다 크고 오른쪽 하위 트리의 키보다 작습니다. 이 특성을 사용하면 주어진 키를 쉽게 검색 할 수 있습니다 (또는 해당 키가있는 노드가 없는지 판별).
실제로, 우리의 '실제'데이터는 종종 키가 아니라 단일 숫자보다 더 크고 더 중요한 것입니다. 이 데이터를 위성 데이터 라고하며 , 키가 움직일 때마다 위성 데이터가 이동하는 한 (그렇지 않으면 데이터를 잃어 버리는 경우) 데이터 구조에 대한 조작을 처리 할 때 대부분 무시 될 수 있습니다.
키의 개념은 데이터베이스와 관련이 있지만 키가 고유 해야하는 경우가 종종 있습니다. 예를 들어 기본 키는 고유해야합니다. 이 요구 사항은 종종 데이터 구조의 맥락에서 중요하지만 때로는 간결성을 위해 만들어 지기도합니다.
암호화에서 키는 일반적으로 주어진 암호화 알고리즘으로 암호화하거나 해독하는 데 필요한 (종종 비밀은 아니지만 항상!) 매개 변수를 나타냅니다. 암호화 또는 암호 해독에 사용되는 키는 암호화 또는 암호 해독 프로세스가 성공하려면 '관련'(대칭 암호화에서 동일해야 함)해야합니다.