[데이터베이스] ER(Entity Relationship)과 ERD (Entity Relationship Diagram)
ER (Emtity Relationship)
데이터베이스를 디자인하기 위해 이용되는 모델링 기법으로 데이터베이스에 대한 요구사항을 표현하는 방법이다. 이에는 ER model이라는 것이 존재한다.
요구사항으로부터 얻어낸 정보들을 개체(Entity), 어트리뷰트(Attribute), 관계성(Relation)으로 기술하는 모델이다.
ERD (Entity Relationship Diagram)
개체-관계 모델을 의미하는 걸로 SQL을 다루다보면 데이터를 효율적으로 정제하기 위해 설계를 하게 되는데 이때 사용된다.
조금 더 붙여말하면 집을 짓기전에 미리 설계도를 그리는 것과 유사하다.
테이블간의 관계를 설명해서 이를 통해 DB의 구조를 한눈에 파악할 수 있도록 하여 API또는 데이터 관리를 효율적으로 할 수 있게해주는 모델 구조이다.
ERD 기호
사진 출처 : lucidchart.com
기호의 경우 2개의 테이블 사이의 관계도를 나타낸다.
위의 사이트에서 설명한 6가지 관계에 대해 알아보자.
- One
1-1 or 1-N 관계이다.
- Many
N-N 관계이다.
- One (and only one)
1-1 관계이나 가로 행끼리만 연결된 관계이다.
- Zero or One
1-1 or 1-N 관계이나 선택적이다.
- One or Many
불확실한 관계중 하나로 1-1 or N-N 관계이다.
- Zero or Many
불확실한 관계중 하나로 0-0 or 1-N or N-N 등등 경우수가 많은 관계이다.
데이터베이스 설계
설계의 과정은 아래와 같다.
요구사항 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계
이때 개념적 설계 단계의 산출물은 ER model이다.
Entity
엔티티는 데이터베이스 내에 표현된 객체이다.
이떄 데이터들의 집합을 의미하는데 데이터가 저장되고 관리가 되는 데이터이다.
Entity의 특징
-
식별자 유일한 식별자를 갖고 있어야한다. 이는 Key이다.
-
인스턴스 집합 2개 이상의 인스턴스를 소유해야한다.
이러한 개체들의 집합을 Entity Type이라고 하며 ERD에서는 사각형으로 표현한다. -
속성 속성을 가지고 있어야한다. 이는 선택이 아니라 필수적이다.
-
관계 다른 엔티티와 최소 1개 이상의 관계를 갖고 있어야한다.
-
업무 관리가 되어야하는 집합의 모음이다.
Attribute
개체가 갖는 속성을 의미한다. ERD에서는 이를 원으로 표현한다.