Today I Learned
오늘은 면접 준비를 하면서 SQLD 이론 공부를 이어서 진행했다.
공부하다보니 Entity를 영어로만 접해서 지금까지 당연히 엔티티라고 적었는데 실무에서는 엔터티라고도 쓰고 혼재된 것 같았다. 메서드와 메소드 느낌?
엔터티(Entity)
업무에서 관리해야 하는 데이터의 집합. 인스턴스의 집합. 명사형
특징
- 유일한 식별자를 가짐
- 2개 이상의 인스턴스를 포함
- 업무에서 필요로 하고 업무 프로세스에 이용
- 속성과 관계를 가짐
종류
- 발생 시점에 따른 분류
- 기본 엔터티 : Key Entity. 독립적으로 생성
- 중심 엔터티 : Main Entity. 기본과 행위 엔티티의 중간
- 행위 엔터티 : Active Entity. 사건 엔티티. 2개 이상의 부모 엔티티로 부터 발생. 비즈니스 프로세스를 실행하면서 생성. 지속적으로 정보가 변경 or 추가되어 데이터 양이 가장 많다.
- 유/무형에 따른 분류
- 유형 엔터티 : 물리적 형태가 있고 지속적으로 활용
- 무형 엔터티 : 물리적 형태가 없음
명명규칙
- 현업 업무에서 사용하는 용어
- 약어 지양
- 단수 명사
- 유일성 보장
- 명확성
속성
엔티티가 가지는 최소 의미 단위. 인스턴스의 구성요소
엔터티-인스턴스-속성-속성값
한개의 엔터티는 두개 이상의 인스턴스의 집합
한개의 엔터티는 두개 시아의 속성을 가짐
한개의 속성은 한개의 속성값을 가짐
- IE 표기법
이외에 Barker표기법도 있다.
특징
- 속성값을 하나만 가진다.
(하나 이상의 속성값이면 정규화가 필요)
- 주 식별자에 함수적으로 종속
- 업무에서 필요하고 관리하고자 하는 정보
종류
- 특성에 따른 분류
- 기본 속성 : 비즈니스 프로세스에서 도출되는 본래 속성
- 설계 속성 : 데이터 모델링 과정에서 업무 규칙화를 위해 발생하는 속성
- 파생 속성 : 다른 속성에 의해 만들어지는 속성
(저장 속성은 유도 속성을 생성하는 데 사용되는 속성)
- 분해 가능 여부에 따른 분류
- 단일 속성 : 하나의 의미
- 복합 속성 : 여러 의미, 단일 속성으로 분해 가능 ex)주소
- 단일값 속성 : 하나의 값
- 다중값 속성 : 여러 값. 엔터티로 분해 가능
- 엔터티 구성 방식에 따른 분류
- 기본키 속성 : 엔터티를 식별할 수 있는 속성
- 외래키 속성 : 다른 엔터티와의 관계에서 포함된 속성
- 일반 속성 : 엔터티에 포함되고 PK, FK가 아닌 속성
관계
엔터티 간의 논리적인 관련성. 동사형
관계 표기법
- 관계명
- 관계차수(Cardinality) : 관계 내 튜플의 전체 수. 하나는 직선이고 많으면 삼발로 표시
(M:N 관계의 조인은 관계형 DB에서 카테시안 곱 발생)
종류
- UML 기준
- 연관 관계 : Association. 실선 표기
- 의존 관계 : Dependency. 점선 표기
- ERD 기준(표기구분 x)
- 존재 관계 : 엔터티 간의 상태
- 행위 관계 : 엔터티 간에 발생하는 행위
- 식별자에 따른 분류
관계 읽기
각각의/하나의 > 기준 엔터티 > 관계차수 > 대상 엔터티 > 관계선택사양 > 관계명