카테고리 없음

[DB/DB모델링] M:N 관계

2023. 3. 25. 11:12
목차
  1. 1.개요
  2. 1.2. M:N 관계
  3. 1.2. M:N문제를 해결하기 위한 추가적인 작업

 DB모델링에는 1:N, N:1 , M:N 관계같이 다양한 관계가 있다.(ERD에서는 사실 1:N관계로 이루어져있다.) 그 중에서도 M:N관계가 다른 관계보다 까다롭고 생각해봐야 할 것이있다.

 

1.개요

 DB모델링에는 1:N, N:1 , M:N 관계같이 다양한 관계가 있다.(ERD에서는 사실 1:N관계로 이루어져있다.) 그 중에서도 M:N관계가 다른 관계보다 까다롭고 생각해봐야 할 것이있다.

 

1.2. M:N 관계

: M:N관계는 서로 관계를 가진 양쪽 엔티티 모두 1:N관계를 가지는 것을 말한다. 예를 들어 제품과 제조업체 엔티티가 있다고 가정해보자. 제품에는 컴퓨터, 냉장고, 세탁기 컬럼이 있고, 제조업체에는 삼성, LG, 애플이 있다. 제품 엔티티에 있는 컴퓨터 컬럼은 제조 업체에 따라 각기 다른 컴퓨터명을 가질 수 있다. 삼성은 갤럭시, LG는 그램, 애플은 맥북. 이처럼 제품 엔티티는 제조업체 엔티티와 1:N관계를 가진다. 

 제조업체 엔티티 입장에서도 제품 엔티티와 1:N관계를 가진다. 삼성, LG, 애플은 각기 다른  컴퓨터, 냉장고, 세탁기를 가질 수 있어 1:N관계를 형성한다. 하지만 M:N은 완성되지 않은 작업이다. 즉, 엔티티의 관계만을 나타내기 때문에 구체적으로 한 엔티티의 요소가 다른 엔티티의 요소와 관계 되어있는 지 알 수 없다. 아래 표를 예로 들면, 어느 제조업체가 어느 제품을 만드는 지 알지 못한다.(반대도 마찬가지다.) 이 문제를 해결하기위해 추가적인 작업을 해줘야 한다.

 

 

1.2. M:N문제를 해결하기 위한 추가적인 작업

: M:N관계는 매핑 테이블(제품_제조업체)을 만들고 1:N 관계를 두 개로 바꾼다. 매핑 테이블의 FK는 각기 다른 엔티티의 PK가 된다.

 


참조

  • Database 08. Cardinality M:N, MySQL Workbench (https://www.youtube.com/watch?v=ejVIvfGSztw&list=PL9hiYwOHVUQcRkS4XRnsrgPIRih9H7L32&index=11&ab_channel=Jacob%27sLecture)

 

 

 

 

  1. 1.개요
  2. 1.2. M:N 관계
  3. 1.2. M:N문제를 해결하기 위한 추가적인 작업
각시탈코더
각시탈코더
각시탈코더각시탈코더 님의 블로그입니다.
각시탈코더
각시탈코더
각시탈코더
전체
오늘
어제
  • 분류 전체보기 (203)
    • java (46)
      • 객체지향 (20)
      • 기본문법 (8)
      • 자바의 정석 연습문제 오답노트 (9)
      • 백준 알고리즘 (9)
    • Spring (17)
      • SpringMVC (8)
      • Spring DI와 AOP (5)
      • REST API와 Ajax (1)
      • Spring 프로젝트 (1)
      • Spring Security (0)
    • DB (47)
      • Oracle (15)
      • SQL오답노트 (25)
      • 튜닝 (0)
      • ERD (1)
      • DB 모델링 (5)
    • Servlet & JSP (3)
    • JDBC (2)
      • 기본 (1)
      • 스프링JDBC (1)
    • MyBatis (2)
    • JavaScript (2)
      • 코딩애플 (0)
      • 문법 (1)
    • React (0)
      • 코딩애플 (0)
    • HTML (0)
      • 모던 웹을 위한 HTML5+CSS3 바이블 (0)
    • CSS (0)
      • 모던 웹을 위한 HTML5+CSS3 바이블 (0)
    • Linux (0)
    • Git & GitHub (2)
      • Git (1)
    • CS (19)
      • 네트워크 (6)
      • HTTP (7)
      • 컴퓨터구조 (0)
      • 자료구조와 알고리즘 (2)
      • 기타 (4)
    • 개발설정 (2)
    • 기술면접 (0)
      • JAVA (0)
      • Spring (0)
      • DB (0)
      • 네트워크 (0)
      • 공통 (0)
    • 프로젝트 (2)
      • 게시판만들기 (2)
    • 기혁씨의 삽질표류기 (28)
    • 참고자료 (2)
      • 국비수업 (0)
      • 당당 프로젝트 (1)
    • 뉴렉처 (17)
      • 자바 (11)
      • 자바스크립트 (3)
      • 키워드 (0)
      • 숙제 (0)
      • CSS (0)
      • DB (3)
      • 서블릿 (0)
      • 스프링 (0)
      • DOM (0)
    • 내가 만든 학습그림 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 쿼리
  • 공부
  • 에러
  • SQL
  • 서브쿼리
  • 연습문제
  • 개발자
  • 네트워크
  • 웹프로그래밍
  • 백엔드
  • 객체지향
  • 배열
  • 알고리즘
  • 뉴렉처
  • 스프링
  • Java
  • 자바의정석기초편
  • spring
  • 백준
  • 코딩
  • It
  • 프로그래머스
  • db
  • 오류
  • 자바
  • 오라클
  • 국비수업
  • 모두의네트워크
  • 자바의정석
  • Oracle

최근 댓글

최근 글

hELLO · Designed By 정상우.
각시탈코더
[DB/DB모델링] M:N 관계
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.