카디널리티(데이터 모델링)
Cardinality (data modeling)![]() | 이 기사의 주요 부분을 다시 써야 할 수도 있다. 주어진 이유는 도입부에 정의가 없다는 것이다. 를 하십시오.(2019년 10월) (이 메시지를 과 시기 |
데이터 모델링에서, 두 테이블 사이의 결합의 카디널리티는 한 테이블의 행과 다른 테이블의 행 사이의 숫자 관계다. 일반적인 추기경으로는 일대일, 일대다, 다대다수가 있다.
예를 들어 전자 건강 기록의 데이터베이스를 생각해 보십시오. 이러한 데이터베이스는 다음과 같은 테이블을 포함할 수 있다.
- A
doctor
의사들에 대한 정보를 표로 작성한다. - A
patient
치료 중인 의료 대상자를 위한 표 - 안
encounter
각 병원 방문에 대한 항목이 포함된 표
이러한 실체들 사이에는 많은 의사들이 참여하는 만남과 같은 자연적인 관계가 존재한다. 의 기록들 사이에는 다대다수의 관계가 있다. doctor
및 에 기록 patient
왜냐하면 의사들은 많은 환자를 가지고 있고 환자들은 많은 의사를 볼 수 있기 때문이다. 에 있는 기록들 사이에는 일대다 관계가 있다. patient
및 에 기록 encounter
왜냐하면 환자들은 많은 만남을 가질 수 있고 각각의 만남은 오직 한 명의 환자와만 관련되기 때문이다.
"일대일" 관계는 정보를 간결하게 제공하고 더 이해할 수 있도록 하기 위해 테이블을 둘로 나누는 데 주로 사용된다. 병원의 예에서, 그러한 관계는 의사들 자신의 고유한 전문적 정보를 행정상의 세부사항과 분리하는 데 사용될 수 있다.
데이터 모델링에서 데이터 요소의 컬렉션을 "데이터베이스 속성"이라고 하는 데이터 필드 이름의 그룹을 포함하는 "데이터 테이블"로 그룹화한다. 테이블은 "키 필드"로 연결된다. "기본 키"는 "특별 주문 테이블"에 필드를 할당한다. 예를 들어, "닥터 성" 필드는 닥터 테이블의 기본 키로 지정될 수 있으며, 모든 사람들이 성 이름의 처음 세 글자에 따라 알파벳순으로 성을 구성한다. 또한 테이블에는 필드가 다른 테이블의 기본 키에 연결되어 있음을 나타내는 외래 키가 있을 수 있다.
복잡한 데이터 모델에는 수백 개의 관련 테이블이 포함될 수 있다. 컴퓨터 과학자 에드거 F. Codd는 관계형 데이터베이스를 분해하고 정리하는 체계적인 방법을 만들었다. 데이터베이스 테이블과 해당 키를 구성하는 Codd의 단계를 데이터베이스 표준화라고 하는데, 이것은 숨겨진 데이터베이스 설계 오류(이상 징후 삭제 또는 업데이트 이상 징후 삭제)를 방지한다. 실제로 데이터베이스 정규화 프로세스는 결국 테이블을 더 많은 수의 더 작은 테이블로 분할한다.
실제 세계에서 데이터 모델링은 데이터가 대량으로 증가함에 따라 키로 연결된 테이블을 사용하여 데이터의 프로그래밍된 검색 속도를 높여야 하기 때문에 중요하다. 데이터 모델이 제대로 만들어지지 않으면 100만 개의 기록만 있는 컴퓨터 애플리케이션 시스템도 최종 사용자에게 허용할 수 없는 응답 시간 지연을 줄 것이다. 이 때문에 데이터 모델링은 현대 소프트웨어 개발자가 필요로 하는 스킬의 키스톤이다.
데이터베이스 모델링 기법
기업-관계 모델은 데이터 모델 기업 유형, 관계 및 카디널리티에 대한 정보를 포착하기 위해 사용할 수 있는 기업-관계도(ERD)를 생산하는 기법을 제안한다. 까마귀의 발은 일대다 관계를 보여준다. 또는 하나의 선은 일대일 관계를 나타낸다.
애플리케이션 프로그램 모델링 접근 방식
데이터베이스 구조 설계와 관련된 객체 지향 애플리케이션 프로그래밍 패러다임에서는 객체 모델링에 UML 클래스 다이어그램을 사용할 수 있다. 이 경우 객체 관계는 UML 연관성을 사용하여 모델링되며, 다중성은 카디널리티를 나타내는 데 사용된다. 여기 몇 가지 예가 있다.
관계 | 예 | 왼쪽 | 맞다 | 서사 |
---|---|---|---|---|
일대일 | Person ←→ 출생 증명서 | 1 | 1 | 사람은 출생 증명서를 가지고 있어야 한다. |
일대일(한 쪽 옵션) | Person ←→ 운전 면허증 | 1 | 0..1 아니면 ? | 사람은 운전 면허증을 가지고 있을 수 있다. |
다대일 | person ←→ 출생지 | 1..* 또는 + | 1 | 많은 사람들이 같은 장소에서 태어날 수 있다. |
다대다수(양쪽 옵션) | person ←→ 책 | 0..* 또는 * | 0..* 또는 * | 사람은 책을 소유할 수 있다. |
일대다 | ←→라인 아이템을 주문하다. | 1 | 1..* 또는 + | 주문에 하나 이상의 항목이 포함됨 |
다대다수 | 과정 ←→ 학생 | 1..* 또는 + | 1..* 또는 + | 학생들은 다양한 과정을 따른다. |
참고 항목
참조