[SQLD] 데이터 모델링의 이해

박진우·2022년 5월 19일
0

SQLD

목록 보기
1/21
post-thumbnail

모델링의 이해

  • 모델링 : 현실세계의 다양한 현상을 표기법에 의해 단순화하여 표기하는 것.

  • 특징 3 가지

    1) 추상화 - 현실을 일정한 형식이나 표기에 맞춰 표현하는 것

    2) 단순화 - 제한된 표기법,언어로 누구나 이해하기 쉽게 표현하는 것

    3) 명확성 - 명확히 하나의 의미만을 갖도록 이해가 쉽게 표현하는 것

  • 관점 3 가지

    1) 데이터 관점

    업무가 어떠한 데이터와 관련이 있는지, 데이터와 데이터간의 관계는 무엇인지 즉 업무와 데이터 및 데이터 사이의 관계

    2) 프로세스 관점

    업무가 실질적으로 하고있는 일, 어떠한 일을 해야하는지. 즉 진행하고 있거나 진행이 되어야 하는 업무.

    3) 상관 관점

    업무의 처리방식에 따른 데이터에 대한 영향 즉 업무의 방법에 따라 데이터가 어떤 영향을 받는지

데이터 모델링의 정의

데이터 모델링(Data Modeling)이란 Data Base(DB)에 저장할 데이터를 위한 데이터 모델을 만드는 프로세스를 의미.

◽ 목적

1) 정보들을 일정한 표기법으로 통일하여 업무의 내용을 정확하게 분석해 업무 내용 분석 정확도 증대

2) 분석된 데이터 모델을 기초로 실제 DB를 생성해 개발 및 데이터 관리에 사용


◽ 기능

1) 가시화

  • 시스템을 현재 또는 원하는 모습으로 볼 수 있도록 도와준다

2) 명세화

  • 시스템 구조와 행동을 명세화 할 수 있도록 도와준다.

3) 구조화된 틀 제공

  • 시스템을 구축하는데에 필요한 구조화된 틀을 제공한다.

4) 문서화

  • 시스템을 구축하는 과정에서 결정한 것을 문서화한다.

5) 다양한 관점 제공

  • 다양한 영역에 집중을 하기 위해 다른 영역의 세부사항은 숨기는 다양한 관점을 제공한다.

6) 구체화

  • 특정 목표에 따라 구체화된 상세한 수준의 표현방법을 제공한다.


◽ 중요성 및 유의점

1. 파급효과(Leverage)

시스템 구축이 완성되어가는 시점에서는 많은 어플리케이션이 테스트를 수행하고 대규모의 데이터 이행을 성공적으로 수행하기 위해 많은 단위 테스트 ,병행테스트, 통합테스트를 수행하게 된다.

만약에 이러한 시점에 데이터 모델의 변경이 불가피한 상황이 발생한다고 가정해보면 이를 위해서 데이터 구조의 변경에 따른 파급효과는 커질 수 밖에 없다.

큰 시스템에서 데이터 구조의 변경으로 인한 일련의 변경작업은 큰 위험요소일 것 이다. 이러한 이유로 시스템 구축 작업 중에서 다른 어떠한 설계과정보다 데이터 설계가 더 중요하다.

2. 간결한 표현(Conciseness)

정보 요구사항을 파악하는 가장 좋은 방법은 수많은 페이지의 기능적인 요구사항을 파악하는 것보다 간결하게 그려져 있는 데이터 모델을 리뷰하면서 파악하는 것이 훨씬 빠른 방법이기 때문에 요구사항과 한계를 간결하고 명확하게 표현 할 수 있어야 한다.
정보 요구사항과 한계를 간결하게 표현할수 있도록 도와주는 도구이다

3. 데이터 품질(Data Quality)

  • 데이터 품질의 중요성

    DB에 들어있는 데이터는 가장 중요한 자산이라고 할 수있다. 데이터 품질 기간이 오래될 수록 활용가치는 매우 높아진다.

    그런데 이러한 오랫동안 저장된 데이터가 그저 그런 데이터, 정확성이 떨어지는 데이터 오류가 많은 데이터라면 작은문제에서 시작해서 궁극적으로는 엄청나게 커져 오랜기간 숙성된 데이터를 실질적으로 사용하려고 하는 시점에서 문제가 터지게 된다. 데이터 품질이 중요한 이유가 여기에 있다.

