개발정보

데이터 모델링

쿠카곰돌이 2019. 6. 22. 13:00
반응형

I. 개요

 가. 정의

 

  현실세계의 업무 프로세스를 이해하기 쉬우 형태로 추상화하여 데이터베이스의 데이터 구조로 표현하기 위한 설계과정.

  현실세계를 추상화, 단순화, 명확화하기 위해 일정한 표기법으로 표현한 기법

 

 나. 특징

특징 

 설명

 추상화

 현실세계를 일정한 형식에 맞추어 표현

 단순화

 복잡한 현실세계를 쉽게 이해 할 수 있도록 제한된 표기법이나 언어로 표현

 명확화

 누구나 이해하기 쉽게 하기 위해 대상에 대한 정확하게 현상을 기술

 

 다. 필요성

  - DBMS 구축에 필요한 제반 기술들의 효율적 적용을 위한 방안 제시

  - 업무 조직과 기술 조직 간의 의사 소통 및 중재

  - 잠재적 위험 요소에 대한 조기 발견 및 해결 방안 제시

 

  - 주요 설계 사항의 추후 변경에 따른 사업 수행의 지연을 방지

 

II. 데이터 모델링의 개념도 및 단계

 가. 데이터 모델링의 개념도

 

 나. 데이터 모델링의 단계

 

←―─―─―─―─―─―─―─    추상화 / 단순화    ―─―─―─―─―─―─―─→

 요구사항분석

 개념 모델링

 논리 모델링

 물리 모델링

데이터 베이스 

 조직의 업무 및 기능 수행을 위한 데이터 요구사항정의 및 분석(요구사항명세서 및 인수기준 확정)

 조직전체 정보요건 표현한 상위수준의 모델로 핵심 엔티티 도출 및 관계를 정의(개념ER모델)

 업무의 요건을 완전하고 정확하게 표현한 모델로 성능 혹은 기술적 제약사항과는 독립적 임(상태 ER모델)

 구현 할 특정 DBMS특징을 최대한 활용. 효율적인 데이터 접근과 성능을 고려하여 시스템의 정보요건을 정확하고 완전하게 표현

 물리적 모델을 특정 데이터베이스에 구현

 ←―─―─―─―─―─―─―─    구체화 / 세분화    ―─―─―─―─―─―─―─→

 

 

구분 

설명 

수준 

산출물

 요구사항 분석

정보화 시스템 구축을 위한 요구사항업무 프로세스 분석

 

 요구사항 명세서

 개념적 데이터 모델링

추상화 수준이 높고 업무중심적이며 포괄적인 수준의 모델링 진행

핵심 엔티티 추출속성 및 관계 정의

조직전체 정보요건 표현한 상위수준 모델

추상화 수준이 높고 업무중심적포괄적 모델링

핵심 엔티티 추출관계 정의

 추상적

 

구체적

 개념ER모델

(ER: Entity Relationship)

 논리적 데이터 모델링

시스템으로 구축하고자 하는 업무에 대해 Key, 속성관계 등을 정확히 표현재상용성을 높임식별자 확정정규화 수행

업무 요건을 완전하고 정확하게 표현한 모델

- 성능, 기술적 제약사항과는 독립적 엔티티와 속성들의 관계에 대해 

  구조적 설계, 스키마 설계

- 정규화 수행

 상세ER모델

(논리적)

 물리적 데이터 모델링

실제로 데이터베이스에 이식할 수 있도록 성능물리적 성격을 고려하여 설계DBMS의 특성 및 종류구현환경을 감안한 스키마 도출

컬럼의 데이터 타입과 크기제약조건/인덱스 정의

구현할 특정 DBMS 특징 활용

성능기술적 제약사항 고려

컬럼의 데이터 타입과 크기인덱스 정의

()정규화 수행

 상세ER모델

(물리적)

 데이터베이스

물리적 모델을 특정 DBMS에 구현

 

 데이터베이스

  - ER모델은 ERD(Entity Relationship Diagram)를 통해 상세화

 

  - 3단계 : (개논물) / 4단계(개논물+DB) / 5단계(요구+개논물+DB) 

 

구분 

 설명

