ERD 설계 중 테이블 간 관계 설정에 대해 알아보자.
관계의 유형
두 테이블 사이 관계로는 아래 세 유형이 있다.
- 1대1
- 1대다(1대N)
- 다대다(N대M)
이들에 대해 하나씩 알아보자.
1대1 관계
두 개의 테이블 A, B에 대해 A의 레코드 하나가 B의 레코드 하나에만 연결되고 B의 레코드 하나가 A의 레코드 하나에만 연결되는 경우 1대1 관계라고 한다.

ERD에선 아래와 같이 표현한다.
세로 선은 테이블의 한 레코드가 상대 레코드의 한 레코드와 연결된다는 것을 의미한다.
테이블 A의 세로 선은 B의 한 레코드가 A의 한 레코드와 연결된다는 의미이며
테이블 B의 세로 선은 A의 한 레코드가 B의 한 레코드와 연결된다는 의미이다.

1대다 관계
두 개의 테이블 A, B에 대해 A의 레코드 하나가 B의 여러 레코드와 연결되지만 B의 레코드 하나는 A의 레코드 하나에만 연결되는 경우 1대다 관계라고 한다.
A의 한 레코드는 B의 여러 레코드와 연결됨에 반해

B의 레코드는 A의 레코드 하나에만 연결된다.

이 관계는 DB에서 가장 일반적인 관계이며 식별하기 쉽다.
1대다 관계는 동일 데이터를 없애고 중복을 최소화하기 때문에 데이터 무결성 관점에서 매우 중요하다.
ERD에선 아래와 같이 표현한다.
까마귀 발 기호는 "다" 쪽에 위치한다.

다대다 관계
두 개의 테이블 A, B에 대해 A의 레코드 하나가 B의 여러 레코드와 연결되고 B의 레코드 하나가 A의 여러 레코드에 연결되는 경우 다대다 관계라고 한다.
아래와 같은 모습이다.


1대다 관계와 같이 흔히 사용되는 관계이며 보다 복잡하기에 테이블 검사를 신중하게 해야 한다.
ERD는 아래와 같이 표현할 수 있다.

단, 이처럼 테이블을 구현하면 중복 데이터가 매우 많이 생긴다는 문제점이 있다.
우리는 이러한 여러 문제를 해결하기 위해 연결 테이블을 활용한다.
연결 테이블을 활용하면 중복 데이터를 절대적으로 최소화할 수 있으며 형태는 아래와 같다.

'Database' 카테고리의 다른 글
| Database - 트랜잭션(Transaction) (0) | 2024.07.13 |
|---|