목차
ER Model 설계
1. 엔티티(Entity)
2. 강한 엔티티 타입과 약한 엔티티 타입
3. 애트리뷰트(Attribute)
4. 관계(Relationship)
ER Model 설계
ER Model
• 초기 고수준(개념적) Database 설계를 표현하는데 사용되는 모델
• ER Model은 쉽게 관계 데이터모델로 사상됨
• 기본적인 구문으로는 엔티티, 관계, 애트리뷰트가 있음
• 기타 구문으로는 카디날리티 비율, 참여 제약조건 등이 있음
[장점]
• 적은 노력으로 쉽게 배울 수 O
• 쉽게 이해할 수 O
• 자연어보다 좀 더 정형적
• 구현에 독립적이어서 DB설계자들이 최종 사용자들과 의사소통 하는데 적합
1. 엔티티(Entity)
• 하나의 엔티티: 독립적으로 존재하면서 고유하게 식별이 가능한 실세계의 객체
• 실체가 있는 것(ex. 사원)도 있지만 추상적인 것(생각, 개념)도 O
• 엔티티 타입은 스키마, 엔티티는 인스턴스
* 엔티티 타입 (Entity type, 속성의 집합을 “타입”이라고 명함)
• 엔티티 타입: 관계 모델의 릴레이션의 내포(스키마). 동일한 애트리뷰트들을 가진 엔티티들의 틀
• 엔티티 집합: 관계 모델의 릴레이션의 외연(인스턴스, 튜플). 동일한 애트리뷰트들을 가진 엔티티들의 모임
• 엔티티들: 엔티티 타입(or 엔티티 집합)들에 따라 분류됨.
• ER Diagram에서는 엔티티 타입과 엔티티 집합을 엄격하게 구분할 필요는 X
2. 강한 엔티티 타입과 약한 엔티티 타입
강한 엔티티 타입(정규 엔티티 타입)
- 독자적으로 존재
- 엔티티 타입 내에서 자신의 키 애트리뷰트를 사용하여 고유하게 엔티티들을 식별할 수 있는 엔티티 타입
약한 엔티티 타입
- 키를 형성하기에 충분한 애트리뷰트들을 갖지 못한 엔티티 타입 (꼭 없어도 되지만, 있으면 유익한..)
- 이게 존재하려면 (이거의 주인격인) 소유 엔티티 타입이 있어야 함.
- 강한 엔티티 타입이 소유 엔티티 타입이 될 수 O
- 강한 소유 엔티티 타입의 키 애트리뷰트를 결합해야만, 고유하게, 약한 엔티티 타입의 엔티티들 식별 가능
- 약한 엔티티 타입에게 키 애트리뷰트를 제공하는 엔티티 타입
- 소유(강한) 엔티티 타입(Owner entity type)
- 식별 엔티티 타입(Identifying entity type)
- ER Diagram에서 이중선 직사각형으로 표기
- 부분키 (partial key)
⇒ 점선 밑줄을 그어 표시
- 부양가족의 이름(ex. 김철수)처럼 한 사원에 속한 부양가족 내에서는 서로 다르지만, 회사 전체 사원의 부양가족들 전체에서는 같은 경우(ex. 여러 명의 김철수)가 생길 수 있는 애트리뷰트
<관련 기출문제>
정보감리사 2022년
3번이 옳지 않은 설명인 이유:
약한 엔티티 타입의 엔티티들을 식별하기 위해 강한 엔티티 타입의 "키" 애트리뷰트들 중 임의의 하나와 결합해야 한다.
3. 애트리뷰트(Attribute)
- 하나의 엔티티는 연관된 애트리뷰트들의 집합으로 설명됨
- ex) 사원 엔티티는 사원번호, 이름, 직책, 급여 등의 애트리뷰트를 가짐
- 한 애트리뷰트의 도메인은 그 애트리뷰트가 가질 수 있는 모든 가능한 값들의 집합을 의미
- ex) 사원번호는 1000부터 9999까지의 값을 가짐
- 여러 애트리뷰트가 동일한 도메인을 공유할 수 있음
- ex) 사원번호와 부서번호가 네 자리 정수를 가질 수 있음
- 키(key) 애트리뷰트는 한 애트리뷰트 또는 애트리뷰트들의 모임으로서
한 엔티티 타입 내에서 각 엔티티를 고유하게 식별함
- ER Diagram에서 기본 키(Primary Key)에 속하는 애트리뷰트는 밑줄을 그어 표시함.
- 애트리뷰트는 요구사항 명세에서 명사나 형용사로 표현됨.
- 엔티티와 애트리뷰트의 차이점
- 엔티티: 독립적인 의미를 가짐
- 애트리뷰트: 독립적인 의미X. (종속적임)
- ER Diagram에서 애트리뷰트는 타원형으로 나타냄
- 애트리뷰트와 엔티티 타입은 실선으로 연결
## 애트리뷰트의 종류 6가지
- 단순 애트리뷰트(simple attribute)
- 더 이상 다른 애트리뷰트로 나눌 수 없는 애트리뷰트
- ER Diagram에서 실선 타원으로 표현함
- ER Diagram에서 대부분의 애트리뷰트는 단순 애트리뷰트
- 복합 애트리뷰트(composite attribute)
- 두 개 이상의 애트리뷰트로 이루어진 애트리뷰트
- 동일한 엔티티 타입이나 관계 타입에 속하는 애트리뷰트들 중에서 밀접하게 연관된 것을 모아놓은 것
- 단일 값 애트리뷰트(single-valued attribute)
- 각 엔티티마다, 정확하게 하나의 값(unique value)를 갖는 애트리뷰트
- 단일 값 애트리뷰트는 ER Diagram에서 단순 애트리뷰트와 동일하게 표현됨
- ex) 사원의 사원번호 애트리뷰트는 어떤 사원도 두 개 이상의 사원번호를 갖지 않으므로 단일 값 애트리뷰트
- ER Diagram에서 대부분의 애트리뷰트는 단순 애트리뷰트
- 다치 애트리뷰트(multi-valued attribute)
- 각 엔티티마다 여러 개의 값을 가질 수 있는 애트리뷰트
- ER Diagram에서 이중선 타원으로 표현함
- 저장된 애트리뷰트(stored attribute)
- 다른 애트리뷰트와 연관성 없이 독립적으로 존재하는 애트리뷰트
- ex) 사원 엔티티 타입에서 사원 이름, 급여는 다른 애트리뷰트와 연관 관계가 없이 독립적으로 존재하므로 저장된 애트리뷰트에 속함.
- ex) 시(city), 도(province) 등은 주소(address) 애트리뷰트와 연관되며, 독립적으로 존재하지 않으므로 저장된 애트리뷰트에 속하지 않음.
- ER Diagram에서 대부분의 애트리뷰트는 저장된 애트리뷰트
- ER Diagram에서 단순 애트리뷰트와 동일하게 표현됨.
- 유도된 애트리뷰트(derived attribute)
- 다른 애트리뷰트의 값으로부터 얻어진 애트리뷰트
- 유도된 애트리뷰트는 관계 Database에서 Relation의 애트리뷰트로 포함시키지 않는 것이 좋음.
- ex) 주민번호 → 생일, 나이 유도 가능
- ER Diagram에서 점선 타원으로 표현함.
4. 관계(Relationship)와 관계 타입
- 관계: 엔티티들 사이에 존재하는 연관이나 연결로서, 두 개 이상의 엔티티 타입들 사이의 사상으로 생각할 수 있음
- 관계 집합 ⇒ 동질의 관계들의 집합
- 관계 타입 ⇒ 동질의 관계들의 틀
- 요구사항 명세에서 흔히, 동사는 ER Diagram에서 관계로 표현됨
- ER Diagram에서 다이아몬드(마름모꼴)로 표기
- 관계 타입이 서로 연관시키는 엔티티 타입들을 관계 타입에 실선으로 연결함
- 관계 집합과 관계 타입을 엄격하게 구분할 필요는 없음
관계의 애트리뷰트
- 관계 타입은 관계의 특징을 기술하는 애트리뷰트들을 가질 수 있음
- 관계 타입은 키 애트리뷰트를 갖지 않음.
차수(degree)
- 관계의 차수: 관계로 연결된, 엔티티 타입들의 연관 개수
- 실세계에서 가장 흔한 관계: 두 개의 엔티티 타입을 연결하는 2진 관계
- 쉽게 말하면 스키마에서 속성의 개수
(이어서)
[데이터베이스] ER Model 설계(2) - 카디날리티 비율, 참여 제약조건
목차 1. 카디날리티 비율 2. 카디날리티 비율의 최솟값과 최댓값 3. 역할(role) 데이터베이스 설계 과정 ER Model 설계(2) - 카디날리티 비율, 참여 제약조건 ER Model 설계(계속) [데이터베이스] ER Model 설
ynslee627.tistory.com