티스토리 뷰

1. 모델링의 이해

① 모델링의 정의

 

모델링을 현실세계로 표현하자면, 

사람이 어떤 목적을 달성하기 위해 커뮤니케이션의 효율성을 극대화한 고급화된 표현방법이다.

현실세계는 사람, 사물, 개념 등에 발생되며 이것을 표기법에 의해 규칙을 가지고 표기하는 것 자체를 모델링이라 한다.

즉, 모델링은 모델을 만들어가는 일 자체이다.

모델링의 정의

 


② 모델링의 특징

 

▷ 모델링의 특징 ( 3대 특징 ) : 추상화, 단순화, 명확화

 

 

1) 추상화 

    : (모형화, 가설적)

      다양한 현상을 일정한 양식인 표기법에 의해 표현함.

 

2) 단순화

    : 약속된 규약에 의해 제한된 표기법이나 언어로 쉽게 이해할 수 있도록 표현함.

 

3) 명확화

    : 누구나 이해하기 쉽게 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술함.

 

추상화  일정한 형식
단순화  약속된 규약에 의거 제한된 표기
명확화  누구나 쉽게 이해

 

 


③ 모델링의 세 가지 관점

 

▷ 모델링의 관점 ( 3가지 관점 ) : 데이터 관점, 프로세스 관점, 데이터와 프로세스의 상관관점

 

모델링의 관점

1) 데이터 관점

    : ( What, Data )

      업무가 어떤 데이터와 관련인지, 데이터간의 관계는 무엇인지.

 

2) 프로세스 관점

    : ( How, Process )

      업무가 실제 하고있는 일은 무엇인지, 무엇을 해야 하는지.

 

3) 데이터와 프로세스의 상관관점

    : ( Interaction)

      업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지.

 

 

 

 

 

 


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

① 모델링의 정의

 

데이터베이스의 논리적인 구조를 이해하는 데이터 모델을 이해하는 것은,

SQL 문장을 어떻게 구성할 지에 대한 지식과 효율적인 구성에 대한 밑바탕의 지식을 쌓기 위한 핵심 이론이다.

 

데이터 모델링

※ 데이터 모델링

 

1) 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법

    ( 해당 일에 어떤 데이터가 존재, 일이 필요로 하는 정보가 무엇인지 분석 ) 

 

2) 현실세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정

    ( 기업 업무에 대한 이해를 바탕으로 데이터에 존재하는 업무 규칙(Business Rule)에 대하여 

      참/거짓을 판별할 수 있는 사실을 데이터에 접근하는 방법(How), 사람(Who), 전산화 와는 독립적인 관점에서 

      이를 명확하게 표현하는 추상화 기법 ) 

 

3) 데이터베이스를 구축하기 위한 분석/설계의 과정

 

 

데이터 모델링은 단지 데이터베이스를 구축하기 위한 용도만이 아닌, 데이터 모델링 자체로서 업무를 설명하고 분석하는 부분에도 매우 중요한 의미를 가지고 있다.

 

 

 


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

 

▷ 기능 : 가시화, 명세화, 구조화된 틀, 문서화, 다른 세부사항 숨기기, 상세수준의 표현방법

 

1) 시스템을 원하는 모습으로 가시화 한다.

2) 시스템의 구조와 행동을 명세화 한다.

3) 시스템을 구축하는 구조화된 틀을 제공 한다.

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

5) 다른 영역의 세부 사항은 숨기는 다양한 관점을 제공 한다.

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

 

 

 

 

 

 


3. 데이터 모델링의 중요성 / 유의점

▷ 데이터 모델링의 중요한 이유 : 파급효과, 복잡한 정보 요구사항의 간결한 표현, 데이터 품질

 

 

① 파급효과 ( Leverage )

 

데이터 구조의 변경 → 전체 시스템 구축에서 큰 위험 요소

 

: 성공적인 대규모의 데이터 이행을 위해 많은 단위 테스트들이 수행, 반복된다. ( 병행 테스트, 통합 테스트 )

  데이터 구조의 변경에 따른 많은 영향 분석에서, 실제적인 변경 작업이 발생하게 된다.

  일련의 변경 작업은 전체 시스템 구축 프로젝트에서 큰 위험 요소이다.

  즉, 시스템 구축 작업 중에서 데이터 설계가 가장 중요하다.

 

 

 

② 복잡한 정보 요구사항의 간결한 표현 ( Conciseness )

 

정보 요구사항이 정확하고 간결하게 표현되어야 함

 

