데이터 모델링의 이해
데이터 모델링의 특징
- 현실 세계를 일정한 형식에 맞추어 표현하는 추상화의 의미를 가짐
- 시스템 구현 및 업무 분석, 업무 형상화 등을 위해 진행하는 사전단계의 작업으로서 데이터베이스 구축을 위한 사전작업의 의미가 있음
- 복잡한 현실을 제한된 언어나 표기법으로 이해하기 쉽게 하는 단순화의 의미를 가지고 있음
- 애매모호함을 배제하고 누구나 이해가 가능하도록 정확하게 현상을 기술하는 정확화의 의미를 가짐
데이터 모델링이란?
- 정보 시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
- 현실세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정
- 데이터베이스를 구축하기 위한 분석/설계의 과정
데이터 모델링이 필요한 이유
- 업무 정보를 구성하는 기초가 되는 정보들에 대해 일정한 표기법에 의해 표현함
- 분석된 모델을 가지고 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위함
- 데이터베이스를 구축하기 위한 용도를 위해 데이터모델링을 수행하고 업무에 대한 설명은 일정한 표기법으로 표현함
- 데이터 모델링 자체로서 업무의 흐름을 설명하고 분석하는 부분에 의미를 가지고 있음
데이터 모델링의 유의점
- 중복(Duplication)
여러 장소의 데이터베이스에 같은 정보를 저장하지 않도록함
- 비유연성(Inflexibility)
데이터의 정의를 데이터의 사용 프로세스와 분리
- 비일관성(Inconsistency)
데이터간의 상호 연관관계를 명확하게 정의함
데이터 모델링 분류
- 개념적 데이터 모델링
추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행
전사적 데이터 모델링, EA 수립시 많이 이용
ERD 사용
- 논리적 데이터 모델링
시스템을 구축하고자 하는 업무에 대해 key 속성, 관계 등을 정확하게 표현
재사용성이 높음
정규화, 트랜잭션 인터페이스, 참조 무결성 규칙 정의 등
- 물리적 데이터 모델링
실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계
플랫폼 종속적
데이터 독립성
- DBMS의 목적
- 하위 단계의 데이터 구조가 변경되어도 상위 단계에 영향을 미치지 않는 속성
- 데이터 종속성: 데이터가 변경되면 응용 프로그램이 수정되어야함
- 데이터 중복성: 데이터의 일관성 문제 발생
논리적 데이터 독립성
- 응용 프로그램에 영향을 주지 않고 데이터베이스의 논리적 구조를 변경할 수 있음
- DBMS가 하나의 논리적 데이터 구조를 가지고 많은 응용 프로그램이 각각 요구하는 다양한 형태의 논리적 구조로 맵핑 시킬 수 있는 능력이 있을 때 가능
- 개념 스키마가 변경되어도 외부 스키마에 영향을 미치지 않도록 함
- 외부스키마에 영향을 미치지 않으면서 개념스키마에 적용되는 제약조건들을 변경 가능
물리적 데이터 독립성
- 응용 프로그램이나 데이터베이스의 논리적 구조에 영향을 미치지 않고 데이터의 물리적 구조를 변경할 수 있는 능력
- 하나의 논리적 구조로부터 여러가지의 상이한 물리적 구조를 지원할 수 있는 맵핑 능력이 있을 때 가능
- 내부 스키마가 변경되어도 외부/개념 싀마가 영향을 받지 않도록 함
데이터베이스 스키마 구조 3단계
외부스키마
- 데이터베이스 사용자 그룹별 view 기술
- 각 사용자가 보는 개인적 DB 스키마
- 사용자나 응용프로그래머가 접근하는 DB 정의
- 복수개의 스키마로 구성
개념스키마
- DB에 저장되는 데이터와 그들간의 관계를 표현하는 스키마
- 모든 사용자 관점을 통합한 조직 전체 관점의 통합적 표현
- 개체, 관계성, 제약조건 등을 나타내는데 중점(ER 모델)
- 자세한 물리적 저장장치는 감추고 데이터베이스의 골격에 관심
내부스키마
- 데이터베이스의 물리적 저장구조 기술
- 물리적 저장장치에서 데이터가 실제적으로 저장되는 방법을 표현
- 개발자 관점
ERD
- 피터첸에 의해 만들어짐
- 관계의 명칭은 관계 표현에 있어 매우 중요한 부분
- 가장 중요한 엔터티를 왼쪽 상단에서부터 배치함
작성 순서
- 엔터티 그림
- 엔터티 배치
- 엔터티 간 관계 설정
- 관계명 기술
- 관계도 (관계차수) 기술
- 필수 여부 기술