데이터 모델링 - 엔티티 타입, 식별자, 관계
💡 데이터 모델링이란?
- 업무에서 필요한 데이터가 무엇인지 그리고 데이터간의 관계를 의사결정하는 활동
💡 개발공정
- 요구사항 정의 → 분석 → 설계 → 구현 → 테스트 → 배포
- 요구사항 정의 → 분석 → 설계 까지의 활동을 Modeling이라고 한다.
엔티티 타입
💡 엔티티 타입이란?
- 업무에 필요하고 유용한 정보를 저장하고 관리 하기 위한 것으로 영속적으로 존재하는 단위
- 엔티티 타입은 엔티티의 집합이라고 할 수 있다.
- 정보가 저장될 수 있는 사람, 장소, 물건 ,사건 같은 개념을 정의할 수 있는것
엔티티 타입의 특징
- 반드시 시스템을 구축하고자 하는 업무에서 필요하고 관리하고자 하는 정보여야 한다.
- 유일한 식별자(Unique Identifier)에 의해 식별이 가능해야 한다.
- 영속적으로 존재하는 엔티티의 집합이 되어야 한다.
- 업무 프로세스는 그 엔티티타입을 반드시 이용해야 한다.
- 엔티티타입에는 반드시 속성이 포함되어야 한다.
- 엔티티타입은 다른 엔티티타입과 최소 한 개 이상의 관계가 있어야 한다.
엔티티타입의 분류
- 유무형에 따른 분류
- 유형 엔티티타입 : 물리적인 형태가 있고 안정적이며 지속적으로 황용되는 엔티티타입 → 사원, 물품, 강사 등
- 개념 엔티티타입 : 물리적인 형태가 없고, 관리해야 할 개념적 정보로 구분되는 엔티티타입 → 조직, 상품, 장소 등
- 사건 엔티티타입 : 업무를 수행에 따라 발생되는 엔티티타입으로 비교적 발생량이 많으며 통계자료에 이용됨 → 주문, 청구, 미납 등
- 발생 시점에 따른 분류
- 기본 엔티티타입 : 업무에 원래 존재하는 정보, 다른 엔티티타입과 관계에 의해 생성되지 않음. 다른 엔티티 타입의 부모역할
- 중심 엔티티타입 : 기본 엔티티타입에서 발생, 업무에서 중심적인 역할, 데이터 양이 많으며 다른엔티티 타입과의 관계를 통해 많은 행위 엔티티타입을 생성
- 행위 엔티티타입 : 두 개 이상의 부모 엔티티타입에서 발생, 내용이 자주 바뀌고 데이터양이 증가됨, 상세 설계단계나 프로세스와 상관 모델링을 진행하면서 주로 도출
엔티티타입의 명명
- 가능하면 현업에서 사용하는 용어를 사용
- 가능하면 약어를 사용하지 않는다
- 단수 명사를 사용한다
- 엔티티타입에 부여되는 이름은 유일해야 한다.
- 가급적 엔티티타입이 생성되는 의미에 따라 이름을 부여한다.
속성
💡 속성이란?
- 업무에 필요한 엔티티에서 관리하고자 하는, 더 이상 분리되지 않는 최소의 데이터 단위
- 엔티티 타입에는 두 개 이상의 엔티티가 존재하고 각각의 엔티티는 고유의 성격을 표현하는 속성 정보를 한 개 이상 가진다.
- 엔티티 타입, 엔티티, 속성 ,속성값에 대한 관계 분석
- 한 개의 엔티티 타입은 두 개 이상의 엔티티 집합이어야 한다.
- 한 개의 엔티티는 두 개 이상의 속성을 갖는다.
- 한 개의 속성은 한 개의 속성값을 갖는다.
속성의 분류
- 속성의 특성에 따른 분류
- 기본 속성 : 업무로부터 추출한 모든 속성에 해당, 코드성 데이터, 엔티티타입을 식별하기 위해 부여된 일련번호, 다른 속성을 계산하거나 영향을 받아 생성된 속성을 제외한 모든 속성은 기본 속성이다
- 설계 속성 : 필요한 데이터 외의 데이터 모델링을 위해 업무를 규칙화 하려고 속성을 새로 만들거나 변형하여 정의하는 속성
- 파생 속성 : 다른 속성에 영향을 받아 발생하는 속성, 보통 계산된 값
- 엔티티 구성 방식을 따른 분류
식별자(Identifier)
💡 식별자란?
- 엔티티 타입에서 각각의 엔티티를 구분할 수 있는 결정자.
- 모든 엔티티타입에는 반드시 하나 이상의 식별자가 있어야 한다.
식별자 특징
- 식별자에 의해 엔티티타입 내 모든 엔티티들이 유일하게 구분되어야 함
- 식별자가 지정되면 그 식별자는 변하지 않아야 함
- 주식별자의 경우 식별자가 지정되면 주식별자 속성에 반드시 데이터값이 있어야 함
식별자 구분
- 대표성 여부 : 주식별자, 보조 식별자
- 주식별자 : 엔티티타입의 대표성을 나타내는 유일한 식별자
- 보조 식별자 : 주식별자를 대신하여 보조적으로 엔티티를 식별할 수 있게 함
- 주식별자, 보조 식별자 모두 엔티티 타입의 엔티티를 식별할 수 있음
- 주식 별자는 엔티티타입에 하나만 존재가능, 보조식별자는 두개 이상일 수 있음
- 스스로 생성 여부 : 내부식별자, 외부식별자
- 내부 식별자 : 자신의 엔티티 타입 내에서 스스로 생성되어 존재하는 식별자
- 외부 식별자 : 다른 엔티티 타입으로 부터 관계에 의해 주식별자 속성을 상속받아 자신의 속성에 포함되는 식별자
- 외부 식별자는 자신의 엔티티타입으로부터 다른 엔티티타입을 찾아가는 연결자(FK) 역할을 한다.
- 단일 속성 여부 : 단일 식별자, 복합 식별자
- 단일 식별자 : 주식별자의 구성이 한 가지 속성으로만 이루어진 경우
- 복합 식별자 : 두 개 이상의 속성으로 구성된 경우
- 주문 엔티티타입은 주문 번호의 속성이 주식별자 역할을 하므로 단일 식별자, 주문 목록의 경우에는 주문번호와 제품 번호 속성을 조합해서 하나의 식별자처럼 이용하므로 복합 식별자 라고 한다.
- 대체 여부 : 원조 식별자, 대리 식별자
- 대리 식별자 : 주식별자의 속성이 복합 식별자일 경우 여러 개의 속성을 묶어 하나의 속성으로 만들어 주식별자로 활용하는 경우
- 원조 식별자 : 복합 식별자의 속성을 가지고 있는 주식별자
관계
💡 관계란?
- 두 개의 엔티티타입 사이의 논리적인 관계
- 엔티티와 엔티티가 존재의 형태나 행위로서 서로에게 영향을 주는 것
관계의 카디낼리티
- 두 개의 엔티티타입간 관계에서 참여자의 수를 표현하는 것
관계를 표시하는 방법
- 1:1 관계
- 각각의 엔티티는 하나의 관계만을 가지고 있다.
- 1:M 관계
- 다른 엔티티타입에 하나이상의 수와 관계를 가지지만, 반대방향은 하나의 관계만 가진다.
- M:N 관계
- 다른 엔티티타입에 하나이상의 수와 관계를 가지고, 반대 방향도 동일하게 하나이상의 관계를 맺는다.
반응형