키 (Key)

(2023-06-22)

PRIMARY KEY, 기본 키, FOREIGN KEY, 외래 키, 보조 키, 후보 키, 대체 키, Key , Index Key, 인덱스 키


1. 키 (Key) 이란?

  ㅇ 다른 원소와 구별할 수 있는 요소

  ㅇ [검색정렬 알고리즘]    ☞ `인덱싱(Indexing)` 참조
     - 자료의 검색,정렬 등에 기준이 되는 요소(속성,값,필드)

  ㅇ [암호학]    ☞ `암호 키(Encryption Key)` 참조
     - 암호 알고리즘 수행시 주어지는 값 
        . 즉, 평문을 변형시키는 추가적인 암호 정보

  ㅇ [관계형 DB]    ☞ 관계(Relation), 튜플(Tuple) 참조
     - 릴레이션튜플을 구별할 수 있는 속성 모음


2. [데이터베이스]  키(Key) 종류

  ㅇ 유일성,최소성에 따라 키가 될 수 있음
     - 후보키 (candidate key) : 유일하고도 최소성을 만족하는 속성 모음
     - 슈퍼키 (super key)     : 유일하지만 최소성을 만족하지 않는 속성 모음
        . 결국, 후보키들의 다양한 조합(슈퍼 집합)이 슈퍼키가 됨

  ㅇ 기본키 (primary key)   : DB 설계자에 의해 직접 선택된 하나의 후보키
     - 개체를 고유하게 식별할 수 있는 속성                      ☞ 아래 3.항 참조
        . 유일해야 함 (즉, 중복 허용 않음)
        . Null 값 허용 않음

     - 기본키와 관련된 키
        . 대체키 (alternate key) : 2 이상의 후보키 중 기본키를 제외한 나머지 후보키들
        . 외래키 (foreign key)   : 다른 릴레이션(테이블)의 기본키를 갖게되는 키
           .. 즉, 다른 테이블의 기본키 값과 대응되는 키
           .. 어느 한 테이블(부모 테이블)의 기본키를 다른 테이블(자식 테이블)의 외래키로 사용
           .. 통상, 부모 테이블의 기본 키와 `1:多 관계`를 갖게 됨       ☞ `참조 무결성` 참조

  ㅇ 보조키 (secondary key) : 중복 식별을 허용하는 키 (다양하고 복잡한 유형 가능)
     - 키워드,핵심어,주제어 라고도 함                           ☞ `검색엔진` 참조

  ㅇ 인덱스 키 (index key)
     - 특정 내용을 찾기 쉽도록 인덱싱을 한 키
     - 인덱싱 알고리즘 例) B-Tree 인덱스, Hash 인덱스, 비트맵 인덱스 등
     - 인덱스 활용시 고려사항 : 카디널리티,선택률
     * 위에서, 기본키는 인덱싱이 자동으로 걸림


3. [데이터베이스]  좋은 `기본 키 (primary key)`의 조건

  ㅇ 유일한 값을 갖는 칼럼이어야 함
  ㅇ 널 값을 가지면 안됨
  ㅇ 값 갱신/수정이 필요없는 안정적인 값이어야 함
  ㅇ 의미를 갖지 않고, 가능한 한 단순한 형태이어야 함
     - 즉, 정수형이 좋으며, 다중 칼럼 보다는 단일 칼럼이 좋음

  ※ 통상, RDBMS 자체 기능으로, 자동 생성되는 숫자 값으로 하는 것이 바람직함
     - 例) DB2,SQL Server,Oracle 등에서는 IDENTIFY, 
           MS 엑세스에서는 AutoNumber,
           MySQL에서는 AUTO_INCREMENT,
           PostgreSQL에서는 serial 칼럼 등

RDB 용어
   1. RDB 주요 용어   2. 관계 (relation)   3. 키 (key)   4. 널 값 (null)   5. 튜플 (tuple)   6. 엔터티 (entity)  
정보검색
   1. 정보 검색   2. 정보검색 용어   3. 인덱스   4. 인덱스 키   5. 메타데이터   6. 시맨틱 웹   7. 온톨로지  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"