Database Modeling이란?
- 정보화 시스템을 구축하기 위해 어떤 데이터가 존재하는지, 업무에 필요한 정보는 무엇인지 분석하는 방법
과정

개념적 DB 모델링
- 요구사항을 수집하고 분석한 결과를 토대로 업무의 핵심적인 개념을 구분하고 전체적인 뼈대를 만드는 과정


개체(Entity)
- 사용자와 관계가 있는 주요 객체로 로직 상 데이터로 관리되어져야 하는 것들을 개체라고 한다.
- 사람, 사물, 장소, 개념, 사건과 같이 유무형의 정보를 가지고 있는 독립적인 실체이다.
- 개체는 반드시 속성을 가져야하며, 명사여야한다.
속성(Attribute)
- 개체에 대한 정보
- 속성은 10개 내외로 하는 것이 바람직함
속성의 유형
- 기초 속성: 원래 갖고 있던 속성으로 관습적으로 사용되는 속성
- 추출 속성 : 기초 속성으로부터 가공에 의해 얻어질 수 있는 속성
- 설계 속성: 실제로 존재하지 않으나, 시스템의 효율성을 위해 임의로 부여하는 속성
관계
논리적 DB 모델링
- 개념적 DB 모델링 단계에서 정의된 ER-Diagram에 Mapping Rule을 적용하여 관계형 DB 이론에 입각한 스키마를 설계하는 단계 + 정규화
Mapping Rule: 개념적 DB 모델링에서 도출된 개체 타입과 관계 타입으로 테이블을 정의하는 것
정규화

물리적 DB 모델링
- 논리적 DB 모델링 단계에서 얻어진 스키마를 좀 더 효율적으로 구현하기 위한 단계
역정규화
시스템 성능을 고려하여 정규화를 위배하는 것
- 데이터 중복
조인이 너무 많이 발생해 성능이 저하되는 경우 중복을 만들어 조인을 줄임
- 파생 칼럼의 생성
테이블에 없는 칼럼을 연산이나 조작등을 통해 조회할 때 성능저하가 발생한다면 그냥 칼럼을 미리 만듦. ex) 평균, 합
=====