본문 바로가기
🖊️Certificate/📌SQLD

[SQLD] 1과목 - 1장) 1절. 데이터 모델의 이해

by 빛나고요 2024. 3. 5.
BIG

1과목. 데이터 모델링의 이해

1장. 데이터 모델링의 이해

1절 데이터 모델의 이해


# 모델링의 이해

- 모델링의 정의
  · 복잡한 개념을 일정한 표기법으로 나타내는 것
  · 사물 또는 사건에 대한 관점, 양상을 명확히 하는 것
   * Webster 사전: 어떤 것에 대한 예비표현/최종 타겟이 구축되기 위한 계획으로써 도움을 주는 것
   * 모델: 현실 세계의 추상화된 반영

- 모델링의 특징
  · 추상화(모형화): 복잡한 것을 일정 형식에 따라 표현
  · 단순화: 난해한 개념을 약속된 표현으로 쉽게 이해하게 함
  · 명확화: 누구나 이해할 수 있게 모호함을 배제
   ➢ 모델링: 현실의 특정 개념을 추상화/단순화/명확화하고자 일정 표기법으로 표현하는 기법
   * 정보시스템 구축
     · 계획/분석/설계 ➪ 업무 분석 및 설계의 목적
     · 구축/운영         ➪ 변경과 관리의 목적

- 모델링의 3가지 관점
  ① 데이터 관점(What): 업무와 데이터 또는 데이터 간의 관련성
  ② 프로세스 관점(How): 실제 업무는 무엇인지/어떻게 해야 하는지
  ③ 데이터와 프로세스의 상관관점: 작업 방법에 따라 어떤 영향을 받는지 모델링

# 데이터 모델의 기본 개념

- 데이터 모델링의 정의
  · 해당 업무에 무슨 데이터가 있는지/요구되는지 분석하는 것
  · 정보시스템 구축을 위한 데이터 관점의 업무 분석 기법
  · 현실의 데이터를 지정된 표기법으로 표현하는 과정
  · DB 구축을 위한 분석과 설계의 과정
  · 기업 데이터에 존재하는 업무 규칙을 참/거짓으로 판별할 수 있는 사실을 독립적인 관점에서 명확하게 표현한 것

- 데이터 모델의 제공 기능
  · 시스템 가시화
  · 시스템 구조와 행동 명세화
  · 시스템 구축을 위한 구조화된 틀 제공
  · 시스템 구축 과정의 문서화
  · 타 영역의 세부사항 배제
  · 목표에 따른 상세한 수준의 표현 방법 제공

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

  ① 파급효과(Leverage): 진행 단계가 높아질수록 데이터 구조 변경에 따른 부정적 파급효과가 크므로 데이터 설계가 매우 중요
  ② 복잡한 정보 요구사항의 간결한 표현(Conciseness)
  ③ 데이터 품질(Data Quality)
    · 데이터 모델링 주의사항
      ➢ 중복: DB가 여러 위치에 동일한 정보를 저장하는 잘못을 하지 않도록 함 ➪ 정규화로 해결
      ➢ 비유연성: 데이터 또는 프로세스의 미세한 변화가 애플리케이션과 DB에 초래하는 부정적인 영향을 감소시켜야 함 ➪ 사소한 변화에도 설계를 건드려야 하는 상황 최소화
      ➢ 비일관성: 데이터의 중복이 없어도 비일관성은 발생함 ➪ 데이터 변경 시 이력 데이터 누적 필요

# 데이터 모델의 3단계 과정(추상화 수준별로 나뉨)

  ① 개념적 데이터 모델링(Conceptual Data Modeling)
    · 추상화 수준이 높고, 업무 중심적/포괄절 수준의 모델링
    · EA(Enterprise Architecture: 전사 아키텍처) 기반 전사적 데이터 모델링
    · [단순한 설계도] + DBMS 독립적 ➪ ERD 생성
  ② 논리적 데이터 모델링(Logical Data Modeling)
    · 엔터티 중심의 상위 데이터 모델 완성 후, 구체화 된 업무 중심의 모델 생성하는 것(Key/속성/관계 등 정의)
    · 재사용성 높음
    · [좀 더 구체적인 설계도] + 특정 DBMS에 종속적 ➪ 정규화 수행
  ③ 물리적 데이터 모델링(Physical Data Modeling)
    · DB에 이식 가능하게 성능/저장 등 물리적 성격을 반영하여 설계(실제 구축 시도)

