1. 모델링의 이해
모델 - 모형, 축소형의 의미로서 사람이 살아가면서 나타날 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형
모델링 - 사람이 살아가면서 나타날 수 있는 다양한 현상은 사람, 사물, 개념 등에 의해 발생되며 이것을 표기법에 의해 규칙을 가지고 표기하는 것 자체를 의미. 즉, 모델을 만들어가는 일 자체를 모델링으로 정의
모델링의 특징
- 추상화: 현실세계를 일정한 형식에 맞추어 표현(다양한 현상을 일정한 양식인 표기법에 의해 표현)
- 단순화: 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현(쉽게 이해할 수 있게)
- 명확화: 이해하기 쉽게하기 위해 대상의 애매모호함을 제거하고 정확하게 현상을 기술
모델링의 세 가지 관점
- 데이터 관점: 업무와 어떤 데이터와 관련이 있는지
- 프로세스 관점: 업무가 실제하고 있는 일이 무엇인지, 무엇을 해야 하는지 모델링하는 방법
- 데이터와 프로세스 상관관점: 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 방법
2. 데이터 모델의 기본 개념의 이해
데이터 모델 - 데이터베이스의 골격을 이해하고 그 이해를 바탕으로 SQL문장을 기능과 성능적인 측면에서 효율적으로 작성하기 위해서 꼭 알아야 하는 핵심요소
데이터 모델링
- 정보 시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
- 현실세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정
- 데이터베이스를 구축하기 위한 분석/설계의 과정
데이터 모델링 중요한 이유
- 파급효과: 데이터 구조의 변경 작업은 전체 시스템 구축 프로젝트에서 큰 위험 요소이다.
- 복잡한 정보 요구사항의 간결한 표현: 구축할 시스템의 정보 요구사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구
- 데이터 품질: 데이터는 기업의 중요한 자산. 데이터 품질의 문제가 데이터 구조에서 발생.
데이터 모델링 시 유의점
- 중복: 여러 장소에 같은 정보를 저장하는 잘못을 하지 않게
- 비유연성: 데이터 모델이 수시로 변경되면 유지보수의 어려움 가중. 따라서 변화를 일으킬 가능성을 감소해야 한다.
- 비일관성: 개발자는 다른 데이터와 모순되는 고려 없이 일련의 데이터를 수정 가능. 데이터간 상호 연관 관계에 대한 명확한 정의는 이러한 위험을 사전에 예방.
데이터 모델링 3단계 진행
- 개념적 데이터 모델링: 포괄적인 수준의 모델링. 전사적 데이터 모델링.
-> 엔티티-관계 다이어그램, 데이터 요구 사항 발견 지원.
- 논리적 데이터 모델링: 업무에 대해 key, 속성, 관계 등을 정확하게 표현. 재사용성 높음.
-> 논리 데이터 모델 상세화 과정(정규화(*), 식별자 확정, M:M 관계 해소, 참조 무결성 규칙 등)
- 물리적 데이터 모델링: 실제 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려.
데이터 독립성: 지속적으로 증가하는 유지보수 비용 절감하고 데이터 복잡도를 낮추며 중복된 데이터를 줄이기 위한 목적
- 논리적 독립성
- 물리적 독립성
데이터 독립성 요소
- 외부 스키마: DB의 개개 사용자나 응용프로그래머가 접근하는 DB 정의
- 개념 스키마: DB에 저장되는 데이터와 그들간의 관계를 표현
- 내부 스키마: 물리적 장치에서 데이터가 실제적으로 저장되는 방법을 표현
매핑
- 외부적/개념적 매핑(논리적)
- 개념적/내부적 매핑(물리적)
데이터 모델링 세 가지 요소
- 엔터티
- 속성
- 관계
ERD - 각 업무분석에서 도출된 엔터티와 엔터티간의 관계를 이해하기 쉽게 도식화된 다이어그램
ERD 작업 순서
- 엔터티 그린다
- 엔터티 적절하게 배치(가장 중요한 엔터티 왼쪽 상단부터 배치)
- 엔터티간 관계 설정
- 관계명 기술
- 관계의 참여도 기술(1:1, 1:N, M:N)
- 관계의 필수여부 기술
좋은 데이터 모델의 요소
- 완전성: 필요한 모든 데이터가 데이터 모델에 정의.
- 중복배제: 동일한 사실은 반드시 한 번만 기록
- 업무규칙
- 데이터 재사용
- 의사소통
- 통합성ㅇ