SMALL
엔터티
엔터티의 특징
- 1. 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.
- 2. 유일한 식별자에 의해 식별이 가능해야 한다.
- 3. 영속적으로 존재하는 두 개 이상의 인스턴스 집합이어야 한다.
- 4. 업무 프로세스에 의해 이용되어야 한다.
- 5. 반드시 속성이 있어야 한다.
- 6. 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다. (공통코드, 통계성 엔터티의 경우는 생략 가능!)
ERD 작성 순서
- 엔터티를 그린다.
- 엔터티를 적절하게 배치한다.
- 엔터티간 관계를 설정한다.
- 관계명을 기술한다.
- 관계의 참여도를 기술한다.
- 관계의 필수여부를 기술한다.
발생 시점에 따른 엔터티 분류
기본 엔터티 (키 엔터티)
- 업무에 원래 존재하는 정보
- 다른 엔티티와의 관계에 의해 생성되지 않고 독립적으로 생성 가능
- 타 엔티티의 부모역할을 하게됨
- 사원, 부서, 고객, 상품 등
- 자신의 고유한 주식별자를 갖게 됨 ex)사원,부서,고객,상품,자재 등
중심 엔터티
- 기본 엔터티로부터 발생하며, 업무에 있어서 중요한 역할을 한다.
- 데이터량이 많이 발생되고 다른 엔터티와의 관계를 통해 행위 엔티티를 생성한다.
- 계약, 청구, 주문, 매출 등
행위 엔터티
- 두 개 이상의 부모 엔티티로부터 발생
- 자주 내용이 바뀌거나 데이터량이 증가한다.
- 분석 초기 단계에서는 잘 나타나지 않고 상세 설계나 프로세스와 상관 모델링을 하면서 도출될 수 있다.
- 주문목록, 사원 변경이력 등
엔티티 명명 기준
- 가능하면 현업에서 사용하는 용어를 사용한다.
- 가능하면 약어를 사용하지 않는다.
- 단수명사를 사용한다.
- 모든 엔터티를 통틀어서 유일하게 이름이 부여되어야 한다.
- 엔터티 생성 의미대로 이름을 부여한다.
속성(Attribute)
- 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
- 엔터티에 대한 자세하고 구체적인 정보를 나타냄
- 속성도 집합이다.
엔터티, 인스턴스, 속성, 속성값의 관계
- 한 개의 엔티티는 두 개 이상의 인스턴스의 집합이어야 한다.
- 한 개의 엔티티는 두 개 이상의 속성을 갖는다.
- 하나의 인스턴스에서 각각의 속성은 하나 이상의 속성값을 갖지 못한다.
속성 특성에 따른 분류
기본 속성
- 원래 가지고 있어야 하는 속성
- 업무로 부터 추출된 일반적인 속성
설계 속성
- 원래 존재하지 않지만 필요에 따라 설계자가 추가한 속성
- 주문번호, 예약번호, 고객번호, 상품코드 등
파생 속성
- 데이터를 조회할 때 빠른 성능을 낼 수 있도록 하기 위해 원래 속성의 값을 계산하여 저장할 수 있도록 만든 속성
도메인
- 각 속성이 가질 수 있는 값의 범위
- 엔터티 내에서 속성에 대한 데이터타입과 제약사항을 지정하는 것
- 예) 제품명이라는 속성은 길이가 20자리 이내의 문자열로 정의 할 수 있다.
속성 명칭 부여
- 해당 업무에서 사용하는 이름을 부여한다.
- 서술적인 속성명을 사용하지 않는다.
- 약어는 가급적 사용하지 않는다.
- 전체 데이터 모델에서 유일성을 확보하는 것이 좋다.
관계
관계의 표기법
- 관계명(Membership) : 관계의 이름
- 관계차수(Cardinality) : 1:1, 1:M, M:N
- 관계선택사양(Optionality) : 필수 관계, 선택 관계
관계 도출시 체크 사항
- 두 개의 엔터티 사이에 관심있는 연관 규칙이 존재하는가?
- 두 개의 엔터티 사이에 정보의 조합이 발생하는가?
- 업무기술서, 장표에 관계 연결에 대한 규칙이 서술되어 있는가?
- 업무기술서, 장표에 관계 연결을 가능하게 하는 동사(Verb)가 있는가?
식별자
식별자의 종류
대표성 여부
- 주 식별자 : 인스턴스를 유일하게 구분 할 수 있으며 참조관계를 연결 할 수 있음
- 보조 식별자 : 유일하게 구분 가능하지만 대표성을 가지지 못해 참조관계 연결을 못함
스스로 생성 여부
- 내부 식별자 : 엔티티 내부에서 스스로 만들어지는 식별자
- 외부 식별자 : 타 엔티티와의 관계를 통해 타 엔티티로부터 받아오는 식별자
속성의 수
- 단일 식별자 : 하나의 속성으로 구성됨
- 복합 식별자 : 2개 이상의 속성으로 구성됨
대체 여부
- 본질 식별자 : 업무에 의해 만들어지는 식별자
- 인조 식별자 : 업무적으로 만들어지지는 않지만 원조식별자가 복잡한 구성을 가지고 있기 때문에 인위적으로 만든 식별자
주 식별자 지정시 고려사항
- 유일성 : 엔티티내의 모든 인스턴스를 유일하게 구분함
- 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함
- 불변성 : 식별자가 한 번 지정되면 그 값은 변하지 않아야 함
- 존재성 : 주식별자가 존재하면 반드시 데이터 값이 존재 (null 안됨)
주식별자를 도출하는 기준
- 해당 업무에서 자주 사용되는 속성을 주식별자로 지정
- 명칭, 내역 등과 같이 이름으로 기술되는 속성은 주식별자로 지정하지 않는다.
- 복합으로 주식별자를 구성하는 경우 너무 많은 속성이 포함되지 않도록 한다.
식별자 관계
- 부모 엔티티의 주식별자가 자식 엔티티의 주 식별자로 상속된 경우
비식별자 관계
- 부모 엔티티의 주식별자가 자식 엔티티의 일반 속성으로 상속된 경우
비식별자 관계로 설정하는 경우
- 부모 없는 자식이 생성될 수 있는 경우
- 여러 엔터티가 하나의 엔터티로 통합되어 표현될 경우
- 자식 엔터티에서 별도의 주식별자를 생성하는 것이 더 유리하다고 판단될 때
- 자식과 관련이 있는 엔터티로의 주식별자 상속을 차단하기 위해
부모가 있었지만 자식만 남겨두고 먼저 소멸될 수 있는 경우 -> *식별자 관계가 더 적합하다!
'Database' 카테고리의 다른 글
DROP, TRUNCATE, DELETE 비교 (0) | 2023.02.07 |
---|---|
SQL 명령어 (0) | 2023.02.07 |
정규화, 반정규화 (0) | 2023.02.06 |
성능 데이터 모델링 (0) | 2023.02.06 |
데이터 모델링 (0) | 2023.02.06 |
댓글