데이터 모델링(2)
전 포스트 데이터 모델링(1)과 이어지는 내용입니다.
데이터 모델링에서의 데이터 독립성
데이터 독립성이란
데이터 독립성은 애플리케이션에 대해 독립하는 것을 말할 수 있다. 애플리케이션은 사용자 요구사항을 처리하는데, 사용자의 접근하는 유형에 따라 데이터를 구성하는 방법이 영향을 받는다. 데이터 독립성이란, 이 영향으로부터 애플리케이션에 대해 독립한다(최소화한다)는 뜻으로 볼 수 있다. (데이터 독립성의 반대말은 데이터 종속성입니다).
데이터 독립성의 필요성
데이터 독립성을 통해 지속해서 증가하는 유지비용⬇️, 데이터 복잡도⬇️, 중복된 데이터⬇️를 낮출 수 있기 때문에, 사용자 요구 사항에 대해 화면과 데이터베이스 간에 서로 독립성을 유지할 필요가 있다.
데이터베이스 3단계 스키마 구조
외부 단계 (External Schema)
- 뷰 단계. 사용자와 가까운 단계.
- 사용자 관점. 사용자 개인적 DB 스키마.
- 사용자마다 처리하고자 하는 데이터 유형, 관점, 방법에 따라 다른 스키마 구조로 되어 있음
개념적 단계 (Conceptual Schema)
- 사용자가 처리하는 데이터 유형의 공통적인 사항을 처리하는 통합된 뷰
- 통합 관점
내부적 단계 (Internal Schema)
- 데이터가 물리적으로 DB에 저장된 형식에 대한 스키마 구조
- 물리적 저장구조
데이터 모델링의 중요한 3가지 개념
데이터 모델링의 3가지 요소
- Things: 업무가 관여하는 어떤 것
- Attributes: 어떤 것이 가지는 성격
- Relationships: 업무가 관여하는 어떤 것 간의 관계
데이터 모델의 표기법 ERD
- 1976년 피터 첸(Peter Chen)이 ER모델(Entity-Relationship model) 표기법을 만듦
- 엔터티는 사각형, 관계는 마름모, 속성은 타원형으로 표기
- 여러 가지 표기법이 존재: Barker, IE 표기법 등
ERD 작업 순서
- 엔터티를 그린다.
- 엔터티를 적절하게 배치한다.
- 일반적으로 가장 중요한 엔터티를 왼쪽 상단, 업무 흐름에 중심이 되는 엔터티를 중앙에 배치
- 왼쪽에서 오른쪽, 위쪽에서 아래쪽으로 자연스럽게 흐를 수 있도록 배치
- 엔터티 간 관계를 설정한다.
- 관계명을 기술한다.
- 관계의 참여도를 기술한다.
- 관계의 필수 여부를 기술한다.
좋은 데이터 모델의 요소
- 완전성 (Completeness)
- 업무에서 필요로 하는 모든 데이터가 데이터 모델에 정의된다
- 중복 배제 (Non-Redundancy)
- 데이터 중복을 배제함으로써 낭비되는 저장 공간, 데이터 관리 비용을 줄인다
- 업무 규칙 (Business Rules)
- 수많은 업무 규칙을 데이터 모델에 표현하여 모든 사용자와 공유한다
- 데이터 재사용 (Data Reusability)
- 데이터의 통합성과 독립성을 고려해서 데이터 재사용을 향상한다.
- 데이터 구조의 확장성, 유연성을 가진다.
- 데이터가 애플리케이션에 대해 독립적으로 설계되어서, 외부 업무환경 변화에 대해 유연하게 대응한다.
- 의사소통 (Communication)
- 업무 규칙을 데이터 모델에 최대한 자세하게 표현함으로써 관련자들이 업무 규칙들을 동일한 의미로 받아들이고 활용할 수 있게 한다.
- 통합성 (Integration)
- 동일한 데이터는 조직 전체에서 한 번만 정의되고 이를 여러 다른 영역에서 참조·활용한다.
SQLD 41회에 관련 문제가 나왔었습니다. 데이터 모델의 틀린 요소를 찾는 것이었는데, 저는 기능성으로 답했습니다.
Reference
- “SQL 전문가 가이드” by 한국데이터산업진흥원 p.22-36
Leave a comment