모델링 = 모델을 만들어가는 일 자체
1. 추상화
다양한 현상을 일정한 표기법으로 표현
2. 단순화
복잡한 현상을 표기법을 이용해 쉽게 이해할 수 있도록 하는 것
3. 명확화
누구나 이해할 수 있도록 애매모호함 제거
모델링의 세가지 관점
1. 데이터관점 (What, Data)
업무가 어떤 데이터와 관련되어 있는지 관계는 무엇인지에 대해 모델링
2. 프로세스관점 (How, Process)
실제 업무를 정의하고 뭘해야하는지 모델링
3. 데이터와 프로세스의 상관관점
업무와 데이터가 어떻게 영향을 받는지 모델링
데이터모델링을 하는 이유
1. 일정한 표기법을 사용해 업무 내용을 정확히 분석
2. 분석된 모델을 통해 db를 생성해 개발 및 데이터 관리에 사용
3. 정보시스템 구축을 위해 데이터관점의 업무 분석
*모델링 자체로도 업무를 설명 분석
데이터모델이 제공하는 기능
1. 시스템의 모습을 가시화
2. 구조와 행동을 명세화하고 구조화된 틀을 제공해 명확히한다
3. 세부사항은 숨겨 이해하기 쉽게한다
4. 특정 목표에 따라 구체화된 표현방법 제공
데이터 모델링의 중요성 및 유의점
1. 파급효과
잘못된 모델링을 했을 경우 중간에 그걸 알게 되었을 때 객체는 다른 객체와
영향을 주고 받기 때문에 오류 하나로 큰 파급효과가 일어난다
2. 간결한 표현
데이터 모델은 건축 설계 도면으로 비유할 수 있다
그렇기 때문에 요구사항이 정확하고 간결하게 표현되어야한다
3. 데이터 품질
오래된 데이터를 쌓아놓는다거나 분리를 해놓지 않으면 어느게 중요하고
안중요한지 구분을 할 수 없기 때문에 데이터 관리는 중요하다
모델링 유의점
1. 중복
여러 장소에 같은 정보를 저장하지 않도록 함
2. 비유연성
데이터 정의를 사용 프로세스와 분리해 고정값과 변하는 값을 나눠 작은 문제가 큰 파급효과를 일으키지 않게 한다
3. 비일관성
상호관계를 명확히 정의해서 일관적인 데이터를 유지
ex) 신용상태 갱신 없이는 납부이력 확인 불가
데이터 모델링 3단계
1. 개념적 데이터 모델링
핵심 엔터티들의 관계를 엔터티-관계 다이어그램을 통해 생성
*추상적이기 때문에 구조화가 쉽다, 어떻게 시스템을 바꿔야할지 판단에 도움이됨
2. 논리적 데이터 모델링
누가 어떻게 그리고 어떤 비즈니스 데이터가 존재하는지 기록
ERD, 정규화(중복제거), 상세화(식별자확정, M:M관계해소, 참조 무결성), 이력관리
3. 물리적 데이터 모델링
논리 데이터 모델이 어떻게 컴퓨터 하드웨어에 표현될지 다룸
데이터 독립성
각 VIEW의 독립성을 유지시켜 서로 영향을 받지 않고 변경 가능
DDL과 DML을 구분
외부 스키마
사용자 관점, 접근하는 특성에 따른 스키마 구성
개념스키마
모든 사용자 관점을 통합한 전체 DB에 기술
내부 스키마
물리적 저장 구조, 실제적으로 어떻게 저장되야할 지 표현
논리적 독립성
개념스키마가 변해도 외부스키마에 영향X
물리적 독립성
저장장치 구조 변경 등 내부스키마가 변경되고 외부/개념 스키마에 영향X
Mapping
독립성의 각 단계를 보장하기 위해서 변경사항이 발견됬을 때 DBA가
적절하게 작업
데이터 모델링의 3가지 요소
1. 엔터티
2. 속성
3. 관계, 페어링
ERD 작업순서
1. 앤터티 그리기 2. 엔터티 배치 3. 엔터티 관계 설정
4. 관계명 기술 5. 관계 참여도 기술 6. 관계의 필수여부 기술
중요한 정보는 왼쪽 상단에 배치
업무 흐름에 중심이 되는 데이터는 중앙에 배치
관련 데이터들은 주변에 배치
일대일 관계는 선, 1:M 관계는 까마귀 발
좋은 데이이터 모델의 요소
1. 완전성
업무에서 필요한 모든 데이터가 모델에 완전하게 정의되어 있어야 함
2. 중복배제
동일한 사실은 한 번만 기록해야 함
EX) 나이 컬럼이 있는데 생년월일이 동시에 존재
3. 업무규칙
예를 들면 급여를 받을 때 어떤 규칙과 과정이 있는지 데이터 모델에 나타나야함
4. 데이터 재사용
테이블이 많다고 좋은 게 아니다
테이블의 재사용성을 높혀 적은 테이블들로 데이터베이스를 효율적으로 운영해야한다
5. 의사소통
데이터베이스에 들어가는 많은 업무 규칙들을 명확하게 정의해서
사용자들끼리 의사소통에 문제가 없게 해야한다
6. 통합성
가장 바람직한 형태는 조직 전체에서 한 번만 정의되고 이를 다른 영영에서 참조, 활용하는 것이다
데이터 구조를 여러 업무 영역에서 공동으로 사용하기 용이하게 정의되어야한다