본문 바로가기
  • ㄹㅇ
SQL

[SQLD] 1장. 데이터 모델링의 이해

by 한강석 2024. 4. 16.

모델링이란? 

  • 데이터 모델링이란 복잡한 현실 세계를 단순화하여 일정 양식에 맞게 표현한 것. 즉 현실 세계의 추상화된 반영이다. 

특징으로

1) 추상화: 현실세계를 일정한 형식에 맞추어 표현한다.

2) 단순화: 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현한다.

3) 명확화: 누구나 이해하기 쉽게 대상에 대한 애매모호함 없이 명확히 설명한다.

  • 관점

1) 데이터 관점: 업무가 어떤 데이터와 관련이 있는지에 초점을 맞춘다  -> 현재 대부분 데이터 관점으로 하는중

2) 프로세스 관점: 업무가 실제로 하고 있는 일은 무엇인지에 초점

3) 데이터와 프로세스의 상관관점: 업무가 처리하는 일의 방법에 따라 데이터가 어떻게 영향을 주고 받는지에 초점

  • 데이터 모델링이 중요한 이유
  1. 파급효과 : 데이터 이행을 위해 많은 테스트들이 수행되고 반복된다. 데이터 모델은 전체 시스템 구축에 큰 파급효과를 일으킨다. 따라서 올바른 데이터 설계가 중요하다.
  2. 복잡한 정보 요구사항의 간결한 표현: 시스템의 정보 요구사항과 한계를 명확하고 간결하게 표현하여 관련자들이 이해할 수 있도록 한다.
  3. 데이터 품질: 데이터의 품질에 따라 데이터의 가치가 달라진다.

 

데이터 품질을 결정하는 요인은 다음과 같다.

  1. 중복: 여러 장소에 같은 내용을 저장하면 정보 업데이트가 힘들어 무결성이 깨지기 쉽다.
  2. 비일관성: 데이터의 연관성에 대한 명확한 정의는 데이터의 비일관성을 막을 수 있다.
  3. 비유연성: 사소한 업무변화에 영향이 적도록 유연히 대응할 수 있게 데이터와 업무 프로세스를 분리해야 한다.

  • 데이터 모델링의 3가지 단계
  1. 개념적 데이터 모델링: 추상화 수준이 높고 업무 중심적이고 포괄적인 수준의 모델링이다.( EA수립, 전사적 데이터 수집) - 데이터의 요구사항을 분석해 ERD를 생성하는 단계
  2. 논리적 데이터 모델링: 시스템으로 구축하고자 하는 업무에 대해 key, 속성, 관계 등을 정확하게 표현하는 수준 - 누가 어떻게 데이터에 엑세스하는지 관계를 ERD로 표현하고 정규화 진행(일관성, M:M관계 해소)
  3. 물리적 데이터 모델링: 실제 데이터에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려해 설계하는 단계 - 어떻게 하드웨어에 실제로 표현될 것인가 (테이블, 칼럼 설계)

  • 데이터 독립성의 이해 : 과거에는 파일 방식으로 사용자 접점의 인터페이스로 운영되었으나 사용자에 따라 데이터의 구성이 바뀐다는 단점이 있다. 이를 보완하기 위해 Client/Server로 나누어 독립성을 가지게 해 유지보수, 데이터 중복, 갈수록 복잡해지는 데이터에 효율적으로 대응한다.

  • 데이터 독립성 구성요소
  1. 외부 스키마: view 단계 여러 개의 사용자 관점으로 구성, 사용자에게 가까운 단계로 개개인이 보는 관점에 관련.
  2. 개념 스키마: 모든 사용자 관점을 통합한 조직 전체의 DB를 기술하는 것.
  3. 내부 스키마: DB가 물리적으로 저장된 형식, 실제로 데이터가 저장되는 방식을 표현하는 것.

3가지로 개념이 분리되면서 각각의 영역에 대한 독립성을 지킬 수 있다.

개념-외부 간의 독립성은 논리적 독립성이라 하며 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 하는 것이다.

내부-개념 간의 독립성은 물리적 독립성이라 하며 내부 저장 장치의 구조가 바뀌어도 응용프로그램과 개념 스키마에는 영향을 주지 않게 하는 것이다. 

  • 좋은 데이터 모델의 요소
  1. 완전성: 모든 데이터가 데이터 모델에 정의되어야 한다.
  2. 중복배제: 동일 사실은 한번만 기술해야 한다.
  3. 업무규칙: rule을 모델에 잘 반영하고 이는 관련자들에게 잘 공유될 수 있어야한다.
  4. 데이터 재사용: 통합된 데이터 모델을 가지고 확장성을 갖도록 해야 테이블을 늘리지 않고 재사용이 가능하다.
  5. 의사소통: 업무규칙을 관련자가 잘 받아들이고 활용하도록 한다.
  6. 통합성: 여러 곳에 데이터가 존재하지 않도록 한번만 정의되도록 잘 통합하여야 한다.

  • 데이터 모델의 3가지 요소
  1. 어떤 것(Things): 업무가 관여하는 어떤 것.
  2. 성격(Attributes): 어떤 것이 가지는 성격.
  3. 관계 (Relationship) : 업무가 관여하는 어떤 것 간의 관계

쉽게 업무에 필요한 데이터. 데이터의 속성, 데이터간의 관계라고 생각하면 된다. 데이터 모델링은 이들을 체계적으로 나누어서 관계도를 그리고 물리적으로 구축하는 것이기에 처음에 엔티티들의 관계를 잘 잡는 것이 중요하다.