본문 바로가기
  • 실행력이 모든걸 결정한다
DB/DB Concept

E/R Model

by 김코더 김주역 2022. 1. 26.
반응형

1. 데이터베이스 디자인 또는 모델링

1) 의미

- 데이터베이스의 논리적인 구조와 제약조건(constraint)을 명시하는 것

 

 

2) 모델링 절차

(1) 요구사항 분석 : 어떤 정보? 어떤 관계? 어떤 제약조건? -> E/R Diagram 작성

(2) High-Level 디자인 : 사람이 이해하기 쉬운 형태로 디자인

(3) 관계형 데이터베이스 스키마로 변환

 


3) 데이터 모델의 종류

(1) 개념적 데이터 모델

- 현실세계의 개체를 인간이 이해할 수 있는 정보 구조로 표현하는 것

- E/R Diagram이 이에 속함

 

(2) 논리적 데이터 모델

- 개념적 데이터 모델을 컴퓨터가 이해할 수 있도록 변환한 데이터 모델

 

(3) 물리적 데이터 모델

- 실제 컴퓨터에 데이터가 저장되는 방법을 정의하는 모델

 

 

4) 용어 설명

- Entity : 개체(a record)
- Entity set : 특정 종류의 개체들의 집합(a table)
- Attribute : entity가 갖는 속성
- Relationship : 두 개 이상의 entity set간의 관계

 

※ Entity vs Object?

Entity : 정보를 표현하는 단위, Object : 소프트웨어를 구성하는 한 요소(데이터, 함수 등)

 

5) E/R 다이어그램

- Entity/Relationship Diagram의 줄임말

- E/R 다이어그램에서 두 entity set간(binary)의 관계에는 1:1(부-모), N:1, 1:N(부모-자식), N:N가 있는데 1쪽에는 선에 화살표를 표시한다 .
- 두 개 이상의 entity set이 관계를 맺는 multiway 관계가 있는데, 이들을 binary 관계로 변형할 수도 있다.

 

 

 

2. Subclass

1) 의미

- 하나의 entity set 안에서도 각자의 entity만이 가질 수 있는 즉, 다른 entity들과는 관계가 없는 attribute들이 있을 수 있다. 이 경우에는 이 attribute들을 묶어 subclass로 둘 수 있는데, 이 class(superclass)-subclass 관계를 isa 관계라고 한다

 

2) ISA

- isa 관계는 1대1관계이며, E/R 다이어그램상에서 세모로 표시한다.

 

 

3. 설계시 지켜야할 원칙

1) 기본 원칙

- 데이터의 중복이 없어야 할 것 : 일관성이 없어질 위험이 큼

- 가능한 간단하게 할 것 : 정확히 필요한 요소만 있어야함

- 적절한 관계만 선택할 것 : 되도록 필수적인 관계 하나만 있는 것이 좋고, 추론 가능한 관계가 이미 존재한다면 더 이상의 관계는 부여하지 않아야 함

- Attribute, Entity set중 어느 것으로 둘 것인지에 대한 결정 : attribute로 두면 일관성이 없어지는 문제가 생기는 경우가 있고, entity set으로 두면 superclass를 제거할 경우 subclass정보가 사라지는 문제가 생기는 경우가 있다.

※ Attribute가 많을 경우에는 entity set으로 두는 것이 좋다.

 

2) attribute를 사용하는 3가지 조건

- N:1 관계에서 1인 요소 : Attribute가 무한히 늘어나서는 안됨

- 다른 attribute에게 종속되어 있지 않은 요소

- 2개 이상의 관계가 섞여 있지 않은 요소

 

 

4. 제약 조건

1) Key for an entity set

- 기본키를 반드시 가져야 함

- 기본키는 NULL이 될 수 없음

- Key가 될 수 있는 것들은 E/R 모델에서 밑줄로 표시됨

- 하나의 키를 기본 키로 결정한다.

 

2) 참조적 무결성

- 외래키에 대한 규칙으로, 외래키는 참조할 수 없는 값을 가질 수 없다는 규칙

- 외래키는 반드시 다른 릴레이션의 key attribute를 참조하며, 외래키 attribute의 모든 값들은 참조되는 key attribute에 있는 모든 값들 안에 속해야 함

- E/R 모델에서 둥근 화살표로 표시됨

- 기본 키와 참조 키 간의 관계가 항상 유지됨을 보장

- 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야함

- 기본적으로, 참조 무결성 제약조건을 위반하는 연산은 자동으로 거절됨

 

3) degree 제한

- 크기나 특정값을 제한함

 

 

5. Weak entity set

- 기본키가 없는 개체 집합으로, subunit이라고도 함

- 연결된 entity set(identify/strong entity set)의 기본키와 weak entity set의 식별자인 partial key(E/R 다이어그램 상의 밑줄)들을 합하여 기본키로 사용함

- 관계는 겹선의 다이아몬드로 표시됨

 

 

6. E/R Diagram으로 Relational Design하기

- 기본적으로 각 entity set을 릴레이션으로 바꾼다.

 

1) N:1

- Relationship 필요 없음

2) 1:1

- Relationship 필요 없음
- 하나의 테이블로 합칠 수 있음

3) N:M

- 각 Relationship를 릴레이션으로 바꾼다. 이때, 양쪽 릴레이션의 key attribute를 가져온다.

 

4) weak entity set 처리

- weak entity set(N) : strong entity set(1)
- relationship을 만들지 않아도 되고, strong entity set의 key를 포함한다.

5) subclass(isa) 처리

- subclass(N) : superclass(1)
- relationship을 만들지 않아도 되고, 별도로 relation을 만들어서 key로 연결한다.

 

 

E/R Diagram 참고 이미지

 

기본

 

isa

 

기본키

 

참조적 무결성

 

weak entity set

 

E/R Diagram 요소의 각 의미 정리

https://nikhilmachcha.wordpress.com/tag/surrogate-key/

 

 

반응형

'DB > DB Concept' 카테고리의 다른 글

함수적 종속과 정규화  (0) 2022.01.31
SQL(2) - DDL  (0) 2022.01.30
제약 조건과 트리거  (0) 2022.01.29
SQL(1) - DML  (1) 2022.01.28
Algebraic(대수) Query Language  (0) 2022.01.27

댓글