ER 모델
데이터베이스 설계를 용이하게 하기 위해서 P.P. Chen이 1976년에 제안
현재는 EER(Enhanced Entity Relationship) 모델이 데이터베이스 설계 과정에 널리 사용됨
실세계를 엔티티, 애트리뷰트, 엔티티들 간의 관계로 표현함
기본적으로 엔티티, 관계, 애트리뷰트가 있고, 기타로는 카디날리티 비율, 참여 제약조건 등이 있음
적은 노력으로 쉽게 배울 수 있고, 전문가가 아니어도 이해하기 쉬우며, 자연어보다 정형적이고, 구현에 독립적임
엔티티
엔티티 : 사람, 장소, 사물, 사건 등과 같이 독립적으로 존재하면서 고유하게 식별이 가능한 실세계의 객체
사원처럼 실체가 있는 것도 있고, 생각이나 개념같이 추상적인 것도 있음
엔티티 타입
엔티티들은 엔티티 타입(또는 엔티티 집합)들로 분류됨
엔티티 타입은 동일한 애트리뷰트들을 가진 엔티티들의 틀
엔티티 집합은 동일한 애트리뷰트들을 가진 엔티티들의 모임
하나의 엔티티는 한 개 이상의 엔티티 집합에 속할 수 있음
엔티티 타입은 관계 모델 릴레이션의 내포에 해당, 엔티티 집합은 관계 모델 릴레이션의 외연에 해당
엔티티 집합과 엔티티 타입을 엄격하게 구분할 필요는 없음
ER 다이어그램에서 엔티티 타입은 직사각형으로 나타냄
객체지향프로그래밍에서 엔티티와 엔티티 타입은 다음과 같이 비유될 수 있다.
엔티티 : 객체(인스턴스)
엔티티 타입 : 클래스
강한 엔티티 타입
엔티티 타입 내에서 자신의 키 애트리뷰트를 사용하여 엔티티들을 고유하게 식별할 수 있는 엔티티 타입
약한 엔티티 타입
키를 형성하기에 충분한 애트리뷰트들을 갖지 못한 엔티티 타입을 약한 엔티티 타입이라고 한다.
약한 엔티티 타입이 존재하려면 소유 엔티티 타입이 있어야 한다.
소유 엔티티 타입의 키 애트리뷰트를 결합해야만 고유하게 약한 엔티티 타입의 엔티티들을 식별할 수 있다.
애트리뷰트
하나의 엔티티는 연관된 애트리뷰트들의 집합으로 설명된다.
ER 다이어그램에서 타원형으로 나타낸다.
애트리뷰트와 엔티티 타입은 실선으로 연결한다.
단순 애트리뷰트
더 이상 다른 애트리뷰트로 나눌 수 없는 애트리뷰트
ER 다이어그램에서 실선 타원으로 표현한다.
ER 다이어그램에서 대부분의 애트리뷰트는 단순 애트리뷰트이다.
복합 애트리뷰트
두 개 이상의 애트리뷰트로 이루어진 애트리뷰트
동일한 엔티티 타입이나 관계 타입에 속하는 애트리뷰트들 중에서 밀접하게 연관된 것을 모아놓은 것
단일 값 애트리뷰트
각 엔티티마다 정확하게 하나의 값을 갖는 애트리뷰트
ER 다이어그램에서 단순 애트리뷰트와 동일하게 표현됨
대부분의 애트리뷰트는 단일 값 애트리뷰트
다치 애트리뷰트
각 엔티티마다 여러 개의 값을 가질 수 있는 애트리뷰트
ER 다이어그램에서 이중선 타원으로 표현함.
저장된 애트리뷰트
다른 애트리뷰트와 독립적으로 존재하는 애트리뷰트
ER 다이어그램에서 단순 애트리뷰트와 동일하게 표현됨
대부분의 애트리뷰트는 저장된 애트리뷰트
유도된 애트리뷰트
다른 애트리뷰트의 값으로부터 얻어진 애트리뷰트
관계 데이터베이스에서 릴레이션의 애트리뷰트로 포함시키지 않는 것이 좋음
ER 다이어그램에서 점선 타원형으로 표시함.
관계와 관계 타입
관계는 엔티티들 사이에 존재하는 연관이나 연결. 두 개 이상의 엔티티 타입들 사이의 사상으로 생각할 수 있음.
관계 집합은 동질 관계들의 집합
관계 타입은 동질 관계들의 틀
ER 다이어그램에서 다이아몬드로 표기
관계 타입이 서로 연관시키는 엔티티 타입들을 관계 타입에 실선으로 연결
차수
관계로 연결된 엔티티 타입들의 개수
가장 흔한 관계는 두 개의 엔티티 타입을 연결하는 2진 관계
카디날리티 비율
한 엔티티가 참여할 수 있는 관계의 수를 나타냄
관계 타입에 참여하는 엔티티들의 가능한 조합을 제한함
관계를 흔히 1:1, 1:N, N:M으로 구분
카디나리티 비율에 관한 정보는 간선 위에 나타냄
전체 참여와 부분 참여
전체 참여는 어떤 관계에 대하여 모든 엔티티들이 연관되는 것을 의미
부분 참여는 어떤 관계에 대하여 일부 엔티티만 참여하는 것을 의미
약한 엔티티 타입은 항상 관계에 전체 참여
전체 참여는 ER 다이어그램에서 이중 실선으로 표시
다중 관계
두 엔티티 타입 사이에 두 개 이상의 관계 타입이 존재할 수 있음
새발 표기법
'CS > DB' 카테고리의 다른 글
[DB] 물리적 데이터베이스 설계 (0) | 2022.05.16 |
---|---|
[DB] ER 스키마를 관계 모델의 릴레이션으로 사상하기 (1) | 2022.05.15 |
[DB] 데이터베이스 설계 개요 (0) | 2022.05.13 |
[DB] SQL 사용법(2) (0) | 2022.04.26 |
[DB] SQL 사용법(1) (0) | 2022.04.26 |