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설계 > 데이터모델링, #개념적, #논리적, #물리적 모델링
'개발정보' 카테고리의 다른 글
Oracle Data Dictionary ( 데이터 사전 ) (0) | 2019.06.22 |
---|---|
넥사크로 기술지원 및 라이센스 받을 수 있는 사이트 URL (0) | 2019.06.22 |
데이터베이스 카디널리티(Database Cardinality) (0) | 2019.06.22 |
촛불 하나, 꿈이 사라지다. (0) | 2019.06.22 |
오두막 가마솥 손두부·곰탕, 연천 맛집, 재인 폭포 맛집 (0) | 2019.06.22 |