[SQLD] 1과목: 데이터 모델링의 이해

2023. 11. 1. 06:15·SQLD
728x90

 

데이터 모델링

데이터 모델링은 데이터베이스 설계의 핵심 단계 중 하나로, 데이터베이스 내 데이터 구조와 관계를 정의하는 과정이다.

또한, 정보시스템을 구축할 때 데이터 관점, 프로세스 관점, 데이터와 프로세스의 상관관점의 업무 분석과 데이터베이스 구축을 위한 분석 및 설계를 포함한다. 이는 데이터 베이스를 효율적으로 조직하고 데이터 관리를 용이하게 할 수 있다.

데이터 모델링의 3요소
1. 업무가 관여하는 어떤 것 (Things) = 엔터티 (Entity)
2. 어떤 것이 가지는 성격 (Attributes) = 속성 (Attribute)
3. 업무가 관여하는 어떤 것 간의 관계 (Relationships) = 관계 (Relationship)

특징

  • 추상화: 현실세계를 일정한 형식에 맞추어 표현한다.
  • 단순화: 제한된 표기법이나 언어로 표현한다.
  • 명확화: 정확하게 현상을 기술한다.

유의점

  • 중복 (Duplication): 동일한 데이터를 여러 번 저장하지 않도록 주의한다.
  • 비유연성 (Inflexibility): 데이터베이스 스키마를 변경하면 애플리케이션에 영향을 미칠 수 있다. 프로그램과 테이블 간 연계성을 높이면 유연성이 떨어지게 된다.
  • 비일관성 (Inconsistency)

데이터 모델링의 유형

  • 개념적 데이터 모델링: 데이터의 전반적인 구조를 표현하며, 업무 개념과 관계를 중심으로 설계된다. 이 모델은 추상화 수준이 높고 업무중심적이며, 엔터티-관계 다이어그램(ERD)을 생성한다.
  • 논리적 데이터 모델링: 개념적 모델을 자세하게 세분화하며, 엔터티, 속성, 관계 등을 정리하고 정규화를 실행한다. 재사용성이 높으며, 비즈니스 데이터에 존재하는 사실들을 인식하여 기록한다.
  • 물리적 데이터 모델링: 데이터베이스 시스템에 따라 구체적인 데이터 저장 방식과 인덱스를 고려하여 설계한다. 이 모델은 논리 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인지 정의한다.
    • 물리적 스키마: 데이터가 물리적으로 컴퓨터에 어떻게 저장될 것인지 정의한다.

정규화?

더보기

논리 데이터 모델의 일관성을 확보하고 중복을 제거하여 속성들이 가장 적절한 엔터티에 배치되도록 하는 과정, 반복적인 데이터를 분리하고 각 데이터가 종속된 테이블에 적절하게 배치되도록 하는 것이다.

데이터 독립성

데이터 독립성은 상호 간 영향에서 벗어나 개별 형식이 가지는 고유의 기능을 유지시키며 그 기능을 극대화하는 것이다. 이는 지속적으로 증가하는 유지보수 비용을 절감하고 데이터 복잡도를 낮추며, 중복된 데이터를 줄이기 위한 목적이 있다.

데이터 베이스 3단계 구조

ANSI-SPARC: 데이터베이스 구축을 위한 추상적인 설계 표준으로 외부 단계, 개념적 단계, 내부적 단계로 구성된 독립적인 모델이다.

 

  • 외부 단계: 개별 사용자들의 관점을 기술한다.
    • 외부 스키마: View 단계 여러 개의 사용자 관점으로 구성하며, 데이터베이스의의 개개 사용자나 응용프로그래머가 접근하는 데이터베이스를 정의한다.
  • 개념적 단계: 전체 데이터베이스의 논리적 구조를 기술한다.
    • 개념 스키마: 모든 응용시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스를 기술한 것으로, 데이터베이스에 저장되는 데이터와 그들 간의 관계를 표현하는 스키마이다.
  • 내부적 단계: 데이터베이스에 어떤 데이터가 어떻게 저장되어 있는가를 기술한다.
    • 내부 스키마: 데이터베이스가 물리적으로 저장된 형식이며, 물리적 장치에서 데이터가 실제적으로 저장되는 방법을 표현하는 스키마이다.
