본문 바로가기

IT/DB

pk 1개 테이블과 2개 테이블의 차이점

728x90
반응형

 

 

 

테이블의 **Primary Key (PK)**는 테이블의 각 행(레코드)을 고유하게 식별하기 위해 사용되는 컬럼(또는 컬럼들의 조합)입니다.

 

PK가 1개인 테이블과 2개 이상의 컬럼을 조합하여 PK를 구성하는 테이블의 주요 차이점은 다음과 같습니다.

 


 

1. PK가 1개인 테이블

 

  • 구조: 테이블에서 단일 컬럼이 Primary Key로 사용됩니다.
  • 특징:
    • 한 개의 컬럼만으로 각 행을 고유하게 식별할 수 있습니다.
    • 단순한 데이터 구조에서 주로 사용됩니다.
    • 단일 PK 컬럼은 일반적으로 고유 ID, 사용자 번호, 주문 번호 등의 역할을 합니다.

예제

CREATE TABLE Users ( user_id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100) );
 
 
  • 설명: user_id는 각 사용자를 고유하게 식별하는 PK입니다.

 

장점

  • 단순한 관리 및 설계.
  • 색인(Index)과 검색 성능이 효율적.
  • 직관적으로 고유 식별자를 이해하기 쉬움.

단점

  • 복합적인 식별 요건이 있을 경우 단일 PK로는 충분하지 않을 수 있음.

 

2. PK가 2개 이상인 테이블 (복합 PK)

  • 구조: 두 개 이상의 컬럼을 조합하여 하나의 Primary Key를 만듭니다.
  • 특징:
    • 단일 컬럼만으로는 각 행을 고유하게 식별할 수 없는 경우 사용됩니다.
    • 두 개 이상의 컬럼 조합이 고유해야 함.
    • 주로 관계형 테이블(예: 다대다 관계를 표현하는 조인 테이블)에서 사용됩니다.

예제

CREATE TABLE Orders ( order_id INT, product_id INT, quantity INT, PRIMARY KEY (order_id, product_id) );
 
  • 설명:
    • order_id와 product_id의 조합이 고유해야 합니다.
    • 단일 컬럼(order_id 또는 product_id)만으로는 행을 고유하게 식별할 수 없습니다.

장점

  • 여러 속성을 조합해 고유성을 보장할 수 있음.
  • 다대다 관계를 표현하거나 데이터 무결성을 유지하기에 적합.
  • 추가 컬럼으로 식별의 세밀함을 높일 수 있음.

단점

  • PK의 크기가 커지므로 색인과 검색 성능이 단일 PK보다 낮아질 수 있음.
  • 관리와 설계가 복잡해질 가능성.
  • 외래 키로 사용할 때 복합 키를 참조해야 하므로 추가적인 복잡성 증가.

 

주요 차이점 비교

 

특징   단일 PK  복합 PK
구조 하나의 컬럼 두 개 이상의 컬럼 조합
유형 단순 식별자 다중 속성을 조합한 식별자
사용 사례 사용자를 고유하게 식별하는 테이블 관계 테이블(조인 테이블), 복합 식별 요구
설계 및 관리 단순 복잡
색인 및 검색 성능 효율적 상대적으로 덜 효율적
외래 키 참조 단일 컬럼으로 참조 가능 다중 컬럼 참조 필요

 

복합 PK를 사용하는 상황

  • 조인 테이블: 다대다 관계를 표현하기 위해 사용됩니다. 예를 들어, 학생과 수업의 관계를 나타내는 경우:
     
    CREATE TABLE StudentClass ( student_id INT, class_id INT, PRIMARY KEY (student_id, class_id) );
     
  • 날짜 기반 식별: 특정 날짜와 시간대 조합으로 고유한 데이터를 저장할 때:
CREATE TABLE RoomBooking ( room_id INT, booking_date DATE, PRIMARY KEY (room_id, booking_date) );

 

요약

  • 단일 PK는 단순한 고유 식별이 가능한 경우 적합하며, 설계와 성능 관리가 용이합니다.
  • 복합 PK는 고유 식별을 위해 여러 컬럼의 조합이 필요할 때 사용되며, 다대다 관계 테이블에서 주로 사용됩니다. 하지만 설계와 관리가 더 복잡할 수 있습니다.

 

 

 

 

728x90
반응형