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

SQL

  • SQL(Structured Query Language)
    데이터베이스를 직접적으로 액세스할 수 있는 언어로, 데이터를 정의하고(Data Definition), 조작하며(Data Manipulation), 조작한 결과를 적용하거나 취소할 수 있고(Transaction Control), 접근 권한을 제어하는(Data Control) 처리들로 구성된다.
  • 데이터 - 저장이나 처리에 효율적인 형태로 변환이 된 정보
  • 데이터베이스 - 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합을 말한다.
  • DBMS(Database Management System)
    데이터베이스라는 데이터의 집합을 만들고, 저장 및 관리할 수 있는 기능들을 제공하는 응용 프로그램의 총칭.
    즉, 데이터의 관리에 특화된 프로그램. 종류에 따라 DataBase Server까지 지원하기도 한다.

✅ 모델링의 이해

1.모델링의 정의

데이터베이스의 모델은 데이터베이스의 관리시스템(RDBMS)이 지원하는 데이터베이스의 구조나 형식을 의미한다. 관리하는 데이터에 대한 청사진이므로 모델 정보(구조)만으로 어떤 데이터를 다루는 지 알 수 있다. 데이터 모델은 데이터를 기반으로 한 모델링의 과정이라고 할 수 있따. 현실 세계를 얼마만큼 추상화 시켜 표현할 것인지 그림을 그리는 과정이고 그 결과를 토대로 세상을 단순화시켜 명확하게 바라볼 수 있게 된다. 간단히 말해 데이터를 모아 구조화하고 집약하는 작업이다.

  • 정보 시스템 구축을 위해 데이터 관점의 업무를 분석하는 과정
  • 현실 세계의 데이터를 약속된 표기법에 의해 표현하는 과정
  • 데이터베이스를 구축하기 위한 분석 및 설계의 과정

데이터 모델이 제공하는 기능
시각화 / 문서화 / 구체화 / 구조화 된 툴 제공 / 다양한 관점제공

2. 모델링의 특징

  1. 추상화(Abstraction) : 현실 세계를 일정한 형식에 맞추어 표현하는 것을 의미
  2. 단순화(Simplitification) : 복잡한 현실 세계를 약속된 규칙에 기반한 제한된 표기법이나 언어로 표현하는 것
  3. 명확화(Clarity) : 누구나 이해하기 쉽게 대상에 대한 애매모호함을 제거하고 현상을 정확하게 기술하는 것을 의미한다.

3. 데이터 모델링의 단계

  1. 개념적 데이터 모델링
    • 데이터의 요구사항을 찾고 분석하는 과정
      추상화 수준이 가장 높고 업무 중심적인 모델링
      전사적 관점에서 기업의 데이터 모델링
  2. 논리적 데이터 모델링
    • 비즈니스 과정에서 나타나는 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법
      누가, 어떻게, 그리고 전산화와는 별개로 비즈니스 데이터에 존재하는 사실을 인식하여 기록
      정규화를 수행하여 모델의 독립성을 확보
  3. 물리적 데이터 모델링
    • 논리적 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현 될 것인지를 다루는 과정
      구축할 데이터베이스 관리 시스템에 테이블, 인덱스 등을 생성하는 단계
      성능, 보안, 가용성을 고려하여 구축

4. 데이터 모델링의 관점

  1. 데이터관점
    어떤 데이터와 관련이 있는지 모델링하는 방법에 대해 고민
  2. 프로세스 관점
    무엇을 해야하는지에 대해 모델링을 고민하는 관점
    도메인 분석, 시나리오 분석
  3. 데이터와 프로세스의 상관 관점
    일에 의해 데이터에 어떤 변화가 일어나는지에 대해 초점을 맞추는 관점

✅ 데이터 모델링의 중요성

1. 데이터 모델링의 중요성 및 유의점

  • 파급효과(Leverage) 데이터의 흐름을 시스템 전체에서 바라볼 수 있어야 한다. 즉, 구체적인 내용은 변해도 큰 구조는 변하지 않도록 설계해야 한다.
  • 간결한표현(Conciseness) 데이터 모델은 구축할 시스템의 정보에 대한 요구사항과 한계점을 가장 명확하고 간결하게 표현할 수 있어야한다.
  • 데이터품질(Data Quality) 양질의 데이터를 모을 수 있도록 데이터베이스를 잘 설계해야한다. 아래 3가지 특성을 지양해야한다.
    • 중복(Duplication) : 데이터베이스 여러곳에 같은 정보를 저장하는 행위
    • 비유연성(Inflexibility) : 환경이 바뀌어도 데이터가 사용 가능하도록 설계
    • 비일관성(Inconsistency) <: 데이터의 중복이 없다해도 일관적이 않은 데이터가 나타나지 않도록 설계. 데이터 간 상호 연관관계에 대한 명확한 정의가 필요함.

