1. 데이터 모델링의 이해#
1-1 : 데이터 모델의 이해#
모델링#
현실세계를 단순화하여 표현하는 것
특징
추상화 : 일정한 형식에 맞춰 표현
단순화 : 제한된 표기법이나 언어로 표현
명확성 : 이해하기 쉽게 표현
관점
데이터 관점 : 업무와 데이터 및 데이터 사이의 관계
프로세스 관점 : 진행되고 있거나 진행되어야 하는 업무
상관 관점 : 데이터에 대한 업무 처리 방식의 영향
데이터 모델링#
정보 시스템 구축을 위한 데이터 관점의 업무 분석 기법
목적
정보에 대한 표기법을 통일하여 업무 분석 정확도 증대
데이터 모델을 기초로 DB 생성
기능
가시화
명세화
구조화된 틀 제공
문서화
다양한 관점 제공
구체화
중요성
파급효과(leverage)
간결한 표현(Conciseness) : 정보 요구사항과 한계를 간결하게 표현하는 도구
데이터 품질
유일성 : 데이터 중복 저장 방지
유연성 : 데이터 정의와 데이터 사용 프로세스 분리
일관성
이해관계자
개발자
DBA
모델러
현업업무전문가 - 완성된 모델을 정확히 해석가능 해야함
데이터 모델링 3단계#
개념적 모델링 : 엔터이와 속성을 도출, ERD작성, 업무 중심적이고 포괄적인 수준
논리적 모델링 : 식별자 도출, 속성과 관계 정의, 정규화 수행 \(\to\) 데이터 모델의 독립성 & 재사용성 확보, 논리 데이터 모델은 데이터 모델링 완료 상태
물리적 모델링 : DB구축, 성능 및 보안 등 물리적 성격 고려
프로젝트 생명주기(Life Cycle) 계획
계획 \(\to\) 분석 \(\to\) 설계 \(\to\) 개발 \(\to\) 테스트 \(\to\) 전환/이행 단계로 구성
계획과 분석 단계 = 개념적 모델링
분석단계 = 논리적 모델링
설계 단계 = 물리적 모델링
DB 3단계 구조#
목표 : 데이터 독립성 확보
DB 독립성의 필요성 : 데이터 중복성 & 데이터 복잡도 증가 \(\to\) 유지보수 비용증가, 요구사항 대응 저하
3층 스키마(3-level Schema)
외부스키마 : 각 사용자 단계의 개인적 DB 스키마, 사용자 관점, 응용프로그램이 접근하는 DB를 정의함
개념스키마 : 조직 전체의 통합된 DB 스키마, 설계자 관점,
데이터 모델링의 지향점
내부스키마 : 물리적으로 데이터가 저장되는 방법을 표현하는 스키마, 개발자 관점, 물리적 저장 구조임
데이터 독립성
논리적 독립성 : 외부스키마가 개념스키마의 변화에 무관, 논리적 사상 없음
물리적 독립성 : 개념스키마가 내부스키마의 변화에 무관, 물리적 사상 없음
데이터 모델링 3요소#
엔터티
관계
속성
Entity 엔터티 (Table)#
업무에서 관리해야하는 데이터의 집합, 명사형,
인스턴스의 집합
데이터 모델링 및 소프트웨어 개발 영역에서 주로 사용하는 용어 실세계의 독립적인 정보 단위나 객체 DB 설계시, ERD라는 도구를 사용하여 엔터티와 그들의 관계를 표현
특징
업무 필요성 : 업무 프로세스에 이용됨
고유성 : 고유한 식별자(id, primary key(pk))를 통해 구별
2개 이상의 인스턴스를 포함함
속성 : 하나 이상의 속성(attribute)을 가질 수 있음
독립성 : 그 자체로 존재 가능
관계 : 다른 엔터티와 관계를 가짐
명명 규칙
현업사용 용어
약자 지양
단수
유일성
명확성
분류 기준 |
종류 |
설명 |
예시 |
---|---|---|---|
유무형 |
유형엔터티 |
물리적 형태를 가지며, 지속적으로 활용되는 엔터티 |
자동차, 건물, 컴퓨터 |
개념엔터티 |
물리적 형태가 없는 엔터티 |
직급, 부서, 국적 |
|
발생시점 |
기본엔터티 (key entity) |
독립적으로 생성되는 엔터티 |
사원, 제품, 고객 |
중심엔터티 (main entity) |
기본엔터티와 행위엔터티의 중간에 존재하는 엔터티 |
주문, 계약 |
|
행위엔터티 (active entity) |
2개 이상의 부모엔터티로부터 발생. 비즈니스 프로세스 실행 시 생성되며, 지속적으로 정보가 추가되고 변경됨. 모든 관계에 사용되는 것은 아니며, 추가 정보나 복잡성이 필요할 때만 사용됨 |
주문상세, 회원 포인트 이력 |
Attribute 속성 (Column, field)#
엔터티의 특정 사실이나 상태 엔터티가 가지는 최소 의미 단위, 인스턴스의 내부 구성 요소, 데이터 필드 데이터 모델링에서 엔터티를 구성하는 정보의 항목
도메인 : 속성이 가질 수 있는 값의 범위
분류 기준 |
종류 |
설명 |
예시 |
---|---|---|---|
특성 |
기본 속성 |
비즈니스 프로세스에서 도출되는 본래의 속성 |
직원 이름 |
설계 속성 |
데이터 모델링 과정에서 업무 규칙화를 위해 발생하는 속성 |
연봉 등급 코드 |
|
파생 속성 |
다른 속성에 의해 만들어지는 속성 |
연봉 총액 |
|
(저장 속성) |
유도 속성을 생성하는데 사용되는 속성 |
기본 연봉 |
|
분해 가능 |
단일 속성 |
하나의 의미를 가지는 속성 |
전화번호 |
복합 속성 |
여러 의미를 가지며, 단일 속성으로 분해 가능 |
주소(도시, 구, 동) |
|
단일값 속성 |
하나의 값을 가지는 속성 |
국적 |
|
다중값 속성 |
여러 값을 가지며, 엔터티로 분해 가능 |
연락처(집, 회사, 핸드폰) |
|
엔터티 구성방식 |
기본키 속성 |
엔터티를 식별할 수 있는 속성 |
직원 ID |
외래키 속성 |
다른 엔터티와의 관계에서 포함된 속성 |
부서 코드 |
|
일반 속성 |
엔터티에 포함되고 PK나 FK 속성이 아닌 속성 |
직원 이메일 |
Relation 관계 (Relation)#
엔터티 간의 논리적인 관련성, 동사형
관계 읽기 : 각각 / 기준 엔티티 > 관계차수 > 대상 엔터티 > 관계선택사양 > 관계명 관계의 패어링 : 인스턴스 간 개별적 관계
관계 표기법 : 1) 관계명 2) 관계차수 3) 관계선택사양
관계차수(Cardinality) : 관게 내 튜플의 전체 개수, 1은 직선, 여러개는 삼발로 표시
M:N 관계 : 관계형 DB에서 M:N 관계의 조인은 카테시안 곱 발생 (이를 해결하기 위해 중간 테이블, 브리지 테이블 사용)
관계선택사양(Optionality) : 필수는 |, 선택은 O로 표시
분류 기준 |
종류/표기방법 |
설명 |
---|---|---|
ERD |
표기 구분 안함 |
|
존재 관계 |
엔터티 간의 상태 |
|
행위 관계 |
엔터티 간에 발생하는 행위 |
|
UML |
연관 관계 (Association) |
실선 표기 |
의존 관계 (Dependency) |
점선 표기 |
|
식별자 |
식별 관계 |
부모 엔터티의 식별자를 자식 엔터티에서 주식별자로 사용. 약한 엔터티: 부모 엔터티에 종속되어 존재 (↔ 강한 엔터티는 독립적으로 존재함) |
비식별 관계 |
부모 엔터티의 식별자를 자식 엔터티에서 일반 컬럼으로 참조 사용, 약한 종속 관계. 식별 관계만으로 연결되면 주식별자 수가 많아질 수밖에 없음 |
관계 타입 |
ASCII 아트 표현 |
설명 |
---|---|---|
일대일 (One-to-One) |
—-ㅣ— |
양 끝에 선분. 한 쪽 엔터티에서 다른 한 쪽 엔터티로의 연결이 1:1 관계 |
일대다 (One-to-Many) |
—-<ㅣ—- |
한쪽 끝에 크라운 모양. 한 쪽 엔터티에서 다른 쪽으로의 연결이 1:다 관계 |
다대다 (Many-to-Many) |
<—ㅣ—-> |
양쪽 끝 모두에 크라운 모양. 양쪽 엔터티 간의 연결이 다:다 관계 |
선택적 관계 |
…ㅣ—- |
점선. 한쪽 엔터티의 참여가 선택적임 |
속성 연결 |
—-O |
엔터티와 속성(타원)을 연결 |
행위 엔터티 연결 |
—-◇—- |
엔터티와 행위 엔터티(다이아몬드)를 연결 |
식별자 identifier#
엔터티를 대표할 수 있는 유일성을 만족하는 속성
특징
유일성
최소성
불변성
존재성
주식별자 도출기준 : 업무에서 자주 이용되는 속성, 이름 명명 지양, 복합 식별자 지양
분류 기준 |
식별자 유형 |
설명 |
---|---|---|
대표성 |
주식별자 |
대표성을 만족하는 식별자 |
보조 식별자 |
유일성과 최소성만 만족하는 식별자, 참조 관계 연결에 사용할 수 없음 |
|
DB 키 |
기본키 (PK) |
엔터티를 대표하는 키, 후보키 중 선정됨 |
후보키 |
유일성과 최소성을 만족하는 키 |
|
슈퍼키 |
유일성만 만족하는 키 |
|
대체키 |
기본키를 제외한 나머지 후보키 |
|
외래키 (FK) |
여러 테이블의 기본 키 필드, 참조 무결성을 확인하기 위해 사용됨 |
|
생성 |
내부 식별자 |
자연스럽게 존재하는 식별자 |
외부 식별자 |
다른 엔터티와의 관계를 통해 생성되는 식별자 |
|
속성 수 |
단일 식별자 |
하나의 속성 |
복합 식별자 |
여러 속성 |
|
대체 여부 |
본질 식별자 |
대체될 수 없는 식별자 |
인조 식별자 |
인위적으로 만들어지는 대체가능한 식별자. 순서번호(Sequence Number)를 사용하여 생성된 식별자, 후보 식별자로도 사용됨 |
ERD(Entity Relationship Diagram)#
현실 데이터 표현
규칙 : 1) 엔터티는 사각형 2) 관계는 마름모 3) 속성은 타원형
절차
엔터티 도출
엔터티 배치
엔터티 간 관계 설정
관계명 기술
관계차수 표현 : 1:1, 1:N, M:N
관계선택사양 표현 : 필수 선택
좋은 모델링의 요건#
완전성
중복 배제
업무 규칙
데이터 재사용
의사소통
통합성