ER 모델링이란 무엇입니까? 예를 들어 배우기

⚡ 스마트 요약

엔티티 관계 모델링(ERM)은 실제 세계의 객체를 엔티티로 표현하고, 속성으로 설명하며, 관계를 통해 객체 간의 연결 방식을 나타내는 그래픽 기반 데이터베이스 설계 방식입니다. 이를 통해 테이블을 구축하기 전에 명확한 설계도를 제공합니다.

  • 🧩 무엇이다 : ER 모델링은 데이터 요소와 그 요소들 간의 관계를 정의하는 고수준의 그래픽 데이터 모델입니다.
  • 🗂️ 빌딩 블록: 엔티티는 현실 세계의 사물을 나타내고, 속성은 사물의 특성을 설명하며, 관계는 엔티티 간의 상호 작용 방식을 나타냅니다.
  • 🔗 카디널리티: 관계는 일대일, 일대다 또는 다대다일 수 있으며, 연결 엔티티를 통해 해결됩니다.
  • 🚀 EER 모델: 향상된 ER 모델은 매우 복잡한 데이터베이스를 위해 UML 표기법과 추가적인 구성 요소를 사용합니다.
  • 🎬 MyFlix 사례 연구: 비디오 라이브러리 예시에서는 회원, 영화, 카테고리, 대여 및 결제를 ER 다이어그램으로 나타냅니다.
  • 🤖 AI 지원: AI 도구와 GitHub Copilot을 사용하여 자연어 설명을 ER 다이어그램과 SQL 스키마로 변환합니다.

응급실 모델링

ER 모델링이란 무엇입니까?

엔터티 관계 모델 (ER 모델링)은 데이터베이스 설계에 대한 그래픽 접근 방식입니다. 지정된 소프트웨어 시스템에 대한 데이터 요소와 그 관계를 정의하는 상위 수준 데이터 모델입니다. ER 모델은 실제 객체를 표현하는 데 사용됩니다.

실체란 현실 세계에서 주변 환경과 구별되는 사물이나 객체를 말합니다. 예를 들어, 조직의 각 직원은 독립적인 실체입니다. 다음은 실체의 주요 특징 몇 가지입니다.

  • 엔터티에는 속성 집합이 있습니다.
  • 엔터티 속성에는 값이 있을 수 있습니다.

첫 번째 예시를 다시 생각해 봅시다. 조직의 직원은 하나의 개체입니다. 만약 "피터"가 프로그래머(직원)라면, Microsoft그는 이름, 나이, 몸무게, 키 등과 같은 속성을 가질 수 있습니다. 이러한 속성들은 그에게 중요한 가치를 지닌다는 것은 명백합니다.

각 속성은 값을 가질 수 있습니다. 대부분의 경우 하나의 속성은 하나의 값만 가집니다. 하지만 속성이 여러 값을 가질 수도 있습니다. 예를 들어, 피터의 나이는 하나의 값만 가지지만, 그의 "전화번호" 속성은 여러 값을 가질 수 있습니다.

개체들은 서로 관계를 맺을 수 있습니다. 가장 간단한 예를 들어 보겠습니다. 각각의 개체가 다음과 같다고 가정해 봅시다. Microsoft 프로그래머에게 컴퓨터가 주어졌습니다. 피터의 컴퓨터 또한 하나의 실체라는 것이 분명합니다. 피터는 그 컴퓨터를 사용하고 있으며, 그 컴퓨터는 피터에 의해 사용되고 있습니다. 다시 말해, 피터와 그의 컴퓨터 사이에는 상호 관계가 존재합니다.

엔티티 관계 모델링에서는 엔티티, 엔티티의 속성, 그리고 엔티티 간의 관계를 모델링합니다.

ER 모델을 사용하는 이유는 무엇일까요?

이제 간단하게 할 수 있는데 왜 ER 모델링을 사용하는지 생각할 수 있습니다. 데이터베이스를 생성 ER 모델링이 없는 모든 개체가 있습니까? 데이터베이스를 설계할 때 직면하는 과제 중 하나는 디자이너, 개발자 및 최종 사용자가 데이터와 그 사용법을 다르게 보는 경향이 있다는 사실입니다. 이러한 상황을 그대로 방치하면 결국 사용자의 요구 사항을 충족하지 못하는 데이터베이스 시스템이 생성될 수 있습니다.