: [간결하게 그려져 있는 데이터 모델을 리뷰, 파악] > [많은 페이지의 기능적인 요구사항을 파악]

 

  데이터 모델은 건축물에서 설계 도면에 해당한다.

  간결한 표현은 이상적으로 역할을 할 수 있는 모델이 갖추어야 할 가장 중요한 점이다.

 

 

 

③ 데이터 품질 ( Data Quality )

 

데이터 품질의 문제 → 데이터 접근의 문제

 

: 데이터는 기간이 오래될수록 활용가치가 더 높아진다.

  데이터의 문제는 오랜 기간의 데이터를 전략적으로 활용하려고 하는 시점에 문제가 발생한다.

   

  ' 데이터 구조의 문제 ' 는 데이터 품질의 문제를 야기한다.

  중복 데이터의 미정의, 데이터 구조의 비즈니스 정의의 불충분, 동일한 성격의 데이터 미통합/분리의 데이터 불일치.

 

 

데이터 모델링 유의점 : 중복, 비유연성, 비일관성

 

    1) 중복 ( Duplication )

         : 데이터베이스가 여러 장소에 같은 정보를 중복으로 저장하지 않도록 한다.

 

    2) 비유연성 ( Inflexibility )

         : 데이터의 정의를 데이터의 사용 프로세스와 분리해서, 데이터베이스에 변화를 줄인다.

           (사소한 변화에도 데이터 모델이 수시로 변경됨 → 유지보수의 어려움)

 

    3) 비일관성 ( Inconsistency )

         : 데이터와 데이터 간 상호 연관 관계에 대해 명확하게 정의한다.

           (데이터의 중복이 없더라도 비일관성이 발생할 수 있다)

 

 

 

 

 


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

 

데이터 모델은 데이터베이스를 만드는 설계서이다.

 

현실세계에서 데이터 베이스까지 만들어내는 과정은 시간에 따라 진행되는 과정이다.

( 개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델 )

 

개념적 : 개체 ☞ 개념적 구조

논리적 : 개념적 구조 ☞ 논리적 구조

물리적 : 논리적 구조 데이터베이스 

 

현실세계와 데이터베이스 사이의 모델

 

 

※ 순서 ) 개념적 데이터 모델 → 논리적 데이터 모델 → 물리적 데이터 모델

 

개념 - 논리 - 물리 데이터 모델링

 


① 개념적 데이터 모델링 ( Conceptual ) - 1단계

 

◈ 정의 : 데이터 요구사항을 찾고 분석함. 

            어떤 자료가 중요하고 유지되어야 하는지 결정.

 

◈ 엔터티 - 관계 다이어그램 생성

    : 어떤 데이터가 중요한지 나타내기 위함.

 

◈ 전사적 데이터 모델 (Enterprise Data Model)

 

◈ 데이터 요구 공식화 2가지 기능

    1) 사용자 - 개발자가 데이터 요구 사항을 발견하도록 지원

       개념 데이터 모델은 추상적→ 상위의 문제 구조화를 쉽게 하고 시스템 기능에 대한 논의의 기반을 형성

 

    2) 시스템이 어떻게 변형 되어야 하는지 이해에 유용

       추상적 모델링을 통해 쉽게 표현, 설명 가능

 

 

 

② 논리적 데이터 모델링 ( Logical ) - 2단계

 

◈ 정의 : 데이터베이스 설계 프로세스의 Input.

            비즈니스 정보의 논리적인 구조와 규칙을 명확하게 표현.

            데이터 모델링 과정에서 가장 핵심이 되는 부분.

 

◈ 데이터 모델링이 최종적으로 완료된 상태

    ( 물리적인 스키마 설계를 하기 전 단계 )

 

◈ Who, How Process

    : 누가 데이터에 엑세스 할지 

 

◈ 단지 ERD로 그려내는 과정이 아님

 

◈ 결정해야할 대부분의 사항을 모두 정희하는 시스템 설계의 전 과정을 지원

 

◈ 논리적 데이터 모델의 상세화

     : 정규화, 식별자 확정, M:M 관계 해소, 참조 무결성 규칙 정의

 

 

 

③ 물리적 데이터 모델링 ( Physical ) - 3단계

 

◈ 정의 : 논리 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인가를 정의함.

 

 물리적 스키마 : 데이터가 물리적으로 컴퓨터에 어떻게 저장될 것인가에 대한 정의

 

◈ 물리적 데이터 모델링에서 해야 할 사항

    : 1) 테이블, 칼럼 등 (무리적인 저장구조)

      2) 사용될 저장 장치

      3) 자료를 추출하기 위한 접근 방법    

 

