amplitude.init("2e2e5a386856efdf3237cf254a9d14d9"

[개념 콕] 관계형데이터베이스의 1:1, 1:N, N:M 관계

내일배움캠프 수료생이 개발에 꼭 필요한 핵심 개념만 콕 집어 드립니다.
Jun 03, 2024
[개념 콕] 관계형데이터베이스의 1:1, 1:N, N:M 관계
✍🏼
개발을 시작하시는 여러분, 정보가 너무 많고 배워야 할 것도 산더미라 어디서부터 시작해야 할지 막막하신가요? 내일배움캠프 수료생들이 4개월 동안 배운 엄선된 핵심 개념을 직접 정리해서 알려 드립니다. 공부하다 막히거나 헷갈리는 개념이 있다면 개념 콕으로 정리해보세요.
 
ERD(Entity-Relationship Diagram)에서는 개체(Entity) 간의 관계를 표현하는 것이 매우 중요합니다. 이러한 관계는 데이터베이스 설계에 직접적인 영향을 미치며, 시스템의 효율성과 일관성을 결정짓는 요소가 됩니다. 관계의 종류는 크게 세 가지로 분류할 수 있습니다: 1:1(One to One), 1:N(One to Many), 그리고 N:M(Many to Many)입니다. 각각의 관계는 실제 시스템에서 자주 발생하는 상황을 반영하며, 데이터 모델링 과정에서 중요한 결정 사항이 됩니다. 이 글에서는 각 관계의 특징을 알아보겠습니다.
 

ERD에서의 관계 표현 방법

관계가 존재하는 두 Entity 사이에 한 Entity에서 다른 Entity 몇 개의 개체와 대응되는지 제약조건을 표기하기 위해 선을 그어 표현합니다. 하지만 ERD 다이어그램에 선들을 막 긋는다면 가독성이 매우 안좋아지고 표가 복잡해집니다. 따라서 1:N 의 관계를 표기 하기 위해 ERD에서는 선의 끝 모양을 다르게 표시하는 방법을 사용합니다.
학교에서의 학생을 예로 들어보겠습니다.
 

1. One to One : 1 대 1 대응 (1:1)

One to One : 학생 테이블 - 학생의 정보 테이블 → 학생 각 1명마다 고유한 학생정보(ex.주민등록번호 등)를 가지고 있을 것이고, 여러 개의 학생정보를 가질 수 없기 때문에 학생과 주민등록번호는 1:1로 매칭됩니다.
 

2. One to Many : 1 대 다 대응 (1:N)

One to Many : 학생 테이블 - 학생의 취미 테이블 → 학생 한 명이 여러개의 취미를 가질 수 있으므로 1:N으로 매칭됩니다.
 

3. Many to Many : 다 대 다 대응 (M:N)

Many to Many : 학생 테이블 - 수업 테이블 → 한 명의 학생은 여러 개의 수업을 들을 수 있고, 한 개의 수업은 여러 개의 학생을 받을 수 있으므로 N:M으로 매칭됩니다.
 
그런데 두 Entity가 M:N 관계에 있는 경우, 두개의 Entity만으로는 서로를 표현하는데 부족합니다. 데이터 모델링에서는 M:N 관계를 완성되지 않은 모델로 간주하여, 두 Entity의 관계를 1:N, N:1 로 조정하는 작업이 필요합니다.
따라서 두 Entity의 관련성을 표현하기 위해서는 중간에 또 다른 Entity를 필요로 합니다. 이 중간 Entity가 두 Entity의 공유 속성 역할을 하게 됩니다. 이 부분은 데이터 모델링에서 공식 처럼 적용되는 규칙이며, ERD 프로그램에서 M:N을 잡게 된다면 자동으로 이러한 조정 작업이 행해지게 됩니다. 이렇게 N:1 관계로 전환하는 과정에서 새로이 추가되는 엔터티를 Intersection Entity 라고 부르며 Intersection Entity의 UID는 종종 이 Entity와 Relationship을 맺고 있는 원래의 Entity의 UID들로 구성됩니다. 이런 경우 ERD에는 Relationship을 나타내는 선에 UID Bar를 사용하여 표현합니다.
 
 
 

내일배움캠프는 개발에 필요한 핵심만 배웁니다

지금까지 꼭 필요한 개발 지식에 대해 알아보았습니다. 내일배움캠프에서는 전문가들이 선별한 핵심 개발 지식으로 개발 공부도, 취업도 보다 효율적으로 할 수 있는데요. 국내 유수의 IT기업 출신 튜터님들과 실습 위주의 독보적인 커리큘럼으로 개발자 취업을 체계적으로 준비해보세요. 내일배움캠프 4개월, 여러분 인생의 가장 큰 터닝 포인트입니다.
 
 
 
CREDIT
글 | 이기호 내일배움캠프 수료생 편집 | 정효재 팀스파르타 에디터
 
 

취업 준비, 어디서부터 시작해야 할지 모르겠다면?

 
🧐비전공자인데 IT 업계 취업할 수 있을까?
😟프로젝트 경험이 부족한데, 어떻게 준비해야 할까?
🥺IT 기업으로 이직하고 싶은데 뭐부터 시작해야 할까?
 
이런 고민을 하고 있다면, 내일배움캠프의 IT 취업 컨설팅을 받아보세요.
취업 코칭 전문가들이 여러분의 고민을 해결해 드립니다.
 
다음 링크에 이메일을 입력하시면 메일로 1:1 커리어 상담권과 취준 자료집을 보내드릴게요.
 
 
 
Share article
Subscribe to our newsletter
RSSPowered by inblog