Foreign Key 2

[DATABASE] 기본키(PK), 외래키(FK)

데이터 모델링을 하며 ERD(Entity Relationship Diagram: 개체관계도)에 테이블을 만들면서 테이블간의 관계 연결에 대해 어려움을 겪었다. 요약하면 부모와 자식/ 참조하는 테이블과 참조되는 테이블로 간단하지만 실제 모델링을 하면 이러한 기준이 모호하여 구분이 어려워진다. 우선 테이블간의 관계에 대해 간단히 알아보면 1:1, 1:N, N:M(여러개랑 여러개)의 관계들이 있다. 아래 그림은 학생과 수업의 관계를 나타내는 테이블인데 다대다의 관계를 가지고 있다 위 그림처럼 여러명의 학생과 여러개의 수업을 테이블로 나타내면 경우의 수가 어마무시하게 많아져 어떤 정보를 찾을 때 매우 어려워지게 된다. 따라서 각 테이블에는 해당테이블에 필요한 정보를 나타내도록 하고 테이블 행(여러 학생 또는 수..

공부노트/DB 2022.01.06

[Database] 외래키(Foreign Key)의 사용 - 식별관계, 비식별관계

1. 외래키(Foreign Key) 상품테이블과 주문테이블이 있다고 생각해보자. 아직 두 테이블간의 관계는 정해지지않은 상태다. 두 테이블의 관계는 어떻게 될지 생각해보자. 하나의 상품은 여러 주문에서 구매할 수 있고(재고만있다면..), 하나의 주문은 여러 상품을 구매할 수 있다. 다대다(N:M) 관계라는 뜻이다. ERD상으로는 이렇게 그릴 수 있지만 보통 RDB에서 다대다 관계는 중간에 관계 테이블을 추가해서 사용한다. 주문_상품이라는 관계 테이블을 추가했다(주문 테이블이 너무 허전해서 아무렇지않은듯 속성도 추가했다.). 주문_상품 테이블은 각각 상품 테이블과 일대다, 주문 테이블과 다대일 관계를 갖고있다. 주문_상품이 없는 상품은 존재할 수 있지만 주문_상품이 없는 주문은 존재할 수 없음도 ERD에 ..

공부노트/DB 2022.01.06