기술 전문가뿐 아니라 비기술 전문가를 포함한 모든 이해관계자가 이해할 수 있는 의사소통 도구는 사용자 요구사항을 충족하는 데이터베이스 시스템을 구축하는 데 매우 중요합니다. ER 모델은 이러한 도구의 한 예입니다.

ER 다이어그램은 관계형 테이블로 쉽게 변환할 수 있으므로 사용자 생산성을 향상시킵니다.

향상된 엔터티 관계(EER) 모델

향상된 엔티티 관계(EER) 모델은 기존 엔티티 관계(ER) 모델을 확장한 고수준 데이터 모델입니다. EER 모델은 보다 상세한 설계를 지원하며, 고도로 복잡한 데이터베이스를 모델링하기 위한 해결책으로 등장했습니다.

EER은 UML 표기법을 사용합니다. UML은 다음의 약자입니다. 통합 모델링 언어; 객체 지향 시스템을 설계할 때 사용되는 범용 모델링 언어입니다. 엔터티는 클래스 다이어그램으로 표현됩니다. 관계는 엔터티 간의 연관으로 표현됩니다. 아래 다이어그램은 ER 다이어그램을 보여줍니다. UML 표기법.

향상된 엔터티 관계(EER) 모델

사례 연구: "MyFlix" 비디오 라이브러리의 ER 다이어그램

이제 MyFlix 비디오 라이브러리 데이터베이스 시스템을 활용하여 ER 다이어그램의 개념을 이해해 보겠습니다. 이 튜토리얼의 모든 실습은 이 데이터베이스를 사용합니다.

MyFlix는 회원들에게 영화를 대여하는 사업체입니다. MyFlix는 기록을 수동으로 저장해 왔습니다. 경영진은 이제 다음으로 이동하기를 원합니다. DBMS.

이 데이터베이스에 대한 EER 다이어그램을 개발하는 단계를 살펴보겠습니다.

  1. 엔터티를 식별하고 엔터티 사이에 존재하는 관계를 결정합니다.
  2. 각 엔티티, 속성 및 관계는 비전문가도 쉽게 이해할 수 있도록 적절한 이름을 가져야 합니다.
  3. 관계는 서로 직접 연결되어서는 안됩니다. 관계는 엔터티를 연결해야 합니다.
  4. 특정 엔터티의 각 속성은 고유한 이름을 가져야 합니다.

"MyFlix" 라이브러리의 항목

우리에 포함될 엔터티 ER 다이어그램 위치 :

  • 회원 – 이 기관은 회원 정보를 보유합니다.
  • 영화 – 이 항목은 영화에 관한 정보를 보유합니다.
  • 카테고리 – 이 엔티티는 영화를 "드라마", "액션", "서사" 등과 같은 다양한 카테고리로 분류하는 정보를 저장합니다.
  • 영화 대여 – 이 항목은 회원들에게 대여된 영화에 대한 정보를 보유합니다.
  • 결제 – 이 기관은 회원들이 납부한 금액에 대한 정보를 보유합니다.

엔터티 간 관계 정의

회원과 영화

두 엔터티 간의 상호 작용과 관련하여 다음 내용이 적용됩니다.

  • 회원은 특정 기간에 두 개 이상의 영화를 대여할 수 있습니다.
  • 특정 기간에 두 명 이상의 회원이 영화를 대여할 수 있습니다.

위 시나리오에서 볼 수 있듯이 관계는 다대다 관계입니다. 관계형 데이터베이스는 다대다 관계를 직접 지원하지 않으므로, 연결 엔티티를 도입해야 합니다. MovieRentals 엔티티가 바로 이러한 역할을 합니다. MovieRentals 엔티티는 Members 테이블과 일대다 관계를 맺고, Movies 테이블과도 일대다 관계를 맺습니다.

영화 및 카테고리 엔터티

다음은 영화와 카테고리에 적용됩니다.

  • 영화는 하나의 카테고리에만 속할 수 있지만, 하나의 카테고리에는 여러 개의 영화가 속할 수 있습니다.

이를 통해 카테고리와 영화 테이블 간의 관계는 일대다 관계임을 추론할 수 있습니다.

회원 및 결제 주체

다음은 회원 및 회비 납부에 관한 사항입니다.

  • 회원은 하나의 계정만 가질 수 있지만 여러 번 결제할 수 있습니다.

이를 통해 회원과 결제 주체 간의 관계는 일대다 관계임을 추론할 수 있습니다.

EER 모델을 생성하려면 다음을 사용하십시오. MySQL 워크 벤치

