데이터베이스의 카디널리티는 무엇입니까?


84

인터넷을 샅샅이 검색했지만 이해할 수있는 답을 찾지 못한 것 같습니다.

친절하게도 누군가 데이터베이스의 카디널리티가 무엇인지 예를 들어 설명해 줄 수 있다면?

감사합니다.

답변:


120

혼란의 원인은 데이터 모델링과 데이터베이스 쿼리 최적화라는 두 가지 다른 맥락에서 단어를 사용하는 것입니다.

데이터 모델링 용어에서 카디널리티는 한 테이블이 다른 테이블과 관련되는 방식입니다.

  • 1-1 (테이블 A의 한 행은 tableB의 한 행과 관련됨)
  • 일대 다 (테이블 A의 한 행은 tableB의 여러 행과 관련됨)
  • 다다 (테이블 A의 많은 행이 tableB의 많은 행과 관련됨)

또한 위의 경우 선택적 참여 조건이 있습니다 (한 테이블의 행 이 다른 테이블과 전혀 관련 되지 않아도 됨).

카디널리티 (데이터 모델링) 에 대한 Wikipedia를 참조하십시오 .


데이터베이스 쿼리 최적화에 대해 이야기 할 때 카디널리티는 테이블 열의 데이터, 특히 테이블에있는 고유 값 수를 나타냅니다. 이 통계는 쿼리를 계획하고 실행 계획을 최적화하는 데 도움이됩니다.

카디널리티 에 대한 Wikipedia (SQL 문)를 참조하십시오 .


2
카디널리티가 0이면 두 테이블이 서로 관련되지 않음을 의미합니까?
타일러

0의 카디널리티? 많이 사용 된 용어는 아니지만 그 의미가 있다고 생각합니다. 일반적으로-ER 다이어그램에서 이러한 테이블을 연결하는 선이 없으므로 카디널리티를 표시 할 필요가 없습니다.
Oded

데이터 모델링의 0 카디널리티는 선택적 관계를 나타내는 데 사용됩니다. 0..1 또는 0..n
Walter Mitty

카디널리티라는 용어의 수학 의미와 유사하게 만들기 : ** (데이터 모델링) 두 테이블 간의 카디널리티는 두 테이블 간의 값의 고유성입니다 (두 세트 간의 함수로서의 카디널리티) ** (데이터베이스 쿼리 최적화) 테이블의 카디널리티는 다음과 같습니다. 행이 해당 컬럼에 대해 얼마나 독특한 (세트 자체의 기수)
harshvchawla

29

상황에 따라 다릅니다. 카디널리티는 무언가의 수를 의미하지만 다양한 컨텍스트에서 사용됩니다.

  • 데이터 모델을 빌드 할 때 카디널리티는 종종 테이블 B와 관련된 테이블 A의 행 수를 나타냅니다. A (1 : N)의 모든 행에 대해 B에, A (N : M)의 모든 N 행에 대해 B에 M 개의 행이 있습니까?
  • ab * -tree 인덱스 또는 비트 맵 인덱스를 사용하는 것이 더 효율적인지 여부 또는 술어가 얼마나 선택적인지 등을 살펴볼 때 카디널리티는 특정 열의 고유 값 수를 나타냅니다. PERSON예를 들어 테이블 이있는 경우 GENDER카디널리티가 매우 낮은 열 (에 두 개의 값만 있을 수 있음 GENDER) PERSON_ID이 될 가능성이 높고 카디널리티가 매우 높은 열 (모든 행이 다른 값을 가짐)이 될 가능성이 높습니다.
  • 쿼리 계획을 볼 때 카디널리티는 특정 작업에서 반환 될 것으로 예상되는 행 수를 나타냅니다.

사람들이 다른 컨텍스트를 사용하여 카디널리티에 대해 이야기하고 다른 의미를 갖는 다른 상황이있을 수 있습니다.


8

데이터베이스 에서 테이블의 행 수 카디널리티 .

여기에 이미지 설명 입력 img 소스


여기에 이미지 설명 입력 img 소스


  • 관계는 카디널리티 (즉 , 집합의 요소 수) 에 따라 이름이 지정되고 분류됩니다 .
  • 엔티티 가까이에 나타나는 기호는 최대 카디널리티 이고 다른 하나는 최소 카디널리티 입니다.
  • 엔티티 관계는 다음과 같이 관계 라인의 끝을 표시 합니다.
    여기에 이미지 설명 입력

여기에 이미지 설명 입력

이미지 소스


1
표 및 ERD를 포함한 텍스트에는 이미지 / 링크가 아닌 텍스트를 사용 하세요 . 다른 텍스트에서 의역 또는 인용. 필요한 것만 제공하고 문제와 관련시킵니다. 텍스트로 표현할 수 없거나 텍스트를 보강하기 위해 이미지 만 사용하십시오. 이미지를 검색하거나 잘라내어 붙여 넣을 수 없습니다.
philipxy

4

카디널리티는 열에 포함 된 데이터의 고유성을 나타냅니다. 열에 중복 데이터가 많으면 (예 : "true"또는 "false"를 저장하는 열) 카디널리티가 낮지 만 값이 매우 고유 한 경우 (예 : 주민등록번호) 카디널리티가 높습니다.


1
카디널리티는 몇 가지 다른 것을 나타낼 수 있지만 Oded의 대답은 귀하가 찾고있는 것일 가능성이 높습니다 .
Andrew

-2

집합의 카디널리티는 집합에있는 요소의 namber입니다. 집합 a> a, b, c <이므로 집합에는 3 개의 요소가 포함됩니다. 3은 해당 집합의 카디널리티입니다.


-2

정의 : 데이터베이스에 테이블이 있습니다. 관계형 데이터베이스에서는 테이블간에 관계가 있습니다. 이러한 관계는 일대일, 일대 다 또는 다 대다 일 수 있습니다. 이러한 관계를 '카디널리티'라고합니다.

카디널리티의 중요성 :

많은 관계형 데이터베이스는 비즈니스 규칙에 따라 설계되었으며 데이터베이스를 설계 할 때 비즈니스 규칙에 따라 카디널리티를 정의합니다. 그러나 모든 개체에는 고유 한 특성도 있습니다.

개체간에 카디널리티를 정의 할 때 올바른 카디널리티를 정의하기 위해 이러한 모든 사항을 고려해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.