01_SQLD_제1 절 데이터 모델링의 이해
SQLD를 준비하면서 공부한 내용을 정리.
# SQL
제1 장 데이터 모델링의 이해
제1 절 데이터 모델링의 이해
-
모델링의 이해
-
모델링의 정의
- 복잡한 “현실세계"를 단순화(추상화)시켜 표현
- 사물 또는 사건에 관한 양상(Aspect)이나 관점(Perspective)을 명확하게 하는 것
-
특징 3가지
- 추상화 - 현실세계를 일정한 형식에 맞추어 표현하는 것
- 단순화 - 복잡한 현실세계를 약속된 규약에 의해 쉽게 이해할 수 있게 표현하는 것
- 명확화 - 누구나 이해할 수 있도록 명확하게 표기하는 것
-
모델링의 3가지 관점
-
데이터 관점 - 업무 & 데이터, 데이터 & 데이터간의 관계가 무엇인지 표기(What, Data)
-
프로세스 관점 - 업무가 실제하고 있는 일 또는 무엇을 해야하는지 표기(How, Process)
-
(프로세스&데이터) 상관 관점 - 업무 처리 방법에 따라 데이터가 받는 영향을 표기(Interaction)
-
-
-
데이터 모델링의 기본개념 이해
-
데이터 모델링의 정의
-
업무상 필요한 데이터를 일정한 표기법으로 표현함으로써 필요한 정보를 용이하게 분석할 수 있고, 정리된 데이터로 개발 및 데이터관리를 용이하게 하기 위함
∴ 데이터 모델링 자체로서 업무를 설명하고 분석하는 부분에도 매우 중요한 의미가 있음
-
-
-
데이터 모델링의 중요성 및 유의점
-
중요성 (중요한 이유)
- 파급효과 향상, 간결한 표현, 데이터품질 향상
-
유의점
-
중복 - 데이터 베이스가 여러 장소에 같은 정보를 저장하지 않도록 유의.
-
비유연성 - 데이터의 정의를 데이터 사용 프로세스와 분리.
-
비일관성 ( ≒ 모순) - 연관되어 있는 데이터는 같이 관리될 수 있도록 유의.
-
-
-
데이터 모델링의 3단계
- 개념적 데이터 모델 - 추상화 수준이 높고, 업무 중심적이며, 포괄적인 수준의 모델링
- 논리적 데이터 모델 - 모델링하고자하는 업무에 대해 Key, 속성, 관계 등을 구현. (높은 재사용)
- 물리적 데이터 모델 - 실제 DB에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려해 진행
-
프로젝트 생명주기에서 데이터 모델링
-
이론 : 계획단계 → (분석) 개념적모델링 → (설계) 논리적 모델링 → (구현)물리적 모델링
-
실제 : 계획단계 → (분석) 개념 + 논리적 모델링 → (설계 & 구현) 물리적 모델링
-
-
데이터 모델링에서 데이터 독립성의 이해
-
데이터 독립의 필요성 - 유지보수비용 절감, 데이터복잡도 하락, 중복데이터 감소 등.
-
DB의 3단계 구조
-
데이터 독립성 요소
-
외부스키마 - 사용자 개개인이 보는(접근하는) DB를 정의
-
개념스키마 - 모든 사용자 관점을 통합한 조직 전체 DB를 정의.
-
내부스키마 - 물리적 장치에 데이터가 실제로 저장되는 구조를 정의.
* 스키마: 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조
-
-
두 영역의 데이터독립성
- 논리적 독립성 - 개념스키마가 변경되어도 외부스키마에는 영향을 미치지 않도록.
- 물리적 독립성 - 내부스키마가 변경되어도 외부/개념스키마는 영향을 받지 않도록.
∴ 외부 / 개념 / 내부 스키마의 독립성을 강조하지만, 이들이 분리되어 관리된다는 의미는 아니다. 이를 사상(Mapping)이라고 말하며, “상호 독립적인 개념을 연결시켜주는 다리” 정도로 이해하면 된다.
-
-
데이터 모델링의 중요한 세 가지 개념
-
업무가 관여하는 어떤 것(Thing)
-
어떤 것이 가지는 성격(Attributes)
-
업무가 관여하는 어떤 건 간의 관계(Relationships)
-
-
데이터 모델 표기법과 ERD의 이해
-
데이터 모델 표기법
1976년 피터첸이 Entity-Releationship model(E-R Model)이라는 표기법을 만듦
‘‘엔터티"라는 것을 사각형으로 표현, 관계를 마름모, 속성을 타원형으로 표현
-
ERD(Entity Relationship Diagram)
-
모델링 작업 순서
엔터티를 그린다. → 엔터티를 적절하게 배치한다. → 엔터티간의 관계를 설정한다. → 관계명을 기술한다. → 관계의 참여도를 기술한다. → 관계의 필수여부를 기술한다.
-
-
-
좋은 데이터 모델의 요소
-
완전성 - 모든 데이터가 데이터 모델에 정의 되어 있어야 한다.
-
중복배제(정규화) - 하나의 DB 안에 동일한 사실은 반드시 한 번만 기록되어 있어야 한다.
-
명확한 업무규칙 기술 및 공유
-
데이터 재사용성 고려 - 데이터가 어플리케이션에 대해 독립적으로 설계되어야만 재사용성↑
-
의사소통 - 데이터를 분석하는 과정에서 나오는 규칙들에 대한 이해가 표현되어야 좋다.
-
통합성 - 중복배제(정규화)를 이루기 위해 데이터 모델들은 통합적으로 관리되어야 한다.
-
*계속