특강

Database Erd 및 관계형 데이터베이스 모델링 쉽게 이해하기- 장동욱 강사님 강의(250325)

Chansman 2025. 3. 25. 19:11

📌 개념 정리

이번 포스팅에서는 **ERD(Entity-Relationship Diagram)**와 관련된 테이블 구조, 관계 유형, Cardinality에 대해 쉽게 설명하고, 실제 예시를 들어서 설명하겠습니다. ERD는 데이터베이스 설계에서 중요한 역할을 하며, EntityRelationship 간의 관계를 시각적으로 나타내는 방법입니다. 이 포스팅을 통해 ERD의 기본 개념을 이해하고, 관계형 데이터베이스를 설계하는 데 도움이 되는 정보를 제공합니다.


🚦 1. ERD (Entity-Relationship Diagram)

ERD는 데이터베이스 설계의 중요한 도구로, **엔티티(Entity)**와 **관계(Relationship)**를 나타냅니다. ERD를 통해 데이터베이스 내의 테이블그들 간의 관계를 시각적으로 표현할 수 있습니다.

1) Entity (엔티티) = 테이블

Entity는 데이터베이스에서 테이블에 해당합니다. 엔티티는 명사로 표현될 수 있으며, 실제로 데이터베이스 내에서 하나의 테이블로 구현됩니다. 예를 들어, 고객(Customer), 주문(Order), 제품(Product) 등이 Entity에 해당합니다.

  • 행(row): **Instance(인스턴스)**라고도 하며, 데이터베이스의 한 행은 하나의 실제 데이터 항목입니다. 예를 들어, 고객 테이블에서 한 행은 하나의 고객 정보를 나타냅니다.
  • 열(column): **Attribute(속성)**이라고 하며, 테이블의 각 열은 하나의 속성이나 특징을 나타냅니다. 예를 들어, 고객 테이블에서 이름, 전화번호, 주소 등이 열에 해당합니다.

2) Relationship (관계) = 외래키(Foreign Key) 관계

Relationship두 개의 테이블 간의 관계를 나타내며, 동사로 표현됩니다. 관계는 **외래키(Foreign Key)**를 통해 두 테이블 간의 연결을 구현합니다. 관계는 하나의 외래키가 다른 테이블의 **기본키(Primary Key)**를 참조하는 형태로 나타낼 수 있습니다. 예를 들어, 주문 테이블에서 고객 ID고객 테이블의 고객 ID를 참조하는 관계가 있을 수 있습니다.

(1) Relationship 유형

Relationship은 다음과 같이 세 가지로 구분할 수 있습니다:

  • Binary (2-ary) 관계: 가장 일반적인 형태로 두 테이블 간의 관계입니다. 예를 들어, 고객주문 간의 관계는 Binary 관계입니다. Binary 관계는 가장 많이 사용되고 구현하기 쉬운 형태로, 단순한 관계를 만들 때 적합합니다.
  • Unary (1-ary) 관계: 자기 자신과의 관계입니다. 이를 재귀적 관계(Recursive Relationship)라고도 부릅니다. 예를 들어, 직원 테이블에서 상사(상급자)가 자기 자신을 참조하는 관계가 Unary 관계입니다.
  • Ternary (3-ary) 관계: 세 개체 간의 관계입니다. 예를 들어, 출판 시스템에서는 , 저자, 출판사가 모두 Ternary 관계를 형성합니다. 즉, 저자출판사가 동시에 관련된 경우입니다.

(2) Cardinality (카디널리티) – 관계의 차수

Cardinality는 관계를 맺는 테이블 간에 각 행이 얼마나 연결되는지를 나타냅니다. Cardinality는 다음과 같은 4가지 관계 유형을 정의합니다:

  • 1:1 (일대일) 관계: 하나의 테이블의 한 행이 다른 테이블의 한 행과만 연결됩니다.
    • 예시: 고객회원 카드 관계는 1:1 관계입니다. 한 명의 고객은 하나의 회원 카드만 가질 수 있습니다.
  • 1:N (일대다) 관계: 한 테이블의 한 행이 다른 테이블의 여러 행과 연결됩니다. (부모-자식 관계)
    • 예시: 고객주문 관계는 1:N 관계입니다. 한 명의 고객은 여러 개의 주문을 할 수 있습니다.
  • N:1 (다대일) 관계: 여러 개체가 하나의 개체와 연결되는 관계입니다.
    • 예시: 주문배송 관계는 N:1 관계입니다. 여러 개의 주문이 하나의 배송 정보와 연결됩니다.
  • N:M (다대다) 관계: 여러 개체가 서로 연결되는 관계입니다. 이를 해결하기 위해 중간 테이블을 사용해야 합니다.
    • 예시: 학생과목 관계는 N:M 관계입니다. 여러 학생이 여러 과목을 들을 수 있기 때문에 학생-과목 관계를 위한 중간 테이블이 필요합니다.
    중간 테이블 예시: Student_Courses 테이블을 만들어 student_id와 course_id를 외래키로 연결합니다.

3. N:M 관계에서 중간 테이블 사용 예시

예시: 학생과목이 다대다 관계를 가질 때, 중간 테이블을 사용하여 이 관계를 관리합니다.

학생 테이블 (Students)

student_id (PK) name

1 학생 A
2 학생 B

과목 테이블 (Courses)

course_id (PK) course_name

1 수학
2 영어
3 과학

중간 테이블 (Student_Courses)

student_id (FK) course_id (FK)

1 1
1 2
2 2
2 3
  • 중간 테이블은 학생과목 간의 관계를 관리하며, Foreign Key를 사용해 두 테이블을 연결합니다.

🚦 결론

  • ERD에서 Entity테이블을 나타내고, Relationship은 테이블 간의 관계를 정의합니다.
  • 1:1, 1:N, N:M 관계를 Cardinality로 구분하여 이해할 수 있습니다. N:M 관계중간 테이블을 사용해 처리합니다.
  • 관계 유형에 맞는 테이블 설계를 통해 정확한 데이터 모델링을 할 수 있습니다.

이 포스팅을 통해 ERD의 기본 개념을 이해하고, 관계형 데이터베이스 설계를 보다 명확하게 다룰 수 있을 것입니다! 🚀