더보기
1. 데이터 모델링
데이터 모델링이란?
- 데이터베이스 구조와 형식을 정의하고, 현실 세계를 데이터로 추상화하여 표현하는 작업.
- 데이터를 구조화하고 문서화해 시스템 구축과 데이터 관리를 위한 기반 제작.
데이터 모델링의 목적
- 업무 분석:
- 데이터 요구사항을 정의하고 비즈니스 본질을 분석.
- 데이터 관리:
- 분석 모델을 토대로 데이터베이스를 생성하고 효율적으로 관리.
데이터 모델링의 단계
- 개념적 데이터 모델링:
- 조직이나 사용자 관점에서 데이터를 분석하고, 중요한 요소 중심으로 구성.
- 논리적 데이터 모델링:
- 비즈니스 데이터의 논리적 구조와 규칙을 정의하고 정규화로 데이터 독립성 확보.
- 물리적 데이터 모델링:
- 논리 모델을 실제 데이터베이스로 구현하며, 성능과 보안을 고려한 설계.
데이터 모델의 주요 기능
기능설명
시각화 | 시스템을 원하는 모습으로 보여주는 역할. |
문서화 | 시스템 구조와 행동을 기록으로 남김. |
구체화 | 목표에 맞춘 세부적인 표현 방법 제공. |
구조화된 틀 제공 | 시스템 설계를 위한 체계적인 틀 제공. |
다양한 관점 제공 | 특정 부분에 집중할 수 있도록 불필요한 세부 사항 숨김. |
데이터 모델링의 과정
- 추상화:
- 현실 세계를 간단한 형식으로 압축하고 표현.
- 단순화:
- 복잡한 현실을 약속된 표기법으로 구조화.
- 명확화:
- 애매함을 제거하고 대상을 명확히 정의.
모델링 결과물에 대한 3가지 관점
관점설명
데이터 관점 (What) | 업무에서 필요한 데이터를 모델링하고 관련 요소 정의. |
프로세스 관점 (How) | 업무 수행 방식과 필요한 작업을 분석해 모델링. |
데이터와 프로세스 상관 관점 | 업무 절차가 데이터에 미치는 영향을 분석하며 CRUD(Create, Read, Update, Delete)를 중심으로 모델링. |
2. 데이터 모델링의 중요성
더보기
데이터 모델링의 중요성 및 유의점
파급효과 (Leverage)
- 시스템 구축 과정에서 데이터 모델 변경은 대규모 영향을 미칠 수 있는 중요한 요소.
- 데이터 속성이 변경되면 표준 영향 분석, 응용 변경 등 추가 작업 발생.
- 데이터를 시스템 전체 관점에서 설계하며 큰 구조는 변하지 않도록 유지 필요.
간결한 표현 (Conciseness)
- 데이터 모델은 정보 요구 사항을 간결하고 명확하게 표현하는 도구.
- 설계자의 의도를 정확히 전달하며 데이터 일관성을 유지하도록 지원.
데이터 품질 (Data Quality)
- 데이터 품질은 기업의 중요한 자산이며 의사 결정에 직접적 영향을 미침.
- 중복 (Duplication): 같은 정보를 데이터베이스 여러 곳에 저장하지 않도록 설계.
- 비유연성 (Inflexibility): 변화하는 환경에서도 데이터가 사용 가능하도록 유연성 확보.
- 비일관성 (Inconsistency): 데이터 간 상호 관계를 명확히 정의해 일관성을 유지.
프로젝트 라이프 사이클에서 데이터 모델링
- 프로젝트 시작부터 완료까지 거치는 단계.
- 폭포수 모델(Waterfall)과 애자일 모델(Agile)로 구분.
프로젝트 단계데이터 모델링 방식주요 활동
분석 | 논리 및 개념 데이터 모델링 | 프로세스 모델링 |
설계 | 물리 데이터 모델링 | AP 설계 |
개발 | DB 구축, 변경, 관리 | AP 개발 |
테스트 | DB 튜닝 | AP 테스트 |
전환/이행 | DB 전환 | AP 설치 |
데이터 모델링의 이해관계자
- 정보 시스템을 구축하는 모든 사람은 데이터 모델링을 이해하거나 해석 가능해야 함.
- 개발자는 높은 수준의 데이터 모델링 기술을 필요로 하고, 비전공자도 기본 개념을 숙지해야 함.
- 올바른 시스템 구축을 위해 원활한 업무 소통 필수.
3. 3층 스키마
더보기
데이터 독립성의 필요성
- 데이터 모델링에서 일체적 구성을 통해 일관된 데이터 수집과 독립적 데이터 구성을 실현.
- 과거에는 파일 방식 데이터 구성이 일반적이었지만, 클라이언트-서버 모델로 전환되며 독립성 확보가 중요해짐.
데이터 독립성 확보의 기대 효과
- 각 View의 독립성을 유지하며 계층별 변경이 가능.
- 단계별 Schema에 따라 DDL과 DML 제공.
데이터베이스의 3층 스키마
- 외부 스키마(External Schema): 사용자 관점에서 필요한 데이터 부분을 정의하며 나머지는 감춤.
- 개념 스키마(Conceptual Schema): 데이터 전체 구조와 관계를 설명하며, 물리적 저장 구조는 숨김.
- 내부 스키마(Internal Schema): 데이터가 물리적으로 저장되는 방법을 표현.
데이터 독립성 (Data Independence)
- 한 계층의 변경이 다른 계층에 영향을 미치지 않도록 유지하는 능력.
- 구조 변경이 상위 스키마와 응용 프로그램에 영향을 주지 않음.
☑️ 3층 스키마의 독립성
독립성설명특징
논리적 독립성 | - 개념 스키마 변경이 외부 스키마에 영향을 미치지 않음. - 구조 변경에도 응용 프로그램은 유지. |
- 사용자 특성에 맞게 통합 구조로 변경 가능. |
물리적 독립성 | - 내부 스키마 변경이 개념 스키마에 영향을 미치지 않음. - 저장 장치 변경에도 응용 프로그램은 유지. |
- 물리적 구조와 개념 구조 간 독립성 보장. |
데이터 독립성의 예시
- 외부 스키마의 요청 처리:
- 고객 정보(이름, 전화번호 등)만 필요할 경우, 개념 스키마를 통해 필요한 데이터만 제공.
- 새로운 속성 추가:
- 14세 이상 여부를 판단하는 데이터 추가 시, 기존 고객 데이터 접근에 영향 없음.
- 파일 구조 변경:
- 검색 속도를 위해 내부 스키마 변경 시, 개념 스키마와 외부 스키마는 영향 받지 않음.
4. 데이터 모델링의 요소와 ERD
더보기
데이터 모델링의 중요 요소
데이터 모델링의 3가지 개념
- 엔터티(Entity)
- 업무가 관여하는 객체. 사물이나 사건 등을 지칭하며, 업무의 중심 요소.
- 속성(Attribute)
- 엔터티가 가진 성격. 키, 몸무게 등과 같은 특징.
- 관계(Relationship)
- 엔터티 간의 연관성. 예: 트레이너와 고객 간 1:N 관계.
데이터 모델링을 위한 ERD
ERD란?
- Entity Relationship Diagram의 약자로, 데이터 간 관계를 나타낸 도표.
- 1976년 피터 첸이 표준화된 모델로 제안.
ERD 작성법
- 엔터티 정의 및 그림 배치.
- 엔터티 간 관계 설정 및 관계명 서술.
- 관계의 참여도와 필수 여부 기술.
데이터 모델 표기법
- 주요 표기법: IE/Crow’s Foot, Barker 표기법.
- Barker 표기법: #(식별자), *(필수 속성), o(선택 속성) 사용.
좋은 데이터 모델의 요소
- 완전성 (Completeness)
- 업무에 필요한 모든 데이터 정의. 예: 학교 모델에 학생과 선생님 정보 포함.
- 중복 제재 (Non-Redundancy)
- 동일한 사실은 한 번만 기록. 예: 나이와 생년월일 중 하나만 사용.
- 업무 규칙 (Business Rules)
- 업무 규칙을 데이터 모델에 표현하여 사용자 간 일관성 유지. 예: 사원 구분별 급여 항목 정의.
- 데이터 재사용 (Data Reusability)
- 데이터를 재사용 가능하도록 설계.
- 의사소통 (Communication)
- 데이터 모델을 의사소통 도구로 활용.
- 통합성 (Integration)
- 데이터 구조를 조직 내 한 번만 정의하고 재활용.