데이터 모델링
현실 세계를 데이터베이스로 표현하기 위해 추상화하는 작업
데이터 모델링의 특징
특징 | 설명 |
---|---|
추상화(Abstraction) | 현실 세계를 간략하게 표현한다. |
단순화(Simplification) | 누구나 쉽게 이해할 수 있도록 표현한다. |
명확성(Clarity) | 명확하게 의미가 해석되어야 하고 한 가지 의미를 가져야 한다. |
데이터 모델링 단계
데이터 모델링 단계 | 설명 |
---|---|
개념적 모델링 | - 전사적 관점에서 기업의 데이터를 모델링 - 추상화 수준이 가장 높은 수준의 모델링 - 계층형 데이터 모델, 네트워크 모델, 관계형 모델에 관계없이 업무 측면에서 모델링 |
논리적 모델링 | - 특정 데이터베이스 모델에 종속 - 식별자를 정의하고 관계, 속성 등을 모두 표현 - 정규화를 통해 재사용성을 높임 |
물리적 모델링 | - 구축할 데이터베이스 관리 시스템에 테이블, 인덱스 등을 생성하는 단계 - 성능, 보안, 가용성 등을 고려하여 데이터베이스 구축 |
데이터 모델링 관점
- 데이터: 비즈니스 프로세스에서 사용되는 데이터
- 프로세스: 비즈니스 프로세스에서 수행하는 작업
- 데이터와 프로세스: 프로세스와 데이터 간의 관계
ERD 작성 절차
- 엔터티를 도출하고 그림
- 엔터티를 배치
- 엔터티 간의 관계 설정
- 관계명 서술
- 관계 참여도 표현
- 관계의 필수 여부 표현
3층 스키마 구조
- 외부 스키마: 사용자 관점으로 응용 프로그램이 접근하는 데이터베이스 정의
- 개념 스키마: 설계자 관점으로 통합 데이터베이스 구조
- 내부 스키마: 개발자 관점으로 데이터베이스의 물리적 저장 구조
엔터티 특징
- 식별자: 엔터티는 유일한 식별자가 있어야 한다.
- 인스턴스 집합: 2개 이상의 인스턴스가 있어야 한다.
- 속성: 엔터티는 반드시 속성을 가지고 있다.
- 관계: 엔터티는 다른 엔터티와 최소한 한 개 이상 관계가 있어야 한다.
- 업무: 엔터티는 업무에서 관리되어야 하는 집합이다.
엔터티 종류
엔터티의 종류는 유형, 무형에 따른 종류, 엔터티가 발생하는 시점에 따른 종류로 나누어 짐
유형과 무형에 따른 엔터티
- 유형 엔터티: 업무에서 도출되며 지속적으로 사용되는 엔터티
- 개념 엔터티: 유형 엔터티는 물리적 형태가 있지만, 개념 엔터티는 물리적 형태가 없음
- 사건 엔터티: 비즈니스 프로세스를 실행하면서 생성되는 엔터티
발생 시점에 따른 엔터티 종류
종류 | 설명 |
---|---|
기본 엔터티 | -키 엔터티 - 다른 엔터티로부터 영향을 받지 않고 독립적으로 생성되는 엔터티 |
중심 엔터티 | - 기본 엔터티와 행위 엔터티 간의 중간에 있는 것 - 기본 엔터티로부터 발생되고 행위 엔터티를 생성하는 것 |
행위 엔터티 | - 2개 이상의 엔터티로부터 발생 |
속성(Attribute)
엔터티가 가지는 항목
특징
- 업무에서 관리되는 정보
- 하나의 값만 가짐
- 주식별자에게 함수적으로 종속(기본키 변경시 속성 값도 변경)
종류
분해 여부에 따른 속성의 종류
종류 | 설명 |
---|---|
단일 속성 | 하나의 의미로 구성된 것 |
복합 속성 | 여러 개의 의미가 있는 것 |
다중값 속성 | 속성에 여러 개의 값을 가질 수 있는 것 |
특성에 따른 속성의 종류
종류 | 설명 |
---|---|
기본 속성 | 비즈니스 프로세스에서 도출되는 본래의 속성 |
설계 속성 | 데이터 모델링 과정에서 발생되는 속성, 유일한 값을 부여 |
파생 속성 | 다른 속성에 의해서 만들어지는 속성 |
도메인: 속성이 가질 수 있는 값의 범위
관계(Relationship)
엔터티 간의 관련성
관계의 종류
- 존재 관계: 엔터티 간의 상태를 의미
- 행위 관계: 엔터티 간에 어떠한 행위가 있는 것
관계 차수
두 개의 엔터티 간에 관계에 참여하는 수를 의미
관계 차수 종류
종류 | 설명 |
---|---|
1대1 관계 | 완전 1대1: 하나의 엔터티에 관계되는 엔터티의 관계가 하나인 경우로, 반드시 존재 선택적 1대1: 하나의 엔터티에 관계되는 엔터티의 관계가 하나이거나 없을 수도 있음 |
1대N 관계 | 엔터티에 행이 하나 있을 때 다른 엔터티의 값이 여러 개 있는 관계 |
M대N 관계 | 두 개 엔터티가 서로 여러 개의 관계를 가지고 있는 것 |
필수적, 선택적 관계 | 필수적 관계: 반드시 하나가 있어야 하는 관계 선택적 관계: 없을 수도 있는 관계 |
식별 관계와 비식별 관계
식별 관계: 강한 개체의 기본키를 다른 엔터티의 기본키로 가지는 것
강한 개체(Strong Entity)
- 어떤 다른 엔터티에게 의존하지 않고 독립적으로 존재
- 다른 엔터티와 관계를 가질 때 다른 엔터티에게 기본키를 공유함
- 식별 관계로 표현
- 기본키 값이 변경되면 식별 관계(기본키를 공유받은)에 있는 엔터티의 값도 변경
- 강한 텐터티와 관계를 갖는 엔터티는 약한 개체(Weak Entity)가 됨
비식별 관계: 강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 칼럼으로 관계를 가지는 것
엔터티 식별자
엔터티를 대표할 수 있는 유일성을 만족하는 속성
키의 종류
- 기본키(Primary key): 후보키 중에서 엔터티를 대표할 수 있는 키
- 후보키(Candidate key): 유일성과 최소성을 만족하는 키
- 슈퍼키(Super key): 유일성은 만족하지만 최소성을 만족하지 않는 키
- 대체키(Alternate key): 여러 개의 후보키 중에서 기본키를 선정하고 남은 키
- 외래키(Foreign key): 하나 혹은 다수의 다른 테이블의 기본 키 필드를 가리키는 것으로 참조 무결성을 확인하기 위해 사용되는 키
주식별자(기본키, Primary key)
- 최소성: 최소성을 만족하는 키
- 대표성: 엔터티를 대표할 수 있어야 함
- 유일성: 엔터티의 인스턴스를 유일하게 식별 가능
- 불변성: 자주 변경되지 않아야 함
실별자의 종류
식별자는 대표성, 생성 여부, 속성의 수, 대체 여부로 분류
대표성 여부에 따른 식별자의 종류
- 주식별자: 유일성과 최소성을 만족하면서 엔터티를 대표하는 식별자로, 다른 엔터티와 참조 관계로 연결될 수 있음
- 보조 식별자: 유일성과 최소성은 만족하지만 대표성을 만족하지 못하는 식별자
생성 여부에 따른 식별자의 종류
- 내부 식별자: 엔터티 내부에서 스스로 생성되는 식별자
- 외부 식별자: 다른 엔터티와의 관계로 인해 만들어지는 식별자
속성의 수에 따른 식별자의 종류
- 단일 식별자: 하나의 속성으로 구성
- 복합 식별자: 두 개 이상의 속성으로 구성
대체 여부에 따른 식별자의 종류
- 본질 식별자: 비즈니스 프로세스에서 만들어지는 식별자
- 인조 식별자: 인위적으로 만들어지는 식별자