DataBase/DataModeling
[데이터모델링]ER데이터 모델(엔티티와 엔티티타입, 애트리뷰트, 관계)
iliosncelini
2017. 12. 26. 22:41
http://somnode.com/database-deiteobeiseu-seolgyewa-ermodel/
ER 모델
- 실세계를 엔티티, 애트리뷰트, 엔티티들 간의 관계로 표현함
- 카디날리티 비율, 참여 제약조건을 표현하기도 함
엔티티
- 독립적으로 존재하면서 고유하게 식별 가능한 객체
- 실체가 명확히 존재하는 실재적, 개념적인 것(사람,조직,물건,설계,돈)
엔티티타입
- 일반적으로 엔티티라고 부르는 단어가 사실은 엔티티타입을 의미함
- 동일한 애트리뷰트들을 가진 엔티티들의 틀
- ER데이터 모델에서 직사각형으로 나타냄
- 엔티티타입 안에 엔티티가 존재하고, 엔티티 안에 어트리부트가 존재.
따라서, 엔티티타입안에 어트리부트가 존재한다고 심플하게 생각하면됨 - 실체가 명확히 존재하는 실재적, 개념적인 것(사람,조직,물건,설계,돈)
- 데이터베이스에서 최종적으로 테이블로 표현이 되는 요소
- 두 엔티티 간에 비슷한 애트리뷰트가 많이 있다면 두 엔티티를 하나로 통합
따라서, 엔티티타입안에 어트리부트가 존재한다고 심플하게 생각하면됨
엔티티집합
- 동일한 애트리뷰트들을 가진 엔티티들의 모임
- 관계 모델의 릴레이션의 외연에 해당

강한 엔티티타입
- 엔티티타입 내에서 자신의 키 애트리뷰트를 사용하여 고유하게 엔티티들을 식별할 수 있는 엔티티타입
- 예) 사원 엔티티타입
약한 엔티티타입
- 키를 형성하기에 충분한 애트리뷰트들을 갖지 못한 엔티티타입
- 소유 엔티티타입의 키 애트리뷰트와 결합해야만 고유하게 엔티티들을 식별할 수 있음
- 예) 부양가족 엔티티타입

애트리뷰트
- 엔티티의 특성들
- 엔티티는 독립적인 의미를 갖지만, 애트리뷰트는 독립적인 의미를 갖지 못함
- 애트리뷰트 도메인은 그 애트리뷰트가 가질 수 있는 값의 범위
- 타원형으로 나타냄
- 기본키 애트리뷰트는 밑줄을 그어 표시함
단순 애트리뷰트
- 더 이상 다른 애트리뷰트로 나눌 수 없는 애트리뷰터

복합 애트리뷰트
- 두 개 이상의 애트리뷰트로 이루어진 애트리뷰트

단일 값 애트리뷰트
- 각 엔티티마다 정확하게 하나의 값을 갖는 애트리뷰트
다치 애트리뷰트
- 각 엔티티마다 여러 개의 값을 가질 수 있는 애트리뷰트

저장된 애트리뷰트
- 다른 애트리뷰트와 독립적으로 존재하는 애트리뷰트
- 예) 사원 엔티티타입에서 사원이름, 급여는 다른 애트리뷰트와 독립적으로 존재함
유도된 애트리뷰트
- 다른 애트리뷰트의 값으로부터 얻어진 애트리뷰트
- 유도된 애트리뷰트는 관계 데이터베이스에서 릴레이션의 애트리뷰트로 포함시키지 않는 것이 좋음

관계
- 두 개 이상의 엔티티 타입들 사이의 사상
관계집합
- 동질의 관계들의 집합
관계타입
- 동질의 관계들의 틀

관계의 애트리뷰트
- 관계타입은 관계의 특징을 나타내는 애트리뷰트를 가질 수 있음
- 키 애트리뷰트는 갖지 않음

차수(degree)
- 관계에 연결된 엔티티타입들의 개수

카디날리티
- 한 엔티티가 참여할 수 있는 관계의 수

카디날리티의 최소값과 최대값

역할(role)
- 관계 타입의 의미를 명확하게 하기 위해 사용
- 하나의 관계타입에 하나의 엔티티타입이 여러번 나타나는 경우, 반드시 역할을 표기해야함

전체참여
- 엔티티타입 E1의 모든 인스턴스가 관계에 참여해야 하는 것
부분참여
- 엔티티타입 E2의 인스턴스 중 일부만 관계에 참여해도 되는 것

다중 관계
- 두 엔티티타입 사이에 두 개 이상의 관계 타입이 존재할 수 있음

순환적 관계
- 하나의 엔티티 타입이 자기 자신과 관계를 맺는 것

새발 표기법(crow-feet)

1:1 관계

1:N 관계

M:N 관계

엔티티 타입과 애트리뷰트

ER 스키마를 관계 모델의 릴레이션으로 사상
단계1: 정규 엔티티타입과 단일 값 애트리뷰트
- 정규 엔티티타입에 있는 단순 애트리뷰트들을 릴레이션에 포함시킴

단계2: 약한 엔티티타입과 단일 값 애트리뷰트
- 약한 엔티티타입에 있는 단순 애트리뷰트들을 릴레이션에 포함시킴
- 소유 엔티티타입의 기본 키를 외래키로 포함시킴
- 릴레이션의 기본 키는 약한 엔티티타입의 부분 키와 소유 엔티티타입에 해당하는 릴레이션을 참조하는 외래 키 조합으로 이루어짐

단계3: 2진 1:1 관계 타입


단계4: 정규 2진 1:N 관계 타입

단계5: 2진 M:N 관계 타입

단계6: 3진 이상의 관계 타입

단계7: 다치 애트리뷰트