◈ 현실 프로젝트에서 3단계를 차례로 수행하는 경우는 드물다.

    개념적, 논리적 데이터 모델을 한번에 수행하여 논리적인 데이터 모델링으로 수행하는 경우가 대부분.

 

 

 

 

 

 


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

 

Waterfall 기반

 

데이터 모델링의 위치가 분석과 설계 단계로 구분되어 명확하게 정의함.

 

<데이터 축 - 애플리케이션 축> 으로 구분한다.

데이터 모델링과 프로세스 모델링을 구분하지 않고 일체형으로 진행한다.

( ex. 데이터(속성)와 프로세스(Method)가 같이 있는 Class )

 

프로젝트 생명주기에 따른 데이터 모델

 

 

 

 

 


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

① 데이터 독립성의 필요성

 

데이터 독립성의 목적은, 상호간 영향에서 벗어나 개별 형식이 가지고 있는 고유의 기능을 유지시키며, 기능을 극대화하는 것이다.

 

SOA (독립적인 비즈니스로 처리 가능한 단위)

BPM (다른 서비스에 비해 독립성을 구성하여 개별적인 의미가 있고, 다른 서비스와 결합하여 프로세스로 제공해도 의미가 있는 단위)

 

데이터 독립성  ↔  데이터 종속성

 

 

 

《 장점 》

1) 어떤 단위에 대해 독립적인 의미를 부여

2) 효과적으로 구현

3) 고유한 특징을 명확하게 함

4) 다른 기능의 변경으로부터 쉽게 변경되지 않음

5) 자신의 고유한 기능을 가지고 기능을 제공함

 

 

데이터독립성의 필요성

▷ 응용 (Application) : 사용자 요구사항을 처리하는 사용자 접점의 인터페이스 오브젝트

     ㄴ 종속의 주체

 

사용자가 접근하는 유형에 따라 데이터를 구성하는 방법에 영향이 있다.

 

 

데이터독립성 목적

   

   1) 지속적으로 증가하는 유지보수 비용 절감

   2) 데이터 복잡도를 낮춤

   3) 중복된 데이터를 줄이기 위함

   

   ∴ 데이터베이스 간에 서로 독립성을 유지하기 위한 목적

 

 

데이터독립성 효과

 

   1) 각 View의 독립성 유지, 계층별 View에 영향 없이 변경 가능

   2) 단계별 Schema에 따라 DDL 와 DML 가 다름을 제공

      ( DDL : 데이터 정의어   /   DML : 데이터 조작어 )

 

▷ ANSI 모델 - 3단계 : 구조, 독립성, 사상(Mapping)

 

 


② 데이터베이스 3단계 구조

 

DBMS 와 인터페이스를 위해 제안된 ' Three-Schema Architecture '

 

* ANSI / SPARC

 

▷ 데이터베이스 3단계 : 외부 단계, 개념적 단계, 내부적 단계

 

데이터독립성

 

외부 단계 사용자와 가까운 단계, 사용자 개개인의 관점

사용자가 처리하고자 하는 데이터 유형과 관점, 방법에 따라
다른 스키마 구조를 가짐
개념적 단계 공통적인 사항을 처리하는 통합된 뷰의 스키마 구조
내부적 단계 데이터가 물리적으로 저장된 방법에 대한 스키마 구조

 

 

 

 


③ 데이터독립성 요소

 

데이터베이스 스키마 구조 3단계 : 외부스키마, 개념스키마, 내부스키마

 

데이터독립성 구성요소

※ 데이터베이스 스키마 특징

  1) 각각 상호 독립적인 의미를 가짐.

  2) 각각 고유한 기능을 가짐.

 

* 외부스키마

   : 개인적 DB 스키마

 

* 개념스키마

   : 모든 사용자 관점을 통합한 전체의 DB 스키마

 

* 내부스키마

   : 물리적 장치에서 실제적으로 저장되는 스키마

 

 

 

 


④ 두 영역의 데이터독립성

 

논리적 독립성 VS 물리적 독립성

 

 

* 논리적인 데이터 독립성

  : 개념 스키마가 외부의 변경에 영향 X

    칼럼 변형은 될 수 있지만, 개별 화면/프로세스에 의해 변화되는 것이 아니다.

    전체 업무적인 요건을 고려해 종합적인 영향이다.

 

* 물리적인 데이터 독립성

  : 외부/개념 스키마가 내부스키마의 변경에 영향 X

    응용 프로그램/개념 스키마가 저장장치의 구조 변경에 영향 X

 

 

논리적, 물리적 데이터 독립성

 

 

 

 


