🖥️ IT, 컴퓨터/👩🏻‍💻 IT

[DB] 데이터베이스 PK(Primary Key), FK(Foreign Key), UK(Unique Key) 개념

김 홍시 2024. 11. 16.
반응형

데이터베이스에서 PK(Primary Key), FK(Foreign Key), UK(Unique Key)는 데이터 무결성을 유지하고 테이블 간 관계를 정의하는 데 중요한 역할을 합니다. 각각의 개념은 아래와 같습니다.


1. PK (Primary Key) - 기본 키

  • 역할: 테이블에서 각 행(Row)을 고유하게 식별하는 데 사용됩니다.
  • 특징:
    • 값이 유일(Unique)해야 함.
    • NULL 값을 가질 수 없음.
    • 한 테이블에 하나의 Primary Key만 설정 가능.
  • 예시:
    CREATE TABLE Employees (
        EmployeeID INT PRIMARY KEY,
        Name VARCHAR(50),
        Department VARCHAR(50)
    );
    • EmployeeID는 모든 행에서 고유하고 NULL 값을 가질 수 없으므로 기본 키로 설정됨.

2. FK (Foreign Key) - 외래 키

  • 역할: 다른 테이블의 Primary Key를 참조하여 두 테이블 간의 관계를 정의합니다.
  • 특징:
    • FK의 값은 참조하는 테이블의 PK에 있는 값 중 하나여야 함.
    • 참조 무결성을 유지해야 함 (즉, 외래 키에 존재하지 않는 값을 입력할 수 없음).
    • 한 테이블에서 여러 외래 키를 가질 수 있음.
  • 예시:
    CREATE TABLE Orders (
        OrderID INT PRIMARY KEY,
        EmployeeID INT,
        FOREIGN KEY (EmployeeID) REFERENCES Employees(EmployeeID)
    );
    • Orders 테이블의 EmployeeIDEmployees 테이블의 EmployeeID를 참조합니다.

3. UK (Unique Key) - 유니크 키

  • 역할: 테이블의 특정 열(Column) 또는 열의 조합이 고유한 값을 갖도록 보장합니다.
  • 특징:
    • 값이 유일해야 함.
    • NULL 값을 허용하지만, 동일한 열에 여러 NULL 값이 있는 것은 불가능.
    • 한 테이블에 여러 Unique Key를 설정 가능.
  • 예시:
    CREATE TABLE Products (
        ProductID INT PRIMARY KEY,
        ProductCode VARCHAR(20) UNIQUE,
        ProductName VARCHAR(50)
    );
    • ProductCode는 각 행에서 고유해야 하지만 NULL 값을 가질 수 있습니다.

주요 차이점 비교

특징 PK (Primary Key) FK (Foreign Key) UK (Unique Key)
고유성 보장 ✔️ (유일한 값) ✖️ (참조하는 테이블에 따라 다름) ✔️ (유일한 값)
NULL 허용 여부 ✖️ (NULL 불가) ✔️ (NULL 가능) ✔️ (NULL 가능, 단 1개만 허용)
테이블 당 설정 개수 1개 여러 개 여러 개
주요 목적 행을 고유하게 식별 테이블 간 관계 정의 열의 유일성 보장

이 키들을 적절히 활용하면 데이터의 무결성효율성을 높이고, 테이블 간 관계를 잘 관리할 수 있습니다. 😊

반응형

댓글