[DB] 데이터 모델링의 이해

rockstar·2023년 7월 13일

DB

목록 보기
2/5


데이터 모델링의 이해

모델링

현실 세계 또는 다양한 현상을 단순화하여 표현하는 것을 모델링이라고 한다.

특징

  • 추상화: 일정한 형식에 맞게 표현
  • 단순화: 제한된 표기법이나 언어로 표현
  • 명확화: 이해하기 쉽게 표현

한 마디로, 현실 세계에 있는 것을 쉽고 누구나 알아볼 수 있게 일정한 형식에 맞춰서 표현하는 것이 모델링이다.

데이터 모델링

정보 시스템 구축을 위한 데이터 관점의 업무 분석 기법이다. 데이터 모델링의 목적은 정보에 대한 표기법을 통일하여 업무의 내용 분석 정확도 증대에 있고, 데이터 모델링 후 모델을 기반으로 한 DB를 설계한다.

데이터 모델의 기능

  • 가시화
  • 명세화
  • 구조화된 틀 제공
  • 문서화
  • 다양한 관점
  • 구체화

중요성

  • 파급효과
  • 간결한 표현: 복잡한 요구사항의 간결한 표현
  • 데이터 품질
    • 유일성: 데이터의 중복 저장 방지
    • 유연성: 데이터 정의와 데이터 사용 프로세스를 분리
    • 일관성

데이터 모델링 3단계

개념적 모델링

추상화 수준이 높고 업무 중심적이고 포괄적인 수준의 모델링을 진행하며, 해당 단계에서 엔티티와 속성을 도출하여 ERD를 설계한다. 즉, DB 테이블에 들어갈 컬럼 등 데이터들을 추상적으로 설계하는 과정이라고 생각하면 된다.

논리적 모델링

시스템으로 구축하고자하는 업무에 대해 식별자를 도출하고 속성과 관계 등을 정확하게 정의하며, 정규화를 수행하여 데이터 모델의 독립성과 재사용성을 확보한다.

물리적 모델링

실제로 DB를 구축하는 과정. 성능, 저장 등 물리적인 성격을 고려하여 설계한다.

프로젝트 생명주기

프로젝트의 생명주기는 계획 > 분석 > 설계 > 개발 > 테스트 > 전환/이행 단계로 구성되어 있다.

  • 계획 단계 = 개념적 모델링
  • 분석 단계 = 논리적 모델링
  • 설계 단계 = 물리적 모델링

다만, 실제 프로젝트에서는 분석 단계에서 개념적, 논리적 모델링을 하고, 설계 단계에서 물리적 모델링을 하기도 한다.

데이터 독립성

데이터가 복잡해지거나, 중복이 발생하는 경우 유지보수비용이 증가하고 요구사항대응이 저하되기 때문에 독립성이 필요하다.

  • 논리적 독립성: 외부 스키마가 개념 스키마의 변화에 무관하며, 논리적 사상이 없음
  • 물리적 독립성: 개념 스키마가 내부 스키마의 변화에 무관하며, 물리적 사상이 없음

여기서 사상이란, 상호 독립적인 개념을 연결시켜주는 다리라고 생각하면 된다.

데이터 독립성 요소

외부적 스키마

사용자나 응용 프로그램의 관점에서 데이터 구조를 정의한 것이다. 하나의 데이터베이스에 여러 외부적 스키마가 존재할 수 있는데, 그 이유는 사람마다 다른 구조의 데이터를 사용하기 때문이다.

개념적 스키마

전체적인 논리적인 구조를 정의한 것이다. 하나의 데이터베이스에는 단 하나의 개념적 스키마가 존재하는데, 관리자의 관점에서 보는 구조라고 보면 된다. 데이터 뿐만 아니라 보안 정책, 권한 등도 이곳에 포함된다.

내부적 스키마

전체 데이터베이스가 실제 물리적 장치에 저장되는 방법을 정의한 것이다. 하나의 데이터베이스에는 단 하나의 내부적 스키마가 존재하는데, 물리적인 저장 장치의 관점, 실질적인 내용으로 구성되어 있다고 보면 된다.

데이터 모델링 3요소

데이터 모델링 3요소로는 엔티티, 관계, 속성이 있다.

ERD

ERD(Entity Relationship Diagram)는 엔티티 간의 관계를 나타낸 다이어그램이다. 다이어그램에서 엔터티는 사각형, 관계는 마름모, 속성은 타원형으로 표현하며, 현실의 데이터를 모두 표현할 수 있다.

설계 순서

  1. 엔티티 작성
  2. 엔티티 배치
  3. 엔티티 간 관계 설정
  4. 관계명 기술
  5. 관계차수 표현: 1:1, 1:N, M:N
  6. 관계의 필수 여부 기술: 필수 또는 선택

모델링 조건

좋은 모델링의 조건은 아래와 같다. 누구나 알 수 있도록 쉽고 간결하게 모델링을 하고 데이터 관점에서 어떤 엔티티 간 관계를 맺을지도 생각해야 한다. 실제 모델링을 할 때 사용하는 언어들은 공통된 언어를 사용하는 게 좋고, 중복성을 배제하고 데이터를 재사용할 수 있게 하여 유지 보수에 용이하게끔 설계를 하자.

  1. 완전성
  2. 중복 배제
  3. 업무 규칙
  4. 데이터 재사용
  5. 의사소통
  6. 통합성

잘못된 정보는 지적해주시면 감사하겠습니다.

0개의 댓글