현실 세계의 비즈니스 프로세스와 데이터 요구 사항같은 개념으로부터 추상적이고 구조화된 논리적인 데이터 모델을 구성하는 작업을 말한다. 일반적으로 물리적인 데이터베이스 모델과 연관되어 고객의 요구에 따라 특정 정보 시스템의 데이터베이스에 반영하는 작업을 포함하며, 흔히 데이터베이스 모델링으로 불리기도 한다.
| 모델링 단계 | 추상화 수준 | 구체화 수준 | 주요 특징 |
|---|---|---|---|
| 개념적 모델링 | 높음 | 낮음 | • 업무 중심적이고 포괄적인 수준의 모델링 • 핵심 엔터티(Entity) 추출 • ERD 작성 • 전체 시스템 관점에서 데이터 구조 정의 |
| 논리적 모델링 | 중간 | 중간 | • 세부 속성, 식별자, 관계 표현 • 데이터 정규화 수행 • 재사용성 고려 • DBMS에 독립적인 명세 작성 |
| 물리적 모델링 | 낮음 | 높음 | • 실제 데이터베이스 구현 • 성능, 저장구조, 접근 방법 고려 • 인덱스, 파티션 등 물리적 설계 요소 포함 • 특정 DBMS에 종속적인 구현 방법 정의 |
독립적으로 식별가능한 객체 집합
| 분류 | 특징 | 예시 |
|---|---|---|
| 유형엔터티 | • 물리적 형태가 있음 • 실체가 있는 대상 • 안정적이며 지속적으로 활용 | 사원, 물품, 강사 등 |
| 개념엔터티 | • 물리적인 형태가 없음 • 개념적 정보로부터 구분 • 관리해야 할 개념적 정보 | 조직, 보험상품 등 |
| 사건엔터티 | • 업무 수행에 따라 발생 • 발생량이 많음 • 통계자료로 활용 | 주문, 청구, 미납 등 |
| 분류 | 특징 | 예시 |
|---|---|---|
| 기본엔터티 | • 업무에 원래 존재하는 정보 • 독립적으로 생성됨 • 타 엔터티의 부모 역할 • 자신의 고유한 주식별자를 가짐 | 사원, 부서, 고객, 상품 등 |
| 중심엔터티 | • 기본엔터티로부터 발생 • 업무에서 중심적인 역할 • 많은 데이터가 발생 • 다른 엔터티와의 관계를 통해 행위 엔터티 생성 | 계약, 사고, 청구, 주문, 매출 등 |
| 행위엔터티 | • 2개 이상의 부모엔터티로부터 발생 • 내용이 자주 바뀌거나 데이터양이 증가 • 상세 설계 단계나 상관모델링 과정에서 도출 | 주문이력, 사원변경이력 등 |
| 분류 | 특징 | 예시 |
|---|---|---|
| 강한개체 (Strong Entity) | • 독립적으로 존재할 수 있는 엔티티 • 다른 엔티티에 의존하지 않고 자체적으로 식별 가능 • 자신의 고유한 식별자를 가짐 | 고객, 부서, 직원, 상품 등 |
| 약한개체 (Weak Entity) | • 독립적으로 존재할 수 없는 엔티티 • 강한개체에 의존하여 식별됨 • 부분키와 부모 엔티티의 식별자를 결합하여 식별 | 계좌(고객에 의존), 주문상세(주문에 의존) 등 |
업무에서 필요한 최소 데이터 단위
어떤 속성 A의 값에 의해 다른 속성 B도 유일하게 결정된다면 B는 A에 함수적으로 종속이며, A->B로 표현된다.
| 분류 | 특징 | 예시 |
|---|---|---|
| 기본 속성 | • 업무로부터 추출된 모든 속성 • 엔터티에 가장 일반적으로 많이 존재하는 속성 | 원금, 예치기간, 이름, 주소 등 |
| 설계 속성 | • 업무를 규칙화하기 위해 새로 만들어지거나 기본 속성을 변형하여 만들어지는 속성 • 시스템 내에서 코드화하여 관리하기 위한 속성 | 상품코드, 지점코드, 예금분류 등 |
| 파생 속성 | • 다른 속성에 의해 만들어지는 속성 • 계산된 값들이 해당함 • 데이터 정합성을 유지하기 위해 가급적 적게 정의하는 것이 좋음 | 합계, 평균, 이자 등 |
| 분류 | 특징 | 예시 |
|---|---|---|
| PK(Primary Key) 속성 | • 인스턴스를 식별할 수 있는 속성 • 유일성과 최소성을 만족 • NULL 값 허용하지 않음 | 학번, 사원번호, 고객ID 등 |
| FK(Foreign Key) 속성 | • 다른 엔터티와의 관계에서 포함된 속성 • 참조 무결성 유지에 중요 • 참조하는 테이블의 PK를 참조 | 부서번호(사원 테이블에서), 과목코드(수강 테이블에서) 등 |
| 일반 속성 | • 엔터티에 포함되어 있고 PK/FK에 포함되지 않는 속성 • 업무적 필요에 의해 관리되는 속성 | 이름, 주소, 전화번호, 이메일 등 |
| 분류 | 특징 | 예시 |
|---|---|---|
| 단일 속성 | • 하나의 의미로 구성된 경우 • 더 이상 분해할 수 없는 원자적 속성 | 회원ID, 이름, 전화번호 등 |
| 복합 속성 | • 여러 개의 의미로 구성된 경우 • 업무적 필요에 따라 더 작은 단위로 분해 가능 | 주소(시, 구, 동 등으로 분해 가능), 성명(성, 이름) 등 |
| 다중값 속성 | • 속성에 여러 개의 값을 가질 수 있는 경우 • 일반적으로 별도의 엔터티로 분해하여 관리 | 상품 리스트, 자격증 목록, 전화번호 리스트 등 |
엔터티 간 연관성
관계의 이름
| 분류 | 특징 | 표기법 | 예시 |
|---|---|---|---|
| 식별관계 (Identification Relationship) | • 부모 엔티티의 기본키가 자식 엔티티의 기본키의 일부로 전이 • 자식 엔티티의 존재가 부모 엔티티에 의존 • 부모 없이 자식이 독립적으로 존재할 수 없음 | ERD에서 실선으로 표시 | 주문-주문상세, 사원-교육이력 |
| 비식별관계 (Non-identification Relationship) | • 부모 엔티티의 기본키가 자식 엔티티의 일반 속성으로 전이 • 자식 엔티티가 독립적으로 존재 가능 • 논리적 연관관계만 표현 | ERD에서 점선으로 표시 | 부서-사원, 고객-주문 |
엔터티를 대표하는 속성
| 분류 | 특징 | 예시 |
|---|---|---|
| 주식별자 (Primary Identifier) | • 유일성과 최소성을 만족하면서 엔터티를 대표하는 식별자 • 각 인스턴스를 유일하게 구분 • 타 엔터티와 참조관계 연결 가능 • NULL 값 허용하지 않음 | 사원번호, 학번, 주문번호 등 |
| 보조식별자 (Alternate Identifier) | • 인스턴스를 구분할 수 있지만 대표성을 가지지 못함 • 유일성과 최소성은 만족하지만 대표성 만족 못함 • 참조관계 연결에 사용되지 않음 | 주민등록번호(사원 테이블에서), 이메일 주소(사용자 테이블에서) 등 |
| 분류 | 특징 | 예시 |
|---|---|---|
| 내부식별자 (Internal Identifier) | • 다른 엔터티 참조 없이 엔터티 내부에서 스스로 생성되는 식별자 • 자체적으로 유일성 보장 • 독립적인 식별 가능 | 사원번호, 상품코드, 부서코드 등 |
| 외부식별자 (External Identifier) | • 다른 엔터티와 관계로 인하여 만들어지는 식별자 • 외래키(FK)로 사용됨 • 다른 엔터티와의 관계에서 생성 | 주문 테이블의 고객번호, 수강신청 테이블의 학번 등 |
| 분류 | 특징 | 예시 |
|---|---|---|
| 단일식별자 (Single Identifier) | • 하나의 속성으로 구성된 식별자 • 단일 컬럼으로 유일성 보장 • 관리가 용이함 | 사원번호, 학번, 상품코드 등 |
| 복합식별자 (Composite Identifier) | • 두 개 이상의 속성으로 구성된 식별자 • 여러 컬럼의 조합으로 유일성 보장 • 식별자 관리가 복잡할 수 있음 | 주문상세(주문번호+상품번호), 수강신청(학번+과목코드) 등 |
| 분류 | 특징 | 예시 |
|---|---|---|
| 본질식별자 (Natural Identifier) | • 비즈니스 프로세스에서 자연적으로 만들어지는 식별자 • 업무에 의해 생성되어 실제 업무적 의미를 가짐 • 업무 변경 시 식별자도 변경될 수 있음 | 사업자등록번호, 주민등록번호, 상품코드 등 |
| 인조식별자 (Surrogate Identifier) | • 인위적으로 만들어지는 식별자 • 일련번호와 같은 형태로 시스템에서 자동 생성 • 업무적 의미는 없으나 유일성 보장 및 관리 편리 | 자동증가 ID, UUID, 시퀀스 번호 등 |