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