안녕하세요, 럼지입니다. 올해 SQLD 시험을 보고 앞으로도 꾸준히 SQL 공부를 하기 위해 카테고리를 신설해 봤어요.
SQLD 포스팅은 패스트캠퍼스 합격의 하이패스: SQLD 자격 과정을 참고로 할 예정입니다. 수업 내용을 온전히 써놓기 보다는 키워드 위주로, 혹은 시험을 위해 같이 알아두면 좋은 내용도 최대한 포함해 포스팅하려고 합니다.
데이터 모델의 이해
모델링의 정의: 복잡한 현실세계를 "추상화, 단순화, 명확화"하여 데이터 모델로 표현하는 것
모델링 특징
- 추상화: 현실세계를 일정한 형식에 맞추어 표현
- 단순화: 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현
- 명확화: 누구나 이해하기 쉽도록 정확하게 현상을 기술
모델링의 세 가지 관점
- 데이터 관점: 데이터와 관련된 업무 혹은 데이터 간 관계에 대한 모델링 - WHAT
- 프로세스 관점: 무엇을 해야 하는지 모델링 - HOW
- 상관 관점: 일의 방법에 따라 데이터가 받는 영향을 모델링 - DATA vs PROCESS
데이터 모델링의 정의
- 정보 시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
- 현실의 데이터가 약속된 표기법에 의해 표현되는 과정
- 데이터베이스를 구축하기 위해 분석/설계되는 과정
데이터 모델이 제공하는 기능
가시화 / 명세화 / 구조화된 틀 / 문서화 / 다양한 관점 / 구체화
중요성 및 유의점
파급효과 |
시스템 구축 작업 중에서 데이터 설계가 가장 중요한 과정 |
간결한 표현 |
데이터 모델은 구축할 시스템의 정보 요구사하오가 한계를 가장 명확하고 간결하게 표현 |
데이터 품질 |
중복, 비유연성, 비일관성 지양 |
데이터 모델링의 3단계 진행
개념적 데이터 모델링 → 논리적 데이터 모델링 → 물리적 데이터 모델링
데이터 독립성의 필요성
- 배경: 유지 보수 비용 증가, 데이터 중복성, 데이터 복잡도, 요구사항 대응 저하
- 요구사항이 변경되더라도 계층별 view에 영향을 주지 않고 변경이 가능해야 유지보수가 쉬워짐
데이터베이스 3단계 구조
외부 스키마 external schema |
여러 개의 사용자 관점으로 구성, 사용자가 보는 개인적인 DB 스키마 사용자 혹은 응용프로그래머가 접근하는 DB 정의 "사용자가 보는 화면" |
사용자 관점 |
개념 스키마 conceptual schema |
모든 응용 시스템 혹은 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 DB를 기술 DB에 저장되는 데이터와 그들간 관계를 표현하는 스키마 |
통합 관점 |
내부 스키마 internal schema |
DB가 물리적으로 저장된 형식 물리적 장치에서 실제적으로 저장되는 방법을 표현하는 스키마 |
물리적 관점 |
- 데이터 독립성
논리적 독립성 |
개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원 논리적 구조가 변경되어도 응용 프로그램에는 영향 없음 |
사용자 특성에 맞는 변경 가능 통합 구조 변경 가능 |
물리적 독립성 |
내부 스키마가 변경되어도 외부/개념 스키마에는 영향을 미치지 않도록 지원 저장장치의 구조 변경은 응용프로그램과 개념 스키마에 영향 없음 |
개념 구조와 물리적 구조가 서로 영향 없이 변경 가능 |
- 매핑
논리적 사상 (외부적/개념적 사상) |
외부적 뷰와 개념적 뷰의 상호 호환성 정의 |
사용자의 접근 형식에 따라 다른 타입의 필드를 가질 수 있음 개념적 뷰의 필드 타입은 변화 없음 |
물리적 사상 (개념적/내부적 사상) |
개념적 뷰와 저장된 데이터베이스의 상호 관련성 정의 |
DB구조가 바뀌면 물리적 사상이 바뀌어야함 (개념 스키마가 그대로 남아있도록) |
데이터 모델링의 세 가지 요소
- Things
- Attributes
- Relationships
데이터 모델링의 이해 관계자
- DBA : 물리 데이터 관리
- 프로젝트 개발자 : 가장 중요한 인력
- 전문 모델러
- 현업 업무 전문가
좋은 데이터 모델의 요소
- 완전성 - 업무에 필요한 데이터가 모두 정의 되어야 함
- 중복 배제 - 동일한 사실은 한 번만 저장
- 업무 규칙 - 데이터 모델 분석 만으로 비즈니스 로직이 이해되어야 함
- 데이터 재사용 - 데이터 통합성과 독립성 고려 필요
- 의사소통 - 데이터 모델을 보고 이해 당사자들끼리 의사소통 가능
- 통합성 - 동일한 데이터는 유일하게 정의하여, 다른 영역에서 참조해야 함