[ SQLD : I. 데이터 모델링의 이해] 1-1. 데이터 모델의 이해

문지은·2023년 5월 31일
0

SQLD

목록 보기
1/30
post-thumbnail

데이터 모델의 이해

모델링의 이해

모델링의 정의

  • 복잡한 현실세계를 추상화, 단순화, 명확화하기 위해 일정한 표기법에 의해 표현하는 기법
  • 모델이란 현실 세계의 추상화된 반영

모델링의 특징 3가지

  • 추상화(모형화, 가설적) : 현실세계를 일정한 형식에 맞추어 표현, 다양한 현상을 일정한 양식인 표기법에 의해 표현
  • 단순화 : 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 함
  • 명확화 : 누구나 이해하기 쉽게 하기 위해 대상에 대해 애매모호함을 제거하고 정확하게 현상을 기술하는 것

모델링의 3가지 관점

  • 데이터 관점 : 업무가 어떤 데이터와 관련이 있는지 또는 데이터간의 관계는 무엇인지에 대해서 모델링하는 방법(What, Data)
  • 프로세스 관점 : 업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야하는지를 모델리하는 방법(How, Process)
  • 데이터와 프로세스의 상관 관점 : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 방법(Interaction)

데이터 모델의 기본 개념의 이해

데이터 모델링의 정의

  • 정보시스템을 구축하기 위해, 해당 업무에 어떤 데이터가 존재하는지 또는 업무가 필요로 하는 정보는 무엇인지를 분석하는 방법
  • 업무에서 필요로 하는 데이터를 시스템 구축 방법론에 의해 분석하고 설계하여 정보시스템을 구축하는 과정

데이터 모델이 제공하는 기능

  • 시스템을 현재 또는 원하는 모습으로 가시화하도록 도와준다.
  • 시스템의 구조와 행동을 명세화 할 수 있게 한다.
  • 시스템을 구축하는 구조화된 틀을 제공한다.
  • 시스템을 구축하는 과정에서 결정한 것을 문서화한다.
  • 다양한 영역에 집중하기 위해 다른 영역의 세부사항은 숨기는 다양한 관점을 제공한다.
  • 특정 목표에 따라 구체화된 상세 수준의 표현 방법을 제공한다.

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

데이터 모델링의 중요성

  • 파급효과(Leverage)
    • 시스템 구축이 완성되어가는 시점에 이행되는 수많은 단위 테스트에서 데이터 모델의 변경이 불가피한 데이터 모델 구조의 변경으로 인한 일련의 변경 작업은 시스템 구축 프로젝트에서 큰 위험 요소
  • 복잡한 정보 요구사항의 간결한 표현(Conciseness)
    • 데이터 모델은 구축할 시스템의 정보 요구사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구
  • 데이터 품질(Data Quality)
    • 데이터베이스에 담겨있는 데이터는 기업의 중요한 자산
    • 데이터는 기간이 오래될수록 활용가치가 높아지므로 저장된 데이터의 품질은 매우 중요

데이터 모델링을 할 때 유의점

  • 중복 : 데이터베이스가 여러 장소에 같은 정보를 저장하지 않도록 함 (중복성 최소화)
  • 비유연성 : 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄임 (유연성 높임)
  • 비일관성 : 데이터와 데이터간 상호 연관관계를 명확하게 하여 일관성있게 데이터를 유지하도록 함.

데이터 모델링의 3단계 진행

  • 데이터 모델링은 추상화 수준에 따라 개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델로 정리
    • 개념적 데이터 모델링 : 추상화 수준이 높고 업무중심적이고 포괄된 수준의 모델링 진행, 전사적 데이터 모델링, EA 수립시 많이 이용
    • 논리적 데이터 모델링 : 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현. 재사용성이 높음
    • 물리적 데이터 모델링 : 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계

개념적 데이터 모델링

  • 개념적 데이터 모델링은 조직, 사용자의 데이터 요구사항을 찾고 분석하는데서 시작
  • 이 단계에서 주요한 활동은 핵심 엔터티와 그들 간의 관계를 발견하고, 그것을 표현하기 위해서 엔터티-관계 다이어그램을 생성하는 것
  • 개념 데이터 모델을 통해 조직의 데이터를 요구를 공식화하는 것은 두 가지 중요한 기능을 지원
    • 사용자와 시스템 개발자가 데이터 요구사항을 발견하고 시스템 기능에 대해 논의할 수 있는 기반 형성
    • 현 시스템이 어떻게 변형되어야 하는가를 이해하는데 유용