아키텍처 관점 

 개념적 설계

 DB에 저장해야 될 데이터를 모형으로 표현

핵심 엔티티 추출, 전체 데이터 모델 골격 생성

ERD(Entity Relationship Diagram)작성

 논리적 설계

엔티티와 어트리뷰트의 관계에 대해 구조적 설계, 스키마 설계

식별자 확정, 정규화 수행

 구체화 관점

 물리적 설계

 데이터 베이스 스키마를 실제 구축, 사용할 DBMS 실제 선정, 필드의 데이터 타입과 크기 정의

데이터 사용량 분석, 비정규화

 구현 설계

데이터베이스 구현/응용연계 

 

 

 

 

다. 데이터모델링의 3가지 관점

관 점 

 설 명

 데이터 관점

 업무가 어떤 데이터와 관련이 있는지, 데이터간의 관계는 무엇인지에 대해 모델링하는 방법

 프로세스 관점

 업무를 통해 어떤 일을 처리하는지, 무엇을 해야 하는지를 모델링하는 방법

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

 업무에서 일을 처리하는 방법에 따라 데이터가 어떻게 영향을 받는지 모델링하는 방법

상관모델링, CRUD Matrix 기법

 

 

III. 개념적 데이터 모델링

 가. 개념적 데이터 모델링의 정의

   - 해당 조직의 업무 요건을 충족시키기 위해서 주제 영역과 핵심 데이터 집합, 핵심, 데이터 집합 간의 관계를 정의하는 

     상위 수준의 개략적 데이터설계 작업

   - DBMS 클래스나 특정 DBMS와 독립적인 개념적 스키마를 기술하는 과정.

 

 나. 개념적 데이터 모델링의 특징

 특징

 설명

 DB 독립적

 - 특정 DB에 상관 없는 독립적인 스키마를 기술하는 과정

 업무중심적

 - 업무를 중심으로 주제핵심데이터관계속성 등을 도출

 

 

 

  다. 개념적 데이터 모델링의 절차

  - 데이터의 집합, 데이터 집합 간의 관계를 정의하는 상위 수준의 개략적데이터 설계

절차 

 상세내용

 기법 및 종류

 주제영역 선정

 하위주제 영역 또는 데이터 집합들로 구성

업무 기능과 대응

상향식, 하향식,

Inside-out, 혼합식

 핵심데이터 집합 선정(Entity)

 데이터의 보관 단위로서 주제영역에서 중심이 되는 데이터 집합을 정의

독립중심, 의존중심, 의존특성, 의존연관데이터

 관계설정 (Cardinality)

 업무적 연관성에 따라 개체간 갖는relationship 설정

1:1, 1:N, M:N, 순환관계

 핵심속성 정의 (Attribute)

 데이터 집합의 특성을 나타내는 항목

원자단위검증, 유일값 유무판단, 관리수준 상세화

 식별자 정의(Identifier)

 데이터 집합을 유일하게 식별해주는 속성(PK로 구현)

 PK, CK, AK, FK 로 구분

 

 다. 개념 모델의 핵심 엔티티 도출

  -  업무에서 관리하고자 하는 데이터 형태로 주제영역에서 가장 중심이 되는 데이터 집합. 핵심 업무 프로세스(Business Process)와 대응됨.

  -  데이터 집합 중 독립중심 데이터 집합이나, 의존 중심 데이터 집합이 핵심 데이터 집합의 대상이 될 수 있음.

 절차

설명 

 엔터티 후보 선정

- 엔터티 후보의 수집

- 엔터티 후보의 식별(엔터티 후보의 개념 정립, 관리 대상 후보의 선정, 엔터티 후보의 집합 여부 확인)

 엔터티 형태별 분류

- 우선 적용 대상 선별

- 데이터 영역별 분류(엔터티의 명확화, 데이터 클래스의 정의)

 엔터티 자격 검증

- 집합의 순수성 확인, 동질성 범위 결정, 엔터티 명칭 확정

 엔터티 형태 결정

- 유사 엔터티 후보와 개념 조정, 집합의 독립성 검증

- 집합의 이합 집산, 구체적 서브타임 지정

 본질 식별자 확정

