2020. 9. 23. 16:49ㆍ데이터베이스
ER(Entity Relation) 모델
요구사항으로 부터 얻어낸 정보들을 객체(Entity), 애트리뷰트(attribute), 관계성(Relation)을 으로 기술하는 데이터베이스 모델을 뜻한다.
개체
유일하게 존재하는 객체를 의미하며 동일한 객체는 존재하지 않습니다. 즉 아래와 같은 특성이 유일하게 존재할 때 그것을 개체라고 합니다.
이러한 개체들의 모음을 Entity Type이라고 합니다. 여기서는 직원, 프로젝트 등이 될 수 있습니다.
다이어 그램에서는 단순한 네모로 표현됩니다.
어트리뷰트, 속성
개체가 갖는 속성을 의미합니다.
- 여기서는 직원의 번호, 이름, 직위, 전화 번호 등이 해당합니다.
다이어그램에서는 가로로 길쭉한 원으로 표현합니다.
관계
Entity Type의 관계를 의미합니다.
각 개체간의 관계를 의미합니다. 예를 들어 부모님의 경우 아버지와 어머니는 결혼이라는 관계로 연관되어 있습니다. 직원과 프로젝트의 연관성에는 코드 작성 등이 있겠네용.
다이어 그램에서는 마름모로 일반적으로 표현합니다.
다이어 그램은 일반적으로 위 세개로 구성합니다. 그럼 현재 저 구성을 좀 더 자세히 알아봅시다.
Attribute
Attribute Domain
해당 Attirbute가 가질 수 있는 집합(domain)을 의미합니다.
위 사진에서는 이름은 문자열 이여야하기 때문에 Attribute Domain은 string 이다.
성별의 경우에는 male, female 만을 남길 수 있다.
Key Attribute
Key Attriebute는 겹치면 안되는 Attribute를 의미한다. 주로 객체를 식별할 때 사용한다.
즉 직원번호의 경우 절때로 겹칠 수가 없기 때문에 사용되어야한다.
다이어 그램에서는 아래와 같이 attribute에 밑줄이 그어져서 나온다.
Composite Attribute
복합 Attirbute라고 한다. 즉 다른 attribute 들이 합쳐져서 하나의 복합적인 attribute를 의미한다.
예를 들어 주소를 표현할 때 도, 시, 동으로 나누어서 표현하는 것을 일반적으로 Composite Attribute라고 말한다.
또는 이름을 표현할 때 Last Name, First Name 으로 나누어서 표현할 때 하나의 이름으로 표현할 수 있다.
Multi valued Attirbute
하나의 Attirbute가 여러 개의 값을 가질 수 있는 Attribute를 의미한다.
예를 들어 영화를 표현할 때 영화의 장르가 하나만 있을수도 있지만 요즘은 thriller, action, mello 등이 섞여 있을 때가 많다. 이럴 때 사용하는 Attribute이다.
다이어 그램에서 표현할 때는 원을 두개 그리고 있다.
Dervied Attribute
다른 Attirbute로 부터 계산되어 나온 값을 의미합니다.
예를 들어 직원의 나이를 생각해볼 수 있다. 왜냐하면 직원의 나이는 계속해서 매년 증가되기 때문이다.
또는 식품의 가격이 토탈가격으로 정해질 때 이것저것 계산이 필요할 것이다. 이러한 계산을 통해 구해지는 것이 전체 가격인데 이 때의 전체 가격이 Dervied Attribute이다.
RelationShip
Entitiy Type을 정의하고 Entity Type 간의 관계를 표시하는 것이 다이어그램을 그리는 주 목표이다.
관계성을 통해 2가지 제약조건을 명시해서 표현할 수 있다.
카디널리티 비율제약 조건
한개체가 다른 개체와 얼마나 많은 다른 개체와 관련될 수 있는지를 나타내는 제약 조건을 의미합니다.
- 1:1 대응
한개체가 다른 개체와 1대 1로 대응한다.
아래의 예와 같이 하나의 회사에는 회장이 한명만이 있을 수 있다. - 1:N 대응
하나의 개체가 다른 엔티티의 많은 개체들과 관련되지만 역은 성립하지 않음.
아래와 같이 하나의 학과는 여러 개의 수업을 가질 수 있지만 역으로 하나의 수업이 하나의 학과에서만 열려야한다. - N:M 대응
하나의 개체가 다른 많은 개체들과 관련되지만 역도 성립된다.
아래 사진과 같이 한 학생은 여러 수업을 선택할 수 있고 역으로 하나의 수업도 여러 학생에게 선택되어 진다.
참여 제약조건
- 전체 참여
하나 또는 그 이상의 수가 참여 한다. - 부분 참여
선택적인 참여를 의미한다.
학생의 입장에서는 모든 강좌를 선택할 필요 없기 때문에 한줄이고 강좌에 입장에서는 학생이 최소한 한명이라도 존재해야 하기 때문에 두줄이다.
총 참여는 줄이 두개 부분 참여는 줄을 한개로 표현한다.
구조적 제약 조건
앞서 살펴본 두개의 제약조건을 구조적 제약 조건이라고 합니다. 이 두개의 제약 조건과 다르게 ( MIN, MAX )를 사용하여 표시해 두개의 제약 조건을 한번에 표현할 수 있다.
위 그림과 같이 학생은 최소 3개에서 최대 6개 까지의 과목을 수강해야하고 강좌의 경우에는 최소 10명에서 30명까지의 학생들이 수업을 들어야한다.
약한 객체와 식별 관계성 타입
약한 객체란 자신의 Entity에 key attribute가 없는 것이다.
ER 다이어그램에서는 엔티티 박스에 두개의 네모를 그려서 표현하며 약한 객체의 키인 부분키라고 합니다.
부분 키의 경우에는 자신을 최종적으로 차지하고 잇는 엔티티의 key attribute와 합쳐져서 표현됩니다.
또한 엔티티가 약한 개체와의 관계를 맺을 때는 마름모에 하나의 마름모를 더 그려서 표현합니다. 약한 개체는 항상 의존적이기 때문에 전체 참여로 다어그램을 그릴 때 줄이 두개 그어진다.
위의 사진과 같이 Loan number에 여러 달에 걸쳐 지불할 수 있었기 때문에 Loan_number payment_number과 연결되어 표시해야 할 수 있다. 그래서 이를 정확히 키로 표현해주기 위해 약한 엔티티로 표현한 다음 이런식으로 표현될 수 있을 것이다.
loan_number payment_number
100023 1
100023 2
100023 3
100023 4
'데이터베이스' 카테고리의 다른 글
Basics of Functional Dependencies and Normalization for RelationalDatabase (0) | 2020.11.21 |
---|---|
복잡한 쿼리, 트리거, view, 스키마 변경 (5) | 2020.10.14 |
Relation Data Model and Constraints (0) | 2020.09.30 |