논리적 데이터 모델링

  • 데이터베이스 설계 프로세스의 Input으로써 비즈니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법 또는 과정
  • 논리 데이터 모델링의 핵심은 누가(Who), 어떻게(How) 데이터에 액세스하는지, 비즈니스 데이터에 존재하는 사실들을 인식하여 기록하는 것
  • 이 단계에서 수행하는 중요한 활동은 정규화
    • 논리 데이터 모델의 일관성을 확보하고 중복을 제거하여 속성들이 가장 적절한 엔터티에 배치되도록 함으로써 보다 신뢰성있는 데이터 구조를 얻도록 함
  • 논리 데이터 모델의 상세화는 식별자 확정, 정규화, M:M 관계 해소, 참조 무결성 규칙 정의 등을 들 수 있음

물리적 데이터 모델링

  • 논리 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인가를 다룸
  • 이 단계에서 결정되는 것은 테이블, 칼럼 등으로 표현되는 물리적인 저장구조와 사용될 저장장치, 자료를 추출하기 위해 사용될 접근 방법 등이 있음

프로젝트 생명주기(Life Cycle)에서 데이터 모델링

  • 계획 → 분석 → 설계 → 개발 → 테스트 → 전환/이행 → 정보시스템 구축
  • 일반적으로는 계획 또는 분석단계에서 개념적 데이터 모델링이, 분석 단계에서는 논리적 데이터 모델링이, 설계단계에서는 물리적 데이터 모델링이 수행된다.
  • 현실 프로젝트에서는 개념적 데이터 모델링이 생략된 개념/논리 데이터모델링이 분석단계때 대부분 수행된다.

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

데이터 독립성의 필요성

  • 지속적으로 증가하는 유지보수 비용 절감
  • 데이터 복잡도를 낮추고 중복된 데이터를 줄임
  • 끊임없이 요구되는 사용자 요구사항에 대해 화면과 데이터베이스간에 서로 독립성을 유지

  • 데이터 독립성을 확보하게 되면 다음과 같은 효과를 얻을 수 있음
    • 각 View의 독립성을 유지하고 계층별 View에 영향을 주지 않고 변경 가능
    • 단계별 Schema에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다름을 제공

데이터베이스 3단계 구조

  • 데이터 독립성 확보를 목표로 함
  • 외부 단계 : 사용자와 가까운 단계로 사용자 개개인이 보는 자료에 대한 관점과 관련이 있는 스키마 구조. 사용자가 처리하고자 하는 데이터 유형, 관점, 방법에 따라 다른 스키마 구조를 가짐
  • 개념적 단계 : 데이터 유형의 공통적인 사항을 처리하는 통합된 뷰를 스키마 구조로 디자인한 형태
  • 내부적 단계 : 데이터가 물리적으로 저장된 방법에 대한 스키마 구조

데이터 독립성 요소

  • 외부스키마(External Schema) - View 단계
    • 여러 개의 사용자의 관점으로 구성, 즉 개개 사용자 단계로서 각 사용자가 보는 개인적 DB 스키마
    • DB의 개개 사용자나 응용프로그래머가 접근하는 DB 정의
  • 개념스키마(Conceptual Schema) - 개념 단계
    • 하나의 개념적 스키마로 구성, 모든 사용자 관점을 통합한 조직 전체의 DB를 기술하는 것
    • 모든 응용시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 DB를 기술한 것으로 DB에 저장되는 데이터와 그들간의 관계를 표현하는 스키마
  • 내부스키마(Internal Schema) - 내부 단계
    • DB가 물리적으로 저장된 형식
    • 물리적 장치에서 데이터가 실제적으로 저장되는 방법을 표현하는 스키마

두 영역의 데이터 독립성

  • 논리적 독립성
    • 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원하는 것
    • 논리적 구조가 변경되어도 응용 프로그램에 영향 없음
    • 사용자 특성에 맞는 변경 가능
    • 통합 구조 변경 가능
  • 물리적 독립성
    • 내부스키마가 변경되어도 외부/개념 스키마는 영향을 받지 않도록 지원하는 것
    • 저장장치의 구조 변경은 응용프로그램과 개념스키마에 영향 없음
    • 물리적 구조 영향 없이 개념구조 변경 가능
    • 개념구조 영향 없이 물리적인 구조 변경 가능

