19. 데이터모델링 & 설계
데이터모델
개념
현실세계의 요소를 인간과 컴퓨터가 이해할 수 있는 정보로 표현한 것
데이터의 관계, 접근과 그 흐름에 필요한 처리 과정에 관한 추상화된 모형
현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형
종류
계층형 모델 Hierarchical Data Model 망형(네트워크형) 데이터 모델
관계형 데이터 모델 Relational Data Model 객체 지향형 데이터 모델 Object Oriented Data Model
구분
개념적 데이터 모델
현실세계에 대한 인식을 추상적인 개념으로 표현
인간이 이해할 수 있는 정보 구조로 표현
대표적으로 E-R Model
논리적 데이터 모델
개념 데이터 모델링의 개념 구조를 컴퓨터가 이해할 수 있도록 변환한 구조
필드, 데이터타입 등으로 개념적 모델 구현
관계 모델, 계층 모델, 네트워크 모델 등으로 구분
물리적 모델
데이터가 저장되는 방법을 표현
레코드 형식, 레코드 순서, 접근 경로, 저장방법에 관한 정의
구조
개체 | Entity
DB에 데이터로 표현하려고 하는 현실 세계의 대상체
저장할 만한 가치가 있는 중요 데이터를 가지고 있는 사람이나 사물 등
개체 타입 | Entity type
- 개체를 구성하고 있는 속성들의 집합
개체 인스턴스 | Entity instance
- DB에 저장되는 구체적인 객체
개체 세트 | Entity set
- 개체 인스턴스의 집합
속성 | Attribute
데이터의 가장 작은 논리적 단위
개체가 가지고 있는 고유한 특성
관계 | Relation
- 개체와 개체가 맺고 있는 의미있는 연관성
요소
구조 | Structure
DB에 표현될 대상으로서의 개체 타입과 개체 타입들 간의 관계
데이터 구조 및 정적 성질
연산 | Operation
- DB에 저장될 실제 데이터를 처리하는 방법
제약조건 | Constraint
- 저장될 수 있는 데이터의 논리적인 제약 조건
Entity Relation Model
개념
DB에 대한 요구사항을 그래픽적으로 표현하는 방법
피터 첸이 제안한 개념적 데이터 모델로써 현실 세계를 개체와 개체 간의 관계를 이용하여 개념적 구조로 표현
요구사항으로부터 얻어낸 정보들을 개체, 속성, 관계로 기술하는 데이터 모델
특정 DBMS 및 하드웨어에 독립적으로 DB의 구조를 나타낼 수 있음
산출물로 E-R Diagram이 만들어짐
Entity
현실 세계에서 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것
데이터로써 DB에 저장할 가치가 있는 중요한 사람, 사물, 개념, 사건 등
E-R Diagram에서 개체는 사각형으로 표현
Attribute
개체나 관계가 가지고 있는 고유의 특성
DB에 저장할 데이터의 가장 작은 논리적 단위
E-R Diagram에서 속성은 기본적으로 원으로 표현, 키 속성은 원에 밑줄 표현, 다중값은 두 개의 원으로 표현, 유도 속성은 원을 점선으로 표현
유형
단일 값 속성- 값을 하나만 가질 수 있는 속성(이름, 학번 등)
다중 값 속성- 값을 여러 개 가질 수 있는 속성(취미 등)
단순 속성- 의미를 더는 분해할 수 없는 속성(성별 등)
복합 속성- 의미를 분해할 수 있는 속성(주소, 생년월일 등)
- 이중 타원으로 표현
유도 속성- 기존의 다른 속성의 값에서 유도되어 결정되는 속성(주민번호와 성별)
널 속성- 아직 결정되지 않은 존재 하지 않는 값
키 속성- 각 개체를 식별하는 데 사용하는 속성
- 밑줄 타원
Relationship
서로 다른 개체가 맺고 있는 의미 있는 연관성
개체 사이의 대응 관계
E-R Diagram에서 관계는 마름모로 표현
개체 간 대응 관계의 종류
1 : 1- 개체 집합 A의 원소가 개체 집합의 B의 원소 1개와 대응
| |
1 : N- 개체 집합 A의 각 원소는 개체 집합 B의 원소 여러 개와 대응할 수 있고, 개체 집합 B의 각 원소는 개체 집합 A의 원소 1개와 대응
| |<
N : M- 개체 집합 A의 각 원소는 개체 집합 B의 원소 여러 개와 대응할 수 있고, 개체 집합 B의 각 원소도 개체 집합 A의 원소 여러 개와 대응
>| |<
관계가 있을 수도 없을 수도 있음
~~ O ~~
논리적 데이터 모델링
개념
개념적 설계에서 추출된 실체와 속성들의 관계를 구조적으로 설계하는 단계
개념모델로부터 업무 데이터 및 규칙을 구체적으로 표현한 모델
모든 업무용 개체와 속성, 관계, 프로세스 등이 포함
모든 데이터를 정규화(Normalizaton)하여 모델링
성능, 제약사항과는 독립적인 모델로, 특정 DBMS로부터 독립적
데이터 간의 관계를 어떻게 표현하느냐에 따라 관계 모델, 계층 모델, 네트워크 모델로 구분
종류
관계형 데이터 모델
계층형 데이터 모델
네트워크(망)형 데이터 모델
객체지향 데이터 모델
데이터베이스 정규화
개념
- 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화
- 릴레이션을 작게 분해하는 과정
- 중복된 데이터를 허용하지 않음으로써 무결성(Integrity)을 유지할 수 있으며, DB의 저장용량 역시 줄일 수 있음
목적
데이터 중복 최소화
데이터 구조 안정성 최대화
정보의 무손실 : 정보가 사라지지 않아야 함
독립적인 관계는 별개의 릴레이션으로 표현
정보의 검색을 보다 용이하게 함
이상현상 최소화
데이터 삽입 시 릴레이션 재구성 필요성 최소화
장 & 단점
장점
데이터 중복의 최소화
저장 공간의 효율적 사용
릴레이션에서 발생 가능한 이상 현상 제거
단점
처리 명령의 복잡
실행 속도 저하
분리된 두 릴레이션 간 참조 무결성 유지를 위한 노력 필요
분리된 여러 개의 테이블에서 정보를 취합하기 위한 JOIN 연산이 필요
이상 현상 | Anomaly
데이터 중복으로 인해 릴레이션 조작 시 예상하지 못한 곤란한 현상이 발생
이상은 속성들 간에 존재하는 여러 종류의 종속 관계를 하나의 릴레이션에 표현할 때 발생
이상의 종류
삽입 이상- 데이터를 삽입할 때 불필요한 데이터가 함께 삽입되는 현상
삭제 이상- 한 튜플을 삭제할 때 연쇄 삭제 현상으로 인해 정보 손실
갱신 이상- 튜플의 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상
함수적 종속 | Functional Dependency
- 어떤 릴레이션 R이 있을 때 X와 Y를 각각 속성의 부분집합이라고 가정했을 때
- X의 값을 알면 Y의 값을 바로 식별할 수 있고, X의 값에 Y의 값이 달라질 때, Y는 X에 함수적 종속
- X -> Y
함수적 종속 관계
완전 함수적 종속 | Full Functional Dependency- 종속자가 기본키에만 종속되어, 기본키가 여러 속성으로 구성되어 있을 경우 기본키를 구성하는 모든 속성이 포함된 기본키의 부분집합에 종속된 경우
부분적 함수 종속 | Partial Functional Dependency- 기본키가 여러 속성으로 구성되어 있을 경우 기본키를 구성하는 속성 중 일부만 종속되는 경우
이행적 함수 종속 | Transitive Fucntional Dependency- X -> Y, Y -> Z 이란 종속 관계가 있을 경우, X -> Z가 성립 되는 경우
정규화 과정
- 비정규 릴레이션
↓ 도메인이 원자 값 - 1NF
↓ 부분적 함수 종속 제거 - 2NF
↓ 이행적 함수 종속 제거 - 3NF
↓ 결정자이면서 후보키가 아닌 것 제거 - BCNF
↓ 다치 종속 제거 - 4NF
↓ 조인 종속성 이용 - 5NF
제 1 정규형 | 1NF
- 어떤 Relation에 속한 모든 Domain이 원자값(atomic value)만으로 되어 있음
제 2 정규형 | 2NF
- 부분 함수적 종속을 모두 제거하여 완전 함수적 종속으로 만듬
제 3 정규형 | 3NF
- 이행적 함수 종속을 없앰
보이스 / 코드 정규형 | BCNF
3차 정규형을 조금 더 강화한 버전
결정자 중 후보키가 아닌 것들을 제거
제 4 정규형 | 4NF
- 다치 종속을 제거
제 5 정규형 | 5NF
- 조인 종속 제거
논리 데이터모델 품질 검증
개념
데이터 모델 설계가 완료되면 이해관계자는 데이터 모델 리뷰를 통해 작성된 데이터 모델의 품질 검토
향후의 모든 공정에 대해 영향을 미칠 수 있는 매우 의미있는 작업
기준
정확성
- 데이터 모델이 표기법에 따라 정확하게 표현되었고, 업무영역 또는 요구사항이 정확하게 반영되었음을 의미
완전성
- 데이터 모델의 구성 요소를 정의하는데 있어서 누락을 최소화하고, 요구사항 및 업무영역 반영에 있어서 누락이 없음을 의미
준거성
- 제반 준수 요건들이 누락 없이 정확하게 준수되었음을 의미
최신성
- 데이터 모델이 현행 시스템의 최신 상태를 반영하고 있고, 이슈사항들이 지체없이 반영되고 있음을 의미
일관성
- 여러 영역에서 공통 사용되는 데이터 요소가 전사 수준에서 한 번만 정의되고 이를 여러 다른 영역에서 참조 & 활용 되면서, 모델 표현상의 일관성을 유지하고 있음을 의미
활용성
- 작성된 모델과 그 설명 내용이 이해관계자에게 의미를 충분하게 전달할 수 있으면서, 업무 변화 시에 설계 변경이 최소화되도록 유연하게 설계되어 있음을 의미