- 키 엔터티의 본질 식별자 정의, 행위 엔터티의 본질 식별자 정의

 

라. 개념적 스키마 모델링 기법

구분 

 개체분석

 속성합성

 개체 식별 방식

Entity Analysis

뷰통합 방식: Top-Down, 개체를 먼저 식별하고 속성, , 관계 식별

 Attribute Synthesis

Bottom-Up, 속성과 키속성을 찾고 그 이후에 개체, 관계성을 도출

 장점

부작용이 없음

초기 설계자의 부담이 적음

 단점

설계자가 초기에 모든 업무 개념을 알고 있어야 함

중복이나 재구성 필요성 발생

 

 마. 트랜잭션 모델링

  - 트랜잭션을 개념적 시스템 독립적으로 정의

  - 트랜잭션의 입출력 기능과 형태만 정의 (개념적, 시스템 독립적)

 

  - 응용 및 트랜잭션이 필요로 하는 모든 데이터가 식별되었는지 상호 확인

 

[데이터 모델링의 적용 절차]

데이터 모델링을 적용한 데이터베이스 및 Application 구축 절차

 

라.데이터 모델링의 3가지 관점

관점 

 설명

 데이터 관점

업무와 데이터와 관련성데이터간의 관계에 대해 모델링하는 방법

 프로세스 관점

업무가 어떤 일을 처리하는지무엇을 해야 하는지를 모델링하는 방법

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

- 업무에서 일을 처리하는 방법에 따라 데이터가 어떻게 영향을 받는지 모델링하는 방법

- 상관모델링, CRUD Matrix 기법

 

 

IV. 논리적 데이터 모델링

 가. 논리적 데이터 모델링의 정의

  - 업무의 모습을 모델링 표기법으로 형상화 하여 사람이 이해하기 쉽게 표현

  - 데이터 베이스를 구현하기 위한 업무 중심이면서 데이터 관점의 모델링

  - 개념적 스키마를 특정 DB 모델에 맞는 논리적 스키마로 변환(특정 DBMS 독립적)

  - 엔티티와 어트리뷰트들의 관계를 구조적으로 설계, 스키마 설계, 정규화 수행

 나. 논리적 데이터 모델링의 주요 Task

 

  -  엔티티 타입 선정 ->엔티티 정의서 작성

순서 

 Task

 내용

 특정 순서 없이 

 엔티티 타입 도출

 기본, 중심, 행위 엔티티 타입도출

 진행

 관계 도출

 엔터티 타입 간의 관계 도출

 식별자 도출

 PK, FK, UK, AK 등에 대한 정의

 속성 도출

 기본, 설계, 파생 속성을 정의함

 세부사항도출

 용어사전, 도메인정의, 속성의 규칙

(기본값, 체크값 등) 정의

 정규화

1, 2, 3, BCNF, 4, 5차 정규화 적용

 통합/분할

 엔터티 타입의 성격에 따라 통합, 분할수행

 단계말

 데이터모델 검증

 엔터티 타입, , 관계 등에 대한 적합성 검증

 

 다.  개념적 모델과 논리적 DB 모델의 속성 맵핑

 개념적 모델링

 논리적 DB 설계

 Entity

 Table

 Attribute

 Column

 UID

 Primary key

 Relationship

 Foreign key

 Mandaory

 Not null

 Optional

 Null

 

V. 물리적 모델링

 가. 물리적 데이터 모델링 정의

  -  논리 데이터 모델을 특정 DBMS에 맞는 물리적인 스키마로 만드는 일련의 과정

 

 나. 물리 모델로 의 변환 주요 TASK

 

단계

과정

고려사항

일괄 전환

엔티티 별 테이블로 전환

Sub Type 설계 방안

식별자의 Primary Key 정의

Artificial Key 검토, PK 컬럼 순서 검토

속성의 컬럼 전환

영문 컬럼명 매핑

데이터 타입/길이 결정

Domain 정의

Relationship의 컬럼으로 전환

참조 무결성 규칙 및 구현방안 결정

구조 조정

수퍼타입/서브타입 모델전환

-트랜잭션의 성격에 따라 전체 통합, 부분 통합

