[Database]ER Model, Entity, Relationship, Attribute, Constraint 정리

shane·2021년 2월 1일
0

Conceptual Data Modeling

Entity-Relationship(ER) Model

ER Model은 Conceptual Data Modeling을 위한 주된 도구로 사용되는데 그 이유는 아래 2가지와 같다.

  • ER Model은 사용하기 쉽고, 이해하기 쉽기 때문이다.
  • 실습과 이론에서 증명된 데이터베이스 어플리케이션을 모델링하는 효과적인 도구이기 때문이다.

ER Model은 Dr.Peter Chen에 의해 개발되었다. Dr.Peter Chen에 대한 자세한 내용은 하단의 참고를 확인하자.
ER Model은 3개의 가장 기초적인 구조를 가지고 있다.

  • Entity Type
  • Relationship Type
  • Attribute

Entity와 Entity Type

Entity는 데이터로 만들기 원하는 실제로 사용되는 오브젝트이다.

홍길동, DB설계 및 구현2...

Entity Type은 일반적 특성 혹은 성격을 공유하는 entity들의 집합이다.

학생, 강의

우리가 ER Model에서 모델링하는 것은 entity가 아닌 entity type이다.

Entity Type

ER Model에서 사용하는 하나의 표준 표기법은 없기 때문에, 우리는 Dr.Peter Chen에 의해 만들어진 고전적인 표기법을 사용한다.

  • Naming Convention: 단일명사(Singular noun)로 되어있으며, 구체적이고(Specific), 간결하고(Concise), 유일한(Unique) 명사를 사용한다.

Relationship과 Relationship Type

Relationship은 entity들 간의 연관관계를 표현한다.

홍길동이 DB설계 및 구현2 강의를 수강한다.

Relationship Type은 entity type들 간의 연관관계를 표현한다.

학생이 강의를 수강한다.

우리가 ER Model에서 모델링하는 것은 relationship이 아닌 relationship type이다.

Relationship Type

Relationship Type은 동사를 이용하여 표현한다.


Attribute

Attribute는 entity type 또는 relaionship type의 특징, 성격이다.
Field 혹은 column이라고도 불린다.

  • Naming Convention: 단일명사(Singular noun)로 되어있으며, 하나의 entity type내에서 동일한 이름의 attribute는 안되며, ER Model내에 존재하는 두 개의 attribute는 동일한 이름이어서는 안된다.

Attribute는 의미를 쪼갤 수 있느냐에 따라서 두 가지로 나눌 수 있다.

  • Simple Attribute : 더이상 의미적으로 나눌 수 없는 상태의 attribute.
  • Composite Attribute : 의미적으로 나눌 수 있는 상태의 attribute. Simple attribute로 이뤄져 있다.

Attribute가 하나의 값만을 가지는지에 따라서 두 가지로 나눌 수 있다.

  • Single-valued attribute : 하나의 값을 가지는 attribute.
  • Multi-valued attribute : 둘 이상의 값을 가지는 attribute.

Attribute가 entity type의 각각의 entity에 대해 값이 유일한 경우, Identifier Attribute 혹은 Key Attribute라고 한다.


Degree

Relationship Type에 참여하는 entity type의 개수를 relationship type의 degree라고 한다.

  • Degree One : Unary (recursive) relationship type

  • Degree Two : Binary relationship type

  • Degree Three : Ternary relationship type


Cardinality Constraint

하나의 entity type이 다른 entity type에 연관될 때, 각각의 연결되는 entity 개수.

  • One to One Relationship(1:1)

  • One to Many Relationship(1:M)

  • 1개의 Entity Type Name1은 여러 개의 Entity Type Name2와 relation 중이다.
  • 1개의 Entity Type Name2는 1개의 Entity Type Name1과 relation 중이다.
  • Many to Many Relationship(M:N)

  • 1개의 Entity Type Name1은 여러 개의 Entity Type Name2와 relation 중이다.
  • 1개의 Entity Type Name2는 여러 개의 Entity Type Name1과 relation 중이다.

Participation Constraint

각각의 entity eype의 entity들이 relation에 관여되어 있는지 아닌지를 의미한다.

  • Total Participation : 모두 관여하고 있다.
  • Partial Participation : 모두 관여하고 있지 않다.

예를 들어 부서와 직원이 있다고 하자. 모든 직원들이 부서를 위해 무조건 일하고 있지만, 주어진 부서 중에는 직원을 갖고 있지 않은 경우가 있다.
이 경우의 ER Model은 다음과 같다.

예를 들어 부서와 직원이 있다고 하자. 모든 부서들은 무조건 매니저인 직원을 가지고 있지만, 모든 직원들이 부서를 관리하고 있는 것은 아닌 경우가 있다.
이 경우의 ER Model은 다음과 같다.


Weak Entity Type과 Identifying Relationship Type

  • Weak Entity Type : Entity Type 스스로의 identifier key attribute를 갖고 있지 않은 entity type.

  • Identifying Relationship Type : Weak entity type 다른 entity type에 의해 구별되는 관계를 의미한다.

Weak entity type은 일반적으로 Identifying owner entity와 연관된 Weak entity들을 유일하게 구별해주는 attribute 혹은 attribute 집합인 partial key를 가진다.


참고
https://en.wikipedia.org/wiki/Peter_Chen

profile
개발 관련 소통을 좋아하는 백엔드 개발자입니다.

0개의 댓글