SQL

관계 데이터베이스에서의 관계수, 선택성, 식별자 상속

초코너무조코 2025. 2. 12. 11:06
728x90

관계형 데이터베이스(Relational Database, RDB)는 데이터를 구조적으로 저장하고 관리하는 강력한 시스템입니다. 이를 효과적으로 설계하기 위해서는 관계수(Cardinality), 선택성(Selectivity), 식별자(Identifier), 상속(Inheritance) 같은 개념을 이해하는 것이 중요합니다. 이번 글에서는 이 개념들을 하나씩 살펴보겠습니다.

1. 관계수(Cardinality)

관계수는 데이터베이스에서 두 개의 엔터티(Entity) 간 관계에서 가능한 연관의 수를 의미합니다. 일반적으로 다음과 같은 세 가지 형태가 있습니다:

  • 일대일(1:1) 관계: 한 엔터티가 다른 엔터티와 최대 하나의 관계를 가질 때.
    • 예: 사용자와 주민등록번호 (각 사용자는 하나의 주민등록번호를 가짐)
  • 일대다(1:N) 관계: 한 엔터티가 여러 개의 다른 엔터티와 관계를 가질 때.
    • 예: 고객과 주문 (한 고객이 여러 개의 주문을 할 수 있음)
  • 다대다(N:M) 관계: 여러 개의 엔터티가 여러 개의 다른 엔터티와 관계를 가질 때.
    • 예: 학생과 강의 (한 학생이 여러 강의를 수강할 수 있고, 하나의 강의를 여러 학생이 들을 수 있음)
    • 다대다 관계는 보통 중간 테이블(Bridge Table)로 변환하여 구현됨

2. 선택성(Selectivity)

선택성은 데이터베이스의 쿼리 성능 최적화와 관련된 개념으로, 특정 속성(Attribute)에 대해 서로 다른 값이 얼마나 많은지를 나타냅니다.

  • 높은 선택성(High Selectivity): 속성이 가지는 고유한 값의 개수가 많을 때.
    • 예: 주민등록번호 (각 값이 거의 유일함) → 높은 선택성
  • 낮은 선택성(Low Selectivity): 속성이 가지는 고유한 값의 개수가 적을 때.
    • 예: 성별 (대부분 "남" 또는 "여") → 낮은 선택성

선택성이 높은 속성을 인덱스로 설정하면 쿼리 성능이 향상될 수 있음.

3. 식별자 상속(Identifier Inheritance)

식별자는 엔터티 내에서 각 레코드를 유일하게 구분하는 속성을 의미합니다. 데이터베이스에서 주요한 식별자 유형은 다음과 같습니다:

  • 기본 키(Primary Key, PK): 각 행(row)을 고유하게 식별하는 속성
    • 예: 회원 테이블의 user_id
  • 대체 키(Alternate Key): 기본 키가 아닌, 유일한 속성  
    • 예: 이메일 주소 (email 컬럼)
  • 외래 키(Foreign Key, FK): 다른 테이블의 기본 키를 참조하는 속성
    • 예: 주문 테이블에서 customer_id는 고객 테이블의 user_id를 참조
  •  

결론

데이터베이스 설계에서 관계수, 선택성, 식별자 상속 개념을 잘 이해하면 보다 유지보수가 쉽고, 성능이 뛰어난 데이터 모델을 설계할 수 있습니다. 적절한 인덱스 설계, 정규화, 그리고 올바른 관계 설정을 통해 최적의 데이터베이스 구조를 만들 수 있도록 노력해야 합니다.

데이터베이스 설계 시 위 개념들을 잘 활용하여 효율적인 시스템을 구축해보세요!

728x90