-
[DataBase] E-R 다이어그램DataBase 2020. 12. 10. 22:06
E-R 다이어그램은 요구 사항으로부터 얻어낸 데이터를 개체, 속성 , 관계로 표현하는 다이어그램을 말한다.
개체(Entity)
단독으로 존재하는 객체,여러 개의 속성을 가지며, 동일한 개체는 존재할 수 없다.
다이어그램 내에서 사각형으로 표현된다.
속성(Attribute)
개체가 가지는 어떠한 특징, 즉 속성들.
다이어그램 내에서 타원으로 표현된다.
관계(Relationship)
각 개체들이 가지는 관계
각 개체들이 1:N,1:1,N:M 관계를 가질 수 있으며,
마름모로 표현된다.
속성 종류
속성 도메인(Attribute Domain)
각 속성들이 가질 수 있는 값들의 집합을 의미.
ex) 0~9까지의 정수, 문자열, 날짜 등등..
키 속성(Key Attribute)
개체를 구분할 수 있는 고유한 속성을 말함.
해당 키를 통해 각 개체들을 독립적으로 구분할 수 있으며,
위와 같이 밑줄로 표현됨.
복합 속성(Composite Attribute)
각각의 독립적인 속성이 하나로 조합되어 만들어진 속성.
다중값 속성
하나의 독립적인 속성이나 그 안에 여러 개의 값이 포함될 수 있는 속성.
ex) 대학생 개체의 전공 속성은 복수전공일 경우 영문학,컴퓨터 공학 두 개를 가질 수 있다.
유도된 속성
특정 속성 값들로부터 계산되어 나온 속성을 의미함.
특정 속성들을 더해져서 나온 값이 될 수도 있거나, 곱한 값이 될 수도 있음.
관계성
속성들의 집합으로 표현된 개체들 간의 관계를 관계성으로 표현할 수 있다.
관계성은 두 가지 제약조건을 통해 표현될 수 있다.
1)카디널리티 제약 조건
- 1:1 관계
- 각 개체들은 1:1로 대응되는 관계를 가진다.
- 1:N 관계
- 한 개체가 여러 개의 개체와 관계를 맺을 수 있으나, 역은 성립되지 않는다.
- N:M 관계
- 한 개체가 여러 개의 개체를 가질 수도 있고, 그 역도 성립한다.
1:M 관계.
부모는 여러 명의 자식을 가질 수 있다는 것을 표현하고 있다.
N:M 관계.
학생은 여러 개를 수강할 수 있으며,
수강과목은 여러 명의 수강생을 포함할 수 있다.
2)참여 제약조건
관계를 맺는 두 개체 중 한 개체가 다른 하나의 개체에 의존하는 지를 표현하는 제약조건.
- 전체 참여
- 하나 또는 그 이상이 참여하는 형태
- 이 형태를 가지는 경우 한 개체는 다른 개체를 반드시 관계맺고 있어야 한다.
- 부분 참여
- 선택적으로 참여하는 형태
- 관계를 맺을 수도, 아닐 수도 있는 형태
부분 참여는 실선으로, 전체 참여는 두 개의 실선으로 표현된다.
3)구조적 제약조건
실선 위에 (min,max) 값을 표시하여, 구체적인 조건을 명시하는 제약조건.
Student는 3~6개를 수강할 수 있으며,
Course는 10~100명의 학생을 가지고 있어야 한다는 것을 표현.
약한 개체와 식별 관계성 타입
약한 개체
자신의 키 속성이 없는 개체 타입을 말함.
그러므로 항시 다른 개체와 관계를 맺어 의존해야 하는 개체.
분반이라는 개체는 두 개의 직사각형으로 표현되고 있다.
분반 개체의 키 속성인 bun_no는 단독으로 존재할 수 없으며,부분 키(partial key)라고 불린다.
부분 키는 단독으로 존재할 수 없으며, 반드시 Course의 기본 키와 함께 구성되어야 한다.
다이어그램에서 부분 키는 점선의 밑줄로 표현된다.
개체가 약한 개체와 관계를 맺을 때는 식별 관계성 타입으로 불리는 두 개의 마름모로 표현되며,
약한 개체는 항상 의존적이기 때문에 전체 참여로 표현되어야 한다.
까마귀 발 표기법(Crow's foot notation)
개체 관계 모델에서 관계성을 표현하기 위해 삼지창으로 표현된 것이 까마귀 발 모양 같다고 하여 붙여진 이름이며,
E-R 다이어그램에서 다른 방식으로 많이 사용된다.
개체 옆에 붙은 타원은 0개를 가질 수 있다는 뜻이며,|는 1개, 까마귀 발은 2개 이상을 표현한다.
실선은 강한 의존적인 관계를 표현하고, 점선은 약한 독립적인 관계를 표현한다.
예제
하나의 A는 하나의 B로 구성. 1:1이다.
하나의 A는 0 또는 하나의 B로 구성.
하나의 A는 여러 개의 B를 구성
하나의 A는 0 또는 여러 개의 B로 구성.
까마귀 발 방식에서는 왼쪽의 방식이 테이블과 같은 형태로 표현된다.
내가 보기에는 오른쪽이 훨씬 보기에 간결한 것 같다.
참조
'DataBase' 카테고리의 다른 글
[Database]데이터베이스 설계 (0) 2020.12.10 - 1:1 관계