⑤ 사상 ( Mapping )

 

◈ 정의 : 상호 독립적인 개념을 연결시켜줌

 

데이터독립성 사상  -  1) 외부적/개념적 사상 (논리적 사상)

                              -  2) 개념적/내부적 사상 (물리적 사상)

 

사상 (Mapping)

 

논리적 사상  전체가 통합된 개념적 스키마와 연결
물리적 사상  통합된 개념적 스키마 구조와 물리적으로 저장된 구조의 물리적인
 테이블스페이스와 연결

데이터 독립성을 보장하기 위해 사상을 하는 DDL을 DBA가 필요할 때마다 변경해야 함.

 ( DDL : 스크립트 )

 

독립성을 보장하기 위해,

각 단계 ( 외부, 개념적, 내부적 )의 독립성을 보장하기 위해 변경사항이 발생했을 때 DBA가 적절하게 작업을 해준다.

 

 

 

 

 

 

 

 

 


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

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

 

1) Things : 업무가 관여하는 어떤 것

2) Attributes : 어떤 것이 가지는 성격

3) Relationships : 업무가 관여하는 어떤 것 간의 관계

 

* 세 가지 요소는 각각 엔터티, 속성, 관계로 인식되는 것이다. 

 

Things 사물/사건을 바라 볼 때 전체를 지칭하는 어떤 것
Attributes 어떤 것이 가지는 세부적인 사항 (성격)
Relationships 각각의 어떤 것이 다른 어떤 것과 가질 수 있는 연관성 (관계)

세 가지 요소들의 관점의 접근 방법을 통해 모델링을 진행한다.

 


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

 

용어의 구분정의

* Entity (엔터티) : 어떤 것의 전체를 지칭하는 것

 

1) Things : 엔터티를 단수명사로도 사용하지만, 엔터티를 복수/집합 개념으로 사용할 때는 인스턴스/어커런스를 단수로 사용.

2) Attributes : 속성 ( 복수/집합 개념 ) - 속성값 ( 개별/단수 개념 )

3) Relationships : 관계 ( 복수/집합 개념 ) - 패어링 ( 개별/단수 개념 )

 

 

 

 

 

 


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

① 이해관계자의 데이터 모델링 중요성 인식

 

* DBA (DataBase Administrator) 

 

데이터 모델링 과정은 단지 데이터베이스를 설계한다는 측면보다는, 업무를 이해하고 분석하여 표현하는 것이 중요하다.

다른 표기법과 비교 검증 등의 많은 시간을 분석하고 설계하는데 사용한다.

 

정보 시스템을 개발할 때, 데이터 모델링, 데이터베이스 구축, 구축된 데이터 이 중요하다.

 

자료 처리의 중심은 데이터

 

※ 잘못된 데이터베이스 설계로 미치는 영향력

    1) 모든 프로그램

    2) 입력되는 모든 데이터

    3) 데이터베이스에 발생되는 모든 트랜잭션

 

 

 

 

 


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

 

데이터 모델링에 대해 연구/학습 해야하는 사람?

1) 정보시스템을 구축하는 모든 사람 ( 전문적으로 코딩人 ) 

2) 정보화를 추진하는 위치의 모든 사람

    : 데이터 모델링에 대한 개념 및 세부사항에 대한 어느정도의 지식을 가져야 한다.

 

업무를 잘못 해석하고, 잘못된 시스템을 구축하는 위험(Risk)을 줄일 수 있다.

 

 

데이터 모델 이해관계자

 

 

 

 

 

 

 


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

① 데이터 모델 표기법

 

* E-R-Model ( Entity - Relationship Model ) 

  엔터티 - 사각형

  관계    - 마름모

  속성    - 타원형

 

E-R 표기법

 

 


② ERD ( Entity Relationship Diagram ) 표기법을 이용하여 모델링하는 방법

 

* ERD : 엔터티 - 엔터티 간의 관계를 이해하기 쉽게 다이어그램으로 표시

          ( 실무에서는 ) 데이터의 흐름과 프로세스와의 연관성을 표시

          ≫ 가장 중요한 표기법 / 산출물

 

ERD를 그림으로써, 일정한 규칙을 지정하여서 데이터 모델을 누구나 공통된 시각으로 파악 가능하고 원활한 의사소통 가능.

 

 

ERD 작성하는 작업 순서

    1) 엔터티를 그림

    2) 엔터티를 적절하게 배치

    3) 엔터티간 관계를 설정

    4) 관계명을 기술

    5) 관계의 참여도 기술

    6) 관계의 필수여부 기술

 

