2023.09.22

데이터 모델에는 개념적 데이터 모델, 표현 데이터 모델, 물리적 데이터 모델로 분류하였다고 이야기 한 적이 있다. 여기서 개념적 데이터 모델에 대해서 깊이있게 정리해보자.


개념 데이터 모델이란?

개념 데이터 모델은 데이터베이스의 전체적인 논리 구조를 명시하는 모델이다. 개념 데이터 모델은 엔티티와 엔티티 간의 관계로 정의한다. 개념 데이터 모델링 영역에서는 엔티티와 엔티티 간의 관계를 어떻게 찾는지 정의내리고 있다. 개념 데이터 모델링은 개념 데이터베이스 설계 과정으로, 앞으로 소개할 ERD를 도출하는 과정으로도 표현할 수 있다.

이러한 개념 데이터 모델링으로 자주 쓰는 툴은 개체관계도(Entity Relationship Diagram: ERD)를 많이 사용한다. 개념 데이터베이스를 설계하고 나면 개념 스키마가 생성되는데, 이를 ERD로 표현하고 ERD가 그대로 개념 데이터 모델이 된다.


엔티티

ERD의 핵심 요소로는 엔티티가 있다. 엔티티란 개체로 사람, 사물 등 독립적이면서 분리된 물체를 표현한다. 이러한 엔티티의 종류로는 강한 엔티티, 약한 엔티티가 있다. 전통적인 표현 방법 또는 새발 표키법에서는 직사각형이나 이중 직사각형으로 표현된다.

예를 들어, 학사 정보 시스템에 학생이라는 정보가 있을 때 가족에 대한 정보가 필요할 수 있다. 이 경우 학생이라는 정보가 있어야 가족이라는 정보가 있을 수 있는 의존적인 관계이다. 따라서 가족은 약한 엔티티, 학생은 강한 엔티티로 설정된다.

Screenshot_2023-09-22_at_10 21 24_AM


애트리뷰트

애트리뷰트는 엔티티를 설명하는 요소이다. 개체 관계도에서 타원으로 표현된다.

Screenshot_2023-09-22_at_10 14 01_AM


관계

관계는 엔티티 사이에 존재하는 연관성을 표현한다. 예를 들면 키보드는 여러개의 키캡을 가지고 있다. 즉 키보드와 키캡에서 키보드에 키캡이 속하는 관계이다.


차수(degree)

관계의 차수(degree)는 관계로 연결된 엔티티들의 개수를 의미한다. 다이아몬드(관계)에 연결된 엔티티 개수를 세면 된다.


카디날리티(cardinality)

엔티티가 참여할 수 있는 관계의 수를 의미한다. 1대1 , 1대N 등의 관계를 가지고 있다. 카디날리티는 다음과 같이 간선위에 표시한다.


1:1 관계 : 엔티티가 다른 엔티티와 단 하나의 관계를 가지는 것

Screenshot_2023-09-22_at_10 30 29_AM


1:N 관계 : 엔티티가 다른 엔티티의 여러 객체를 가질 수 있는 것을 의미한다.

Screenshot_2023-09-22_at_10 28 54_AM


N:M 관계 : 엔티티와 엔티티 사이의 여러 객체를 가지는 것을 의미한다.

Screenshot_2023-09-22_at_10 29 40_AM

역할(role)

관계의 의미를 명확하게 하기 위해서 사용된다. 관계 간선 위에 표시한다.


전체 참여와 부분 참여

엔티티 간의 관계를 보다보면, 전체 참여하는 경우와 부분 참여하는 경우가 나누어저 있다. 약한 엔티티의 경우 항상 관계에서 전체참여한다. 엔티티를 설명한 그림에서 실선은 부분참여, 이중 실선은 전체 참여이다.

Screenshot_2023-09-22_at_10 21 24_AM


이외

다중 관계 : 두 엔티티 사이에 두개 이상의 관계가 있는 경우

순환적 관계 : 하나의 엔티티가 동일한 관계에 두번 참여하는 경우



Categories:

Updated:

Leave a comment