2. 프로젝트 라이프 사이클에서의 데이터모델링

프로젝트 라이프 사이클?
프로젝트의 시작부터 완료에 이르기까지 거치는 일련의 단계를 의미한다.
폭포수 모델, 애자일 모델 등이 있으며, 프로젝트의 범위가 명확할 때 폭포수 방법론을 적용한다.

  1. 분석 - 논리 및 개념 데이터 모델링
  2. 설계 - 물리 데이터 모델링
  3. 개발 - DB 구축, 변경, 관리
  4. 테스트 - DB 튜닝
  5. 전환/이행 - DB 전환

3. 데이터 모델링의 이해관계자

정보 시스템을 구축하는 모든 사람들은 데이터 모델링을 전문적으로 할 수 있어야한다.
DBA, 프로젝트 개발자, 전문 모델러, 현업 전문자, 기획자 등등

✅ 3층 스키마(3-Level Scheme)

데이터 독립성이 필요한 이유

  • 유지보수 비용 증가 / 유지보수 중복성 증가 / 데이터 복잡도 증가 / 요구사항 대응 저하
  • 데이터 독립성을 확보하면 다음과 같은 기대효과를 누릴 수 있다.
    • 각 View의 독립성을 유지하고 계층별 View에 영향을 주지 않고 변경이 가능하다.
    • 단계별 Scheme에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다르게 제공된다.

3층 스키마의 정의

3층 스키마란, 데이터베이스를 보는 관점에 따라 데이터베이스를 기술하고 이들간의 관계를 정의한 ANSI 표준이다. 3단계 계층으로 분리하여 독립성을 확보해 각 계층을 뷰(View)라고도 한다.
사용자, 설계자, 개발자가 데이터베이스를 보는 관점에 따라 데이터베이스를 기술하고 각 관계를 정의한 표준

image-20250208211112842

  1. 외부스키마(External Schema) - 사용자 관점, 접근 특성에 따라 다른 스키마를 가짐
    • 개별 사용자가 보는 DB 스키마
      실제로 관심있는 데이터 베이스 부분을 설명하고 나머지를 감춘다.
  2. 개념스키마(Conceptual Schema) - 설계자 관점, 통합 관점
    • 물리적 저장구조에 대한 부분은 숨기고, 데이터의 전체적인 구조와 관계에 대해 집중한다.
      외부 스키마를 통합한 조직 전체의 DB를 기술한다.
      DB에 저장되는 데이터와 그들의 관계를 표현하는 스키마
  3. 내부스키마(Internal Schema) - 개발자 관점, 물리적 저장구조
    • DB가 물리적으로 저장된 형식
      물리적 장치에서 데이터가 실제적으로 저장되는 완전히 구체적인 방법을 표현하는 스키마

이렇게 스키마를 나누는 이유는 데이터 독립성을 유지하기 위해서다.
즉, 데이터베이스의 여러 레벨에서 구조를 수정할 때, 하위 레벨 스키마를 변경하더라도 상위 레벨의 스키마를 건드릴 필요가 없는 것.

3층 스키마의 독립성

  • 논리적 독립성 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원.
    논리적 구조가 변경되어도 응용 프로그램에는 영향이 없다.
  • 물리적 독립성 내부 스키마가 변경되어도 개념 스키마는 영향을 받지 않도록 지원.
    저장 장치의 구조 변경이 응용프로그램과 개념 스키마에 영향을 주지 않는다.

✅ 데이터모델링의 요소와 ERD

데이터 모델링의 중요 3개념

  1. 엔터티(Entity) - 업무가 관여하는 어떠한 것(thing)
    • 사물이나 사건을 바라볼 때 전체를 지칭하는 용어
      눈에 보이는 개념이든 아니든 데이터 모델링에서 사용되는 하나의 대상, 객체를 의미
  2. 속성(Attribute)- 어떤 것이 갖는 성격
    • Entity가 지닐 수 있는 여러 특징을 의미
  3. 관계(Relationship) - 업무가 갖는 어떤 것과의 관계
    • Entity와 Entity 사이의 관계를 의미

ERD(Entity Relationship Diagram)

  • ERD 작성법
    1. 엔터티를 정의하고 그린다.
    2. 엔터티를 적절하게 배치한다. (우하향으로 확장)
    3. 엔터티간의 관계를 설정한 후 관계명을 서술한다
    4. 관계의 참여도 (특정 엔터티와 다른 엔터티 간의 관계수)를 기술한다
    5. 관계의 필수 여부를 기술한다.
  • 대표적인 모델 표기법
    image-20250208213538666

Tags:

Updated:

Leave a comment