키(Key)와 무결성 제약조건 정리

TJK·2025년 8월 22일

키(Key)와 무결성 제약조건 정리

키(Key)는 데이터베이스에서 데이터의 유일성과 관계를 식별하고, 데이터의 무결성을 보장하는 데 사용되는 핵심 개념입니다.


1. 기본키 (PK, Primary Key)

핵심 개념 (★★★★★)

테이블의 개별 행(Row)을 유일하게 식별할 수 있는 키입니다.

  • 특징:

    • 유일성: 모든 행의 값이 달라야 합니다. 중복 불가.
    • 최소성: 하나의 속성만으로 유일성을 만족하면 다른 속성을 포함할 필요가 없습니다.
    • NULL 불가: 절대 NULL 값을 가질 수 없습니다.
    • 한 테이블에 오직 한 개만 설정할 수 있습니다.
  • 관련 무결성:

    • 개체 무결성 (Entity Integrity): 테이블 내의 모든 행은 기본키에 의해 유일하게 식별되어야 한다는 규칙입니다.
  • 시험 출제 포인트:

    • 유일성 + NULL 불가 속성이 나오면 PK입니다.
    • 개체 무결성과 직접적으로 연결됩니다.
  • 암기 팁:

    • "PK = 개체 무결성 = 행 식별자"

2. 외래키 (FK, Foreign Key)

핵심 개념 (★★★★★)

다른 테이블의 기본키(PK)를 참조하는 키입니다. 테이블 간의 부모-자식 관계를 설정하는 데 사용됩니다.

  • 특징:

    • 참조하는 테이블의 PK에 존재하지 않는 값은 가질 수 없습니다.
    • NULL 값은 허용될 수 있습니다. (옵션에 따라 다름)
    • 한 테이블에 여러 개 설정할 수 있습니다.
  • 관련 무결성:

    • 참조 무결성 (Referential Integrity): 자식 테이블의 외래키는 반드시 부모 테이블의 기본키에 존재하는 값만 참조해야 한다는 규칙입니다.
  • 시험 출제 포인트:

    • 부모-자식 관계, 참조 라는 키워드가 나오면 FK입니다.
    • 참조 무결성과 직접적으로 연결됩니다.
  • 암기 팁:

    • "FK = 부모 없으면 자식도 없다"

3. 유니크 키 (Unique Key)

핵심 개념 (★★★★☆)

속성 값의 중복을 방지하는 키입니다.

  • 특징:

    • 중복 불가: 각 행의 값이 달라야 합니다.
    • NULL 허용: NULL 값은 중복되지 않는 것으로 간주되어 여러 개 허용됩니다. (PK와의 가장 큰 차이점)
    • 한 테이블에 여러 개 설정할 수 있습니다.
  • 관련 무결성:

    • 도메인 무결성 (Domain Integrity): 속성 값이 유효한 범위에 있는지 보장합니다.
  • 시험 출제 포인트:

    • 중복 불가, NULL 허용 이라는 키워드가 나오면 Unique Key입니다.
    • PK와의 차이점을 묻는 문제가 자주 출제됩니다.
  • 암기 팁:

    • "Unique는 PK와 달리 NULL을 허용한다"

4. 기타 제약조건 및 무결성

  • Not Null: 해당 속성에 NULL 값을 허용하지 않습니다.
  • Check: 속성 값의 범위를 제한합니다. (age > 0)
  • 도메인 무결성 (Domain Integrity): Unique Key, Check, Not Null 등은 속성 값의 유효성을 보장하므로 도메인 무결성과 관련됩니다.

키와 무결성 요약표 (SQLD 시험용)

키 / 제약조건관련 무결성특징시험 핵심 키워드
PK개체 무결성유일성 + NULL 불가, 1개개체 무결성
FK참조 무결성부모-자식 관계, NULL 허용참조 무결성
Unique도메인 무결성중복 불가 + NULL 허용중복 불가, NULL 허용
Check / Not Null도메인 무결성값 범위, NULL 여부값 제약, 범위 제한

SQLD 시험 단축 키 (시험 직전 필독!)

  • PK = 개체 무결성 (NULL ❌, 중복 ❌)
  • FK = 참조 무결성 (부모-자식 관계)
  • Unique = 중복 ❌, NULL ⭕ (PK와의 차이점)
  • Check, Not Null, Unique = 도메인 무결성

실전 기출 문제 스타일

1. 개체 무결성과 직접적으로 관련된 제약조건은 무엇인가?
① PK
② FK
③ Unique
④ Check

2. 참조 무결성을 보장하는 키는 무엇인가?
① PK
② FK
③ Unique
④ Not Null

3. 다음 설명에 해당하는 키는?
"중복은 허용되지 않으나 NULL은 허용된다. 테이블당 여러 개 설정 가능하다."
① PK
② FK
③ Unique Key
④ Check

4. 다음 중 도메인 무결성과 관련된 제약조건은 모두 무엇인가?
① PK, FK
② FK, Check
③ Unique, Check, Not Null
④ PK, Unique

5. Orders 테이블에서 user_id가 User 테이블의 기본키를 참조하도록 설정되어 있다. 만약 User 테이블에서 특정 회원을 삭제할 때 Orders 테이블의 user_id에 자동으로 NULL 값을 설정하도록 하는 옵션은?
ON DELETE CASCADE
ON UPDATE CASCADE
ON DELETE SET NULL
ON UPDATE SET NULL


정답 및 해설

  • 문제 1 정답: ① (PK)
    • 해설: 개체 무결성은 테이블 내의 모든 행이 PK를 통해 유일하게 식별되어야 한다는 규칙입니다.
  • 문제 2 정답: ② (FK)
    • 해설: 참조 무결성은 FK가 부모 테이블의 PK를 반드시 참조해야 한다는 규칙입니다.
  • 문제 3 정답: ③ (Unique Key)
    • 해설: PK와 Unique Key의 가장 큰 차이점은 NULL 허용 여부입니다. 이 설명은 Unique Key의 정확한 특징을 나타냅니다.
  • 문제 4 정답: ③ (Unique, Check, Not Null)
    • 해설: 도메인 무결성은 속성 값이 유효한지 보장하는 규칙입니다. 값의 범위를 제한하는 Check, 중복을 막는 Unique, NULL을 막는 Not Null이 모두 도메인 무결성을 보장합니다.
  • 문제 5 정답: ③ (ON DELETE SET NULL)
    • 해설: ON DELETE는 부모 테이블의 데이터가 삭제될 때 자식 테이블에 적용할 규칙을 의미합니다. SET NULL은 자식 테이블의 FK 값을 NULL로 바꾸라는 명령어입니다.
profile
Hello world!

0개의 댓글