ERD 작업순서

* ERD 

  엔터티 - 엔터티 사이의 관계의 정보  :  2 개 이용하여 작성 (사각형 표기)

  Primary Key 와 Foreign Key 를 ERD 규칙에 따라 기술

 

 


 * 방향 순서 : 왼쪽 → 오른쪽   /   위쪽 → 아래쪽

 * 가장 중요한 엔터티는 왼쪽 상단에서 조금 아래쪽 중앙에 배치함

엔터티 배치 방법

왼쪽 상단 고객, 주문  가장 중요한 엔터티
중앙 주문, 출고, 주문목록, 출고목록  업무 흐름에 중심이 되는 엔터티
중앙 주위 창고, 고객, 사원, 재고  중심엔터티와 관계를 갖는 엔터티

ERD 관계석서를 보고 서로 관계있는 엔터티간에 관계를 설정한다.

 

* 주의할 점 

   1) 중복되는 관계 발생 X

   2) Circle 관계 발생 X

   3) 모두 Primary Key 로 속성이 상속 O

 

ERD 관계 설정


대부분의 관계는 엔터티의 성질과 주식별자를 보고 유추가 가능하다.

( 실제 프로젝트에서는 관계의 명칭을 크게 고려하지 않아도 됨 )

 

ERD 관계명 표시


*

관계차수와 선택성 표시

* 관계차수 / 선택성 표시

  관계차수 ( Cardinality ) : 엔터티 내에 인스턴스들이 얼마나 관계에 참여하는지 나타냄

 

  ⓐ IE 표기법 :  하나(1, One) - 실선 표기

  ⓑ Barker 표기법점선, 실선 혼합 표기

 

   다수참여(Many)의 관계 - 까마귀발 표기

   관계의 필수/선택 표시 관계 - 관계선에 원을 표현

 

 

 

 

 

 

 

 


10. 좋은 데이터 모델의 요소

① 완전성 ( Completeness )

    - 모든 데이터가 데이터 모델에 정의되야 한다.

 

② 중복배제 ( Non-Redundancy )

    - 하나의 데이터베이스 내에 동일한 사실은 반드시 한 번만 기록되야 한다.

       ( ex. '나이' 칼럼 , '생년월일' 칼럼 )

      데이터 관리 비용이 낭비된다.

 

③ 업무규칙 ( Business Rules )

    - 업무규칙을 데이터 모델에 표현하고, 해당 데이터 모델을 활용하는 모든 사용자가 공유할 수 있도록 제공해야 한다.

      ( ex. 업무규칙에 따라 데이터 모델을 사용하는 모든 사용자가 해당 규칙에 대해서 동일한 판단을 하고 데이터를 조작함 )

 

④ 데이터 재사용 ( Data Reusability )

    - 데이터의 재사용성의 향상 : 데이터의 통합성, 독립성을 고려해야 한다.

      통합 모델이면 데이터 재사용성을 향상시킬 수 있다.

      * 과거 정보시스템의 데이터 구조 ) 많은 데이터 중복 발생, 데이터의 일관성 문제 초래

      데이터가 애플리케이션에 대해 독립적으로 설계되야 데이터 재사용성을 향상시킬 수 있다.

      현대의 기업들이 정보시스템을 구축하는 과정에서 데이터 구조의 확장성, 유연성에 노력 중.

      ( ex. A 회사 - 10개의 테이블  VS  B 회사 - 100개의 테이블 )

 

⑤ 의사소통 ( Communication )

    - 데이터 모델은 진정한 의사소통의 도구이다.

      많은 업무 규칙들이 데이터 모델에 엔터티, 서브타입, 속성, 관계 등의 형태로 자세하게 표현되야 한다.

 

⑥ 통합성 ( Integration )

    - 가장 바람직한 데이터 구조의 형태

      : 동일한 데이터는 한번 만 정의해야 한다.  ( 공유 데이터에 대한 구조를 여러 업무 영역에서 공동으로 사용하기 용이하게 정의 )

        여러 다른 영역에서 참조, 활용해야 한다.

 

 

 

 

 


 

 

'SQL > SQLD 1과목' 카테고리의 다른 글

SQLD - 과목1. (6) 성능 데이터 모델링  (0) 2021.03.18
SQLD - 과목1. (5) 식별자  (1) 2021.02.24
SQLD - 과목1. (4) 관계  (0) 2021.02.08
SQLD - 과목1. (3) 속성  (0) 2021.02.07
SQLD - 과목1. (2) 엔터티  (0) 2021.01.31
댓글