SQL - Key

Heesu Song·2025년 4월 8일

데브코스 - 백엔드

목록 보기
22/32

Key란?


데이터베이스에서 Key는 테이블에서 각 행(Row)을 식별하는 고유한 식별자 기능을 한다.

즉, Key는 데이터베이스에서 조건에 만족하는 관계의 행을 찾거나 순서대로 정렬할 때 다른 행과 구별할 수 있는 유리한 기준이 되는 속성의 집합이다.


최소성과 유일성


유일성

  • 하나의 Key값으로 튜플을 유일하게 식별할 수 있는 성질을 말한다.
  • 여러 개의 튜플이 존재할 때 각각의 튜플을 서로 구분할 수 있는 속성이 존재해야 한다.

최소성

  • Key를 구성하는 속성들 중 가장 최소로 필요한 속성들로만 키를 구성하는 성질을 말한다.
  • Key를 구성하고 있는 속성들이 진짜 각 튜플을 구분하는 데 꼭 필요한 속성들로만 구성되어 있는지를 의미한다.

Key의 종류


  • 기본 키(Primary key)
  • 외래 키(Foreign Key)
  • 슈퍼 키(Super Key)
  • 후보 키(Candidate key)
  • 대체 키(Surrogate key)

기본 키(Primary key)

테이블에서 특정 행(row)을 고유하게 식별할 수 있는 하나의 속성(열) 또는 속성의 집합이다. 즉, 기본 키는 테이블의 모든 행을 고유하게 식별할 수 있는 유일한 식별자(identifier)다.

기본 키는 테이블에서 반드시 하나만 존재해야 하며, 해당 테이블의 모든 행에 대해 유일하고 NULL 값을 포함하지 않아야 한다.

기본 키로 지정된 속성(열)은 반드시 유일성 제약 조건(unique constraint)을 가져야 한다. 또한, 기본 키를 이용하여 다른 테이블과 관계를 정의하는 외래 키를 설정할 수 있다.

기본 키는 보통 테이블에서 자동으로 생성되는 일련번호(serial number), GUID(Globally Unique Identifier), 또는 유일성이 보장되는 다른 속성을 사용하여 정의된다.

외래 키(Foreign Key)

외래 키는 한 테이블의 기본 키를 다른 테이블의 특정 속성(열)과 연결하는 역할을 한다.

즉, 외래 키는 다른 테이블의 기본 키를 참조(reference)하는 속성(열)이다. 이를 통해 한 테이블의 데이터를 다른 테이블과 연결할 수 있다.

외래 키를 가지고 있는 테이블을 참조하는 테이블이라고 부르며, 이를 참조하는 테이블에서는 외래 키와 기본 키가 동일한 값이어야 한다.

외래 키를 이용하여 두 개 이상의 테이블을 연결하면, 데이터를 보다 효율적으로 관리할 수 있다.

슈퍼 키(Super Key)

각 릴레이션(테이블)에서 튜플(행)을 유일하게 식별할 수 있는 속성(열, attribute) 또는 속성의 집합이다. 이는 테이블에서 중복을 허용하지 않는 고유 식별자와 같은 역할을 한다.

슈퍼 키는 릴레이션에서 하나 이상의 존재할 수 있으며, 슈퍼 키 중에서 최소한의 속성으로 구성된 것을 Minimal Superkey라고 한다.

Minimal Superkey는 유일성과 최소성을 모두 만족시키며, 테이블의 기본키(primary key)로 사용된다.

후보 키(Candidate key)

슈퍼 키 중에서 유일성(uniqueness)을 만족하는 속성(열) 또는 속성의 집합이다. 즉, 테이블의 모든 튜플을 고유하게 식별할 수 있는 속성들의 집합을 의미한다.

후보 키는 슈퍼 키와 달리 유일성을 만족하는 최소한의 속성 집합을 의미한다.

즉, 하나의 테이블에서 여러 개의 후보 키가 존재할 수 있으며, 이 중에서 기본키(Primary Key)로 사용할 속성 집합을 선택할 수 있다.

후보 키는 테이블을 설계할 때 중요한 개념 중 하나이며, 데이터베이스의 정규화(normalization) 과정에서 중요한 역할을 한다.

대체 키(Surrogate key)

테이블 내에서 기본 키를 제외한 나머지 Key를 말한다. 즉, 테이블 내에서 유일성을 보장하는 Key이지만, 기본 키로 사용되지 않은 Key를 의미한다.

대체 키는 기본 키로 사용될 수 없지만, 다른 테이블에서 외래 키로 사용될 수 있다. 따라서, 테이블 간의 관계를 설정하는 데 사용될 수 있다.

대체 키를 사용할 때에도 유일성을 보장해야 한다. 따라서, 데이터베이스에서 중복을 제거하기 위해 대체 키를 선택할 때에는 유일성을 보장하는 key를 선택해야합니다.

Key의 역할


  1. 레코드 구분

    데이터베이스 내에 저장된 레코드 각각은 유일한 Key 값을 가지고 있다. 이를 통해 각각의 레코드를 구분할 수 있으며, 데이터의 중복을 방지한다.

  2. 무결성 제약 조건 보장

    Key를 이용하여 데이터의 일관성과 무결성을 보장할 수 있다. 데이터베이스 내의 모든 레코드는 Key 값을 가지고 있으며, 이를 이용하여 특정 조건을 만족하지 않는 레코드를 필터링하거나, 관련 테이블 간의 무결성 제약 조건을 설정할 수 있다.

  3. 레코드 검색 및 정렬

    Key를 이용하면 데이터베이스 내에서 빠르고 정확한 레코드 검색 및 정렬이 가능하다. 데이터베이스 시스템은 Key를 이용하여 레코드를 찾거나 정렬할 수 있으며, 이를 통해 데이터 검색과 분석을 수행할 수 있다.

  4. 관계형 데이터베이스에서의 레코드 연결

    관계형 데이터베이스에서는 기본 키와 외래 키를 이용하여 레코드 간의 관계를 설정한다. 기본 키는 해당 테이블의 레코드를 유일하게 식별하는 Key로 사용되며, 외래 키는 다른 테이블의 기본 키를 참조하는 Key로 사용된다. 이를 통해 두 테이블 간의 관계를 설정하고 데이터를 효율적으로 관리할 수 있다.

  5. 인덱스 생성 및 검색

    데이터베이스에서 자주 사용되는 컬럼을 인덱스로 설정하여 검색 시간을 단축시킬 수 있다. 이 때 인덱스는 Key 값을 기반으로 생성되며, 이를 이용하여 데이터 검색 시간을 단축시킨다.

  6. 데이터의 보안 유지

    Key 값을 이용하여 데이터의 보안을 유지할 수 있다. 데이터베이스 내에서 중요한 정보를 보호하기 위해 해당 데이터에 접근할 수 있는 사용자를 제한하거나, 암호화된 Key를 사용할 수 있다.

profile
Abong_log

0개의 댓글