19.데이터베이스 관계

강재영's avatar
Aug 20, 2024
19.데이터베이스 관계
 

1.동사로 이루어진 테이블설계

이때 N대 N관계가 나오면 동사로 이루어진 테이블이 중간에 필요해진다.
notion image
 

N대N 예시 학생과 강의

  • 설명: 한 명의 학생이 여러 강의를 수강할 수 있고, 동시에 하나의 강의에는 여러 명의 학생이 수강할 수 있습니다.
  • 실생활 예시: 대학에서 한 학생이 "수학", "물리", "프로그래밍" 같은 다양한 강의를 수강할 수 있습니다. 반대로, "수학" 강의에는 여러 명의 학생이 수강할 수 있습니다.
 
N 관계에서는 두 개의 엔티티(테이블) 간에 여러 개의 연관을 나타내기 위해 중간 테이블(또는 연결 테이블, 조인 테이블)이 필요합니다. 이 중간 테이블은 N대N 관계를 효과적으로 구현하기 위한 중요한 요소입니다.
 
 
Student 테이블: ------------------- | StudentID | Name | ------------------- | 1 | 홍길동 | | 2 | 김철수 | ------------------- Course 테이블: --------------------- | CourseID | CourseName | --------------------- | 101 | 수학 | | 102 | 물리 | --------------------- Student_Course 중간 테이블: --------------------------- | StudentID | CourseID | --------------------------- | 1 | 101 | | 1 | 102 | | 2 | 101 | ---------------------------

결론

N대N 관계에서 중간 테이블은 필수적입니다. 이 테이블은 두 엔티티 간의 다대다 관계를 효과적으로 관리하고, 이를 통해 데이터베이스의 무결성을 유지하며 다양한 쿼리 작업을 쉽게 수행할 수 있게 해줍니다.
 
 

N포드

N에서 외래키를 가지고 드라이빙테이블
데이터베이스를 조인할때 외래키가 가진쪽에서 조인을 하는것이 일반적으로는 빠르다(모든 경우가 그렇지는 않음)
 

드라이빙 테이블(Driving Table) 개념

드라이빙 테이블은 데이터베이스 조인에서 조인을 시작하는 테이블을 의미합니다. 조인 연산에서 먼저 읽고, 이 테이블의 데이터를 기반으로 다른 테이블과 결합하는 테이블을 가리킵니다.
  • 조인 순서: 조인 쿼리를 실행할 때, 데이터베이스 엔진은 어떤 테이블을 먼저 읽고, 그 데이터를 기반으로 다른 테이블과 결합할지를 결정합니다. 이 첫 번째로 읽는 테이블이 드라이빙 테이블입니다.
  • 선택 기준: 일반적으로 드라이빙 테이블은 조건을 가장 잘 필터링할 수 있는 테이블로 선택됩니다. 예를 들어, 조건에 따라 가장 적은 양의 데이터를 반환할 수 있는 테이블이 드라이빙 테이블로 선택되는 경우가 많습니다.
Share article

강재영 블로그