- 논리적 모델링 프로세스
  ① 속성 모두 입력
  ② 각각의 엔터티에서 식별자를 지정
  ③ 정규화 실시 ➪ 중복 데이터 제거
  ④ 관계 설정(외부키 시정) ➪ 정규화로 나뉜 대상 연결을 위해 식별자 대여

- 프로젝트 생명주기(Life Cycle)에서의 데이터 모델링
  · 폭포수(Waterfall)
    ➢ 분석과 설계 단계로 구분하여 명확하게 정의
    ➢ 분석 단계: 업무 중심의 논리적인 데이터 모델링 수행
    ➢ 설계 단계: H/W와 성능을 고려한 물리적인 데이터 모델링 수행
  · 나선형(Rational Unified Process)
    ➢ 업무 규모별로 논리적 데이터 모델과 물리적 데이터 모델이 분석과 설계 단계 양쪽으로 실시
    ➢ 분석 단계에서 논리적 데이터 모델이 더 많이 시행

# 데이터 모델링에서 데이터독립성의 이해

- 데이터독립성의 필요성
  · 기능화된 구성의 가장 큰 목적: 상호 간 영향에서 벗어나 개별 형식이 가지는 고유의 기능을 유지시키며 극대화하는 것
  · 데이터독립성 ↔ 데이터종속성
  · 종속의 주체는 응용(Application, 유저의 요구사항을 처리하는 사용자 접점의 인터페이스 오브젝트)을 가리킴
  · 데이터독립성의 목적
    ➢ 유지보수 비용 절감
    ➢ 데이터 복잡도를 낮추며 중복 데이터 감소
    ➢ 사용자 요구사항에 대해 화면과 DB 간의 독립성 유지
  · 데이터독립성의 효과
    ➢ 각 View의 독립성을 유지하고 계층별 View에 영향을 주지 않고 변경 가능
    ➢ 단계별 스키마(Schema)에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다름을 제공

- 데이터베이스 3단계 구조
  ① 외부 단계
  ② 개념적 단계
  ③ 내부적 단계

- 데이터 독립성 구성요소
  · 외부 스키마(여러 사용자 각각의 관점)
    ➢ View 단계의 여러 사용자 관점으로 구성
    ➢ User가 보는 개인적 DB 스키마
    ➢ DB의 개별 유저나 프로그래머가 접근 DB 정의
  · 개념 스키마(통합적, 조직 전체의 관점)
    ➢ 개념 단계 하나의 개념적 스키마로 구성
    ➢ 전체 사용자 관점을 통합한 조직 전체의 DB를 기술하는 것
    ➢ DB에 저장되는 데이터 간의 관계 표현
  · 내부 스키마(물리적 저장 구조)
    ➢ 물리적 장치에서 데이터가 실제로 저장된 방법을 표현
   * 데이터 모델링: 통합관점의 뷰를 가지고 있는 개념 스키마를 만드는 과정
   * 스키마: User를 위한 DB의 외부/논리/물리적 구조와 제약 조건의 집합

- 데이터 독립성
  · 논리적 독립성
    ➢ 개념 스키마가 바껴도 외부 스키마에는 영향 없음
    ➢ 논리적 구조가 바껴도 응용 프로그램에는 영향 없음
    ➢ 사용자 특성에 맞게 변경 가능/통합 구조 변경 가능
  · 물리적 독립성 ➪ 저장공간(하드디스크 등)을 DB에 추가해도 테이블의 내용에 영향 없음
    ➢ 내부 스키마 변경 시, 외부/개념 스키마는 영향 없도록 지원
    ➢ 저장장치의 구조 변경은 응용 프로그램과 개념 스키마에 영향 없음
    ➢ 물리적 구조 영향 없이 개념적 구조 변경 가능(반대로도 가능)
  
- Mapping(사상)
  · 의미: 상호 독립적인 개념을 연결시켜주는 다리
  · 논리적 사상(외부/개념적 사상): 외부적 View와 개념적 View의 상호관련성 정의
  · 물리적 사상(개념/내부적 사상): 개념적 View와 저장된 DB의 상호관련성 정의
  ➪ 데이터독립성을 보장하기 위해 사상을 하는 스크립트(DDL)를 DBA가 변경사항이 발생할 때마다 적절하게 처리해야 함