독립성 특징
논리적 독립성 개념 스키마가 변경되어도 외부 스키마에 영향 X
물리적 독립성 내부 스키마가 변경되어도 외부/개념 스키마에 영향 X

사상 (Mapping)

사상은 상호 독립적인 개념을 연결시켜주는 다리 역할을 한다.

  • 외부적/개념적 사상 (논리적 사상): 외부적 뷰와 개념적 뷰의 상호 관련성을 정의한다.
  • 개념적/내부적 사상 (물리적 사상): 개념적 뷰와 저장된 데이터베이스의 상호 관련성을 정의한다.

데이터 모델 표기법

데이터 모델에 대한 표기법은 1976년 피터 챈이 E-R Model 표기법을 만들었으며, 다이어그램으로는 주로 ERD(Entity Relationship Diagram)을 사용한다.

ERD 모델링 순서
  1. 엔터티를 그린다.
  2. 엔터티를 적절하게 배치한다.
  3. 엔터티 간 관계를 설정한다.
  4. 관계명을 기술한다.
  5. 관계의 참여도를 기술한다.
  6. 관계의 필수 여부를 기술한다.

좋은 데이터 모델의 요소

  • 완전성 (Conpletencess): 업무에 필요한 모든 데이터가 모델에 정의되어 있어야 한다.
  • 중복 배제 (Non-Redundacy): 하나의 데이터베이스 내에 동일한 사실은 한 번만 기록되어야 한다.
  • 업무 규칙 (Business Rules): 업무 규칙을 데이터 모델에 표현하고 이를 활용하는 사용자가 공유할 수 있도록 제공되어야 한다.
  • 데이터 재사용 (Data Reusability): 데이터의 통합성과 독립성에 대해 고려가 필요하며, 데이터는 애플리케이션에 대해 독립적으로 설계되어야 데이터 재사용성이 향상된다.
  • 의사소통 (Communication): 업무 규칙은 데이터 모델에 엔터티, 서브타입, 속성, 관계 등의 형태로 최대한 자세하게 표현되어야 사용자들 간의 의사소통이 용이로워진다.
  • 통합성 (Intergration): 동일한 데이터는 조직의 전체에서 한 번만 정의되어야 하며, 이를 다른 영역에서 참조, 활용한다.
728x90
저작자표시 비영리 변경금지 (새창열림)

'SQLD' 카테고리의 다른 글

[SQLD] 1과목: 데이터 모델링의 이해 - 데이터 모델과 성능  (1) 2023.11.14
[SQLD] 1과목: 데이터 모델링의 이해 - 엔터티, 속성, 관계, 식별자  (0) 2023.11.05
'SQLD' 카테고리의 다른 글
  • [SQLD] 1과목: 데이터 모델링의 이해 - 데이터 모델과 성능
  • [SQLD] 1과목: 데이터 모델링의 이해 - 엔터티, 속성, 관계, 식별자
hxxzz
hxxzz
개발새발 안 되게 개발 노력 중
  • hxxzz
    개발새발
    hxxzz
  • 전체
    오늘
    어제
    • 분류 전체보기 (104)
      • Java (3)
      • Back-End (9)
        • Spring Boot (7)
        • DevOps (1)
        • Redis (1)
      • Computer Scrience (4)
        • Data Structrue (4)
        • Algorithm (0)
      • SQLD (3)
      • 코딩테스트 연습 (85)
        • Programmers (30)
        • 백준 (15)
        • etc. (0)
        • 99클럽 (40)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Stack
    BFS
    N+1 문제
    SQLD
    java
    SpringBoot
    99클럽
    til
    redission
    LeetCode
    백준
    스택
    프로그래머스
    jpa
    자료구조
    개발자 취업
    SQL
    코딩테스트 준비
    Spring Boot
    dfs
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
hxxzz
[SQLD] 1과목: 데이터 모델링의 이해
상단으로

티스토리툴바