데이터

데이터 모델링

잔잔한 물결처럼 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 이 될수도 있고 부모 엔터티가 없는 자식 엔터티 생성이 가능