【DB 설계】No.1 「DB의 관계와 ER도」

본 기사에서는, DB의 기본중의 기본인 DB의 관계(관계)에 대해서.
다음으로, 그 관계를 그림에서는 어떻게 표현하는지를 써 가고 싶습니다.

관계란?



관계는 간단히 말하면 테이블 간의 관계를 나타냅니다.
구체적으로 살펴보면 데이터베이스 관계에는 다음 세 가지 관계가 있습니다.

・1:n(일대다)
'회사'와 '사원'이라는 테이블이 존재할 때 한 회사에 여러 명의 직원이 존재하기 때문에 이 두 관계는 1:n이 된다고 할 수 있습니다.

・n:n(다대다)
'서클'과 '사원'이라는 테이블이 존재할 때 한 명의 직원이 여러 서클에 속할 수 있습니다. 그리고 서클에는 여러 직원이 있습니다.
따라서 이 양자의 관계는 n:n이 되어 있다고 말할 수 있습니다.

※n:n의 경우 중간 테이블을 이용하여 DB를 구성합니다. 자세한 내용은 나중에 설명합니다.

・1:1
'사원'과 '개인정보'라는 테이블이 존재할 때 한 직원은 하나의 개인정보를 가지고 있습니다.
따라서 이 양자의 관계는 1:1로 되어 있다고 말할 수 있습니다.

ER 다이어그램을 작성하는 방법



우선 ER도에는 원칙적으로 이하의 결정이 있습니다.
이것을 바탕으로 ER 그림을 써 갑니다.

출처 : h tps : ///이 t-아. 코 m / 엔치 ty- ぁ 치 온시 p ぢ 아 g 라 m 1897 # 에 R-4

ER 다이어그램의 예



・1:1
두 테이블을 직선으로 연결하고 1 관계를 나타내는 세로 막대 "|"를 추가합니다.


・1:n(1:1 이상)
n 관계에 해당하는 테이블에 새 다리를 추가합니다.


・n:n(0 포함)
서클은 만들었지만 사원이 없거나 사원이 서클에 속하지 않는 경우도 고려하여 그림과 같이 0을 나타내는 ○을 새 다리에 덧붙입니다.


중간 테이블



다음과 같은 n:n 의 관계가 성립하는 테이블이 있다고 합니다.
이 때, user 가 course 를 가지지 않을 때 (역도 자연스럽게), 쓸데없는 컬럼을 가지게 됩니다.
이러한 DB 설계는 안티 패턴이라고 불리며, 바람직하지 않은 설계가 됩니다.


그렇다면 어떻게 해야 할까요?
아래와 같이 user와 course의 중간에 데이터의 교차를 해 주는 중간 테이블을 작성합니다.
그렇게 함으로써 깨끗한 DB 설계가 가능해져, user나 course가 늘어난다고 해도 중간 테이블에 데이터를 추가하는 것만으로 OK입니다.


참고 사이트



1. 쉬운 그림으로 배우는 중간 테이블 다대다 개념편
2. 젊은 프로그래머 필독! 5분으로 이해할 수 있는 ER도 작성 방법 5단계

좋은 웹페이지 즐겨찾기