[홍쌤의 데이터랩, SQLD n과목 완벽 정리] 영상를 개인이 정리하여 [원작자의 허가 이후] 올린 글이며,
[개인이 추가로 정리한 내용]이 포함되어 있습니다.
목차
모델링
- 현실 세계의 비즈니스 프로세스와 데이터 요구 사항을 추상적이고 구조화된 형태로 표현하는 과정
- DB의 구조와 관계를 정의하며, 이를 통해 데이터의 저장, 조작, 관리 방법을 정의
모델링의 특징
1. 단순화 (Simplification)
- 핵심 요소에 집중하고 불필요한 세부 사항을 제거
2. 추상화 (Abstraction)
- 일정한 형식에 맞추어 간략하게 표현
3. 명확화 (Clarity)
- 대상의 모호함을 최대한 제거하고 정확하게 현상을 기술
모델링의 관점
1. 데이터 관점
- 데이터의 저장, 접근, 관리를 정의하는 단계
2. 프로세스 관점
- 시스템이 어떤 작업을 수행하는지, 작업들이 어떻게 조직되고 조정되는지를 정의하는 단계
- 데이터가 시스템 내에서 어떻게 흐르고 변환되는지에 대한 확인
3. 데이터와 프로세스 관점
- 두 관점을 결합하여 시스템의 전반적인 동작을 이해하는 단계
- 특정 프로세스가 어떤 데이터를 사용하는지, 데이터가 어떻게 생성되고 변경되는지 명확하게 정의
모델링의 유의점
1. 중복 (Duplication)
- 하나 이상의 테이블에 같은 정보를 저장하지 않도록 설계
2. 비유연성 (Inflexibility)
- 사소한 업무 변화에 대해서도 잦은 모델 변경이 되지 않도록 설계
- 데이터 정의를 프로세스와 분리
3. 비일관성 (Inconsistency)
- DB 내의 정보가 모순되거나 상반되는 내용을 갖는 상태
e.g. 사원코드의 정의가 테이블별로 상이
- 데이터의 중복이 없더라도 비일관성은 발생할 수 있음
모델링의 3가지 요소
대상(Entity) : 업무가 관리하고자 하는 대상(객체)
속성(Attribute) : 대상이 갖는 속성(하나의 특징)
관계(Relationship) : 대상들 간의 관계
데이터 모델링 3단계
1. 개념적 모델링
- 업무 중심적이고 포괄적인 수준의 모델링
- 추상화 수준이 가장 높음
- 업무를 분석하고 핵심 엔터티를 추출하는 단계
- 도출된 엔터티간의 관계(ERD) 작성
2. 논리적 모델링
- 개념적 모델링의 결과를 토대로 세부속성 식별자, 관계 등을 표현하는 단계
- 비슷한 프로젝트에서 동일한 형태의 데이터로 재사용 가능
- 데이터 정규화 수행
- 재사용성이 높은 논리적 모델은 유지보수가 용이
3. 물리적 모델링
- 논리적 모델링의 결과를 토대로 물리적으로 생성하는 단계
- 성능, 디스크 저장구조, 보안성, 가용성 등을 고려
- 가장 구체적인 데이터 모델링
- 추상화 수준이 가장 낮음
스키마 (Schema)
DB의 구조와 제약조건에 관한 전반적인 명세를 기술한 메타데이터의 집합
- 사용자의 관점과 실제 설계된 물리적 방식을 분리하기 위해 고안
스키마의 3단계 구조
1. 외부 스키마 = 사용자 뷰(View)
- 사용자가 보는 관점에서 스키마를 정의
- 사용자나 응용 프로그램이 필요한 데이터를 정의
- 사용자에게 불필요한 데이터는 보여주지 않음
- 하나의 시스템에 여러개의 외부 스키마가 존재할 수 있음, 하나의 외부 스키마를 여러 시스템이 공유할 수 있음
2. 개념 스키마
- DB 전체의 논리적 구조를 정의
- 개체, 속성, 관계, 데이터 타입 등을 정의
3. 내부 스키마
- 데이터의 물리적 저장 방법 정의
- 데이터의 저장 구조, 컬럼, 인덱스 등을 정의
스키마의 독립성
물리적, 논리적 구조를 변경하더라도 응용 프로그램에 영향을 주지 않는 특성
ERD (Entity Relationship Diagram)
- 데이터 모델의 표기법 중 하나
- 개체(Entity)와 그 간의 관계(Relationship)을 시각적으로 표현한 다이어그램
- 1976년 피터 챈(Peter Chen)이 고안, 데이터 모델링 표준으로 사용
ERD 작성 절차 6단계
1. 엔터티 도출 및 속성 정의
2. 엔터티 배치
3. 엔터티간의 관계 설정
4. 관계명을 서술
5. 관계의 참여도(=카디널리티, Cardinality) 기술
6. 관계의 필수 여부 확인
'CS - 강의, 서적 > [SQLD] 홍쌤의 데이터랩' 카테고리의 다른 글
[SQLD] 1-8. 모델이 표현하는 트랜잭션의 이해 (트랜잭션, ACID, 필수적/선택적 관계) (0) | 2024.09.16 |
---|---|
[SQLD] 1-6. 정규화 (정규화, 이상 현상, 함수 종속, 역정규화) (0) | 2024.09.16 |
[SQLD] 1-5. 식별자 (식별자, 키) (0) | 2024.09.13 |
[SQLD] 1-4. 관계 (0) | 2024.09.13 |
[SQLD] 1-3. 속성 (속성, 함수적 종속성, 도메인) (0) | 2024.09.13 |