거인의 코딩일지
[SQLD] 엔티티 (Entity) 본문
728x90
엔티티
엔티티의 특징
- 업무에서 쓰이는 정보여야함
- 업무와 연관되어있는 엔티티라도 실제로 프로세스에 이용되지 않는다면 적절하지 않음
- 유니크함을 보장할 수 있는 식별자가 있어야함
- ex) 상품 엔티티의 경우 상품명이 동일한 상품이 존재할 수 있음으로 별도의 상품코드가 있어야한다.
- 2개 이상의 인스턴스를 가지고 있어야함
- 반드시 속성을 가지고 있어야함
- 다른 엔티티와 1개 이상의 관계를 가지고 있어야함
엔티티의 분류
- 실존 하는 지 여부에 따른 분류
- 유형 엔티티 : 물리적인 형태 존재, 안정성, 지속성 ex) 회원, 상품
- 개념 엔티티 : 물리적인 형태 없음, 개념적 ex) 부서, 학과
- 사건 엔티티 : 행위를 함으로서 발생, 빈번함, 통계자료로 이용 가능 ex) 주문, 이벤트 응모
- 발생 시점
- 기본 엔티티 : 업무에 원래 존재하는 정보, 독립적으로 생성되며 자식엔티티를 가질수 있음
- ex) 상품, 회원, 사원, 부서
- 중심 엔티티 : 기본 엔티티에서 파생되고 행위엔티티 생성, 업무에 있어서 중심적인 역할, 데이터 양이 많음
- ex) 주문, 매출, 계약
- 행위 엔티티 : 2개 이상의 엔티티로부터 파생, 데이터가 자주 변경되거나 증가할 수 있음
- ex) 주문내역, 이벤트 응모
- 기본 엔티티 : 업무에 원래 존재하는 정보, 독립적으로 생성되며 자식엔티티를 가질수 있음
엔티티의 속성
- 의미상 더이상 쪼개지지 않아야 하며 프로세스에 필요한 항목이어야 함
- 엔티티, 인스턴스, 속성, 속성값의 관계
- 한개의 엔티티에는 두개이상의 인스턴스를 갖는다.
- 한개의 인스턴스는 두개이상의 속성을 갖는다.
- 한개의 속성은 한개의 속성값을 갖는다.
- 도메인
- 속성이 가질수 있는 속성값의 범위
- ex) 우편번호는 다섯자리의 숫자라는 범위를 가지고 있고 이것은 엔티티를 정의 할 떄 데이터 타입과 크기로 나뉜다.
엔티티의 분류
- 특성에 따른 분류
- 기본속성 (Basic Attribute)
- 엔티티의 가장 많은 퍼센티지
- 업무프로세스 분석을 통해 바로 정의가 가능한 속성
- 설계속성 (Designed Attribute)
- 업무에 존재하지는 않지만 설계하다보니 필요하다고 판단되어 도출한 속성
- 파생속성 (Derived Attribute)
- 다른속성의 속성값을 계산하거나 특정한 규칙으로 변형하여 생성한 속성
- 기본속성 (Basic Attribute)
- 구성방식에 따른 분류
- PK 속성 : 엔티티의 속한 인스턴스에 유니크함을 부여하는 속성
- FK 속성 : 다른 엔티티의 속성에서 가져온 속성
- 일반 속성 : PK FK 속성을 제외한 나머지 속성
엔티티의 관계
- 관계란?
- 엔티티와 엔티티의 관계를 의미하며 어떠한 연관성이 있는지 타입을 분류하여 존재관계와 행위관계로 나눌 수 있다.
- 존재관계 : 존재 자체로 연관성 있는 관계
- 행위관계 : 특정한 행위를 함으로써 연관성이 생기는 관계
- 표기법
- 관계명 : 관계의 이름, 명확한 문장이고, 현재형
- 관계차수 : 관계에 참여하는 수, 1:1 / 1:M / M:M 형식으로 구분
- 관계 선택 사양 : 필수인지 선택인지의 여부
- 필수적 관계 : 참여자가 반드시 존재해야하는 관계
- 선택적 관계 : 참여자가 없을 수도 있는 관계
식별자
- 하나의 속성이 주식별자가 될수도 있고, 여러개의 속성이 주식별자가 될 수도 있다.
- 주식별자 : 기본키, PK 에 해당하는 속성
- 유일성 : 각 인스턴스에 유니크함을 부여하여 식별이 가능하도록 한다.
- 최소성 : 유일성을 보장하는 최소 개수의 속성이어야 한다.
- 불변성 : 속성값이 되도록 변하지 않아야 한다.
- 존재성 : 속성값이 NULL 이 아니어야 한다.
- 분류
- 대표성 여부
- 주식별자
- 유일성,최소성,불변성,존재성 을 가진 대표 식별자, 다른엔티티와 참조 관계로 연결
- 보조 식별자
- 인스턴스를 식별할 수는 있지만 대표식별자는 아니다.
- 다른 엔티티와 참조 관계로 연결 X
- 주식별자
- 스스로 생성 되었는지 여부
- 내부 식별자 : 엔티티 내부에서 스스로 생성된 식별자
- 외부 식별자 : 다른 엔티티에서 온 식별자 다른 엔티티와 연결고리 역할
- 단일 속성 여부
- 단일 식별자 : 하나의 속성으로 구성된 식별자
- 복합 식별자 : 두개 이상의 속성으로 구성된 식별자
- 대체 여부
- 원조 식별자(본질 식별자) : 업무 프로세스에 존재하는 식별자, 가공되지 않는 원래의 식별자
- 대리 식별자(인조 식별자) : 주식별자의 속성이 두개 이상인 경우 그 속성들을 하나로 묶어서 사용하는 식별자
- 대표성 여부
식별자 관계 VS 비식별자 관계
- 식별자 관계
- 부모 엔티티의 식별자가 자식엔티티 주식별자가 되는 관계
- 비식별자 관계
- 부모 엔티티의 식별자가 자식엔티티의 주식별자가 아닌 일반 속성이 되는 관계
- 자식 엔티티가 존재하는 상태에서 부모엔티티가 삭제 될 수도 있음
728x90
'자격증 > SQLD' 카테고리의 다른 글
[SQLD] 오답정리(데이터 모델과 SQL) (0) | 2024.05.16 |
---|---|
[SQLD] 오답정리(데이터 모델링의 이해) (0) | 2024.05.15 |
[SQLD] 정규화 이론??? (0) | 2024.05.05 |
[SQLD] 성능 데이터 모델링과 정규화 (0) | 2024.05.03 |
[SQLD] 데이터 모델링의 이해 (0) | 2024.04.08 |