I. 데이터베이스 카디널리티(Database Cardinality)의 정의
- 두 개의 엔티티 타입 사이의 논리적인 관계, 즉 엔티티와 엔티티가 존재하는 형태로써 혹은 행위로써 서로에게 영향을 주는 상태
- 두개의 엔티티 타입간 관계에서 참여자의 수를 표현하는 가장 일반적인 카디넬러티 표현방법은 1:M, 1:1, M:N
II.데이터베이스 카디널리티 주요유형 및 표기법
가. 주요 유형
유형 |
관계 구성도 |
설명 |
1:1 관계 |
카디넬리티(Cardinality) - 1:1(One To One)
한개의 구매신청서에 대해 한 개의 구매주문을 신청하고 한개의 구매주문에는 한 개의 구매신청내용을 작성한다.
각 엔티티의 어느 입장에서 반드시 단 하나씨 관계를 가질 떄 성립
|
- 각 엔티티는 상호간에 하나만의 관계를 형성 |
1:M 관계 |
카디넬리티(Cardinality) - 1:M(One To Many)
한 명의 사원은 부서에 소속되고 한 부서에는 여러 사원을 포함한다.
업무 설계 시, 가장 흔하게 발생하는 관계의 형태로 부모와 자식의 관계처럼 계층적인 구조
|
- 각 엔티티는 관계를 맺는 다른 엔티티에 대해 하나 또는 다수 관계 형 성 (반대방향은 단지 하나만의 관계) |
M:N 관계 |
카디넬리티(Cardinality) - M:M(Many To Many)
하나의 주문서에는 여러 개의 제품을 포함할 수 있고 한 제춤은 여러 개의 주문서에 의해 신청될 수 있다.
양쪽 엔티티 모두 1:M 관계가 성립 |
- 각 엔티티는 관계를 맺는 다른 엔티티에 대해 하나 또는 다수 관계를 가짐 (반대방향도 동일) |
- 각 엔티티간의 관계를 다양한 카디널리티 표기법을 통해 표현가능
나. 카디널리티의 표기법
카디널리티 |
최소 |
최대 |
표현 |
One |
1 |
1 |
|
Many |
> 1 |
> 1 |
|
Zero or one |
0 |
1 |
|
One or many |
1 |
> 1 |
|
Zeor or many |
0 |
> 1 |
|
- 카디널리티의 레벨에 따라 다양한 활용이 가능
다. 관계의 참여 방법
참여방법 |
내용 |
필수 관계 |
참여하는 모든 참여자가 반드시 관계를 가지는 타 엔티티 타입의 참여자와 연결이 되어야 하는 관계 |
선택 관계 |
선택 참여관계는 ERD에서 관계를 나타내는 선에서 선택 참여하는 엔티티타입 쪽을 원으로 표시 |
III. 카디널리티의 활용사례
구분 |
사례 |
설명 |
High Cardinality |
주민번호, 사원번호 |
대한민국 전체가 서로 다른 주민번호 보유 |
Normal Cardinality |
이름의 성 컬럼 |
비교적 유니크한 데이터 값 |
Low Cardinality |
성별, 부서, 지역 |
성별의 속성에는 남자, 여자 2개의 데이터값만 들어감 |
- 카디널리티 예측을 통한 쿼리성능 저하문제 해결에 활용 가능
- 카디널리티가 높은 컬럼을 인덱스로 잡아 빠른 검색 구현
'개발정보' 카테고리의 다른 글
넥사크로 기술지원 및 라이센스 받을 수 있는 사이트 URL (0) | 2019.06.22 |
---|---|
데이터 모델링 (0) | 2019.06.22 |
촛불 하나, 꿈이 사라지다. (0) | 2019.06.22 |
오두막 가마솥 손두부·곰탕, 연천 맛집, 재인 폭포 맛집 (0) | 2019.06.22 |
shell 정리, Unix Sehll , 리눅스 쉘 & vi editor 사용법 (0) | 2019.06.22 |