Database Ch.4 - ER Diagram

chezze·2023년 6월 8일
0

Database

목록 보기
5/5
post-thumbnail

What is ER Diagram?

ER Diagram은 데이터베이스 시스템의 구조와 관계를 시각화하는 데 사용되는 도구이다.
이번 포스팅에서는 ER Diagram이 어떤 것인지, 어떻게 작성하는 지에 대해 알아보자! 🙃

Classification of Data Model

Data Model은 다음 3가지 타입으로 분류할 수 있다.

conceptual data model
logical data model
physical data model

conceptual data model은 일반 사용자들이 쉽게 이해할 수 있는 개념들로 이루어진 모델로, 추상화 수준이 가장 높고 비즈니스 요구 사항을 추상화하여 기술할 때 사용된다.

logical data model은 이해하기 어렵지 않으면서도 구체적으로 DB를 구조화할 수 있는 개념들을 제공하는 데이터 모델로, 특정 DBMS나 storage에 종속되지 않는 수준에서 DB를 구조화할 수 있다.
physical data model은 컴퓨터에 데이터가 어떻게 파일 형태로 저장되었는지 기술할 수 있는 수단을 제공하는 데이터 모델로, data format, access path 등을 제공한다.

ER Diagram(Entity-Relationship Diagram)은 위 3가지 타입 중 conceptual data model의 대표적인 데이터 모델링 방법이다.

How can we notate ER Diagram?

먼저 ER Diagram의 예시를 보면서, 어떻게 구성되어 있는지 확인해 보자.
출처 : https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model

ER Diagram은 위 그림과 같이, 4가지의 구성 요소를 사용해 표기된다.

Entity(개체)
Relationship(관계)
Attribute(속성)
Relationship line(관계선)

각각의 요소에 대해 알아보자.

Entity?

Entity는 데이터베이스에서 저장하려는 개체를 나타내는 구성 요소로, 일반적으로 사물이나 개념 등 명사를 나타내며 사각형으로 표시된다. 쉽게 말해, Entity는 데이터베이스에서 테이블의 이름이라고 생각하면 된다.

위 예시 그림에서 Entity들의 목록을 나열하면 다음과 같다:
Account, Character, Region, Item Instantiation, Item, Creep, Creep Instantiation

Relationship?

RelationshipEntity 간의 연결 또는 관계를 나타내는 요소로, 2개 이상의 명사를 연결하는 동사로 생각할 수 있으며 마름모로 표시된다.

위 예시 그림에서 Relationship들의 목록을 나열하면 다음과 같다:
Has, Contains, Carrying, RanInto, IsType, Carrying, IsType, Contains

Attribute?

AttributeEntityRelationship의 세부 정보를 포함시키기 위한 요소로, 타원으로 표시된다.
Weak Entity를 제외한 모든 EntityUnique / Primary Key로 사용할 수 있는 고유하게 식별되는 하나 이상의 Attribute 집합이 필요하다. (Weak Entity에 대한 개념은 이후 설명)

위 예시 그림에서, Attribute의 목록은 다음과 같다:
AcctName, Password, LastSignedOn, LastPlayed, CreatedOn, ...etc

Relationship line?

Relationship lineEntityRelationship 사이의 선으로, 둘 사이의 관계를 표시한다.
예를 들어, 1:N이나 N:M 등의 관계를 나타낼 수 있다.

Is it used a lot?

위의 구성 요소들은 모두 Peter Chen 기법을 기반으로 설명되었다.
Peter Chen 기법은 대학 교재에서 많이 쓰이는 방법이지만, 실무에서는 거의 사용되지 않는다.

실무에서 자주 쓰이는 표기법에는 다음과 같은 표기법들이 있다:
Information Engineering, Barker's Notation

profile
주니어 컴공학부생🌱

0개의 댓글