관리 메뉴

개발 블로그

[데이터베이스] 관계형 모델 설계 과정과 엔티티란? 본문

전공 공부/데이터베이스

[데이터베이스] 관계형 모델 설계 과정과 엔티티란?

토산인 2022. 10. 9. 18:09

관계형 모델 설계

관계형 모델 설계 전체적인 과정을 서술하자면,

먼저 현실 세계에 있는 문제 상황에 대해 요구 사항을 정확하게 분석해야 한다. 

파악한 요구 사항을 데이터 모델링을 해 ERD(Entity Relationship Diagram)로 데이터와 데이터 간의 관계를 표현한다.

그리고 ERD를 이용해 릴레이션을 위한 관계 스키마를 작성한다. 이는 릴레이션에는 어떤 속성이 있고, 어떤 관계인지 설계하는 과정이다.

마지막으로 요구사항과 관계 스키마를 이용해 데이터 모델을 만든다. 

 

 


 

각 과정에 대해 자세히 알아보자.

정리된 요구 사항으로 데이터 모델을 설계해야 한다.

 

ERD(Entity Relationship Diagram)이란?

데이터에 대한 관계를 설명하는 다이어그램으로, 요구 사항을 사람이 이해하기 쉽게 다이어그램으로 나타낸 것이다. 

ERD의 두 가지 표현 방식

 

 

구성요소

- 엔티티: 현실 세계에서 독립적으로 존재하는 실체로, 객체와 유사하다. 

- 속성: 엔티티를 설명하는 요소으로, 릴레이션의 속성과 동일하다. 

  • 단순 속성
  • 복합 속성: 여러 세부 속성으로 구성된 속성
  • 저장된 속성: 실제로 스토리지에 저장되는 속성 (생년월일)
  • 유도된 속성: 저장된 속성으로 유도되는 속성 (생년월일 -> 나이)
  • 단일 속성: 쪼갤 수 없는 원자값만 존재하는 속성 (관심사: 코딩)
  • 다치 속성: 여러 개의 값이 존재하는 속성 (관심사: 코딩, 피아노, 커피)

 

- 관계: 엔티티와 엔티티 간의 관계를 설명한다. 

 

회원 엔티티 예시

 

 

관계

엔티티와 엔티티 간의 관계를 설명하며, 카디널리티에 따라 1:1 관계, 1:N 관계, M:N 관계 가 있다

카디널리티는 엔티티 간의 관계에 대한 차수를 말한다.

작성 관계에 대한 카디널리티

 

 

 

회원과 게시글의 조회 관계

 

회원과 게시글 조회 관계를 릴레이션으로 표현

관계에도 관계를 설명하기 위한 속성이 존재할 수 있다. 

M:N 관계를 릴레이션으로 표현할 때, 반드시 새로운 릴레이션을 만들어야 한다. 

 

 

약한 엔티티: 자신을 식병할 키를 가지고 있지 않다. (강한 엔티티는 자신을 식별할 키를 가지고 있다)

회원과 반려동물의 관계

강한 엔티티의 기본키를 참조하는 외래키와 약한 엔티티의 보조키를 통해 튜플을 식별한다.

 

 

참여

  • 전체 참여: 엔티티에 속하는 모든 원소가 관계에 전체 참여
  • 부분 참여: 엔티티에 속하는 부분 원소만 관계에 참여

예를 들어 게시글을 작성한 회원도 있고, 게시글을 작성하지 않은 회원도 있다. 즉 회원 엔티티의 부분만 참여했으므로 게시글 엔티티에 부분 참여하고, 게시글은 회원에 의해서만 작성되므로 회원 엔티티에 대해 전체 참여한다.