-개별유지에 대한 의사 결정을 통해 데이터 모델 조정

성능 향상

성능을 고려한 반정규화

SQL활용능력이 미흡으로 인한 빈번한 비정규화는 배제 하도록 신중하게 검토

 

 다. 구현 단계의 모델링

  - 구현단계의 개요

  - 구현단계는 물리 설계에서 구현된 내용을 바탕으로 실질적인 데이터 베이스를 구축하며 데이터를 적재, 이관함

 

  - 구현 단계의 주요 Task 

Task

상세 내용

데이터 적재

DDL 문으로 생성된 테이블에 해당 데이터를 적재시킴

데이터 변환/이관

기존 데이터베이스의 데이터를 변환하여 새로운 테이블에 적재시킴

데이터 검증

적재된 데이터의 값 및 구조에 대한 검증 수행

어플리케이션 연계

주요 응용 프로그램과 새롭게 설정된 데이터 베이스와의 연계 및 검증

성능 검증

테이블 접근 성능, 데이터 쿼리 성능, 데이터 입력/수정 성능을 평가함

튜닝

어플리케이션, 스크립트, 주요 코드를 변경하여 튜닝을 수행함

 

  - 데이터베이스 개념/논리/물리/구현 단계까지 완료되면 운영 데이터베이스가 완성

 

VI. ERD (Entity Relation Diagram) 작성 절차

 

절차

상세 내용

기법 및 종류

주제 영역 선정

하위 주제 영역 또는 데이터 집합 들로 구성

업무 기능과 대응

상향식, 하향식, Inside-out, 혼합식 설계 방식

핵심 데이터 집합 선정(Entity)

데이터의 보관 단위로써 주제 영역 에서 중심이 되는 데이터 집합을 정의

독립 중심, 의존 중심, 의존 특성, 의존 연관 데이터

관계 설정(Cardinality)

업무적 연관성에 따라 개체간 갖는 Relationship 설정

1:1, 1:N, M:N, 순환관계

핵심속성 정의 (Attribute)

데이터 집합의 특성을 나타내는 항목

원자단위 검증, 유일값 존재 검증, 가공값 유무 판단,

관리수준 상세화 판단

식별자 정의

(Identifier)

데이터 집합을 유일하게 식별해 주는 속성(PK로 구현)

PK, CK, AK, FK로 구분

 

 

 

VII. 데이터모델링 - 엔티티

 가. 엔티티 타입의 정의

  - 업무에 필요한 정보를 저장하고 관리하기 위한 것으로 영속적으로 존재하는 단위.

  -  Entity Type: 개체들을 동일한 유형별로 분류한 단위 (= Entity 집합)

 

 

 나. 엔티티 타입과 표현

  -  Entity: ERD에서 사각형으로 표현하는, 실제 업무에서 의미 있는 객체

 

VIII.  데이터모델링 - 관계

 가. 관계의 정의

 

  - 두 개의 엔티티 타입 사이의 논리적인 관계, 즉 엔티티와 엔티티가 존재하는 형태로써 혹은 행위로써 서로에게 영향을 주는 상태

  정상관계(Normal Relationship)

  

  

 

  엔티티타입과 엔티티타입이 독립적으로 분리되어 있으면서 한 개의 관계만 상호간 존재하는 현태의 관계

 

 나.  관계 표현 - 카디널리티

  - 두개의 엔티티 타입간 관계에서 참여자의 수를 표현하는 것을 카디널리티(Cardinality)라고 함.

 

  - 가장 일반적인 카디넬러티 표현방법은 1:M, 1:1, M:N

   

Cardinality 

 설명

 1:1

관계 표현

카디넬리티(Cardinality) - 1:1(One To One)

 

한개의 구매신청서에 대해 한 개의 구매주문을 신청하고

한개의 구매주문에는 한 개의 구매신청내용을 작성한다.

 

각 엔티티의 어느 입장에서 반드시 단 하나씨 관계를 가질 떄 성립

 1:M

관계 표현

카디넬리티(Cardinality) - 1:M(One To Many)

 

한 명의 사원은 부서에 소속되고

한 부서에는 여러 사원을 포함한다.

 

