Computer Science

[데이터베이스] one-to-many/many-to-one/many-to-many relationships

imsunbow 2024. 2. 26. 16:26

관계형 데이터베이스에서, one-to-many(일대다), many-to-one(다대일), many-to-many(다대다)는 엔터티(테이블) 간의 관계를 설명하는 세 가지 주요 유형의 관계이다.

  1. One-to-Many (일대다) 관계:
    • 한 쪽 엔터티(테이블)의 레코드가 다른 쪽 엔터티에서 여러 레코드와 관련된 경우이다.
    • 예를 들어, 하나의 부서에 여러 개의 직원이 속하는 경우가 일대다 관계이다. 부서는 한 쪽에 위치하고, 여러 개의 직원은 다른 쪽에 위치한다.
  2. Many-to-One (다대일) 관계:
    • 일대다 관계의 반대로, 다수의 레코드가 다른 테이블의 하나의 레코드와 관련된 경우이다.
    • 위의 예에서 직원(다수)과 부서(하나)의 관계가 다대일 관계이다.
  3. Many-to-Many (다대다) 관계:
    • 두 엔터티(테이블) 간에 양쪽 모두에서 다수의 레코드가 서로 관련된 경우이다.
    • 예를 들어, 학생과 강의 간의 관계가 있습니다. 하나의 학생이 여러 개의 강의를 수강하고, 한 강의는 여러 학생에게 수강될 수 있다.
    • 이러한 관계는 보통 중간 테이블이나 링크 테이블을 사용하여 나타낼 수 있습니다. 이 테이블은 두 엔터티 간의 관계를 표현하며, 각각의 레코드는 두 엔터티 간의 관계를 나타낸다.

이러한 관계를 통해 데이터베이스 설계 시 데이터의 일관성과 효율성을 유지할 수 있다. 각 관계는 특정 비즈니스 요구사항에 따라 선택되고, 적절한 관계를 설정하여 데이터베이스의 정확성과 효율성을 최적화할 수 있다.

 

[markdown 언어를 이용하여 그림으로 표현하기]

 

One-to-Many (일대다) 관계:

 

[부서 테이블]
---------------------
| 부서ID | 부서이름   |
---------------------
| 1     | 영업부     |
| 2     | 개발부     |
| 3     | 인사부     |
---------------------

[직원 테이블]
---------------------
| 직원ID | 이름     | 부서ID |
---------------------
| 101   | 철수     | 1     |
| 102   | 영희     | 2     |
| 103   | 민수     | 1     |
---------------------

 

 

[부서 테이블]
---------------------
| 부서ID | 부서이름   |
---------------------
| 1     | 영업부     |
| 2     | 개발부     |
| 3     | 인사부     |
---------------------

 

 

Many-to-One (다대일) 관계:


[직원 테이블]
---------------------
| 직원ID | 이름     | 부서ID |
---------------------
| 101   | 철수     | 1     |
| 102   | 영희     | 2     |
| 103   | 민수     | 1     |
---------------------

 

다대다(Many-to-Many) 관계:

 

[학생 테이블]
---------------------
| 학생ID | 학생이름  |
---------------------
| 1     | 철수     |
| 2     | 영희     |
| 3     | 민수     |
---------------------

[강의 테이블]
---------------------
| 강의ID | 강의이름  |
---------------------
| 101   | 수학     |
| 102   | 영어     |
| 103   | 과학     |
---------------------

[학생-강의 링크 테이블]
---------------------
| 학생ID | 강의ID   |
---------------------
| 1     | 101     |
| 1     | 102     |
| 2     | 102     |
| 3     | 101     |
| 3     | 103     |
---------------------


 

반응형