realtionship

관계란 테이블간의 상호작용을 기반으로 설정되는 여러 테이블 간의 논리적인 연결이다.

RDB(관계형 데이터베이스)의 모든 테이블에는 행에서 고유하게 식별 가능한 기본키(PK)속성이 있으며, 외래키(FK)를 사용해서 각 행에서 서로 다른 테이블간의 관계를 설정할 수 있다.

 

 

 

many to one relationship

관계형 데이터베이스에서 외래키 속성을 사용해 모델간 N:1 관계 설정

 

 

예를 들어 고객 테이블이 있고 고객이 주문을 할때 주문테이블에 주문 정보가 생성된다면, 각 주문 데이터에 고객정보의 기본키를 저장한다. 이처럼 관계형 데이터베이스에서 한 테이블의 필드 중 다른 테이블의 행을 식별할 수 있는 키를 외래키(foreign key,FK)라고 한다. 고객테이블의 PK는 주문테이블에서 FK가 된 것이다.

 

 

 

RDB에서 관계

1. 1:1 (one-to-one relationships)

한 테이블의 레코드 하나가 다른 테이블의 레코드 단 한개와 관련

 

 

2. N:1 (many-to-one relationship)

한 테이블의 0개 이상의 레코드가 다른 테이블의 레코드 한개와 관련된 경우

기준 테이블에 따라 1:N 이라고도 한다.

-> 주문테이블의 0개 이상의 레코드가 고객 테이블의 레코드 한개(고객ID)와 관련되어 있다. (주문이 없을 때 0개)

-> 고객(1)은 여러 주문(N)을 진행할 수 있다.

-> 만약 고객이 단 하나의 주문만 생성할 수 있으면 1:1 관계가 된다.

 

 

3. M:N (many-to-many relationships)

한 테이블의 0개 이상의 레코드가 다른 테이블의 0개 이상의 레코드와 관련된 경우

양쪽모두 N:1관계를 가진다.

M:N 관계를 위해 스키마를 디자인할 때에는, Join 테이블을 만들어 관리한다.

1:N 관계와 비슷하지만, 양방향에서 다수의 레코드를 가질 수 있다.

 

 

 

 

Foreign Key (외래키, FK)

키를 사용하여 부모 테이블의 유일한 값을 참조한다. (참조 무결성)

관계형 데이터베이스에서 한 테이블의 필드 중 다른테이블의 행을 식별할 수 있는 키

외래 키는 참조하는 테이블에서 1개의 키(속성 또는 속성의 집합)에 해당하고, 참조하는 측의 관계 변수는 참조되는 측의 테이블의 키를 가리킨다.

외래키의 값이 반드시 부모테이블의 기본키 일 필요는 없지만 유일한 키여야 한다.

(참조하는 테이블 = 주문테이블, 참조되는 테이블 = 고객테이블)

 

참조하는 테이블의 속성의 행 1개의 값은, 참조되는 측 테이블의 행 값에 대응된다.

이 때문에 참조하는 테이블의 행에는, 참조되는 테이블에 나타나지 않는 값을 포함할 수 없다.

참조하는 테이블의 행 여러 개가, 참조되는 테이블의 동일한 행을 참조할 수 있다.