CodeGym /행동 /SQL SELF /ERD(엔터티-관계 다이어그램) 만들기

ERD(엔터티-관계 다이어그램) 만들기

SQL SELF
레벨 26, 레슨 1
사용 가능

ERD는 Entity-Relationship Diagram(엔터티-관계 다이어그램)의 줄임말이야. 이건 네 데이터베이스 구조를 시각적으로 보여주는 거고, 엔터티(테이블)들이 어떻게 서로 연결되는지 한눈에 볼 수 있어.

ERD를 데이터베이스 지하철 노선도라고 생각해봐. 역이 테이블이고, 역 사이를 잇는 선이 관계야. 이 노선도를 보면 역(테이블) 사이를 어떻게 이동하는지(테이블이 어떻게 연결되는지) 쉽게 이해할 수 있지.

ERD는 이런 걸로 구성돼:

  • 엔터티: "학생", "강의", "교수" 같은 객체나 테이블이야.
  • 속성: ID, 이름, 성 같은 테이블의 컬럼이야.
  • 관계: 테이블 사이를 잇는 선으로, 예를 들어 한 학생이 여러 강의에 등록될 수 있어.

ERD를 이용하면 데이터베이스를 설계할 수도 있고, 동료나 상사한테 구조를 설명할 수도 있어. 개발자라면 꼭 써야 하는 강력한 도구지!

ERD의 기본 요소

  1. 엔터티

엔터티는 데이터베이스의 축소판이야. 각각의 엔터티는 네 시스템에서 관리하고 싶은 실제 객체나 개념에 해당해. 예를 들면:

  • "학생" 테이블.
  • "강의" 테이블.
  • "대출" 테이블(도서관 시스템에서).

예시:


+---------------+
| 학생          |
+---------------+
| ID            |
| 이름          |
| 성            |
| 생년월일      |
+---------------+
  1. 속성 속성은 엔터티의 개별 특성이나 성질이야. 데이터베이스 테이블의 컬럼으로 표현되지. 예를 들어:
  • "학생" 테이블의 경우 ID, 이름, 성이 될 수 있어.
  • "강의" 테이블은 강의 ID, 강의명이야.

ERD에서는 보통 엔터티를 나타내는 사각형 안에 속성을 적어.

엔터티 간의 관계

관계는 두 엔터티가 어떻게 상호작용하는지 보여줘. 기본적인 관계 타입을 다시 정리해볼게:

  • 일대일(1:1): 예를 들어, 각 학생은 하나의 고유한 학생증을 가져.
  • 일대다(1:N): 한 교수는 여러 강의를 맡을 수 있어.
  • 다대다(M:N): 여러 학생이 여러 강의에 등록될 수 있어.

"일대다" 관계 예시:

학생 (1) <----- 등록됨 -----> (N) 강의

데이터베이스에서 관계를 구현할 때는 보통 외래 키를 써.

ERD를 어떻게 만들까?

ERD를 만드는 과정을 단계별로 살펴보고, 도서관 예시도 같이 볼게.

1단계: 엔터티 정하기

시스템을 주요 객체로 나누는 게 첫 번째야. 예를 들어, 도서관 시스템이라면:

  • "책".
  • "회원".
  • "대출".

예시:

+-------------+        +--------------+         +------------+
| 책          |        | 회원         |         | 대출       |
+-------------+        +--------------+         +------------+
| ID          |        | ID           |         | ID         |
| 제목        |        | 이름         |         | 회원       |
| 저자        |        | 성           |         | 책         |
| ISBN        |        | 생년월일     |         | 대출일     |
+-------------+        +--------------+         +------------+

2단계: 속성 추가

각 엔터티에 핵심 속성을 넣어야 해. 예를 들어:

  • "책" 테이블에는 ID(기본 키), 제목, 저자, ISBN이 들어가야 해.
  • "회원" 테이블은 ID, 이름, 성이야.

3단계: 관계 설정

이제 엔터티들 사이의 관계를 추가해:

  • "대출"은 "책"과 연결돼(한 책이 여러 번 대출될 수 있음).
  • "대출"은 "회원"과도 연결돼(한 회원이 여러 책을 빌릴 수 있음).

4단계: 시각화

다이어그램을 그릴 때는 이런 툴을 써봐:

  • draw.io
  • dbdiagram.io
  • Lucidchart
  • Microsoft Visio

다이어그램은 이렇게 생겼을 거야:

[회원] ----(1:N)---- [대출] ----(N:1)---- [책]

각 관계마다 데이터 타입이랑 설명도 추가해줘. 예를 들어:

  • 회원 ID는 "대출"에서 "회원" 테이블의 기본 키랑 연결돼.

예시: 인터넷 쇼핑몰 ERD

인터넷 쇼핑몰은 이런 논리 구조가 필요해:

  1. 사용자(가입한 고객).
  2. 상품(판매하는 물건).
  3. 주문.

1단계: 엔터티

  • 사용자: 사용자 ID, 이름, Email.
  • 상품: 상품 ID, 상품명, 가격.
  • 주문: 주문 ID, 사용자 ID, 주문일.

2단계: 관계 설정

  • 한 사용자가 여러 주문을 할 수 있어(1:N).
  • 한 주문에 여러 상품이 들어갈 수 있어(M:N).

전체 ERD 다이어그램:

[사용자] ----(1:N)---- [주문] ----(N:M)---- [상품]

다대다 관계를 구현하려면 중간 테이블을 추가해야 해:

  • 주문 상세: 주문 ID, 상품 ID, 수량.

ERD 만들기 팁

  • 먼저 데이터베이스에서 뭘 보고 싶은지 생각해봐. 모든 건 네 도메인 이해에서 시작이야.

  • 정말 중요한 속성과 엔터티만 포함해. 너무 세세하면 오히려 헷갈릴 수 있어.

  • 모든 관계가 논리적으로 맞는지 꼭 확인해. 이상하면 다시 생각해봐.

  • 다이어그램을 시각화해주는 툴을 쓰면 시간과 노력을 아낄 수 있어.

2
과제
SQL SELF, 레벨 26, 레슨 1
잠금
테이블을 제2정규형(2NF)으로 변환하기
테이블을 제2정규형(2NF)으로 변환하기
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION