Relational Model(관계형 모델)과 Entity-Relationship Model(ERD)

KDG: First things first!·2024년 8월 13일
0

DB

목록 보기
2/7



데이터 모델링을 할 때에는 Relational Model과 ERM을 많이 사용한다.



Relational Model(관계형 모델)

Relational Model(관계형 모델): 데이터를 row(행)과 column(열)로 이루어진 테이블로 표현한 데이터 모델이다.

여기서 Relational의 사전적 의미 때문에 연결 관계를 의미한다고 착각할 수 있는데 그렇지 않다. Relational Model에서 'Relation'은 테이블을 의미하는 수학적 표현이다.



그렇다면 테이블간의 관계는 어떻게 설정할 수 있을까???



테이블 사이간의 관계는 Foreign Key(참조 키)를 통해 관계를 맺을 수 있다.


해당 Relational Model에서는 Student 테이블의 Primary Key인 학생 id를 Department 테이블의 Foreign Key로 설정하여 두 테이블간 관계를 맺고 해당 학생이 어떤 전공(department)인지 표시하고 있다.

이렇게 해서 맺어진 테이블 사이의 관계를 Relationship(연결 관계)라고 하고 Foreign Key를 저장하고 있는 테이블을 Child Table, Foreign Key를 통해 참조되는 테이블을 Parent Table이라고 한다.




Entity-Relationship Model(ERM, 개체-관계 모델)


방금 살펴본 Relational Model은 좋은 데이터 모델이지만 데이터 구조를 정할 때 굳이 필요없는 row가 존재하고 테이블들간에 서로 맺어지는 관계들의 특성을 한 눈에 파악하기 힘들다는 단점도 존재한다.

이 때 데이터 모델링을 진행하면서 데이터간의 구조를 한 눈에 손쉽게 파악하기 위해 사용하는 모델이 ERM이다.

ERM(개체-관계 모델)은 말 그대로 개체와 관계를 중심으로 모델링하는 데이터 모델이다.

ERM에서 네모(☐)는 Entity, 즉 테이블을 의미하고 그 안에 attribute들을 적는다. 선(-)은 Entity간의 관계를 의미하고 어떤 관계이냐에 따라서 선의 양 쪽 끝에 표현 방법이 달라진다.



ERM으로 기본적인 데이터 모델링을 한 후 본격적인 데이터베이스 구축을 위해 Relational Model로 바꾸고 싶다면 간단하다.
Entity는 테이블로, attribute들은 해당 테이블의 컬럼으로, 그리고 relationship들은 Foreign Key를 통해 관계를 설정하면 된다.

profile
알고리즘, 자료구조 블로그: https://gyun97.github.io/

0개의 댓글