본문 바로가기

데이터베이스(Database)/Data Modeling

[DB] 데이터 모델링(1) - 데이터 모델링 개요와 데이터 독립성

이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다.

추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요.

 


 

데이터 모델링 개요

  • 모델링

    복잡한 현실 세계를 추상화, 단순화하여 일정한 표기법에 의해 명확히 표현하는 것
    추상화, 단순화, 명확화에 유의. 구체화, 복잡화, 일반화가 아님.

    추상화
    - 현실 세계를 일정한 형식에 맞춰서 표현

    단순화
    - 현실 세계를 약속된 규칙에 맞는 일정한 표기법이나 언어로 쉽게 표현

    명확화
    - 누구나 이해할 수 있도록 모호함이 없이 정확하게 표현


  • 모델링의 관점

    데이터 관점(What)
    - 데이터와 데이터 간의 관계, 업무와 데이터 간의 관계를 모델링
    - 데이터에 접근하는 방법(How)나 사람(Who)와는 관계 없음

    프로세스 관점(How)
    - 업무가 실제로 하고 있는 일이나 해야할 일을 모델링

    데이터와 프로세스의 상관 관점(Interaction)
    - 업무 처리 방법에 따라 데이터가 받는 영향을 모델링


  • 데이터 모델링 단계(실제 업무에서는 개념적 모델링과 논리적 모델링의 구분이 모호하다.(이탤릭체로 표시))

    개념적 모델링
    - ERD 도출 단계
    - 핵심 엔티티와 관계, 속성 중심의 ERD 도출
    - 높은 추상화 수준
    - 업무 중심적인 포괄적 모델링

    논리적 모델링
    - 테이블 도출 단계
    - 기본키와 외래키를 지정
    - 정규화 및 반정규화 수행
    - 보다 구체적인 ERD 도출
    - 식별자, 속성, 관계 등을 명시
    - M:N 관계 해소(여러 개의 1:N으로 분해)

    물리적 모델링
    - DBMS에 맞는 테이블 구축
    - 데이터 타입 정의, 인덱스 설계, 뷰 설계
    - 테이블 도출
    - 기본키 외래키 칼럼 정의
    - 정규화 및 반정규화 수행

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

 

데이터 독립성

  • 데이터베이스의 3단계 구조

    외부 스키마(External Schema)
    - 각 사용자 또는 응용 프로그래머가 바라보는 데이터베이스 구조(= 스키마)

    - 개별 사용자 관점에서의 데이터 베이스

    개념 스키마(Conceptual Schema)
    - 모든 사용자의 관점을 통합한 데이터베이스 구조
    - DB에 저장되는 데이터와 그들간의 관계를 표현

    내부 스키마(Internal Schema)
    - DB가 물리적으로 저장된 형식
    - 데이터가 실제적으로 저장되는 방법을 표현

    외부 스키마와 내부 스키마를 통합한 관점인 개념 스키마를 만들어 가는 과정이 데이터 모델링.


  • 데이터 종속성과 독립성

    데이터 종속성
    - 응용 프로그램에 대한 데이터의 종속성
    - 응용 프로그램과 데이터가 상호 의존적임

    - 사용자가 접근하는 유형에 따라 데이터를 구성하는 방법이 영향을 받음
    - 데이터를 저장한 파일 구조가 변하면 응용 프로그램도 변경되어야 함

    데이터 독립성
    - 데이터 구조가 변해도 응용 프로그램은 변할 필요가 없음

    - 논리적 독립성(외부 스키마 - 개념 스키마) + 물리적 독립성(내부 스키마 - 개념 스키마)

    데이터 독립성의 필요성(독립성이 유지되지 않는다면?)
    - 데이터 중복성 및 복잡도 증가
    - 요구사항 대응 난이도 증가
    - 유지보수 비용 증가


  • 논리적 독립성과 물리적 독립성

    논리적 독립성
    - 논리적 사상(외부적/개념적 사상)을 통해 논리적 독립성 보장
    - 개념 스키마가 변해도 외부 스키마에는 영향이 없음

    - 논리적 구조가 변해도 응용 프로그램에는 영향이 없음


    물리적 독립성
    - 물리적 사상(개념적/내부적 사상)을 통해 물리적 독립성 보장
    - 내부 스키마가 변해도 개념 스키마에는 영향이 없음
    - 저장 장치의 구조 변경은 응용 프로그램과 개념 스키마에 영향이 없음

    논리적 사상
    - 외부적 뷰와 개념적 뷰의 상호 관련성 정의

    물리적 사상
    - 개념적 뷰와 저장된 데이터베이스의 상호관련성 정의

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