데이터 모델링의 요소 3가지와 ERD
데이터 모델링의 중요 요소
데이터 모델링의 중요한 3가지 개념
(1) 엔터티(Entity): 업무가 관여하는 어떤 것(thing)
- 사물이나 사건 등을 바라볼 때 전체를 지칭하는 용어
- 이 용어를 통해서 업무가 어떤 부분을 중심으로 벌어지고 초점이 맞춰져 있는지를 확인할 수 있음
- 눈에 보이는 개념이든 아니든 데이터 모델링에서 사용되는 하나의 대상, 객체
→ 예를 들면 우리 모두는 개개인이 하나의 Entity라고 볼 수 있음 (사물, 사건이 어떤지에 따라 작은 차이 존재)
(2) 속성(Attribute) - 어떤 것이 갖는 성격
- 어떤 것이 갖는 세부적인 성격
- Entity가 지닐 수 있는 여러 특징
→ 각자가 가지는 어떤 특징이 속성에 해당함(키, 몸무게, 성격, 취미 등 다양한 것)
(3) 관계(Relationship) - 업무가 갖는 어떤 것 간의 관계
- Entity와 Entity가 서로 간에 가지는 것
- 둘 사이에 존재하는 어떠한 연결 고리(연관성)
→ 사람들 간의 관계에 해당함(친구 사이, 연인 사이, 가족 관계, 직장 선후배 관계 등)
→ 헬스장이라면 트레이너 엔티티, 고객 엔티티는 한 명의 트레이너가 여러명의 고객을 응대하는 1:N 관계를 맺고 있다고 말할 수 있음
데이터 모델링을 위한 ERD
ERD(Entity Relationship Diagram)
- 데이터들의 관계를 나타낸 도표
- 976년 피터첸(Peter Chen)이 Entity Relationship Model 표기법을 만들어 ERD데이터 모델링의 표준으로 사용되고 있음
ERD 작성법
(1) 엔터티를 정의하고 그리기
(2) 엔터티를 적절하게 배치: 가장 중요한 엔터티를 좌측 상단에 배치하고 이것을 중심으로 다른 엔터티들을 나열(왼쪽에서 오른쪽, 위쪽에서 아래쪽으로)
(3) 엔터티 간의 관계를 설정
(4) 관계명을 서술
(5) 관계의 참여도(특정 엔터티와 다른 엔터티 간의 관계수를 의미함)를 기술
(6) 관계의 필수 여부를 기술
데이터 모델 표기법
- 대표적인 데이터 모델 표기법은 IE/Crow’s Foot 표기법과 Barker/Case*Method 표기법이 있음
- Barker 표기법 참고사항
- #: 식별자(식별자: 각각의 데이터를 구분해주는 속성) 속성 앞에 표기
- *: 필수 속성 앞에 표기
- o: 선택 속성 앞에 표기
좋은 데이터 모델의 요소
- 기본적으로 데이터 모델은 상황 맥락에 영향을 받기 때문에 현시점의 최선이 시간이 흐르면 최악 모델이 될 수도 있기 때문에 좋은 데이터 모델을 평가하는 절대 기준은 존재하지 않음
- 그럼에도 전반적인 상황에서 좋은 데이터 모델로 평가할 수 있는 몇 가지 요소가 존재함
완전성(Completeness)
- 업무에서 필요로 하는 모든 데이터가 모델에 정의되어 있어야 함
- 예를 들면, 학교 데이터 모델은 학생과 선생님에 대한 정보가 포함되어 있어야 하며 보험사의 데이터 모델은 고객에 대한 정보가 포함되어 있어야 함
중복 제재(Non-Redundancy)
- 하나의 데이터베이스 내에 동일한 사실은 한 번만 기록
- 예를 들어, 하나의 테이블에서 '나이'라는 칼럼과 '생년월일'이라는 칼럼이 동시에 존재하면 이는 중복 제재 원칙을 위반했다고 볼 수 있음
업무 규칙(Business Rules)
- 데이터 모델에서 매우 중요한 요소 중 하나는 데이터 모델링 과정에서 도출되고 규명되는 수많은 업무규칙(Business Rules)을 데이터 모델에 표현하고 이를 해당 데이터 모델을 활용하는 모든 사용자가 공유할 수 있도록 제공하는 것
- 특히, 데이터 아키텍처에서 언급되는 논리 데이터 모델(Logical Data Model)에서 이러한 요소들이 포함되어야 함
- 예를 들면, 보험사의 사원들은 매월 여러 가지 항목에 대해서 급여를 지급받고 있고 이를 데이터로 관리하고 있음. 각 사원들은 월별로 하나 이상의 급여 항목(기본급, 상여금, 수당, 수수료 등)에 대해서 급여를 지급받고 있고 나아가 각 사원은 사원 구분별(내근, 설계사, 계약직, 대리점 등)로 위의 급여 항목을 차등적으로 지급받는다는 업무규칙에 따라 돈을 받음 → 이러한 내용이 데이터 모델에 나타나야 하고, 이렇게 함으로써 해당 데이터 모델을 사용하는 모든 사용자(개발자, 관리자 등)가 해당 규칙에 대해서 동일한 판단을 하고 데이터를 조작할 수 있게 됨
데이터 재사용(Data Reusability)
- 데이터는 언제든 다시 사용할 수 있는 형태로 가공되고 보관되어야 함
의사소통(Communication)
- 데이터 모델은 의사소통 도구로서의 역할을 해야 함
통합성(Integration)
- 동일한 데이터 구조는 데이터를 구성하는 조직 전체에서 한 번만 정의되어야 함
- 바람직한 데이터 구조의 형태는 동일한 데이터일 경우 조직의 전체에서 한 번만 정의되고 이를 여러 다른 영역에서 참조, 활용하는 것