업무 설계 시, 가장 흔하게 발생하는 관계의 형태로 부모와 자식의 관계처럼 계층적인 구조

 M:M

관계 표현

 카디넬리티(Cardinality) - M:M(Many To Many)

 

하나의 주문서에는 여러 개의 제품을 포함할 수 있고

한 제춤은 여러 개의 주문서에 의해 신청될 수 있다.

 

양쪽 엔티티 모두 1:M 관계가 성립

 

다. 관계의 참여 방법

참여방법

내용

 필수 관계

 참여하는 모든 참여자가 반드시 관계를 가지는 타 엔티티 타입의 참여자와 연결이 되어야 하는 관계

 선택 관계

 선택 참여관계는 ERD에서 관계를 나타내는 선에서 선택 참여하는 엔티티타입 쪽을 원으로 표시

 

관계(Relationship) 참여도(Cardinality)

하나의 주문목록에는 한 개의 목록을 항상 포함하고 한 목록은 여러 개의 주문 목록에에 의해 포함 될 수 있다.

 

IX. 데이터 모델링 - 속성 표현

 가. 속성의 정의

  -  속성이란 업무에 필요한 엔티티에서 관리하고자 하는 더 이상 분리되지 않는 최소의 데이터 단위를 의미

 

 나. 속성과 엔티티타입간의 관계

  

 구분

내용 

 엔티티 타입과의 관계

 한 개의 엔티티 타입은 두 개 이상의 엔티티의 집합으로 구성

한 개의 엔티티는 두 개 이상의 속성 가짐

한 개의 속성은 여러 개의 속성값을 가짐

 

X. 데이터 베이스 설계 시 고려사항

가.    데이터 이상현상(Anomaly)

종류 

 주요개념

 삽입이상

(Insertion Anomaly)

- 릴레이션 R에서 특정 튜플을 삽입 할 경우 원하지 않는 불필요 한 정보까지도 삽입해야 하는 현상

- 특정 데이터를 삽입 시, 원하지 않는 데이터 까지도 삽입해야 되는 현상

 갱신이상

(Update Anomaly)

- 릴레이션 R에서 특정 속성 갱신 시 중복 저장되어 있는 속성 값 중 하나만 갱신하고, 나머지는 갱신하지 

  않아서 발생하는 데이터의 불일치 현상

  갱신이상

(Deletion Anomaly)

 - 릴레이션 R에서 특정 튜플을 삭제 할 경우 원하지 않는 정보까지도 삭제되는 현상

- 어트리뷰트 간 존재하는 다양한 종속성을 하나의 릴레이션으로 구현하려 하는 것이 발생 원인

 

- 정규화(Normalization)을 통해 하나의 종속성이 하나의 릴레이션으로 표현되도록 처리

 

 

구분 

 상세 내용

 무결성

 데이터베이스에 저장된 데이터 값이 만족해야 된 주어진 제약 조건을 데이터베이스 무결성이라고 함

 일관성

 저장된 두 데이터 값 사이나 특정 질의에 대한 응답들에 모순성이 없이 일치하는 특성을 의미함

 회복

 적재된 회복은 시스템에 장애가 발생했을 때 장애 발생 직전의 일관된 데이터베이스 상태로 복구하는 것을 의미

 보안

 의도적이거나 우연을 불문하고 불법적인 데이터의 변경이나 손실 또는 노출에 대한 보호를 의미

 효율성

 효율성은 응답 시간의 단축저장 공간의 최적화시스템의 생산성 등이 포함됨

 확장성

 시스템 운영에 영향을 주지 않으면서 새로운 데이터를 계속적으로 추가시켜 나갈 수 있는 기법을 가지고 있어야 됨을 의미

데이터베이스 설계 과정에서 고려되어야 할 주요 사항은 무결성, 일관성, 회복, 보안, 효율성 및 데이터 베이스 확장임

- 데이터 정확성 보장 및 효과적 활용을 위한 논리적, 기능적 검토 수행

 

- 위의 요건들이 원만히 갖추어 질 때 완성된 DB는 건전하게 운용 가능

 

#데이터베이스 > DB설계 > 데이터모델링, #개념적, #논리적, #물리적 모델링

반응형