사상(Mapping)

  • 상호 독립적인 개념을 연결시켜주는 다리
  • 외부적/개념적 사상(논리적 사상)
    • 외부 화면이나 사용자에게 인터페이스하기 위한 스키마 구조는 전체가 통합된 개념적 스키마와 연결됨
    • 외부적 뷰와 개념적 뷰의 상호관련성을 정의함
    • 사용자가 접근하는 형식에 따라 다른 타입의 필드를 가질 수 있음
  • 개념적/내부적 사상(물리적 사상)
    • 통합된 개념적 스키마 구조와 물리적 으로 저장된 구조의 물리적인 테이블스페이스와 연결되는 구조
    • 개념적 뷰와 저장된 데이터베이스의 상호관련성 정의
    • 만약 저장된 데이터베이스 구조가 바뀐다면 개념적/내부적 사상이 바뀌어야 함

데이터 모델링의 중요한 세가지 개념

데이터 모델링의 세가지 요소

  • 업무가 관여하는 어떤 것(Things)
  • 어떤 것이 가지는 성격(Attributes)
  • 업무과 관여하는 어떤 것 간의 관계(Relationships)

단수와 집합(복수)의 명명

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

  • 정보시스템 구축 프로젝트에 참여하는 모든 IT 기술자들은 데이터 모델리에 대해 정확하게 알고 있어야 한다.
  • IT 기술에 종사하거나 전공하지 않았더라도 해당 업무에서 정보화를 추진하는 위치에 있는 사람도 데이터 모델링에 대한 개념 및 세부사항에 대해 어느정도 지식을 가지고 있어야 한다.

데이터 모델의 표기법인 ERD의 이해

데이터 모델 표기법

  • 1976년 피터첸(Peter Chen)이 Entity-relationship model(E-R Model)이라는 표기법을 만듦
  • 엔터티를 사각형으로, 관계를 마름모, 속성을 타원형으로 표현

ERD(Entity Relationship Diagram) 작성 순서

  1. 엔터티를 그린다.
  2. 엔터티를 적절하게 배치한다.
    • 가장 중요한 엔터티를 왼쪽 상단에 배치하고 이것을 중심으로 다른 엔터티를 나열하면서 전개
  3. 엔터티간 관계를 설정한다.
    • 초기에는 모두 Primary Key로 속성이 상속되는 식별자 관계를 설정하도록 함
    • 중복되는 관계가 발생되지 않도록 하고 Circle 관계도 발생하지 않도록 유의하여 작성
  4. 관계명을 기술한다.
    • 관계 설정이 완료되면 연결된 관계에 관계 이름 부여
    • 관계 이름은 현재형을 사용하고 지나치게 포괄적인 용어(ex. 이다, 가진다 등)는 사용하지 않음
    • 대부분의 관계는 엔터티의 성질과 주식별자를 보고 유츄 가능
  5. 관계의 참여도(관계차수(Cardinality))를 기술한다.
    • IE표기법으로는 하나(1, One)의 관계는 실선으로 표기하고 Barker 표기법으로는 점선과 실선을 혼합하여 표기
    • 다수참여(Many)의 관계는 까마귀발과 같은 모양으로 그려줌
  6. 관계의 필수여부를 기술한다.
    • 관계의 필수/선택표시는 관계선에 원을 표현

좋은 데이터 모델의 요소

  • 완전성(Completeness) : 업무에서 필요로 하는 모든 데이터가 데이터 모델에 정의되어 있어야 함
  • 중복배제(Non-Redundancy) : 하나의 데이터베이스 내에 동일한 사실은 반드시 한 번만 기록하여야 함
  • 업무규칙(Business Rules) : 데이터 모델링 과정에서 도출되고 규명되는 수많은 업무규칙을 데이터 모델에 표현하고 이를 해당 데이터 모델을 활용하는 모든 사용자가 공유할 수 있도록 제공해야 함
  • 데이터 재사용(Data Reusability) : 합리적으로 잘 정돈된 방법으로 데이터를 통합하여 데이터의 집합을 정의하고 이를 데이터 모델로 잘 표현하여 활용한다면 웬만한 업무 변화에도 데이터 모델이 영향을 받지 않고 운용할 수 있게 됨.
  • 의사소통(Communication) : 데이터 모델에 표현되는 업무 규칙들을 해당 정보시스템을 운용, 관리하는 많은 관련자들이 설계자가 정의한 업무 규칙들을 동일한 의미로 받아들이고 정보 시스템을 활용할 수 있게 하면서 데이터 모델이 의사소통의 도구로서의 역할을 함
  • 통합성(Integration) : 가장 바람직한 데이터 구조의 형태는 동일한 데이터는 조직의 전체에서 한번 만 정의되고 이를 여러 다른 영역에서 참조, 활용하는 것
profile
코드로 꿈을 펼치는 개발자의 이야기, 노력과 열정이 가득한 곳 🌈

0개의 댓글