CERTIFICATION/SQLD
[SQLD/데이터 모델링의 이해]1-1. 데이터 모델의 이해
써머레인
2024. 2. 20. 23:32
1. 데이터 모델링의 이해
1-1. 데이터 모델의 이해
(01) 모델링 특징 3가지
- 추상화 : 일정한 형식에 맞추어 표현
- 단순화 : 제한된 표기법, 언어로 표현해서 쉽게 이해하도록 함
- 명확화(=정확화) : 누구나 쉽게 이해하도록 애매모호함을 제거해 정확하게 현상을 기술
(02) 정보시스템 구축에서 모델링 활용
- 계획/ 분석/ 설계할 때 업무를 분석하고 설계하는데 이용
- 구축/ 운영 단계에서는 변경과 관리의 목적으로 이용
(03) 모델링의 3가지 관점
- 데이터 관점 (Data, what) : “업무”와 데이터 // 데이터와 데이터간의 관계
- 프로세스 관점 (Process, How) : “업무 프로세스”가 실제 하는 일 or 무엇을 해야하는지
- 상관 관점 (Interaction) : “업무”가 처리하는 일의 “방법”에 따른 “데이터가 받는 영향
(04) 데이터 모델링 정의
- 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
- 현실 세계 데이터를 약속된 표기법에 의해 표현
- DB 구축을 위한 분석/설계하는 과정
(05) 데이터 모델링 기능
- 시스템 가시화, 시스템 구조&행동 명세화, 시스템 구축의 구조화 틀 제공
- 시스템 구축 과정을 문서화, 세부사항은 숨기는 다양한 관점 제공
- 상세한 수준의 표현방법 제공
(06) 데이터 모델링 필요한 이유
- 업무 정보를 일정한 표기법으로 표현 (!=별도의 표기법 아님)
- 분석된 모델로 DB 생성 및 개발
- 업무 흐름을 설명
(07) 데이터 모델링의 중요성 ⇒ 간결 정확 신뢰
- 파급효과 큼 : 일련의 변경 시 다른 것도 다 바꿔야
- 복잡한걸 간결하게 표현 : 명확하고 간결하게 함
- 데이터 품질을 유지 : 오래된 데이터의 정확성과 신뢰성
(08) 데이터 모델링의 유의점 ⇒ 중복없이 명확하게 분리
- 중복 : 데이터베이스가 여러 장소에 같은 정보 저장되는 것을 주의
- 비유연성 : 데이터 정의를 데이터 프로세스와 “분리”해야함 (분리해서 유연하게)
- 비일관성 : 데이터간 “상호 연관관계를 명확”히 정의해야함 (일관되고 명확하게)
(09) 데이터 모델링 3단계
- 개념적 : 추상화 수준이 높고, 업무중심적, 전체에 대해 포괄적인 수준의 모델링
- 논리적 : { 키, 속성, 관계 }를 표현, 재사용성 높음, 정규화를 수행
- 물리적 : 실제 DB에 이식, 물리적 성격, 개념적보다 구체적
(10) 프로젝트 생명주기
- 폭포수 : 데이터 모델링이 명확히 구분됨 (분석 → 개념, 논리 // 설계 → 물리)
- 정보공학/구조적 방법론 : (분석 → 논리) // (설계 → 물리)
- 나선형 : 업무 크기에 따라 논리, 물리적 설계가 분석, 설계 양쪽에서 수행
(11) 독립성 필요성
- 유지보수 비용 절감
- 중복된 데이터 줄이기
- 데이터 복잡도 낮추기
- 요구사항 대응을 높히고자
(12) 데이터베이스 3단계 구조
- 외부 단계
- 개념적 단계
- 내부적 단계
(13) 데이터 독립성 요소
- 외부 스키마
- 개념 스키마
- 내부 스키마
(14) 두 영역의 데이터 독립성
- 논리적 독립성 (외부 ↔ 개념)
- 물리적 독립성 (개념 ↔ 내부)
외부단계 | 외부스키마 (= 사용자와 가까운 단계) |
[논리적 데이터 독립성] | |
개념적 단계 | 개념스키마(= DB에 저장되는 데이터와 사용자 관계 표현) 모든 사용자 관점을 통합, 조직 전체 통합 |
[물리적 데이터 독립성] | |
내부단계 | 내부 스키마 |
(15) 사상 (Mapping)
- “상호 독립적인 두 개념을 연결시키는 다리” (= 매핑)
- 외부적/개념적 사상 + 개념적/물리적 사상
(16) 데이터모델링 주요 세가지 개념
- 업무가 관여하는 어떤 것 (Things)
- 어떤 것이 가지는 성격 (Attributes)
- 업무가 관여하는 어떤 것(Things) 간의 관계 (Relationships)
개념 | 복수/집합개념 & 타입/클래스 | 개별/단수개념 & 어커런스/인스턴스 |
어떤 것(Things) | 엔터티타입(Entity Type) | 엔터티(Entity) |
엔터티(Entity) | 인스턴스(Instance) / 어커런스(Occurrence) | |
어떤 것의 성격(Attributes) | 속성(Attribute) | 속성값(Attribute Value) |
어떤 것 간의 관계(Relationships) | 관계(Relationship) | 페어링(Pairing) |
(17) 데이터모델 표기법 ERD 이해
- ERD 표기법 : 엔터티 = 사각형 // 관계 = 마름모 // 속성 = 타원형
- ERD로 모델링하는 방법
엔터티 그리기 → 엔터티 배치 → 엔터티간 관계 설정 → 관계의 참여도 설정 → 관계의 필수 여부 설정
(18) 좋은 데이터모델의 요소
- 완전성
- 중복배제
- 업무규칙
- 데이터 재사용
- 의사소통
- 통합성