ER Model (상기 단계에서 2 단계에 해당한다.)
기본적인 구문으로는 엔티티, 관계, 애트리뷰트이 있다.
기타 구문으로는 카디날리티 비율, 참여 제약조건 등
ER Model의 장점
(1) 적은 노력으로 쉽게 배울 수 있음
(2) 전문가가 아니어도 이해하기 쉬움
(3) 자연어보다는 좀 더 정형적임
(4) 구현에 독립적이어서 Database 설계자들이 최종 사용자들과 의사 소통을 하는데 적합함
기타 사항
ER Model을 기반으로 만들어진 다수의 CASE 도구(예, ERWin, DataArchitect, PowerBuilder 등)
이런 도구들은 ER 설계를 자동적으로 Sybase, Oracle, Infomix, DB2 등의 DDL로 자동 변환됨
ER 모델링은 현재는 Database 설계를 위한 다소 구형 그래픽 표기법으로
현재, 대규모 기업의Database 설계에서는 UML(Unified Modeling Language)을 사용
하나의 엔티티는 사람, 장소, 사물, 사건 등과 같이 독립적으로 존재하면서 고유하게 식별이 가능한 실세계의 객체
사원처럼 실체가 있는 것도 있지만 생각이나 개념과 같이 추상적인 것도 있다.
엔티티 타입
:관계 모델의 관계의 내포(Schema) 에 해당
엔티티 집합
: 관계 모델의 관계의 외연(Instances, Tuples)에 해당한다.
엔티티들
: 엔티티 타입(or 엔티티 집합)들에 따라 분류된다.
단, ER Diagram에서는 엔티티 타입과 엔티티 집합을 엄격하게 구분할 필요는 없다.
ER Diagram에서 엔티티 타입은 직사각형으로 나타낸다.
강한 엔티티 타입
강한 엔티티 타입(정규 엔티티 타입)은 독자적으로 존재하며
엔티티 타입 내에서 자신의 키 애트리뷰트를 사용하여 고유하게 엔티티들을 식별할 수 있는 엔티티 타입을 의미한다.
약한 엔티티 타입을 소유한다는 개념으로 소유 엔티티 타입 이라고도 불리운다.
약한 엔티티 타입
약한 엔티티 타입은 키를 형성하기에 충분한 애트리뷰트들을 갖지 못한 엔티티 타입이다. (꼭 있지 않아도 되지만, 있으면 유익)
약한 엔티티 타입이 존재하려면, 소유 엔티티 타입(Owner entity type)이 있어야한다.
소유(강한) 엔티티 타입의 키 애트리뷰트를 결합해야만 고유하게 약한 엔티티 타입의 엔티티들을 식별할 수 있다.
ER Diagram에서 약한 데이터 타입은 이중선 직사각형으로 표시한다.
약한 엔티티 타입의 부분 키는 점선 밑줄을 그어 표시
부분 키(partial key)
하나의 엔티티는 연관된 애드리뷰트들의 집합으로 설명된다.
한 애트리뷰트의 도메인은 그 애트리뷰트가 가질 수 있는 모든 가능한 값들의 집합을 의미한다.
예: 사원번호는 1000부터 9999까지의 값을 가진다.
다른 예로는, 사원번호는 integer 도메인을 쓰겠다 등
여러 애트리뷰트가 동일한 도메인을 공유할 수 있다.
키(key) 애트리뷰트 는 한 애트리뷰트 또는 애트리뷰트들의 모임으로서 한 엔티티 타입 내에서 각 엔티티를 고유하게 식별한다.
ER Diagram에서 기본 키(Prime Key)에 속하는 애트리뷰트는 밑줄을 그어 표시한다.
애트리뷰트는 요구사항 명세에서 명사나 형용사로 표현된다.
엔티티와 애트리뷰트의 차이점은 엔티티는 독립적인 의미를 갖는데 반해서 애트리 뷰트는 독립적인 의미를 갖지 않는다는 것이다.
ER Diagram에서 애트리뷰트는 타원형으로 나타낸다.
애트리뷰트와 엔티티 타입은 실선으로 연결한다.
더 이상 다른 애트리뷰트로 나눌 수 없는 애트리뷰트
ER Diagram에서 실선 타원으로 표현
ER Diagram에서 대부분의 애트리뷰트는 단순 애트리뷰트
밑줄이 그어져 있는 것은 키 애트리뷰트이다.
두 개 이상의 애트리뷰트로 이루어진 애트리뷰트
동일한 엔티티 타입이나 관계 타입에 속하는 애트리뷰트들 중에서 밀접하게 연관된 것을 모아놓은 것
단일 값 애트리뷰트는 ER Diagram에서 단순 애트리뷰트와 동일하게 표현된다.
예: 사원의 사원번호 애트리뷰트는 어떤 사원도 두 개 이상의 사원번호를 갖지 않으므로 단일 값 애트리뷰트
키 애트리뷰트 같은 개념
ER Diagram에서 대부분의 애트리뷰트는 단순 애트리뷰트
각 엔티티마다 여러 개의 값을 가질 수 있는 애트리뷰트
예: 여러가지 색깔을 가진 자동차 등
ER Diagram에서 이중선 타원으로 표현
다른 애트리뷰트와 연관성이 없이 독립적으로 존재하는 애트리뷰트
예: 사원 엔티티 타입에서 사원 이름, 급여는 다른 애트리뷰트와 연관 관계가 없이 독립적으로 존재하므로 저장된 애트리뷰트에 속한다.
예: 시(city), 도(province) 등은 주소(address) 애트리뷰트와 연관되며, 독립적으로 존재하지 않으므로 저장된 애트리뷰트에 속하지 않는다.
ER Diagram에서 대부분의 애트리뷰트는 저장된 애트리뷰트
ER Diagram에서 단순 애트리뷰트와 동일하게 표현된다.
다른 애트리뷰트의 값으로부터 얻어진 애트리뷰트
예: 주민등록번호로부터 나이를 얻어낼 수 있다.
유도된 애트리뷰트는 관계 데이터베이스에서 관계의 애트리뷰트를 포함시키지 않는 것이 좋다.
ER Diagram에서 점선 타원으로 표현한다.
관계는 엔티티들 사이에 존재하는 연관이나 연결로서, 두 개 이상의 엔티티 타입들 사이의 사상으로 생각할 수 있다.
관계 집합은 동질의 관계들의 집합
관계 타입은 동질의 관계들의 틀
요구사항 명세에서는 흔히, 동사는 ER Diagram에서 관계로 표현된다.
ER Diagram에서 다이아몬드로 표기한다.
관계 타입이 서로 연관시키는 엔티티 타입들을 관계 타입에 실선으로 연결한다.
관계 집합과 관계 타입을 엄격하게 구분할 필요는 없다.
관계의 차수는 관계로 연결된, 엔티티 타입들의 연관 개수를 의미한다.
실세계에서 가장 흔한 관계는 두 개의 엔티티 타입을 연결하는 2진 관계이다.
카디날리티 비율은 한 엔티티가 참여할 수 있는 관계의 수를 나타낸다.
관계 타입에 참여하는 엔티티들의 가능한 조합을 제한한다.
관계를 흔히 1:1, 1:N, M:N,으로 구분한다.
카디날리티에 관한 정보는 간선 위에 나타낸다.
1:1 관계
E1의 각 엔티티가 정확하게 E2의 한 엔티티와 연관되고,
E2의 각 엔티티가 정확하게 E1의 한 엔티티와 연관되면,
이 관계를 1:1 관계라고 한다.
예: 각 사원에 대해 최대한 한 개의 PC가 있고,
각 PC에 대해 최대한 한 명의 사원이 있으면,
고유 사원과 고유 PC간의 관계는 1:1 관계
1:N 관계
M:N 관계
카디날리티 비율의 최솟값과 최댓값
ER Diagram에서 관계 타입과 엔티티 타입을 연결하는 실선 위에 다음과 같은 형태로 표기
(min, max)
어떤 관계 타입에 참여하는 각 엔티티 타입에 대하여
min: 이 엔티티 타입 내의 각 엔티티는 적어도 min 번 관계에 참여함을 의미
max: 이 엔티티 타입 내의 각 엔티티는 최대한 max 번 관계에 참여함을 의미
min=0 은 어떤 엔티티가 반드시 관계에 참여해야 할 필요는 없음을 의미한다.
max=* 는 어떤 엔티티가 관계에 임의의 수만큼 참여할 수 있음을 의미한다.
관계 타입의 의미를 명확하게 하기 위해 사용된다.
특히 하나의 관계 타입에 하나의 엔티티 타입이 여러 번 나타나는 경우에는 반드시 역할을 표기해야 한다.
관계 타입의 간선 위에 표시
전체 참여는 어떤 관계에 엔티티 타입 E1의 모든 엔티티들이 관계 타입 R에 의해서 어떤 엔팉 타입 E2의 어떤 엔티티와 연관되는 것을 의미
약한 엔티티 타입은 항상 관계에 전체 참여한다.
전체 참여는 ER Diagram에서 이중 실선으로 표시한다.
다치 애트리뷰트 → 엔티티로 분류해야 한다.
엔티티에는 애트리뷰트들이 직접적으로 연관된 애트리뷰트들을 한정해서 붙인다.
가능한 한 복합 식별자를 피한다.
관계는 일반적으로 독자적으로 존재할 수 없지만, 엔티티 타입과 관계 타입을 절대적으로 구분하는 것은 어렵다.
응용의 요구사항을 수집하여 기술
사전 결정 사항
ER Schema Diagram이 응용에 대한 요구사항에 부합되는지 최종 검사한다.
ER Schema Diagram을 각종 DBMS에서 사용되는 데이터베이스 모델로 변환한다.
<ER 표기법의 요약>
본 장에서 사용한 표기법으로 수 십개 이상의 애트리뷰트가 엔티티 타입에연결된 Diagram을 나타내려면 매우 불편하고 공간을 많이 차지
ERWin등의 CASE 도구들에서는 새발(crow-feet)표기법이 흔히 사용됨
새발 표기법에도 여러가지 변형들이 존재한다.