데이터 모델 목적
- 데이터 모델은 설계자와 개발자, 사용자 등 모든 관련자들은 데이터 모델을 통해 구축될 시스템의 데이터 구조에 대한 형상을 이해하고, 요구 사항의 구현과 변경 등에 대해 원활한 의사소통을 도모하게 된다.
개체-관계 모델 기법
- 개체-관계 모델은 1976년 피터 첸에 의해서 최초로 제안되었으며, 그의 논문을 통해 이 모델의 기본적인 구성 요소가 정립되었다.
개체-관계 모델의 목적
- 데이터에 대해 관리자, 사용자, 개발자들이 서로 다르게 인식하고 있는 뷰들을 하나로 통합할 수 있는 단일화된 설계안을 만들 수 있다.
- 서로 다른 뷰를 충족시킬 수 있는 데이터 처리와 제약 조건 등의 요구 사항을 정의하기 위해서이다.
* 개체 관계 다이어그램은 최종 사용자의 관점에서 데이터 구조를 그림 형태로 묘사하기 위해 개체, 관계, 속성이라는 세 개의 기본 요소를 사용하며, 엔티티와 이들 간의 관계를 미리 약속된 도형을 사용하여 알기 쉽고 일목요연하게 그림으로 표시한 것이라 정의할 수 있다.
개체-관계 모델 구성 요소
- 개체-관계 데이터 모델링은 일반적으로 개발 방법론에 의하여 논리 데이터 모델링과 물리 데이터 모델링으로 나눌 수 있다.
- 논리 데이터 모델링은 하나의 엔티티는 반드시 물리적으로 하나의 테이블이나 세그먼트가 되지는 않으며, 하나 이상 또는 테이블 한 개의 일부가 될 수도 있다.
- 물리 데이터 모델링은 논리 데이터 모델링을 기초로 현재의 시스템 환경을 고려하여 최고의 성능 향상을 목적으로 한다.
논리 데이터 모델링에서 물리 데이터 모델링 단계로 넘어오면서 고려해야 할 작업
- Super/Sub 관계의 엔티티를 몇 개의 테이블로 만들 것인가
- 배타적(Arc) 관계 엔티티의 외부키를 몇 개로 할 것인가
- 성능 향상을 위해 테이블을 추가해야 할 것인가 혹은 통합해야 할 것인가
- 통계 작업을 위해 합계 테이블 같은 임시성 테이블을 몇 개로 할 것이며, 유일키를 무엇으로 할 것인가
- 테이블의 칼럼을 다른 테이블에 중복할 것인가, 중복한다면 어떤 애플리케이션이 관련되어 있는가, 인덱스의 설정, 스냅샷 또는 뷰 등의 객체가 필요한가
- 분산 환경에서 테이블을 중복할 것인가, 중앙에 필요한 테이블을 따로 가져갈 것인가
- 데이터가 분산 환경에서 이동 시 문제를 어떻게 해결할 것인가
엔티티
- 엔티티는 업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로서, 그 대상들 간에 동질성을 지닌 것으로 볼 수 있는 개체 집합이나 그들이 행하는 행위의 집합으로 정의할 수 있다.
- 엔티티를 정의할 때는 어떤 대상이 그 엔티티에 속하는지 여부를 명확하게 구분할 수 있도록 정의해야 한다.
속성
- 속성은 엔티티에 저장되는 개체 집합의 특성을 설명하는 항목이라고 할 수 있다.
- 서로 다른 개체 집합에 정의된 속성은 같은 도메인을 공유할 수 있다.
식별자
- 엔티티의 각 개체들은 인스턴스라고 하는데, 인스턴스는 그들을 지칭하거나 식별해 주는 속성인 식별자를 가지고 있다.
- 식별자는 하나 또는 그 이상의 속성으로 구성된다. 특히 두 개나 그 이상의 속성으로 이루어진 식별자를 복합 식별자라 부른다.
관계
- 관계는 엔티티와 엔티티 간 연관성을 표현하는 것으로, 엔티티의 정의에 따라 영향을 받기도 하고, 속성 정의 및 관계 정의에 따라서도 다양하게 변할 수 있다.
카디널리티
- 개체-관계 다이어그램은 데이터베이스가 지켜야 할 제약 조건들을 명시할 수 있다. 중요한 제약 조건 중의 하나로 연결이라는 것이 있는데, 이는 한 개체가 관계를 통하여 다른 개체와 관련된 개체들의 수를 나타낸다.
- 일대일(One To One, 1:1) : X에 속하는 한 개체는 Y에 속하는 한 개체에만 연결되며, Y에 속하는 한 개체도 X에 속하는 한 개체에만 연결된다.
- 일대다(One To Many, 1:M) : X에 속하는 한 개체는 Y에 속하는 한 개체에만 연결되며, Y에 속하는 한 개체는 X에 속하는 여러 개체와 연결된다.
- 다대다(Many To Many, M:M) : X에 속하는 한 개체는 Y에 속하는 여러 개체와 연결될 수 있으며, Y에 속하는 한 개체도 X에 속하는 여러 개체와 연결될 수 있다.
- 카디널리티란 관계에 참여하는 하나의 개체에 대해 다른 엔티티에서 몇 개의 개체가 참여하는지를 나타낸다.
존재 종속
- 만약 한 엔티티의 존재가 다른 엔티티의 존재에 영향을 받는다면 이를 존재 종속이라 한다.
서브타입
- 서브타입은 전체 집합인 슈퍼타입의 부분 집합이다. 예를 들어 학생들은 학부학생이나 대학원생으로 분류될 수 있다. 이 경우 학생이 슈퍼타입이고 학부학생과 대학원생은 서브타입이다.
- 모든 슈퍼타입이 구분자를 가지고 있는 것은 아니다. 만일 구분자가 없다면 적합한 서브타입을 생성하기 위해 응용 코드가 작성되어야 한다.
- 서브타입은 배타적(Exclusive) 또는 포괄적(Inclusive)일 수 있다.
- 배타적이라면 슈퍼타입은 많아야 1개의 서브타입과 관련될 수 있고, 포괄적이라면 슈퍼타입은 1개 또는 그 이상의 서브타입과 관련될 수 있다.
'DAP' 카테고리의 다른 글
[DAP 전문가 가이드] 4.1.3 데이터 모델링 표기법 이해(1) (0) | 2025.04.28 |
---|---|
[DAP 전문가 가이드] 4.1.2 데이터 모델링 기법 이해(2) (1) | 2025.04.28 |
[DAP 전문가 가이드] 4.1.1 데이터 모델링 개요(2) (0) | 2025.04.28 |
[DAP 전문가 가이드] 4.1.1 데이터 모델링 개요(1) (0) | 2025.04.28 |
[DAP 전문가 가이드] 3.3 데이터 표준 관리 (0) | 2025.04.25 |