# 데이터 모델링의 중요 3요소

- 데이터 모델링의 3요소 ➪ 엔터티, 속성, 관계로 인식
  · 업무가 관여하는 어떤 것(Things)
  · 어떤 것이 지니는 성격(Attributes)
  · 어떤 것 사이의 관계(Relationship)

- 데이터 모델링 3요소 용어 구분

# 데이터 모델링의 이해관계자

- 이해관계자의 데이터 모델링 중요성 인식
  · 실무에서는 DB를 전문적으로 담당하는 DBA가 데이터 모델링을 전적으로 담당하지 않고 업무 시스템을 개발하는 응용시스템 개발자와 함께함
  · DB 설계 오류 시, 모든 트랜잭션에 악영향
  · Bachmann, “프로그래머는 데이터집합의 탐색자이다” ➪ 데이터에 대한 중요성을 높게 평가

- 데이터 모델링의 이해관계자
  · 정보시스템을 구축하는 모든 인력(전문 코더 포함)
  · 업무에서 정보화를 추진하는 위치에 있는 인력(전공 불문)

# ERD의 이해 ➪ 개념적 데이터 모델링의 결과물임

- 데이터 모델 표기법
  · 피터 첸(Peter Chen): 1976년, Entity-relationship Model(E-R Model)이라는표기법 개발
  · ERD: 각 업무 분석에서 도출된 엔터티 사이의 관계를 이해하기 쉽도록 도식화된 다이어그램으로 표시하는 법
  · 엔터티: 사각형
  · 관계   : 마름모
  · 속성   : 타원형

- ERD를 이용한 모델링 ➪ 최근에는 엔터티 관계를 바로 표현
  · ERD 작업순서
    ① 엔터티를 그림
    ② 엔터티를 적절하게 배치 - 중요 엔터티를 왼쪽 상단에 배치
    ③ 엔터티 간 관계 설정 - 초기에는 모두 Primary Key로 속성이 상속되는 식별자 관계 설정
    ④ 관계명 기술 - 관계이름은 현재형 사용
    ⑤ 관계의 참여도 기술 - 관계차수(Cardinality) 표현
    ⑥ 관계의 필수여부 기술

# 좋은 데이터 모델의 요소

- 완전성(Completeness): 업무에 필요한 모든 데이터가 데이터 모델에 정의되어 있어야 함
- 종복 배제(Non-Redundancy): 하나의 DB 내에 동일한 사실은 반드시 한 번만 기록
- 업무규칙(Business Rules): 모든 사용자(개발자, 관리자 등)가 해당 규칙을 바탕으로 동일한 판단을 하고 데이터를 조작함
- 데이터 재사용(Data Reusability): 데이터의 통합성과 독립성을 충분히 고려 ➪ 독립적으로 설계되어야만 데이터 재사용성 향상 가능
- 의사소통(Communication): 업무규칙들을 데이터 모델에 표현할 때 설계자가 정의한 업무규칙을 해당 정보시스템을 운용, 관리하는 많은 관련자들도 동일한 의미로 받아들이고 정보시스템을 활용할 수 있게 하는 역할을 함
- 통합성(Integration): 여러 곳에서 동일한 데이터가 존재하지만 이를 한 번만 정의하기 위해서는 공유데이터에 대한 구조를 여러 업무 영역에서 공동으로 사용하기 용이하게 정의할 수 있어야 함


** 참고

- https://fromitot.tistory.com/m/84

[SQLD] 1과목 1장 데이터 모델링의 이해 요약 (데이터 모델의 이해 / 2024 개정사항 반영)

이전글 : 2023.01.29 - [Cerificate/SQLD] - [SQLD] 자격증 취득을 위한 계획 수립 및 공부 방법 Index SQLD 시험에서 10문항이 출제되는 1과목, 데이터 모델링의 이해에 대해 요약해보도록 하겠다. 엄밀히 말하

fromitot.tistory.com


- https://dataonair.or.kr/db-tech-reference/d-guide/sql/?pageid=5&mod=document&uid=330

댓글