[SQL] 데이터 모델링

김죠·2023년 12월 27일
0
post-thumbnail

1. 데이터 모델링

1.1 정의

  1. 정보 시스템 구축을 위해 데이터 관점의 업무를 분석하는 과정
  2. 현실 세계의 데이터를 약속된 표기법에 의해 표현하는 과정
  3. 데이터베이스를 구축하기 위한 분석 및 설계의 과정
  • 데이터베이스에서 말하는 모델은 데이터베이스 관리 시스템(RDBMS)이 지원하는 데이터베이스의 구조나 형식(관리하는 데이터에 대한 청사진)으로, 모델 정보만을 보고도 어떤 데이터를 다루는지 알 수 있다.
  • 데이터 모델은 데이터를 기반으로 한 모델링 과정으로, 현실 세계를 얼마만큼 추성화시켜 표현할 것인지 그림을 그리는 과정이다.
  • 즉, 데이터 모델링을 통해 업무에 필요한 정보를 정확하게 정의하고 표현하여 업무를 분석하고, 분석 모델을 통해 데이터베이스를 생성해 데이터를 관리하고자 한다.

1.2 모델링의 특징

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

1.3 데이터모델링의 3단계

  1. 개념적 데이터 모델링(Conceptual Data Modeling)
  • 데이터의 요구사항을 찾고 분석하여 복잡하지 않고 중요한 부분을 위주로 모델링하는 단계
  • 추상화 수준이 가장 높고 업무 중심적인 모델링
  1. 논리적 데이터 모델링(Logical Data Modeling)
  • 비즈니스 과정에서 정보의 논리적인 구조와 규칙을 명확하게 표현하는 단계
  • 정규화를 수행하여 데이터 모델의 독립성을 확보
  1. 물리적 데이터 모델링(Physical Data Modeling)
  • 논리적 데이터 모델이 데이터 저장소로써 어떻게 컴퓨터 하드웨어에 표현될 것인지 다루는 단계

1.4 데이터모델링의 관점

  • 시스템의 대상이 되는 업무를 분석하여 정보 시스템으로 구성하는 과정에서 업무의 내용과 모습을 적절한 표기법으로 표현하는 것
    1. 데이터 관점(What) : 업무가 어떤 데이터와 관련 있는지 모델링 하는 방법에 대해 고민하는 관점
    2. 프로세스 관점(How) : 업무에서 실제 하는 일과 무엇을 해야 하는지에 대해 모델링하는 법을 고민하는 관점(도메인 분석, 시나리오 분석)
    3. 상관 관점(Intersection) : 일에 의해 데이터가 어떤 변화가 일어나는지 초점을 두는 관점(CRUD 분석)

2. 3층 스키마(3-Level Schema)

2.1 데이터 독립성

  • 상위 스키마를 변경하지 않고 하나의 계층에서 스키마 변경할 수 있는 능력
  • 데이터 여러 레벨에서 구조 수정 시 하위 레벨의 스키마를 변경하더라도 상위 레벨의 스키마에 영향을 주지 않는다

데이터 독립성을 확보하면 두가지 기대효과를 누릴 수 있다

  • 각 View의 독립성을 유지하고 계층별 View에 영향을 주지 않고 변경이 가능하다
  • 단계별 스키마에 따라 데이터 정의어, 조작어가 다르게 제공된다
    -> 응용 프로그램과 물리적 데이터베이스를 분리하자!!

2.2 3층 스키마 정의와 구조

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

데이터베이스의 구조

항목내용비고
외부 스키마(External Schema)개별 사용자가 보는 DB스키마, 실제 관심 있는 데이터베이스 부분 설명하고 나머지는 감춤사용자 관점 / 접근하는 특성에 따라 다른 스키마 구성
개념 스키마(Conceptual Schema)모든 응용 시스템이나 사용자들이 필요로 하는 데이터 통합한 조직 전체 DB 기술한 스키마설계자, 통합 관점 / 통합 데이터베이스 구조
내부 스키마(Internal Schema)DB가 물리적으로 저장된 형식, 물리적 장치에서 데이터가 실제적으로 저장되는 구체적인 방법 표현하는 스키마개발자 관점 / 물리적 저장 구조

2.3 3층 스키마의 독립성

  • 논리적 독립성 : 우리가 데이터 저장이 필요한 속성을 추가 및 변경일 필요할 시 외부 응용 프로그램을 변경하지 않아도 됨(외부<-> 개념 스키마 독립)
  • 물리적 독립성 : 실제 데이터를 저장하는 위치나 파일 이름 변경해도 개념 스키마 관점에서 아무런 영향 없음(개념 <-> 물리 스키마 독립)
profile
1=850

0개의 댓글