IT/데이터 이론, 분석, 시각화

데이터 모델 종류 (릴레이셔널 모델, ERM)

marketinkerbell 2022. 2. 4. 23:16
반응형

 

데이터 모델

 


데이터 모델이란, 다양한 데이터 요소들을 이해하고 사용하기 편한 형태로 정리해놓은 모형을 의미한다.

우리가 데이터를 저장하려고 하는 대상 : Entity(개체)
Entity에 대해서 저장하려고 하는 특징 : Attribute(속성)
Entity들 사이 생기는 연결점 : Relationship(관계)
여러 데이터 요소들에 있는 규칙 : Constraint(제약 조건)
이 네 가지 요소들을 파악한 후, 이 내용들을 발전시켜 데이터 모델들을 만드는 과정을 데이터 모델링이라고 부른다.

 

 


 



릴레이셔널 모델

 

우리에게 가장 익숙하고 가장 널리 사용되는 모델은 릴레이셔널 모델이다. 

릴레이션은 데이터를 로우와 컬럼으로 정리한 테이블, 또는 를 의미한다. 

Entity는 테이블, attribute은 컬럼, relationship은 foreign key를 사용해서 정리해놓은 모형이다.

 

 

릴레이셔널 모델 예)

 

 

 

 

 

릴레이셔널 모델을 모델링한다는 건, 정확히 어떤 테이블을 만들고, 이 테이블들을 또 어떤 컬럼들로 나누고, foreign key를 어떻게 만들지를 정해나가는 것이다.

 

 

 


 

 

 

ERM

 

릴레이셔널 모델이 실제로 사용하기에는 편리하긴 하지만,

모델링을 할 때는 로우에 대해서는 신경을 쓰지 않기 때문에 데이터를 조금 다른 형태로 표현하는 모델을 같이 사용한다.  바로 Entity-Relationship 모델, 줄여서 ERM이라는 모델이다.

 

ERM에서는 Entity를 하나의 네모로, attribute을 네모 안에 문자열로, 그리고 relationship을 선으로 표현한다.

그리고 이 선들의 끝을 어떻게 표현하는지에 따라 관계의 특징을 표현할 수 있다.

위에서 봤던 릴레이셔널 모델을 똑같이 ERM으로는 이렇게 나타낼 수 있다.

 

 

 

 

 

 

ERM에서는 로우를 매번 표현해주지 않아도 되고, 선과 선의 끝점들을 통해서 Entity들 사이 관계를 조금 더 자세하게 표현할 수 있다.  선은 카디널리티를 나타내는데, 카디널리티는 두 entity type 사이 관계에서 한 종류의 entity가 다른 종류의 entity 몇 개에 대해서 관계를 맺을 수 있는지를 나타내는 개념이다.

 

 

카디널리티는 아래 링크 참고

https://devfairy.tistory.com/106

 

 

 

 

 


 

 

데이터 모델 스펙트럼


데이터 모델은 얼마나 자세하게 표현됐는지에 따라 세 가지로 분류된다.

개념적 모델링
가장 추상적인 내용을 담고 있는 모델을 개념 모델이라고 부른다. 

대략적으로 Entity들과 Entity들 사이에 있는 관계 정도만 표현한다.

 

 

 

 

 

 

 

 

 

논리적 모델링

논리 모델은 개념 모델보다는 조금 더 자세한 내용을 담고 있다.

Entity들이 갖는 Attribute들과 primary key, Entity들 사이 관계를 표현해줄 foreign key, 이런 내용까지 표현한다.

 

 

 

 

 

 

 

 

물리적 모델링


물리 모델은 실제로 데이터베이스를 구축할 때 필요한 내용에 최대한 가까운 내용을 담고 있는 모델이다.

각 컬럼의 데이터 타입, 요소들의 이름, 인덱스라는 걸 어디에 만들어줄 건지 등 까지 표현한다.