관계형 데이터 모델링 - Cardinality

김명주·2024년 11월 17일
0

Cardinality(관계수) -> DB에서 카디널리티는 크게 두가지 의미가 있다.

    1. 특정 데이터 집합(컬럼)의 유니크(Unique)한 값의 개수
    1. 데이터베이스 테이블간의 관계

테이블간의 관계

  1. 일대일(1:1) 관계

    엔티티 개체 하나가 다른 엔티티 개체 하나와 관계를 가지는 경우.

  2. 일대다(1:M) 관계

    엔티티 개체 하나가 다른 엔티티 개체 여러개와 관계를 가지는 경우.
    한 부서에 직원 여러명이 소속되어 있으며, 직원은 한 부서에만 소속될 수 있다.

  3. 다대다(M:N) 관계

    어떤 엔티티 개체 하나가 다른 엔티티 개체 여러개와 관련이 있고, 그 반대의 경우도 성립할 때.
    학생은 여러 개의 수강과목을 신청할 수 있고, 수강과목도 여러 명의 학생에 의해 선택된다.

컬럼에 있는 고유한 값의 개수

데이터베이스 테이블의 컬럼(Column)의 카디널리티(Cardinality)는 해당 컬럼에 있는 고유(Distinct)한 값의 개수를 말한다. 예를 들어, 성별(Gender) 컬럼의 남성, 여성 2가지 값이 존재하므로 이 컬럼의 카디널리티는 2이다.

높은 카디널리티 : 컬럼의 값이 매우 다양할 때 사용된다. 즉, 많은 고유 값을 포함한다.

  • 예시 : 주민등록번호, 이메일 주소
    대부분의 값이 고유해서 높은 카디널리티를 가진다.

중간 카디널리티 : 컬럼의 값이 중간 정도로 다양할 때 사용된다.

  • 예시 : 우편번호, 도시 이름
    일부 값이 고유하지만, 많은 값이 반복된다.

낮은 카디널리티 : 컬럼의 값이 적고 반복되는 값이 많을 때 사용된다.

  • 예시 : 성별, 상태 코드
    적은 수의 고유 값을 포함하며, 낮은 카디널리티를 가진다.

카디널리티 활용 측면

  • 쿼리 최적화 : 고유한 값이 많은 컬럼이라면 인덱스를 통해 검색 성능을 향상시킬 수 있다.
  • 중복 데이터 확인 : 높은 카디널리티를 가진 컬럼은 중복 데이터를 쉽게 확인할 수 있도록 도와준다.
  • 데이터베이스 설계 : 테이블을 설계할 때, 각 컬럼의 카디널리티를 고려해서 테이블 간의 관계 생성과 인덱스 생성에 도움이 된다.
  • 데이터 분석 : 데이터의 다양성을 파악하는 데에 도움이 된다. 카디널리티가 높은 컬럼은 데이터의 다양성이 큰 것이며, 이를 통해 여러 인사이트를 얻을 수 있다.
profile
개발자를 향해 달리는 사람

0개의 댓글