데이터
데이터 모델링
잔잔한 물결처럼
2025. 3. 2. 01:03
모델링이란 무엇일까 ? 모델링이란 설계 디자인 형상과 관련되어 있다.
데이터베이스에서 모델링은 현실 세계를 단순화하여 포현하는 기법이다.
모델링의 조건
- 현실 세계를 반영해야 한다
- 단순화하여 표현해야 한다
- 관리하고자 하는 데이터를 모델로 설계한다.
모델링 정리 | |
모델링의 특징 | 1. 추상화 |
2. 단순화 | |
3. 명확화 | |
모델링의 세 가지 관점 | 1. 데이터 관점 |
2. 프로세스 관점 | |
3. 데이터와 프로세스의 상관 관점 | |
데이터의 품질 | 1. 중복 |
2. 비유연성 | |
3. 비일관성 | |
모델리의 세가지 관계 | 1. 개념적 모델링 |
2. 논리적 모델링 | |
3. 물리적 데이터 모델링 | |
3단계 스키마의 구조 | 1. 외부 스키마 |
2. 개념 스키마 | |
3. 내부 스키마 | |
3단계 스키마가 보장하는 독립성 | 1. 논리적 독립성 |
2. 물리적 독립성 |
모델링의 특징 | |
추상화 | 현실세계를 일정한 형식으로 표현하는것 아이디어나 개념을 간략하게 표현한다 |
단순화 | 복잡한 현실 세계를 정해진 표기법으로 단순하고 쉽게 표현한다 |
명확화 | 불분명함을 제거하고 명확하게 해석할 수 있도록 기술한다. |
모델링의 세 가지 관점 | |
데이터 관점 | 데이터간에 어떤 관계가 있는지, 데이터들이 어떻게 업무와 얽혀 있는지에 대해서 모델링한다. |
프로세스 관점 | 업무가 실제로 처리하고 있는 일은 무엇인지 처리해야하는 일은 무엇인지 |
데이터와 프로세스의 상관 관점 | 프로세스의 흐름에 따라 데이터가 어떤 영향을 받는지 |
데이터의 품질 | |
중복(Duplication) | 같은 데이터가 여러 엔티티에 중복되는것을 지양해야한다. |
비유연성(Inflexibility) | 데이터 모델과 프로세스를 분리하여 유연성을 높여야 한다. |
비일관성(Inconsistency) | 데이터 간의 연관 관계에 대해 명확하게 정의해야 한다. |
모델링의 세가지 단계 | |
개념적 데이터 모델링 | 업무 프로세스를 포괄적으로 모델링 하는 단계 |
논리적 데이터 모델링 | 데이터베이스 모델에 대한 Key, 속성, 관계 등을 모두 표현하는 단계 |
물리적 데이터 모델링 | 성능이나 가용성 등의 물리적 성격을 고려하여 표현하는 단계 |
3단계 스키마 구조 | |
외부 스키마(External Schema) | Multiple User's View 단계로 각 사용자가 보는 데이터베이스의 스키마를 정의한다 |
개념 스키마(Conceptual Schema) | Community View of DB 단계로 모든 데이터베이스의 스키마를 통합하고 전체 데이터베이스를 나타내는 것 저장되는 데이터들을 표현하고 데이터 간의 관계를 나타낸다. |
내부 스키마(Internal Schema) | Physical Representation 단계로 물리적인 저장 구조를 나타낸다. 실질적인 데이터의 저장 구조나 컬럼 정의, 인덱스 등이 포함된다. |
3단계 스키마 구조가 보장하는 독립성 | |
논리적 독립성 | 개념 스키마가 변경되어도 외부 스키마는 영향을 받지 않는다. |
물리적 독립성 | 내부 스키마가 변경되어도 외부/개념 스키마는 영향받지 않는다. |
엔티티
엔티티란 데이터베이스에서 식별이 가능한 객체라는 의미를 가지고 있다.
용어 정리 | |
엔티티 | Table |
인스턴스 | Row |
속성 | Column |
엔티티의 특정
- 업무에서 쓰이는 정보여야 한다
- 유니크함을 보장할 수 있는 식별자가 있어야 함
- 2개 이상의 인스턴스를 가지고 있어야 함
- 반드시 속성을 가지고 있어야 함
- 다른 엔터티와 1개 이상의 관계를 가지고 있어야 함
엔터티의 분류 | |
유형 엔터티 | 물리적인 형태 존재, 안정적, 지속적 |
개념 엔터티 | 물리적인 형태 없음, 개념적 |
사건 엔터티 | 행위를 함으로써 발생, 빈번함, 통계 자료로 이용 가능 |
엔터티의 분류(발생시점 기준) | |
기본 엔터티 | 업무에 원래 존재하는 정보 독립적으로 생성되며, 자식 엔터티를 가질 수 있음 |
중심 엔터티 | 기본 엔터티로부터 파생되고, 행위 엔터티 생성 업무에 있어서 중심적인 역할을 하며 데이터의 양이 많이 발생 |
행위 엔터티 | 2개 이상의 엔터티로부터 파생 데이터가 자주 변경되거나 증가할 수 있음 |
언테티의 이름을 정할 때 주의할 점 | |
업무에서 실제로 쓰이는 용어 사용 | |
한글은 약어를 사용하지 않고 영문을 대문자로 표기 | |
단수 명사로 표현하고 띄어쓰기는 하지 않음 | |
다른 엔터티와 의미상으로 중복될 수 없음(주문, 결제 엔터티는 중복될 수 있음) | |
해당 엔터티가 갖고 있는 데이터가 무엇인지 명확하게 표현 |
속성이란
사물이나 개념의 특징을 설명해줄 수 있는 항목
!속성은 더이상 쪼개지지 않는 레벨이여야 하고 프로세스에 필요한 항목이여야 한다
특성에 따른 분류 | |
기본속성(Basic Attribute) | 업무 프로세스 분석을 통해 바로 정의가 가능한 속성 |
설계속성(Designed Attribute) | 업무에 존재하지 않지만 설계하다 보니 필요하다고 판단되어 도출해난 속성 |
파생속성(Derived Attribute) | 다른 속성의 속성값을 계산하거나 특정한 규칙으로 변형하여 생성한 속성 |
구성방식에 따른 분류 | |
PK(Primary Key) 속성 | 기본키, 엔터티의 인스턴스들을 식별할 수 있는 속성 |
FK(Foreign Key) 속성 | 외래키, 다른 엔터티의 속성에서 가져온 속성 |
일반속성 | PK, FK를 제외한 나머지 속성 |
관계란
엔터티와 엔터티간의 관계를 의미한다.
타입을 분류 | |
존재 관계 | 존재 자체로 관계가 연관성이 있을 때 ex) 직원과 부서, 학생과 학과 |
행위 관계 | 특정한 행위를 함으로써 연관성이 생기는 관계 ex) 회원과 주문, 학생과 출석부 |
표기법 | |
관계명 | 관계의 이름 |
관계차수 | 관계에 참여하는 수 |
관계선택사양 | 필수인지 선택인지의 여부 |
식별자란?
식별자는 속성 중에 각각의 인스턴스를 구분 가능하게 만들어주는 대표적인 속성을 의미한다.
주식별자의 특징 | |
유일성 | 각 인스턴스에 유니크함을 부여하여 식별이 가능하도록 한다 |
최소성 | 유일성을 보장하는 최소 개수의 속성이여야 한다 |
불변성 | 속성값이 되도록 변하지 않아야 한다 |
존재성 | 속성값이 NULL 일 수 없다 |
식별자의 분류방법 | ||
대표성 여부 | 주식별자 | 유일성, 최소성, 불변성, 존재성을 가진 대표 식별자 |
다른 엔터티와 참조 관계로 연결됨 | ||
보조식별자 | 인스턴스를 식별할 수는 있지만 대표 식별자가 아닌 식별자 | |
다른 엔터티와 연결되지 않음 | ||
스스로 생성되었는지 여부 | 내부식별자 | 엔터티 내부에서 스스로 생성된 식별자 |
외부식별자 | 다른 엔터티에서 온 식별자, 다른 엔터티와의 연결고리 역할 | |
단일 속성의 여부 | 단일식별자 | 하나의 속성으로 구성된 식별자 |
복합식별자 | 두 개 이상의 속성으로 구성된 식별자 | |
대체 여부 | 본질식별자 | 업무 프로세스에 존재하는 식별자 |
가공되지 않은 원래의 식별자 | ||
원조식별자라고도 함 | ||
인조식별자 | 주식별자의 속성이 두 개 이상인 경우 그 속성들을 하나로 묶어서 사용하는 식별자 | |
대리식별자라고도 함 |
식별자 관계 | 비 식별자 관계 |
부모 엔터티의 식별자가 자식 엔터티의 주 식별자가 되는 관계 | 부모 엔터티의 식별자가 자식 엔터티의 주 식별자가 아닌 일반 속성이 되는 관계 |
주 식별자가 반드시 있어야 하며 부모 엔터티가 있어야 생성 가능하다. |
속성값이 Null 이 될수도 있고 부모 엔터티가 없는 자식 엔터티 생성이 가능 |