현실세계의 업무 프로세스를 추상화하여 데이터베이스의 데이터로 표현하기 위한 설계과정 입니다.
데이터 베이스 구축에 필요한 제반 기술들의 효율적 적용하고 방안 제시합니다.
업무 조직과 기술 조직 간의 의사 소통 및 중재 합니다.
잠재적 위험 요소에 대한 조기 발견 및 해결 방안 제시 합니다.
주요 설계 사항의 추후 변경에 따른 사업 수행의 지연을 방지 합니다.
데이터 모델링의 단계는 다음과 같습니다.
추상화 > 단순화, 구체화 > 세분화
· 요구사항분석
조직의 업무 및 기능 수행을 위한 데이터 요구사항정의 및 분석(요구사항명세서 및 인수기준 확정)
· 개념 모델링
조직전체 정보요건 표현한 상위 수준의 모델로 핵심 엔티티 도출 및 관계를 정의(개념ER모델)
· 논리 모델링
업무의 요건을 완전하고 정확하게 표현한 모델로 성능 혹은 기술적 제약사항과는 독립적임(상세 ER모델)
· 물리 모델링
구현할 특정 데이터베이스 특징을 최대한 활용, 효율적인 데이터 접근과 성능을 고려하여 시스템의 정보요건을 정확하고 완전하게 표현\
· 데이터베이스
물리적 모델을 특정 데이터베이스에 구현
구분 |
설명 |
|
아키텍처 관점 |
개념적 설계 |
- DB에 저장해야 될 데이터를 모형으로 표현 - 핵심 엔티티 추출, 전체 데이터 모델 골격 생성 - ERD(Entity Relationship Diagram)작성 |
논리적 설계 |
- 엔티티와 어트리뷰트들의 관계에 대해 구조적 설계, 스키마 설계 - 식별자 확정, 정규화 수행 |
|
구체화 관점 |
물리적 설계 |
- 데이터베이스 스키마를 실제 구축, 사용할 DBMS 실제 선정, 필드의 데이터 타입과 크기 정의 - 데이터 사용량 분석, 비정규화 |
구현 설계 |
-데이터베이스 구현/응용연계 |
데이터 모델링의 개념도
데이터 모델링 단계
단 계 |
설 명 |
개념적 데이터 모델링 |
추상화 수준이 높고 업무중심적이며 포괄적인 수준의 모델링 진행 핵심 엔티티 추출, 속성 및 관계 정의 |
논리적 데이터 모델링 |
시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확히 표현, 재상용성을 높임, 식별자 확정, 정규화 수행 |
물리적 데이터 모델링 |
실제로 데이터베이스에 이식할 수 있도록 성능, 물리적 성격을 고려하여 설계 DBMS의 특성 및 종류, 구현환경을 감안한 스키마 도출 컬럼의 데이터 타입과 크기, 제약조건/인덱스 정의 |
데이터모델링 관점
관 점 |
설 명 |
데이터 관점 |
업무가 어떤 데이터와 관련이 있는지, 데이터간의 관계는 무엇인지에 대해 모델링하는 방법 |
프로세스 관점 |
업무를 통해 어떤 일을 처리하는지, 무엇을 해야 하는지를 모델링하는 방법 |
데이터와 프로세스의 상관 관점 |
업무에서 일을 처리하는 방법에 따라 데이터가 어떻게 영향을 받는지 모델링하는 방법 상관모델링, CRUD Matrix 기법 |
개념적 데이터 모델링은 해당 조직의 업무 요건을 충족시키기 위해서 주제 영역과 핵심 데이터 집합, 핵심, 데이터 집합 간의 관계를 정의하는 상위 수준의 개략적 데이터설계 작업입니다.
DBMS 클래스나 특정 DBMS와 독립적인 개념적 스키마를 기술하는 과정입니다.
업무요구사항 > [ 주제영역도출 > 핵심데이터 집합 도출 > (관계설정, 핵심속성도출, 식별자 도출), 검증 및 조정작업] > 논리/물리적 모델링
데이터의 집합, 데이터 집합 간의 관계를 정의하는 상위 수준의 개략적데이터 설계
절차 |
상세내용 |
기법 및 종류 |
주제영역 선정 |
하위주제 영역 또는 데이터 집합들로 구성 업무 기능과 대응 |
상향식, 하향식, 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, 속성과 키속성을 찾고 그 이후에 개체, 관계성을 도출 |
장점 |
부작용이 없음 |
초기 설계자의 부담이 적음 |
단점 |
설계자가 초기에 모든 업무 개념을 알고 있어야 함 |
중복이나 재구성 필요성 발생 |
트랜잭션 모델링
˙ 트랜잭션을 개념적 시스템 독립적으로 정의
˙ 트랜잭션의 입출력 기능과 형태만 정의 (개념적, 시스템 독립적)
˙ 응용 및 트랜잭션이 필요로 하는 모든 데이터가 식별되었는지 상호 확인
˙ 논리적 데이터 모델링의 정의
- 업무의 모습을 모델링 표기법으로 형상화 하여 사람이 이해하기 쉽게 표현
- 데이터 베이스를 구현하기 위한 업무 중심이면서 데이터 관점의 모델링
- 개념적 스키마를 특정 DB 모델에 맞는 논리적 스키마로 변환(특정 DBMS 독립적)
- 엔티티와 어트리뷰트들의 관계를 구조적으로 설계, 스키마 설계, 정규화 수행
˙ 논리적 데이터 모델링의 주요 Task
- 엔티티 타입 선정 ->엔티티 정의서 작성
순서 |
Task |
내용 |
특정 순서 없이 진행 |
엔티티 타입 도출 |
기본, 중심, 행위 엔티티 타입도출 |
관계 도출 |
엔터티 타입 간의 관계 도출 |
|
식별자 도출 |
PK, FK, UK, AK 등에 대한 정의 |
|
속성 도출 |
기본, 설계, 파생 속성을 정의함 |
|
세부사항도출 |
용어사전, 도메인정의, 속성의 규칙 (기본값, 체크값 등) 정의 |
|
정규화 |
1차, 2차, 3차, BCNF, 4차, 5차 정규화 적용 |
|
통합/분할 |
엔터티 타입의 성격에 따라 통합, 분할수행 |
|
단계말 |
데이터모델 검증 |
엔터티 타입, 속성, 관계 등에 대한 적합성 검증 |
개념적 모델과 논리적 DB 모델의 속성 맵핑
물리적 모델링
˙ 물리적 데이터 모델링 정의
논리 데이터 모델을 특정 DBMS에 맞는 물리적인 스키마로 만드는 일련의 과정
˙ 물리 모델로 의 변환 주요 TASK
단계 |
과정 |
고려사항 |
일괄 전환 |
엔티티 별 테이블로 전환 |
Sub Type 설계 방안 |
식별자의 Primary Key 정의 |
Artificial Key 검토, PK 컬럼 순서 검토 |
|
속성의 컬럼 전환 |
영문 컬럼명 매핑 데이터 타입/길이 결정 Domain 정의 |
|
Relationship의 컬럼으로 전환 |
참조 무결성 규칙 및 구현방안 결정 |
|
구조 조정 |
수퍼타입/서브타입 모델전환 |
-트랜잭션의 성격에 따라 전체 통합, 부분 통합 -개별유지에 대한 의사 결정을 통해 데이터 모델 조정 |
성능 향상 |
성능을 고려한 반정규화 |
SQL활용능력이 미흡으로 인한 빈번한 비정규화는 배제 하도록 신중하게 검토 |
˙ 구현 단계의 모델링
- 구현단계의 개요
- 구현단계는 물리 설계에서 구현된 내용을 바탕으로 실질적인 데이터 베이스를 구축하며 데이터를 적재, 이관함
- 구현 단계의 주요 Task
Task |
상세 내용 |
데이터 적재 |
DDL 문으로 생성된 테이블에 해당 데이터를 적재시킴 |
데이터 변환/이관 |
기존 데이터베이스의 데이터를 변환하여 새로운 테이블에 적재시킴 |
데이터 검증 |
적재된 데이터의 값 및 구조에 대한 검증 수행 |
어플리케이션 연계 |
주요 응용 프로그램과 새롭게 설정된 데이터 베이스와의 연계 및 검증 |
성능 검증 |
테이블 접근 성능, 데이터 쿼리 성능, 데이터 입력/수정 성능을 평가함 |
튜닝 |
어플리케이션, 스크립트, 주요 코드를 변경하여 튜닝을 수행함 |
- 데이터베이스 개념/논리/물리/구현 단계까지 완료되면 운영 데이터베이스가 완성
˙ ERD (Entity Relation Diagram) 작성 절차
절차 |
상세 내용 |
기법 및 종류 |
주제 영역 선정 |
하위 주제 영역 또는 데이터 집합 들로 구성 업무 기능과 대응 |
상향식, 하향식, Inside-out, 혼합식 설계 방식 |
핵심 데이터 집합 선정 (Entity) |
데이터의 보관 단위로써 주제 영역 에서 중심이 되는 데이터 집합을 정의 |
독립 중심, 의존 중심, 의존 특성, 의존 연관 데이터 |
관계 설정(Cardinality) |
업무적 연관성에 따라 개체간 갖는 Relationship 설정 |
1:1, 1:N, M:N, 순환관계 |
핵심속성 정의 (Attribute) |
데이터 집합의 특성을 나타내는 항목 |
원자단위 검증, 유일값 존재 검증, 가공값 유무 판단, 관리수준 상세화 판단 |
식별자 정의 (Identifier) |
데이터 집합을 유일하게 식별해 주는 속성(PK로 구현) |
PK, CK, AK, FK로 구분 |
데이터모델링 - 엔티티
˙ 엔티티 타입의 정의
- 업무에 필요한 정보를 저장하고 관리하기 위한 것으로 영속적으로 존재하는 단위.
- Entity Type: 개체들을 동일한 유형별로 분류한 단위 (= Entity 집합)
˙ 엔티티 타입과 표현
- Entity: ERD에서 사각형으로 표현하는, 실제 업무에서 의미 있는 객체
데이터모델링 - 관계
˙ 관계의 정의
- 두 개의 엔티티 타입 사이의 논리적인 관계, 즉 엔티티와 엔티티가 존재하는 형태로써 혹은 행위로써 서로에게 영향을 주는 상태
˙ 관계 표현 - 카디널리티
- 두개의 엔티티 타입간 관계에서 참여자의 수를 표현하는 것을 카디널리티(Cardinality)라고 함.
- 가장 일반적인 카디넬러티 표현방법은 1:M, 1:1, M:N
˙ 관계의 참여 방법
참여방법 |
내용 |
필수 관계 |
참여하는 모든 참여자가 반드시 관계를 가지는 타 엔티티 타입의 참여자와 연결이 되어야 하는 관계 |
선택 관계 |
선택 참여관계는 ERD에서 관계를 나타내는 선에서 선택 참여하는 엔티티타입 쪽을 원으로 표시 |
데이터 모델링 - 속성 표현
˙ 속성의 정의
- 속성이란 업무에 필요한 엔티티에서 관리하고자 하는 더 이상 분리되지 않는 최소의 데이터 단위를 의미
˙ 속성과 엔티티타입간의 관계
구분 |
상세 내용 |
무결성 |
데이터베이스에 저장된 데이터 값이 만족해야 된 주어진 제약 조건을 데이터베이스 무결성이라고 함 |
일관성 |
저장된 두 데이터 값 사이나 특정 질의에 대한 응답들에 모순성이 없이 일치하는 특성을 의미함 |
회복 |
적재된 회복은 시스템에 장애가 발생했을 때 장애 발생 직전의 일관된 데이터베이스 상태로 복구하는 것을 의미 |
보안 |
의도적이거나 우연을 불문하고 불법적인 데이터의 변경이나 손실 또는 노출에 대한 보호를 의미 |
효율성 |
효율성은 응답 시간의 단축, 저장 공간의 최적화, 시스템의 생산성 등이 포함됨 |
확장성 |
시스템 운영에 영향을 주지 않으면서 새로운 데이터를 계속적으로 추가시켜 나갈 수 있는 기법을 가지고 있어야 됨을 의미 |
데이터베이스 설계 과정에서 고려되어야 할 주요 사항은 무결성, 일관성, 회복, 보안, 효율성 및 데이터 베이스 확장임