- 웹 프로젝트를 진행하기에 앞서, 관계형 데이터베이스에 대해 다시 제대로 짚고 넘어가는 것이 좋을 것 같아 개인적으로 공부를 한 후 정리를 해봤다. 헷갈리는 내용들 위주로 정리할 예정이다.
1:1 관계 (일대일관계)
- 어느 엔티티 쪽에서 상대 엔티티와 반드시 단 하나의 관계를 갖는 것.
1:N 관계 (일대다관계)
- 한 쪽 엔티티가 관계를 맺은 엔티티 쪽의 여러 객체를 가질 수 있는 것.
- N:M 처럼
새로운 테이블을 만들지 않음.
- 여러 명의 자식(N)의 입장에서 한 쌍의 부모 중(1) 어떤 부모에 속해 있는지 표현해야하므로
부모 테이블의 PK
(각 엔티티를 식별가능한 대표키. 테이블에서 중복되지 않는 값. Null값 불가능.)를자식 테이블에 FK
(다른 테이블의 기본키를 참조. 모든 필드는 기본키와 동일한 도메인(값의 종류, 범위)를 가짐. 모든 필드 값은 참조하는 기본키와 동일하거나 null일 수 있음!)로 집어 넣어 관계 표현.
- 여러 명의 자식(N)의 입장에서 한 쌍의 부모 중(1) 어떤 부모에 속해 있는지 표현해야하므로
N:M 관계 (다대다관계)
- 양쪽 엔티티 모두에서 1:N 관계를 갖는 것.
서로가 서로를 1:N으로 보는 것!
서로의 PK
를자신의 외래키 컬럼
으로 가져야함.- 두 테이블의 대표키를 컬럼으로 갖는
또 다른 테이블
을 생성해서 관리해야함.