[DataBase] 데이터베이스 관계(Relationship)
데이터베이스에는 여러 개의 테이블이 있고 이러한 테이블은 서로의 관계가 정의되어 있다.
이 관계는 관계화살표를 통해 나타낼 수 있다.
관계화살표는 다음과 같다.
1:1 관계
어느 엔티티 쪽에서 상대 엔티티와 반드시 단 하나의 관계를 갖는 것이다.
예를 들어 위 그림처럼 유저 한 명 당 이메일이 한 개씩 존재한다면 유저와 이메일은 1:1 관계다.
테이블을 두 개의 테이블로 나눠 테이블을 구조를 더 이해하기 쉽게 만들어준다.
1:N 관계
한 개체가 다른 많은 개체를 포함하는 관계다.
한 쪽 엔티티가 관계를 맺은 엔티티 쪽의 여러 객체를 가질 수 있는 것을 말한다.
예를 들어 쇼핑몰을 운영한다고 가정하면, 한 유저당 여러 개의 상품을 장바구니에 넣을 수 있다.
이 경우 유저와 상품은 1:N 관계다.
하나도 넣지 않는 경우도 있으니 0이 포함되는 화살표를 그려야 한다.
N:M 관계
관계를 가진 양쪽 엔티티 모두에서 1:N 관계를 가지는 것을 말한다.
N:M은 테이블 두 개를 직접적으로 연결해서 구축하지 않고
1:N, 1:M 이라는 관계를 갖는 테이블 두 개로 나눈다.
위 그림에서는 학생과 강의의 관계를 통해 N:M을 설명하고 있다.
학생도 강의를 많이 들을 수 있고 강의도 여러 명의 학생을 포함할 수 있기 때문에 학생과 강의는 N:M의 관계가 된다.
참조
- 주홍철, 면접을 위한 CS 전공지식 노트, 길벗(2022)
- gil.log