모델링이란?
- 데이터 모델링이란 복잡한 현실 세계를 단순화하여 일정 양식에 맞게 표현한 것. 즉 현실 세계의 추상화된 반영이다.
특징으로
1) 추상화: 현실세계를 일정한 형식에 맞추어 표현한다.
2) 단순화: 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현한다.
3) 명확화: 누구나 이해하기 쉽게 대상에 대한 애매모호함 없이 명확히 설명한다.
- 관점
1) 데이터 관점: 업무가 어떤 데이터와 관련이 있는지에 초점을 맞춘다 -> 현재 대부분 데이터 관점으로 하는중
2) 프로세스 관점: 업무가 실제로 하고 있는 일은 무엇인지에 초점
3) 데이터와 프로세스의 상관관점: 업무가 처리하는 일의 방법에 따라 데이터가 어떻게 영향을 주고 받는지에 초점
- 데이터 모델링이 중요한 이유
- 파급효과 : 데이터 이행을 위해 많은 테스트들이 수행되고 반복된다. 데이터 모델은 전체 시스템 구축에 큰 파급효과를 일으킨다. 따라서 올바른 데이터 설계가 중요하다.
- 복잡한 정보 요구사항의 간결한 표현: 시스템의 정보 요구사항과 한계를 명확하고 간결하게 표현하여 관련자들이 이해할 수 있도록 한다.
- 데이터 품질: 데이터의 품질에 따라 데이터의 가치가 달라진다.
데이터 품질을 결정하는 요인은 다음과 같다.
- 중복: 여러 장소에 같은 내용을 저장하면 정보 업데이트가 힘들어 무결성이 깨지기 쉽다.
- 비일관성: 데이터의 연관성에 대한 명확한 정의는 데이터의 비일관성을 막을 수 있다.
- 비유연성: 사소한 업무변화에 영향이 적도록 유연히 대응할 수 있게 데이터와 업무 프로세스를 분리해야 한다.
- 데이터 모델링의 3가지 단계
- 개념적 데이터 모델링: 추상화 수준이 높고 업무 중심적이고 포괄적인 수준의 모델링이다.( EA수립, 전사적 데이터 수집) - 데이터의 요구사항을 분석해 ERD를 생성하는 단계
- 논리적 데이터 모델링: 시스템으로 구축하고자 하는 업무에 대해 key, 속성, 관계 등을 정확하게 표현하는 수준 - 누가 어떻게 데이터에 엑세스하는지 관계를 ERD로 표현하고 정규화 진행(일관성, M:M관계 해소)
- 물리적 데이터 모델링: 실제 데이터에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려해 설계하는 단계 - 어떻게 하드웨어에 실제로 표현될 것인가 (테이블, 칼럼 설계)
- 데이터 독립성의 이해 : 과거에는 파일 방식으로 사용자 접점의 인터페이스로 운영되었으나 사용자에 따라 데이터의 구성이 바뀐다는 단점이 있다. 이를 보완하기 위해 Client/Server로 나누어 독립성을 가지게 해 유지보수, 데이터 중복, 갈수록 복잡해지는 데이터에 효율적으로 대응한다.
- 데이터 독립성 구성요소
- 외부 스키마: view 단계 여러 개의 사용자 관점으로 구성, 사용자에게 가까운 단계로 개개인이 보는 관점에 관련.
- 개념 스키마: 모든 사용자 관점을 통합한 조직 전체의 DB를 기술하는 것.
- 내부 스키마: DB가 물리적으로 저장된 형식, 실제로 데이터가 저장되는 방식을 표현하는 것.
3가지로 개념이 분리되면서 각각의 영역에 대한 독립성을 지킬 수 있다.
개념-외부 간의 독립성은 논리적 독립성이라 하며 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 하는 것이다.
내부-개념 간의 독립성은 물리적 독립성이라 하며 내부 저장 장치의 구조가 바뀌어도 응용프로그램과 개념 스키마에는 영향을 주지 않게 하는 것이다.
- 좋은 데이터 모델의 요소
- 완전성: 모든 데이터가 데이터 모델에 정의되어야 한다.
- 중복배제: 동일 사실은 한번만 기술해야 한다.
- 업무규칙: rule을 모델에 잘 반영하고 이는 관련자들에게 잘 공유될 수 있어야한다.
- 데이터 재사용: 통합된 데이터 모델을 가지고 확장성을 갖도록 해야 테이블을 늘리지 않고 재사용이 가능하다.
- 의사소통: 업무규칙을 관련자가 잘 받아들이고 활용하도록 한다.
- 통합성: 여러 곳에 데이터가 존재하지 않도록 한번만 정의되도록 잘 통합하여야 한다.
- 데이터 모델의 3가지 요소
- 어떤 것(Things): 업무가 관여하는 어떤 것.
- 성격(Attributes): 어떤 것이 가지는 성격.
- 관계 (Relationship) : 업무가 관여하는 어떤 것 간의 관계
쉽게 업무에 필요한 데이터. 데이터의 속성, 데이터간의 관계라고 생각하면 된다. 데이터 모델링은 이들을 체계적으로 나누어서 관계도를 그리고 물리적으로 구축하는 것이기에 처음에 엔티티들의 관계를 잘 잡는 것이 중요하다.
'SQL' 카테고리의 다른 글
[SQLD] 조인과 집합연산자 (0) | 2024.04.17 |
---|---|
[SQLD] SQL 내장 함수 요약 정리 (0) | 2024.04.17 |
[SQLD] 2과목 SQL 기본 및 활용 (0) | 2024.04.17 |
[SQLD] 2장 데이터 모델과 성능 (0) | 2024.04.16 |
[SQLD] 1장 (2) 엔터티, 속성, 관계 그리고 식별 (0) | 2024.04.16 |