SQL

SQL에서 사용하는 모든 키의 정의와 예시

초코너무조코 2025. 1. 21. 10:46
728x90

 

목차


    SQL에서 사용하는 모든 키의 정의와 예시

    SQL 데이터베이스에서 키(Key)는 데이터를 고유하게 식별하거나 테이블 간 관계를 정의하는 데 중요한 역할을 합니다. 아래는 주요 키의 정의와 예시를 정리한 내용입니다.


    1. Primary Key (기본 키)

    • 정의
      Primary Key는 테이블에서 각 행(row)을 고유하게 식별하는 데 사용되는 컬럼입니다. 기본 키는 NULL 값을 허용하지 않으며, 중복된 값을 가질 수 없습니다.
    • 특징
      • 고유성을 보장합니다.
      • 반드시 하나의 테이블에 하나만 존재합니다.
    • 예시 StudentID는 각 학생을 고유하게 식별하는 Primary Key입니다.
    • CREATE TABLE Students ( StudentID INT PRIMARY KEY, Name VARCHAR(50), Age INT );

    2. Foreign Key (외래 키)

    • 정의
      Foreign Key는 한 테이블의 컬럼이 다른 테이블의 Primary Key를 참조하는 데 사용됩니다. 이를 통해 테이블 간의 관계를 정의합니다.
    • 특징
      • 참조 무결성을 유지합니다.
      • 여러 테이블 간 연결을 생성합니다.
    • 예시 Orders 테이블의 StudentID는 Students 테이블의 StudentID를 참조하는 Foreign Key입니다.
    • CREATE TABLE Orders ( OrderID INT PRIMARY KEY, StudentID INT, FOREIGN KEY (StudentID) REFERENCES Students(StudentID) );

    3. Candidate Key (후보 키)

    • 정의
      Candidate Key는 테이블에서 Primary Key로 선택될 수 있는 모든 컬럼 집합입니다. 고유성과 최소성을 만족해야 합니다.
    • 특징
      • 한 테이블에 여러 개의 후보 키가 존재할 수 있습니다.
      • Primary Key는 Candidate Key 중 하나를 선택한 것입니다.
    • 예시 Email과 PhoneNumber는 고유성을 가지므로 Candidate Key가 될 수 있습니다.
    • CREATE TABLE Employees ( EmployeeID INT, Email VARCHAR(100), PhoneNumber VARCHAR(20), UNIQUE (Email), UNIQUE (PhoneNumber) );

    4. Unique Key (유니크 키)

    • 정의
      Unique Key는 특정 컬럼이 중복된 값을 가지지 않도록 보장합니다. NULL 값을 가질 수 있지만, 각 NULL 값은 서로 고유하다고 간주됩니다.
    • 특징
      • 중복된 값을 허용하지 않습니다.
      • 한 테이블에 여러 개의 Unique Key를 정의할 수 있습니다.
    • 예시 ProductCode는 Unique Key로 설정되어 중복을 허용하지 않습니다.
    • CREATE TABLE Products ( ProductID INT PRIMARY KEY, ProductCode VARCHAR(50) UNIQUE );

    5. Super Key (슈퍼 키)

    • 정의
      Super Key는 테이블의 행을 고유하게 식별할 수 있는 하나 이상의 컬럼 집합입니다. 모든 Primary Key와 Candidate Key는 Super Key에 포함됩니다.
    • 특징
      • 최소성을 만족하지 않을 수 있습니다.
      • Super Key는 Candidate Key의 상위 개념입니다.
    • 예시 EmployeeID 하나만으로도 고유성을 만족하지만, EmployeeID와 Name을 함께 사용할 수도 있습니다.
    • EmployeeID, Name -> Super Key

    6. Composite Key (복합 키)

    • 정의
      Composite Key는 두 개 이상의 컬럼을 조합하여 고유성을 보장하는 키입니다.
    • 특징
      • 단일 컬럼으로 고유성을 보장할 수 없을 때 사용됩니다.
    • 예시 StudentID와 CourseID를 함께 사용하여 고유성을 보장합니다.
    • CREATE TABLE Enrollments ( StudentID INT, CourseID INT, PRIMARY KEY (StudentID, CourseID) );

    7. Alternate Key (대체 키)

    • 정의
      Candidate Key 중에서 Primary Key로 선택되지 않은 키를 Alternate Key라고 합니다.
    • 특징
      • 대체 키는 고유성과 최소성을 만족합니다.
    • 예시 Username과 Email은 Candidate Key이지만, Primary Key로 선택되지 않았기 때문에 Alternate Key가 됩니다.
    • CREATE TABLE Users ( UserID INT PRIMARY KEY, Username VARCHAR(50) UNIQUE, Email VARCHAR(100) UNIQUE );

    8. Surrogate Key (대리 키)

    • 정의
      Surrogate Key는 테이블에 인위적으로 추가된 고유 식별자입니다. 주로 숫자나 고유 식별 번호(UUID)를 사용합니다.
    • 특징
      • 비즈니스 로직과 무관한 키입니다.
      • 데이터베이스 시스템이 자동 생성합니다.
    • 예시 PaymentID는 Surrogate Key로 자동 증가 값입니다.
    • CREATE TABLE Payments ( PaymentID INT IDENTITY(1,1) PRIMARY KEY, Amount DECIMAL(10,2) );

    9. Natural Key (자연 키)

    • 정의
      Natural Key는 실제 비즈니스 데이터를 사용하여 고유성을 보장하는 키입니다.
    • 특징
      • 데이터의 의미를 가지고 있습니다.
      • Surrogate Key와 반대 개념입니다.
    • 예시 ProductCode는 비즈니스 데이터를 기반으로 한 Natural Key입니다.
    • CREATE TABLE Products ( ProductCode VARCHAR(50) PRIMARY KEY, Name VARCHAR(100) );

    10. Compound Key (복합 키)

    • 정의
      Compound Key는 Composite Key와 유사하지만, 두 개 이상의 컬럼으로 이루어진 키를 지칭할 때 사용됩니다.
    • 특징
      • Composite Key의 또 다른 용어로 볼 수 있습니다.
    • 예시
    • CREATE TABLE LibraryLoans ( MemberID INT, BookID INT, PRIMARY KEY (MemberID, BookID) );

    정리: 키의 관계 다이어그램

    • Super Key: 모든 키를 포함
    • Candidate Key: 최소성을 만족하는 키
    • Primary Key: 선택된 유일한 키
    • Alternate Key: Primary Key가 아닌 Candidate Key
    • Composite Key: 여러 컬럼의 조합으로 생성된 키
    • Foreign Key: 다른 테이블의 Primary Key를 참조

    SQL에서 키는 데이터베이스 설계의 핵심 요소입니다. 각각의 키를 적절히 활용하면 데이터 무결성과 효율적인 데이터 관리가 가능합니다.

     

    728x90