In MySQL 워크 벤치"+" 버튼을 클릭하세요.

EER 모델을 생성하려면 다음을 사용하십시오. MySQL 워크 벤치

Double [다이어그램 추가] 버튼을 클릭하여 ER 다이어그램 작업 공간을 엽니다.

다이어그램을 추가하세요 MySQL 워크 벤치

다음 창이 나타납니다.

MySQL 워크벤치 EER 모델링 환경

우리가 작업할 두 개체를 살펴보겠습니다.

  • 테이블 객체 테이블 도구 이를 통해 엔티티를 생성하고 특정 엔티티와 관련된 속성을 정의할 수 있습니다.
  • 장소와의 관계 장소 관계 도구 이 버튼을 사용하면 엔티티 간의 관계를 정의할 수 있습니다.

멤버 엔티티는 다음과 같은 속성을 갖습니다.

  • 회원번호
  • 성명
  • 성별
  • 생년월일
  • 실제 주소
  • 우편 주소

이제 멤버 테이블을 만들어 보겠습니다.

1. 도구 패널에서 테이블 개체를 드래그합니다.

2. 작업 영역에 놓습니다. 테이블 1이라는 이름의 엔티티가 나타납니다.

3. Double 그것을 클릭하세요. 아래와 같은 속성 창이 나타납니다.

멤버 테이블 속성 MySQL 워크 벤치

다음으로,

  1. 테이블 1을 멤버 목록으로 변경하세요.
  2. 기본 idtable1을 membership_number로 수정하세요.
  3. 다음 줄을 클릭하여 다음 필드를 추가하세요.
  4. 멤버 엔티티에서 식별된 모든 속성에 대해 동일한 작업을 수행합니다.

이제 속성 창이 다음과 같이 보일 것입니다.

멤버 엔티티 속성 정의됨

식별된 모든 엔터티에 대해 위 단계를 반복합니다.

이제 다이어그램 작업 영역이 아래 표시된 것과 같아야 합니다.

다이어그램 작업 공간의 MyFlix 엔티티

회원과 영화 대여 간의 관계를 만들어 봅시다.

  1. 기존 열을 사용하여 위치 관계를 선택합니다.
  2. 회원 테이블에서 membership_number를 클릭하세요.
  3. MovieRentals 테이블에서 reference_number를 클릭하세요.

회원과 MovieRentals 간의 관계 구축

다른 관계에 대해서도 위 단계를 반복하세요. 이제 ER 다이어그램은 다음과 같아야 합니다.

MyFlix ER 다이어그램 작성 완료

자주 묻는 질문

ER 다이어그램은 엔티티(사각형), 속성(타원), 관계(마름모)의 세 가지 핵심 구성 요소를 사용합니다. 밑줄이 그어진 속성은 기본 키를 나타냅니다.

일반적인 속성 유형에는 단순(원자적), 복합(나누기 가능), 파생(계산됨), 다중값(여러 값) 및 엔티티를 식별하는 키 속성이 있습니다.

카디널리티는 한 엔티티의 인스턴스가 다른 엔티티와 어떻게 연결되는지를 정의합니다. 즉, 일대일, 일대다 또는 다대다 관계입니다. 연결 엔티티는 지원되지 않는 다대다 링크를 해결합니다.

강력한 엔티티는 자체 기본 키를 가지고 독립적으로 작동합니다. 약한 엔티티는 완전한 키가 부족하여 소유자 엔티티에 의존합니다.

크로우즈풋 표기법은 선의 끝이 새의 발 모양을 닮아 방향을 나타냅니다. 갈래는 다수 방향을, 막대와 원은 단일 방향과 선택적 방향을 나타냅니다.

ER 모델은 엔티티와 관계를 시각적으로 표현한 고수준의 설계도입니다. 관계형 모델은 이를 DBMS 내의 테이블, 행, 열, 키로 구현합니다.

AI 도구는 자연어 설명을 ER 다이어그램으로 변환하고, 엔티티와 관계를 제안하며, SQL 스키마를 생성합니다. 설계자는 구현 전에 출력물을 검토하고 수정합니다.

예. GitHub 부조종사 엔티티, 관계 및 테이블 구조를 제안하고 이를 구축하는 SQL을 생성합니다. 또한 Mermaid와 같이 다이어그램을 코드로 작성하여 ER 다이어그램으로 렌더링할 수도 있습니다.

이 게시물을 요약하면 다음과 같습니다.