Contents
1. 데이터 모델의 이해1️⃣ 모델링(Modeling)의 정의2️⃣ 모델링의 종류3️⃣ 모델링의 특징 ⭐4️⃣ 정보시스템 모델링의 세 가지 관점2. 데이터 모델링1️⃣ 데이터 모델링의 정의2️⃣ 데이터 모델이 제공하는 기능3️⃣ 데이터 모델링의 중요성 및 유의점4️⃣ 데이터 모델링의 3단계 ⭐5️⃣ 프로젝트 생명주기(Life Cycle)에서의 데이터 모델링6️⃣ 데이터 모델링에서 데이터 독립성의 이해7️⃣ 데이터 모델링의 중요한 세 가지 요소8️⃣ ERD (Entity Relationship Diagram)9️⃣ 좋은 데이터 모델의 요소1. 데이터 모델의 이해
1️⃣ 모델링(Modeling)의 정의
- 다양한 현상(사람, 사물, 개념 등)을 표기법에 따라 표기하는 것 자체
- 일종의 약속(그림, 기호, 수식 등) 에 따라 다양하고 복잡한 여러 현상을 알기 쉽게 표현한 집합체
2️⃣ 모델링의 종류
1) 정보시스템 모델링
(정보 모델링, 데이터 모델링, 프로세스 모델링 등 포함)
- 데이터 모델링
- 복잡한 데이터를 컴퓨터 저장 구조로 변환하는 과정
- 데이터를 구조화하고 체계화하는 모든 것
2) 수리 모델링 (수학적 모델링)
- 공학 분야에서 사용되는 미분 방정식, 상태 방정식, 시스템 방정식, 시스템 함수 등
3) 통계(확률) 모델링
- 확률 현상을 차트, 표, 수식, 함수 등으로 표현
- 데이터 분석에서 유용하게 활용
4) 회로 모델링
- 회로 소자를 이용해 증폭, 필터링, 스위칭 등 연산을 수행하는 회로를 특정한 규칙에 따라 표현하는 것
3️⃣ 모델링의 특징 ⭐
모델링 특징이 아닌 것을 고르는 문제가 자주 출제됨
추-단-명으로 암기!
1) 추상화
- 현실 세계를 일정한 형식에 맞춰 추상적으로 표현하는 과정
- 특정 표기법에 의해 중요한 요소만 간략히 표현
2) 단순화
- 복잡한 현실 세계를 특정한 약속에 따라 기호, 문자, 그림 등으로 쉽게 이해할 수 있게 단순화하는 개념
3) 명확화
- 누구나 이해하기 쉽도록 애매함을 제거하고, 명확하게 현상을 기술
4️⃣ 정보시스템 모델링의 세 가지 관점
1) 데이터 관점 (What, Data) ⭐
- 업무가 어떤 데이터와 관련이 있는지, 또 관계는 어떠한지를 모델링하는 방법 (SQLD 영역)
2) 프로세스 관점 (How, Process)
- 업무가 실제로 처리하는 일이 무엇인지, 또 무엇을 해야 하는지를 모델링하는 방법
3) 데이터와 프로세스의 상관 관점 (Interaction)
- 업무 처리 방식에 따라 데이터가 서로 어떤 영향을 주고 받는지를 모델링하는 방법
2. 데이터 모델링
1️⃣ 데이터 모델링의 정의
- 정보시스템 구축을 위해 데이터 관점에서 업무를 분석하고 현실의 데이터를 약속된 표기법으로 표현하는 과정
- (실무) 데이터베이스를 구축하기 위한 분석 및 설계 과정
2️⃣ 데이터 모델이 제공하는 기능
1) 시스템 가시화 지원
- 시스템을 현재 또는 원하는 모습으로 가시화 → 개발자와 이해관계자가 시스템구조를 쉽게 이해
2) 시스템 구조와 행동 명세화
- 시스템의 구조화 행동 명세화 → 개발 과정에서 구체적인 지침 제공
3) 구조화된 틀 제공
- 시스템 구축하는 데 필요한 구조화된 틀 제공 → 개발자가 효율적으로 시스템 설계 및 구현 가능
4) 문서화
- 시스템 구축 과정에서 결정한 사항을 문서화해 프로젝트 참여자 간 의사소통을 용이하게 함
- 프로젝트의 지식 기반 구축
5) 다양한 관점 제공
- 복잡한 시스템을 다룰 때 특정 부분에 초점을 맞추고, 다른 부분은 추상화해 처리할 수 있도록 도움
6) 상세 수준의 구체화
- 특정 목표에 따라 구체화된 상세 수준의 표현 방법 제공 → 개발자가 시스템의 특정 부분을 더 세밀하게 다룰 수 있도록 함
3️⃣ 데이터 모델링의 중요성 및 유의점
1) 데이터 모델링의 중요성
- 파급효과
- 시스템 구축에서 데이터 설계는 다른 어떤 설계 과정보다 중요한 영향 미침
- 복잡한 정보 요구 사항을 간결하게 표현
- 시스템의 정보 요구 사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구
- 데이터 품질 향상
- 데이터 중복, 비유연성, 비일관성 ↓ → 데이터 품질 ↑
2) 데이터 모델링 시 유의점 (위험성 ↓)
- 중복 최소화
- DB가 여러 위치에 같은 정보를 저장하지 않게 함
- 필요에 따라 중복이 있을 수 있으나, 이를 최소하하는 것이 중요
- 비유연성 낮춤
- 데이터 정의를 데이터 사용 프로세스와 분리 → 비유연성 ↓ 유연성 ↑
- 예
- 업무 변화 있을 때마다 데이터 모델링 수정 → 데이터와 프로세스가 서로 종속적 → 유연성 ↓
→ 데이터 모델링에서는 이러한 종속성을 줄이고 유연성을 높이는 것이 좋음
4️⃣ 데이터 모델링의 3단계 ⭐
각 모델링의 단계 정확하게 숙지!
개-논-물로 암기!
1) 개념적 데이터 모델링
- 추상화 수준이 높고, 업무 중심적이며, 포괄적인 수준의 모델링 진행
- 수준 : 추상적
- 사용자 : 비지니스 이해관계자
2) 논리적 데이터 모델링
- 시스템 구축을 위한 키(Key), 속성, 관계 등을 정확하게 표현하며, 높은 재사용성을 가짐
- 수준 : 추상적
- 사용자 : 데이터 아키텍처 비즈니스 분석가
3) 물리적 데이터 모델링
- 성능, 저장 등 물리적인 성격 고려하여 실제 DB 구성을 설계
- 수준 : 구체적
- 사용자 : DBA 개발자
5️⃣ 프로젝트 생명주기(Life Cycle)에서의 데이터 모델링
구분 | 계획 단계 | 분석 단계 | 설계 단계 |
이론 | 개념적 모델링 | 논리적 모델링 | 물리적 모델링 |
실무 | ㅤ | 개념적 + 논리적 모델링 | 물리적 모델링 |
6️⃣ 데이터 모델링에서 데이터 독립성의 이해
1) 데이터 독립성
- 사용자의 접근 유형에 따라 데이터 구성 방법이 영향을 받지 않아야 함
- 1978, 미국 표준 협회(ANSI) - 데이터베이스 3단계 표준 모델(Three-Schema Architecture) 제시
2) 데이터 독립성의 구성 요소
- 외부 스키마 (External Schema)
- Sub 스키마 또는 View 스키마라고 부름
- 화면에서 사용자가 보는 개인적인 DB 스키마
- 비고 : 사용자 관점
- 개념 스키마 (Conceptual Schema)
- 모든 애플리케이션과 사용자가 필요로 하는 데이터를 통합해 조직 전체의 DB를 기술하는 것
- DB 내에 데이터 구조와 관계를 설명
- 비고 : 논리적 단계 / 통합 관점
- 내부 스키마 (Internal Schema)
- DB의 물리적 저장 구조를 갖춘 내부 스키마
- DB가 물리적으로 저장된 형식
- 데이터가 실제 저장되는 방식
- 비고 : 물리적 단계 / 물리 저장 구조
3) 논리적 독립성과 물리적 독립성
- 논리적 독립성
- 내용
- 개념 스키마가 변경되어도 외부 스키마에는 영향 미치지 않도록 지원
- 논리적 구조 변경되어도 응용프로그램에는 영향 없음
- 특징
- 사용자 특성에 맞게 구조 변경 가능
- 통합 구조 변경 가능
- 물리적 독립성
- 내용
- 내부 스키마가 변경되어도 외부 및 개념 스키마에 영향을 미치지 않도록 지원
- 저장 장치의 구조 변경이 응용 프로그램과 개념 스키마에 영향 주지 않음
- 특징
- 물리적 구조의 영향 없이 개념 구조 변경 가능
- 개념 구조 영향 없이 물리 구조 변경 가능
4) 매핑(Mapping) = 사상(寫像)
- 데이터의 독립성은 보장하되, 각 스키마 개념을 긴밀히 연결해야 함
- 외부 스키마와 내부 스키마의 이름이 다르더라도 동일한 데이터 처리할 수 있도록 연결해 주소를 찾는 것
- 외부적/개념적 사상
- 외부적 뷰와 개념적 뷰의 상호 관련성
- 예
- 사용자가 접근하는 형식에 따라 다른 타입의 필드 가질 수 있음
- 개념적 뷰의 필드 타입은 변화하지 않음
- 개념적/내부적 사상
- 개념적 뷰와 저장된 DB간의 상호 관련성
- 예
- 저장된 DB의 구조가 바뀌면 개념적/내부적 사상이 바뀌어야 함
7️⃣ 데이터 모델링의 중요한 세 가지 요소
개념 | 복수/집합 개념 & 타입/클래스 | 개별/단수 개념 & 어커런스/인스턴트 |
어떤 것(Thing) | 엔터티 타입(Entity Type) | 엔터티(Entity) |
ㅤ | 엔터티(Entity) | 인스턴스(Instance)/어커런스(Occurrence) |
어떤 것의 성격(Attributes) | 속성(Attribute) | 속성값(Attribute Value) |
어떤 것 간의 연관(Relationships) | 관계(Relationship) | 페어링(Pairing) |
8️⃣ ERD (Entity Relationship Diagram)
1) ERD
- 여러 엔터티와 엔터티 간의 관계를 이해하기 쉽게 도식화한 다이어그램
2) ERD 표기법으로 모델링하는 순서
- 엔터티 그리기 → 엔터티 배치 → 엔터티 간의 관계 설정 → 관계명 기술 → 관계의 참여도 기술 → 관계의 필수 여부 기술
3) IE 표기법 (Information Engineering)
- 관계 데이터 모델링에서 많이 사용
- 엔터티와 관계를 명확히 구분하여 시각적으로 표현
- 주요 구성 요소 : 사각형 엔터티, 다이아몬드형 관계선, 속성에 관한 세부 사항
- 관계선 끝에 원이 없으면 필수 관계, 원이 있으면 선택적 관계 (관계의 강제성 쉽게 구분)
- 엔터티와 관계의 필수 여부 및 식별 관계를 명확히 하는 데 중점
4) 바커 표기법
- 시스템 내 엔터티 간 관계를 보여주는 방식
- 식별자, 비식별자, 속성 등을 쉽게 구분
- 필수 관계는 실선, 선택적 관계는 점섬으로 구분
- 엔터티 내부 : #은 주식별자, *는 일반 속성
- 관계 구조 명확히 표현 → DB 설계에서 주로 사용
- ERwin, 오라클 디자이너(Oracle Designer)와 같은 여러 설계 툴에서 널리 활용
- 모델이 직관적이며 유지보수 용이
9️⃣ 좋은 데이터 모델의 요소
1) 완전성
- 업무에 필요한 모든 데이터가 데이터 모델에 정의되어 있어야 함
2) 중복 배제
- 동일한 정보는 DB에 한 번만 기록 (중복 X)
3) 업무 규칙
- 데이터 모델링 과정에서 도출된 업무 규칙을 데이터 모델에 표현하고, 모든 사용자가 이를 공유
4) 데이터 재사용
- 데이터 통합성과 독립성 보장해 데이터의 재사용이 원활해야 함
5) 의사소통(Communication)
- 좋은 데이터 모델은 소통의 도구로 활용됨
6) 통합성
- 동일한 데이터는 한 번만 정의하고 이를 참조하는 방식으로 설계되어야 함
Share article