* 데이터 품질의 유의성

1) 중복(Duplication)
-데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 한다.

2) 비유연성(Inflexibility)
-데이터 모델의 설계에 따라서 사소한 업무변화에도 데이터 모델이 수시로 변경되기 때문에 유지보수의 어려움을 가중 시킬 수 있다.
따라서 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.

3) 비일관성(Inconsistency)
-데이터의 중복이 없더라도 비일관성은 발생한다. 개발자가 다른 데이터와 모순된다는 고려 없이 일련의 데이터를 수정할 수 있기 때문에 데이터 모델링을 할 때 데이터와 데이터간 상호 연관 관계에 대한 명확한 정의는 이러한 위험을 사전에 예방할 수 있도록 해준다.

* 데이터 모델링 3단계

  • 개념적 데이터 모델링 : 추상화 수준이 높고 업무중식적이고 포괄적인 수준의 모델링을 진행합니다. 전사적 데이터 모델링(Enterprise), EA수립시 많이 이용하거,
    엔터티와 속성을 도출하고 ERD를 작성함, 업무 중심적이고 포괄적인 수준의 모델링이다.

    개념 데이터 모델을 통해 조직의 데이터 요구를 공식화하는 것은 두가지 중요한 기능을 지원한다.

1), 개념 데이터 모델은 사용자와 시스템 개발자가 데이터 요구 사항을 발견하는 것을 지원한다. 사용자와 개발자가 시스템 기능에 대해서 논의할 수 있는 기반을 형성한다.

2), 현 시스템이 어떻게 변형되어야하는가를 이해하는데 유용하다.

  • 논리적 데이터 모델링 : 비즈니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법 또는 과정이라 할 수 있으며,"데이터 모델링이 최종적으로 완료된 상태"라고 정의할 수 있고,

    식별자를 도출하고 속성과 관계 등을 정의하며, 정규화를 수행하여 데이터 모델의 독립성과 재사용성 확보한다, 논리 데이터 모델은 데이터 모델링 완료 상태이다.

  • 물리적 데이터 모델링 : 논리 데이터 모델이 데이터 저장소로써 실질적 DB를 구축하며, 성능 및 보안 등 물리적인 성격 고려한다.

DB의 3단계 구조

ANSI/SPARC의 3단계 구성의 데이터 독립성 모델 외부단계와 개념적 단계, 내부적 단계로 구성된 서로 간섭되지않는 모델을 제시해 데이터 독립성 확보를 목표로 한다.

3-Level-Schema

  • 외부 스키마: 각 사용자 단계의 개인적 DB 스키마, 사용자 관점, 응용 프로그램이 접근하는 DB를 정의한다.

  • 개념 스키마: 조직 전체의 통합된 DB 스키마, 설계자 관점 데이터 모델링의 지향점이다.

  • 내부 스키마: 물리적으로 데이터가 저장되는 방법을 표현하는 스키마, 개발자의 관점, 물리적 저장 구조이다.

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

1) 업무가 관여하는 어떤 것(Thing)
2) 어떤 것이 가지는 성격(Attribute)
3) 업무가 관여한느 어떤 것 간의 관계(Relationships)

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

실제 업무 시스템을 구축하는 실전에서는 DBA가 데이터 모델링을 전적으로 혼자 하는 예는 거의 없다고 한다.
오히려 시스템을 개발하는 응용시스템개발자가 데이터 모델링도 같이 하게된다.
이러한 이유는 데이터 모델링이라는 과정은 단순히 "DB설계"가 아니라 업무를 이해하고 분석하여 표현하는것이 중요하기 때문이다.

정보시스템을 구축하는 모든 사람, 관련된 모든 인물을 데이터 모델링을 전문적으로 할 수 있거나 적어도 이해하며 해석할 수 있어야한다.

0개의 댓글